《操作系统原理》教学大纲
(2013版)
课程编码:0611101205
课程名称:操作系统原理
学时/学分:82/5
先修课程:《计算机导论》、《程序设计基础》、《算法与数据结构》
适用专业:计算机科学与技术
开课教研室:嵌入式系统教研室
执笔:
审定:
一、课程性质与任务
1.课程性质:操作系统原理是计算机科学与技术专业的专业必修课程。
2.课程任务:理解、掌握操作系统基本概念、基本原理和方法;理解常见操作系统的结构原理并能熟练使用;进一步熟悉、学习 Linux操作系统,提高自己的应用技能;学习 Linux C编程,为下一步深入学习Linux 内核做准备;阅读分析 Linux 0.11 内核 源代码,提升自己对操作系统原理的理解水平,对操作系统有一个总体的把握和认知。
二、课程教学基本要求
教学环境要求:多媒体教室。
实验环境要求:安装有Linux系统的计算机。
本课程共计82学时。
成绩考核形式:末考成绩(闭卷考试)(70%)+平时成绩(平时测验、作业、实验、课堂提问、课堂讨论等)(30%)。成绩评定采用百分制,60分为及格。
三、课程教学内容
第一章 操作系统概述
1.教学基本要求
了解计算机操作系统的基本概念,激发学生对本课程的学习兴趣。
2.要求学生掌握的基本概念、理论、技能
理解操作系统的定义及操作系统在计算机系统中的作用以及地位;了解操作系统形成和发展的过程;掌握基本的操作系统类型的特点;掌握从资源管理角度来讲操作系统的四大功能。
3.教学重点和难点
教学重点是操作系统的定义,3个基本操作系统的特点和操作系统的四大功能。教学难点是实时操作系统的特点和分类。
4.教学内容
(1)操作系统概念
主要知识点:计算机系统结构;操作系统定义;操作系统的目标。
(2)操作系统的形成及发展
主要知识点:操作系统的形成 ;操作系统的发展;操作系统的分类;基本操作系统的类型的特点;操作系统的发展动力。
(3)研究操作系统的观点
主要知识点:软件的观点;资源管理的观点;进程的观点;用户与计算机硬件系统之间接口的观点。
(4)操作系统的功能与特征
主要知识点:操作系统的功能;操作系统的特征。
(5)操作系统的结构
主要知识点:模块化结构;层次化结构;微内核;客户/服务器模式。
(6)操作系统的硬件环境
主要知识点:中央处理机;存储系统;缓冲技术;中断技术;时钟。
第二章 操作系统的用户接口和作业管理
1.教学基本要求
了解计算机操作系统提供给用户的接口,理解常用的作业调度策略。
2.要求学生掌握的基本概念、理论、技能
了解操作系统提供给用户的命令接口、程序接口以及图形接口;理解系统调用的概念以及处理过程;理解作业的基本概念;掌握常用的作业调度策略。
3.教学重点和难点
教学重点是操作系统提供给用户的命令接口和程序接口,系统调用的概念及处理过程,作业调度策略。教学难点是系统调用的概念及处理过程,响应比高者优先作业调度算法的理解和运用。
4.教学内容
(1)用户接口
主要知识点:用户接口的概念;用户接口的分类。
(2)系统调用
主要知识点:系统调用的概念;系统调用的处理过程。
(3)作业管理
主要知识点:作业的基本概念;作业控制块;作业的状态;作业的调度策略。
第三章 进程与进程管理
1.教学基本要求
了解进程的基本概念,进程调度的概念、算法,线程的基本概念;Linux的进程管理。
2.要求学生掌握的基本概念、理论、技能
理解前驱图概念并能根据语句或者程序间关系画出相应的前驱图;理解程序顺序执行、并发执行的特点以及多道程序设计技术;了解进程的相关概念、进程的基本状态及转换;掌握常用的进程调度算法;理解线程概念;了解Linux的进程管理。
3.教学重点和难点
教学重点是进程定义,进程3个基本状态及转换,进程调度算法,线程基本概念,Linux的进程管理。教学难点是掌握常用的进程调度算法。
4.教学内容
(1)进程的引入
主要知识点:前驱图;程序顺序执行;程序并发执行;多道程序设计。
(2)进程
主要知识点:进程的概念;进程的基本状态极其转换;进程控制块;进程控制。
(3)进程调度
主要知识点:调度的基本概念;进程调度算法;进程调度的时机和过程。
(4)线程的基本概念
主要知识点:线程的引入;线程的定义和属性;线程与进程的比较。
(5)Linux进程管理
主要知识点:进程结构与进程控制;核心进程调度。
第四章 进程同步与通信
1.教学基本要求
了解并发进程间存在的各种制约关系;能用信号量机制以及管程机制解决进程间的同步和互斥问题;了解进程通信的概念;掌握死锁处理的方法。
2.要求学生掌握的基本概念、理论、技能
理解并发进程间的关系;理解并掌握经典的进程同步问题;掌握用信号量机制和管程机制解决进程间的同步问题;了解进程通信的概念和进程通信的分类;理解死锁的定义及产生死锁的4个必要条件;掌握死锁的预防、避免、检测以及解除方法。
3.教学重点和难点
教学重点是用信号量机制解决进程间的同步问题,死锁的定义,死锁产生的4个必要条件以及死锁的预防、避免、检测以及解除方法。教学难点是用信号量机制解决进程间的同步问题,用银行家算法避免死锁。
4.教学内容
(1)进程间的相互作用
主要知识点:并发进程的关系;利用软件方法解决进程互斥问题;利用硬件方法解决进程互斥问题;信号量机制;经典进程同步问题;管程机制。
(2)进程通信
主要知识点:进程通信的概念;进程通信的类型;直接通信和间接通信;消息缓冲队列通信机制。
(3)死锁
主要知识点:死锁定义;产生死锁的原因和必要条件;预防死锁;避免死锁;检测死锁;解除死锁。
第五章 存储器管理
1.教学基本要求
了解计算机系统的存储器层次结构;了解存储管理的功能;掌握连续存储管理方式、分页存储管理方式以及分段存储管理方式;了解虚拟存储器的工作原理、内存分配策略及内存分配算法;了解Linux的内存管理。
2.要求学生掌握的基本概念、理论、技能
理解存储器层次结构;了解存储管理的功能;掌握连续存储管理方式、分页存储管理方式、分段存管理方式以及段页式存储管理方式;理解覆盖和交换技术;理解虚拟存储器的工作原理;掌握虚拟存储器的内存管理方法、内存分配策略以及内存分配算法;掌握Linux的内存管理。
3.教学重点和难点
教学重点是存储管理的功能,连续及非连续的内存管理方法,虚拟存储器工作原理,Linux的内存管理。教学难点是分页存储管理方式的地址转换,分页虚拟存储管理页面置换算法。
4.教学内容
(1)概述
主要知识点:存储体系;存储管理的目的;存储管理的任务;程序的链接和装入;存储管理方式的分类。
(2)连续存储管理方式
主要知识点:单一连续分配;分区分配。
(3)覆盖技术与交换技术
主要知识点:覆盖技术;交换技术。
(4)分页存储管理方式
主要知识点:工作原理;动态地址转换;快表;两级和多级页表;分配与回收。
(5)分段存储管理方式
主要知识点:工作原理;动态地址变换;存储保护;分页和分段的主要区别。
(6)段页式存储管理方式
主要知识点:工作原理;地址变换。
(7)虚拟存储器
主要知识点:概述;分页虚拟存储管理;分段虚拟存储管理。
(8)Linux的内存管理
主要知识点:Linux内存管理的数据结构;页面的分配与回收;页面置换算法。
第六章 文件管理
1.教学基本要求
了解文件和文件系统;了解文件的结构及存取方法;了解文件系统的作用;掌握目录管理、文件系统的实现;掌握磁盘调度算法。
2.要求学生掌握的基本概念、理论、技能
理解文件和文件系统的概念;掌握文件的逻辑结构、物理结构和存取方法;理解目录的概念和多级目录结构;掌握外存空间的管理方法;了解文件的主要操作方法和文件的共享方式;了解文件系统安全的相关措施;掌握磁盘的移臂调度算法;了解Linux的文件管理。
3.教学重点和难点
教学重点是文件和文件系统的定义,文件的物理结构,文件共享,文件系统安全,磁盘的移臂调度算法,Linux文件管理。教学难点是成组链接法实现外存管理,磁盘的移臂调度算法。
4.教学内容
(1)概述
主要知识点:文件和文件系统;文件分类。
(2)文件的结构和存取方式
主要知识点:文件的存取方式;文件的逻辑结构;存储介质;文件的物理结构。
(3)文件目录
主要知识点:文件控制块;文件目录结构;目录的查找和目录的改进。
(4)文件系统的实现
主要知识点:打开文件表;外存空间管理。
(5)文件的使用
主要知识点:文件的操作;文件共享。
(6)文件系统的安全性和数据一致性
主要知识点:防止人为因素造成的文件不安全性;防止系统因素或自然因素造成的文件不安全性;文件系统的数据一致性。
(7)磁盘调度
主要知识点:磁盘I/O时间,磁盘的移臂调度;磁盘的优化分布。
(8)Linux文件系统基础
主要知识点:Linux文件系统结构;Linux文件类型;Linux文件系统的目录及操作;Linux文件的操作;Linux文件的共享。
第七章 设备管理
1.教学基本要求
了解设备管理的主要功能;深入认识I/O控制方式;了解设备分配过程和相关算法;掌握各种缓冲技术的特点;掌握虚拟设备的工作原理和工作过程。
2.要求学生掌握的基本概念、理论、技能
理解设备管理的基本概念;了解I/O硬件和I/O软件的的主要功能和特点;了解设备的分配过程;掌握设备分配的算法;理解实现虚拟设备的Spooling技术、Spooling的组成以及Spooling系统的优缺点。
3.教学重点和难点
教学重点是设备的分类,I/O控制方式,缓冲技术,各层I/O软件的主要功能和特点,设备分配,虚拟设备原理以及实现。教学难点是I/O控制方式、虚拟设备的实现。
4.教学内容
(1)概述
主要知识点:设备的分类;设备管理的目标和功能。
(2)I/O硬件特点
主要知识点:设备组成;设备接口;设备控制器;通道;I/O控制方式;缓冲技术。
(3)I/O软件的组成
主要知识点:I/O软件的目标;中断处理程序;设备驱动程序;独立于设备的软件;用户空间的I/O软件。
(4)设备分配
主要知识点:设备分配中的数据结构;设备独立性;设备分配。
(5)虚拟设备
主要知识点:Spooling技术;共享打印机;Spooling系统的优缺点。
四、学时分配
1. 讲授内容及学时分配
章序 |
内容 |
课时 |
备注 |
一 |
操作系统概述 |
8 |
习题,讨论1学时 |
二 |
操作系统的用户接口和作业管理 |
4 |
|
三 |
进程与进程管理 |
7 |
习题,讨论2学时 |
四 |
进程同步与通信 |
12 |
习题,讨论2学时 |
五 |
存储管理 |
14 |
习题,讨论2学时 |
六 |
文件系统 |
12 |
习题,讨论1学时 |
七 |
设备管理 |
7 |
习题,讨论1学时 |
合计 |
64 |
|
2. 实践内容及学时分配
序号 |
项目 名称 |
内容提要 |
学时 |
必/选开 |
1 |
“hello world”程序 |
1.shell程序的编写。 2.Shell程序的执行。 |
2 |
必开 |
2 |
Linux中fork系统调用,创建进程 |
熟悉linux中进程的创建及其使用 |
2 |
必开 |
3 |
用户态下模拟执行命令 |
进一步熟悉linux中创建进程的方法及其用途 |
2 |
必开 |
4 |
生产者—消费者问题 |
1.深入理解生产者—消费者问题 2.编写程序模拟经典进程同步问题 |
2 |
必开 |
5 |
读者—写者问题 |
1.深入理解读者—写者问题。 2.编程模拟实现读者—写者问题。 |
2 |
必开 |
6 |
哲学家进餐问题 |
1.深入理解哲学家进餐问题。 2.编程模拟实现读者—写者问题。 |
2 |
必开 |
7 |
进程间通信 |
掌握无名通道 |
2 |
必开 |
8 |
Linux源代码分析 |
分析 Linux 0.11 内核 源代码,提升自己对操作系统原理的理解水平 |
4 |
必开 |
合计 |
18 |
|
五、主用教材及参考书
(一)主用教材:
《操作系统》主编:谌卫军 出版社:清华大学出版社 出版时间:2012年5月。
(二)参考书:
1.《LINUX操作系统原理与应用 (第2版)》 主编:陈莉君 出版社:清华大学出版社 出版时间:2011年。
2.《计算机操作系统教程(第2版)》主编:张尧学 出版社:清华大学出版社 出版时间:2006年。
3.《计算机操作系统(第三版)》主编:汤小丹 出版社:西安电子科技大学出版社 出版时间:2007年。