天津大学《操作系统》课程教学大纲
修订日期:2017年7月31日
一、课程基本信息
课程代码:2180264
课程名称:操作系统
课程类别:学科基础课
课程性质:必修
学时/学分:64(56+8)/4
适用专业:软件工程
授课学院:软件学院
先修课程:C/C++程序设计、数据结构、计算机组成原理、汇编语言程序设计
同修课程:
教材及主要参考书:
1)《现代操作系统(原书第三版)》,[荷]AndrewS.Tanenbaum著;陈向群,马洪兵等译,机械工业出版社,2009
2)《UNIX环境高级编程(第3版)》,[美]W.RichardStevens,[美]StephenA.Rago著;戚正伟,张亚英,尤晋元译,人民邮电出版社,2014
二.课程简介
“操作系统”是软件工程专业的一本重要的专业基础必修课。这门课主要讲述影响设计计算机系统中最基本的系统软件——操作系统的各种因素及实际操作。通过课程的学习,学生不仅了解操作系统的使用(外部特性),更了解它的设计和实现(内部特性),掌握其工作原理。而且从课程中,可以学到许多软件设计的思想和技术方法,用于计算机的其他领域,如并发程序设计、算法设计与实现、虚拟环境的创建、安全及网络管理等。
三.课程目标
1.了解操作系统的发展历史和主要分类,能够选择适当的操作系统解决实际需求。(支撑毕业要求8)
2.能够应用存储管理理论对存储管理相关问题进行分析,并获得有效的解决方案。(支撑毕业要求3)
3.能够根据进程与线程的理论,提出多道系统的设计方案,设计满足解决互斥与同步等并发访问问题的程序。(支撑毕业要求3)
4.能够针对内存管理问题,理解不同的内存管理方案的区别,甄别实际内存管理中出现的问题并提出解决方案。(支撑毕业要求3)
5.能够根据系统设计需求,进行团队合作,撰写设计方案,能够清晰的进行陈述发言表达自己的设计思想,与他人进行沟通和交流。(支撑毕业要求9、10)
毕业要求 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
课程目标1 | √ | |||||||||||
课程目标2 | √ | |||||||||||
课程目标3 | √ | |||||||||||
课程目标4 | √ | |||||||||||
课程目标5 | √ | √ |
四.基本要求
课程授课采用计算机多媒体形式,辅以电子教案与电子书。教学强调理论学习与实践相结合,主张学生动手验证理论知识。使用计算机网络辅助教学,包括在线答疑、布置和批改作业及在线测试等。
五.教学内容
1、授课与自学
1操作系统概述
1.1操作系统的概念、特征、功能和提供的服务
1.2操作系统的发展与分类
本章重点:操作系统的历史和分类
难点:各种软件授权方式
教学模式:课堂授课、课后复习,指导学生查阅相关文献。
知识点:UNIX操作系统的历史,GPL等软件授权方式,操作系统分类。
能力要求:能够理解操作系统的分类;能够在实际工作学习中选择合适的操作系统;能够理解软件授权、如GPL、MIT、Apache等,评价软件对社会、健康、安全、法律以及文化的影响,理解应承担的责任。
2存储管理
2.1文件系统概念:文件结构,目录结构,文件共享与保护
2.2逻辑卷管理LVM:卷组、物理卷、逻辑卷等管理
2.3文件系统管理:层次结构,典型文件系统(UNIX文件系统)
2.4磁盘管理,磁盘臂调度算法,RAID,虚拟存储SAN
2.4备份与恢复
本章重点:inode结构、文件权限、LVM
难点:存储设备管理
教学模式:课堂授课、课后复习,指导学生查阅相关文献,在实际系统上加强相关命令的使用经验,根据系统调用接口编写文件系统应用程序,阅读相关源代码以理解实现方法,完成基本原理的习题。
知识点:文件、文件系统、存储设备、备份恢复
能力要求:能够理解文件、文件系统和存储设备的工作方式;能够将文件管理的知识用于解决复杂工程问题。
3进程管理
3.1进程:进程概念,创建和终止进程,进程状态与转换,进程控制,进程的层次结构,进程的实现
3.2线程:线程模型,线程的实现
3.3处理机调度:调度的概念,不同类型操作系统下的调度策略,调度的典型算法(先来先服务,短作业优先,时间片轮转,优先级调度,高响应比优先,多级反馈队列等调度算法)
3.4进程间通信(IPC):竞争条件、临界区,互斥与同步,忙等待与睡眠与唤醒,信号量,PV原语,管程,经典IPC问题(生产者--消费者问题,哲学家进餐问题,读者--写者问题等)
3.5死锁:死锁概念,死锁的条件,死锁的检测、恢复、避免和预防
3.6实际操作系统中的进程、线程、调度、进程间通信的具体实现方案
本章重点:进程与线程的概念、互斥与同步、死锁
难点:信号量与PV原语
教学模式:课堂授课、课后复习,指导学生查阅相关文献,根据系统调用接口编写操作进程和线程应用程序,阅读相关源代码以理解实现方法,完成基本原理的习题。
知识点:进程、线程、调度、竞争条件、死锁
能力要求:能够理解进程与线程;能够解决竞争条件问题;能够将进程管理的知识用于解决复杂工程问题。
4内存管理
4.1内存管理概念:程序装入与链接,逻辑地址与物理地址,地址重定位,内存保护,交换与覆盖,单一连续分配,分区式管理
4.2虚拟内存:请求式分页管理,分级页表和倒排页表
4.3页面置换算法:最佳置换算法(OPT),先进先出置换算法(FIFO),最近最少使用置换算法(LRU),时钟置换算法(CLOCK)等,抖动,工作集
4.4分段管理和段页式管理
4.5实际操作系统中内存管理的具体实现方案
本章重点:内存分层结构、分页式内存管理方式
难点:IA32二级内存管理方式
教学模式:课堂授课、课后复习,指导学生查阅相关文献,阅读相关源代码以理解实现方法,完成基本原理的习题。
知识点:内存分层金字塔模型,分区式、分页式、分段式和段页式内存管理,、页面置换算法。
能力要求:能够理解虚拟内存的管理方法;能够将虚拟内存管理的知识用于解决复杂工程问题。
5输入输出设备
5.1I/O硬件与软件原理:接口,高速缓存与缓冲区,分配与回收,假脱机(SPOOLing),出错处理
5.2字符设备管理
5.3块设备管理
5.4Linux设备驱动模块
本章重点:中断与DMA
难点:设备驱动模块的加载机制
教学模式:课堂授课、课后复习,指导学生查阅相关文献,阅读相关源代码以理解实现方法,完成基本原理的习题。
知识点:缓冲区,中断与DMA、设备驱动
能力要求:能够理解设备的管理方法;能够将设备管理的知识用于解决复杂工程问题。
6、操作系统安全
6.1安全概念:认证、加密、网络攻击与防御
6.2用户管理:用户、权限
6.3用户级的安全管理:文件S权限
6.4日志管理
本章重点:用户管理与权限
难点:文件S权限
教学模式:课堂授课、课后复习,指导学生查阅相关文献,在实际系统上加强相关命令的使用经验。
知识点:用户管理、文件一般与特殊权限。
能力要求:能够理解操作系统安全管理的一般方法;能够将安全管理的知识用于解决复杂工程问题。
2、实验教学
实验教学内容:
实验一、虚拟机与操作系统结合搭建虚拟化平台
实验二、基于虚拟化技术的高可靠性平台
教学模式:应用服务器、管理客户端计算机、存储阵列搭建实验平台。
知识点:虚拟主机、虚拟客户机、虚拟存储、云平台。
能力:能够将虚拟化理论应用于实际服务器环境,解决工业界需求,撰写实验报告。
3、大作业
作业一、理解系统调用
内容:理解教学系统xv6中的系统调用的实现方法。具体内容包括:
1、跟踪系统调用的使用并显示
2、参考已有的系统调用的设计方法,增加一个系统调用date(),显示系统当前时间和日期,并提供用户程序使用date()系统调用。
3、参考date()的实现方法,实现一个可以跟踪进程运行时间并在一定条件下给出提示信息的系统调用alarm()。最后给出用户程序使用alarm()的运行实例。
教学模式:课堂上先介绍系统调用的使用方法和设计方法,学生独立阅读xv6源代码,理解现有的系统调用的实现方法,然后撰写设计方案,编程调试,最后提交作业报告和源代码。
知识点:系统调用、用户态与内核态。
能力:能够理解内核的工作方法,能够修改内核代码并调试运行,能够实现对系统调用的创建和修改,能够通过编写作业报告完整描述实验过程。
作业二、增强文件系统功能
内容:理解教学系统xv6中的文件和文件系统的实现方法。具体内容包括:
1、修改文件inode,增加一个二级间接指针,支持更大的文件大小。
2、增加文件系统的日志机制,支持对意外崩溃事件的灾难恢复。
教学模式:课堂上先介绍xv6系统的inode结构,学生独立阅读xv6源代码,理解现有的文件系统的实现方法,然后撰写设计方案,编程调试,最后提交作业报告和源代码。
知识点:文件inode、文件系统日志。
能力:能够理解文件系统管理文件的方法,能够修改文件系统代码并调试运行,能够增加文件系统的日志机制,能够通过编写作业报告完整描述实验过程。
作业三、进程间通信与线程间竞争条件
内容:理解进程间通信、进程及线程中竞争条件的解决方法。具体内容包括:
1、使用SysVIPC实现进程间通信,使用信号量、共享内存和消息队列等方法,提供一个经典IPC问题的程序运行。
2、使用pthread库,实现POSIX多线程运行,并使用pthread_mutex和pthread_cond解决线程间互斥与同步问题。
教学模式:课堂上先介绍SysVIPC和pthread库的使用方法,学生独立学习这两个UNIX编程库的使用后,针对所提出的经典IPC问题和其他竞争条件问题,编写程序解决问题并加以调试,最后提交作业报告和源代码。
知识点:SysVIPC,pthread库。
能力:能够理解竞争条件带来的问题,能够使用SysVIPC解决进程间通信,能够使用pthread库实现多线程并解决其中的竞争问题,能够通过编写作业报告完整描述实验过程。
作业四、理解虚拟内存管理
内容:理解教学系统xv6中的虚拟内存的管理方法。具体内容包括:
1、修改立即分配的虚拟内存分配策略,实现延迟分配策略。
教学模式:课堂上先介绍xv6中的虚拟内存的管理方法,学生独立阅读xv6源代码,理解现有的虚拟内存的管理方法,然后撰写设计方案,编程调试,最后提交作业报告和源代码。
知识点:虚拟内存管理、缺页中断及处理方法。
能力:能够理解虚拟内存的管理方法,能够修改内核代码,增加缺页中断,并在缺页中断中实现虚拟内存的延迟的分配,能够调试运行程序,能够通过编写作业报告完整描述实验过程。
4、课程设计
设计内容:基于教学系统xv6,提出对现有系统的改造方案。
教学模式:分组开展课程设计;独立选题,独立设计,撰写设计方案,绘出系统设计方案图,分组汇报及答辩。
知识点:综合运用知识进行系统设计。
能力:能够应用操作系统基本原理及专业知识,研究、分析工程问题;
能够根据工程实际要求,提出程序设计方法;在设计环节中能够体现创新意识;
能够使用计算机检索等现代化工具,进行方案设计;
能够基于软件授权、如GPL、MIT、Apache等进行合理分析,评价自己提出的操作系统改进方案对社会、健康、安全、法律以及文化的影响,理解应承担的责任;
能够根据系统设计与研究,撰写设计方案、能够清晰的进行陈述发言表达自己的设计思想。
具有团队合作意识,能够在团队中承担个体、团队成员的角色,可以与他人进行沟通和交流。
六.学时分配
教学内容 | 授课 | 实验 | 自学 | 课程设计 | 大作业 | 其他 |
---|---|---|---|---|---|---|
操作系统概述 | 4 | 2 | ||||
文件系统 | 8 | 2 | ||||
进程管理 | 20 | 2 | ||||
内存管理 | 8 | 2 | ||||
输入输出设备 | 2 | |||||
操作系统安全 | 2 | |||||
虚拟化平台的搭建 | 4 | |||||
虚拟化平台的高可靠性实验 | 4 | |||||
综合 | 2 | 2 | ||||
总计: | 46 | 8 | 2 | 8 |
七.考核与评价方式及标准
1、考核与评价方式及成绩评定
平时成绩占40%:包括:随堂作业、编程大作业、实验和课程设计。
结课考试占60%:闭卷考试
课程目标达成考核与评价方式及成绩评定
考核与评价方式及成绩比例(%) | 成绩比例(%) | ||||||
---|---|---|---|---|---|---|---|
平时表现 | 课程实验 | 课程设计 | 大作业 | 课程考试 | |||
课程目标1 | 支撑毕业要求8 | 5 | 5 | ||||
课程目标2 | 支撑毕业要求3 | 3 | 10 | 7 | 20 | ||
课程目标3 | 支撑毕业要求3 | 5 | 10 | 15 | 15 | 45 | |
课程目标4 | 支撑毕业要求3 | 10 | 10 | 20 | |||
课程目标5 | 支撑毕业要求9 | 5 | 5 | ||||
支撑毕业要求10 | 5 | 5 | |||||
合计 | 18 | 15 | 35 | 32 | 100 |
注:该表格中比例为课程整体成绩比例。
2、考核与评价标准
平时成绩考核与评价标准:
基本要求 | 评价标准 | 成绩比例(%) | ||||
---|---|---|---|---|---|---|
优秀 | 良好 | 合格 | 不合格 | |||
作业 | 随堂作业为结合每章教学课程的知识点,安排的选择题、计算题和简答题等。要求学生结合教学知识点,完成题目要求,书面给出答案(支撑毕业要求4) | 按时交作业;基本概念正确、论述逻辑清楚;层次分明,语言规范;计算数据准确。 | 按时交作业;基本概念正确、论述基本清楚;语言较规范;计算数据较准确。 | 按时交作业;基本概念基本正确、论述基本清楚;语言较规范;计算数据基本准确。 | 不能按时交作业;有抄袭现象;或者基本概念不清楚、论述不清楚;计算数据错误较多。 | 20 |
编程大作业,要求学生独立完成问题分析和程序编写,解决给定的问题。能够编写大作业报告,清楚详细的阐述解决问题的方法和步骤。(支撑毕业要求3) | 按时交作业;能够正确应用相关知识分析解决实际工程问题,程序运行正确;论述逻辑清楚;层次分明,语言规范。 | 按时交作业;能够应用相关知识分析解决实际工程问题,程序运行基本正确;论述清楚,语言较规范。 | 按时交作业;基本能够应用相关知识分析解决实际工程问题,程序可以运行,论述基本清楚,语言较规范。 | 不能按时交作业;有抄袭现象;程序无法运行;或者概念不清楚、论述不清楚。 | 50 | |
实验 | 能够根据实验指导书规定的的实验目的与要求,进行虚拟化平台的搭建,验证平台的高可靠性。(支撑毕业要求6) | 按照要求完成预习;按照实验安全操作规则进行实验;实验步骤与结果正确;实验设备完好。 | 能够预习,按照实验安全操作规则进行实验;实验步骤与结果正确;实验设备完好。 | 按照实验安全操作规则进行实验;实验步骤与结果基本正确;实验设备完好。 | 没有按照实验安全操作规则进行实验;或者实验步骤与结果不正确。 | 10 |
课程设计 | 应用专业基础及专业知识,对xv6操作系统存在的问题进行分析,提出正确的解决方案。能在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。方案设计中,能够正确使用计算机文献检索等现代化工具。能在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。(支撑毕业要求1、7) | 问题分析正确,能够正确选择操作系统设计方法,提出的解决方案正确、合理。 | 问题分析正确,能够正确选择操作系统设计方法,提出的解决方案基本正确、合理。 | 问题分析基本正确,操作系统设计方法选择基本正确,提出的解决方案基本正确、合理。 | 问题分析不正确;或者操作系统设计方法选择不正确;或者提出的解决方案不合理。 | 10 |
具有团队合作意识,相互合作完成设计任务。(支撑毕业要求9) | 能够很好地完成团队分配的任务,并能积极开展合作交流,系统设计整体质量高。 | 能够较好地完成团队分配的任务,并能开展合作交流,系统设计整体质量良好。 | 能够完成团队分配的任务,并能开展合作交流,系统设计整体质量一般。 | 不能完成团队分配的任务,不能开展合作交流,系统设计整体质量差。 | 5 | |
完成设计方案的撰写,能够清晰的进行陈述发言表达自己的设计思想。(支撑毕业要求10) | 设计方案撰写层次清晰,论述正确;方案陈述清晰,幻灯片制作质量高,回答问题正确。 | 设计方案撰写论述正确;方案陈述清楚,幻灯片制作质量较高,回答问题正确。 | 设计方案撰写论述基本正确;方案陈述基本清楚,幻灯片制作质量一般,回答问题基本正确。 | 设计方案撰写有原则性错误;或者方案陈述有原则性错误,回答问题有原则性错误。 | 5 |
注:该表格中比例为平时成绩比例。
课程考试考核与评价标准
基本要求 | 评价标准 | 比例 | ||||
---|---|---|---|---|---|---|
优秀 | 良好 | 合格 | 不合格 | |||
掌握操作系统基本知识(课程目标1) | 掌握操作系统基础知识、包括操作系统历史、分类,理解软件常见的授权方式。(对应毕业要求1) | 能够正确区分各种类型的操作系统,能够选择适当的软件授权方式。 | 能够正确区分各种类型的操作系统,能够选择适当的软件授权方式。 | 能够基本正确区分各种类型的操作系统,能够选择基本适当的软件授权方式。 | 无法正确区分各种类型的操作系统,或不能选择适当的软件授权方式。 | 5 |
应用存储管理的知识、解决相关实际问题(课程目标2) | 应用存储管理知识解决操作系统文件管理、文件系统管理、存储设备管理等方面问题。 | 能够熟练运用文件管理的命令和系统接口管理文件和文件系统,熟悉虚拟存储设备。 | 能够较熟练运用文件管理的命令和系统接口管理文件和文件系统,较熟悉虚拟存储设备。 | 能够了解文件管理的命令和系统接口管理文件和文件系统,了解虚拟存储设备。 | 无法运用文件管理的命令和系统接口管理文件和文件系统,或不熟悉虚拟存储设备。 | 20 |
应用进程管理的知识、解决相关实际问题(课程目标3) | 理解进程概念、线程概念、理解调度、进程间通信和死锁等概念。 | 非常熟悉进程与线程的概念和关系,熟悉各种调度方法和策略,可以熟练使用PV原语和信号量等机制处理竞争条件和死锁问题。 | 比较非常熟悉进程与线程的概念和关系,比较熟悉各种调度方法和策略,可以比较熟练使用PV原语和信号量等机制处理竞争条件和死锁问题。 | 一般了解进程与线程的概念和关系,了解各种调度方法和策略,可以使用PV原语和信号量等机制处理竞争条件和死锁问题。 | 不熟悉进程与线程的概念和关系,或不熟悉各种调度方法和策略,或者无法熟练使用PV原语和信号量等机制处理竞争条件和死锁问题。 | 45 |
应用内存管理的知识、解决相关实际问题(课程目标4) | 理解内存层次结构,理解分区式、分页式、分段式和段页式内存管理方法,掌握常用页面置换算法。 | 非常熟悉分区式内存管理机制,熟练使用分页式管理与页面转换算法解决虚拟内存分配问题,熟悉分段式和段页式内存管理的特点并与实际产品相结合。 | 较熟悉分区式内存管理机制,较熟练使用分页式管理与页面转换算法解决虚拟内存分配问题,较熟悉分段式和段页式内存管理的特点并与实际产品相结合。 | 了解分区式内存管理机制,基本可以使用分页式管理与页面转换算法解决虚拟内存分配问题,基本熟悉分段式和段页式内存管理的特点并与实际产品相结合。 | 不熟悉分区式内存管理机制,或不能熟练使用分页式管理与页面转换算法解决虚拟内存分配问题,或者不熟悉分段式和段页式内存管理的特点并与实际产品相结合。 | 20 |
应用设备管理的知识、解决相关实际问题(课程目标5) | 理解中断、DMA与缓冲区等概念,了解块设备与字符设备的区别。 | 能清楚解释中断、DMA与缓冲区等概念,熟悉块设备与字符设备的区别。 | 较清楚中断、DMA与缓冲区等概念,较了解块设备与字符设备的区别。 | 基本理解中断、DMA与缓冲区等概念,基本了解块设备与字符设备的区别。 | 不能理解中断、DMA与缓冲区等概念,或不了解块设备与字符设备的区别。 | 5 |
应用系统安全的知识、解决相关实际问题(课程目标2) | 理解用户和组的安全管理策略,理解文件的一般权限与特殊权限。 | 熟练应用用户和组的安全管理策略解决安全认证问题,非常熟悉文件的一般权限与特殊权限并应用于安全问题。 | 较熟练应用用户和组的安全管理策略解决安全认证问题,较熟悉文件的一般权限与特殊权限并应用于安全问题。 | 能够应用用户和组的安全管理策略解决一般安全认证问题,了解文件的一般权限与特殊权限并应用于安全问题。 | 不能应用用户和组的安全管理策略解决安全认证问题,或者不了解文件的一般权限与特殊权限并应用于安全问题。 | 5 |
注:该表格中比例为期末考试试卷成绩比例。