《操作系统》课程教学大纲
一、课程基本信息
课程名称:操作系统
先修课程:《计算机导论》(或《计算机应用基础》)、《C语言程序设计》、《数据结构》、《计算机组成原理》
适用专业:计算机科学与技术、软件工程、网络工程等计算机及相关专业。
课程类别:专业教育必修课程/基础课程
课程总学时:56-72 (其中理论40-56学时,实验16学时)
二、课程目标
通过本课程的学习,使学生具备下列能力:
1.能够准确理解及掌握操作系统的基本概念、基本功能和基本原理,理解操作系统的整体运行过程。
2.能够理解及掌握操作系统的各组成部分,包括进程管理、调度、内存管理、文件管理、设备管理的功能及策略、算法、机制及相互关系。
3.能够运用操作系统原理、方法与技术分析问题和解决问题,并能利用C语言描述相关算法。
4.在理解及掌握操作系统原理及算法的基础上,在进行硬件配置、软件设计及编程过程中,能够在资源和效率方面综合考虑,完善提高设计方案,提高利用操作系统知识解决实际问题的能力。
三、教学内容、要求及重难点
第一章操作系统引论(3学时)
教学要求:
1.掌握操作系统的概念及功能,掌握操作系统的分类;
2.掌握操作系统在计算机系统中的地位和作用;理解操作系统的大致运行过程;
3.理解操作系统的特征;了解各种类型操作系统的特点及服务适应情况;
4.了解操作系统的结构特征及发展概况,发展趋势。
教学重点:
操作系统的概念、作用;操作系统的分类;操作系统的特征;操作系统的功能;操作系统的结构设计。
教学难点:
操作系统的特征;操作系统的功能。
[实验名称]
Linux系统管理及命令的使用
[实验类型]
验证型
[实验要求]
1.熟练Linux系统常用命令的使用;
2.掌握Vi编辑器的使用方法;
3.练习Linux shell的作用和主要分类,能编写简单的shell程序
[实验学时]
2学时
第二章进程管理(10学时)
教学要求:
1.掌握进程的概念与特征;
2.掌握进程的结构及进程控制的方法;
3.掌握进程的同步与互斥,以及实现进程同步问题的硬件方法和软件方法;
4.能用信号量机制解决进程的同步问题;
5.掌握线程的基本概念;
6.基本掌握利用管程解决同步问题的方法。
教学重点:
进程的基本概念;进程控制;进程的同步与互斥;进程同步的应用。
教学难点:
进程的概念;进程的并发性;进程同步。
[实验名称]
实验1 进程控制编程
[实验类型]
验证型
[实验要求]
1.利用fork()创建几个进程,并分析这几个进程之间的关系;
2.熟悉并使用下列系统调用:fork()、exit()、wait()、lockf();对进程进行控制。
3.进一步理解进程的并发性。
[实验学时]
2学时
[实验名称]
实验2 进程的消息通信和共享存储区通信
[实验类型]
验证型
[实验要求]
1.实现进程的消息通信:使用系统调用msgget(),msgsnd( ),msgrcv( ) 及 msgctl( ),编制对长度为1K的消息,并进行发送和接收;
2.分析消息的传递过程。
3.实现进程的共享存储区通信:使用系统调用shmget( )、shmat( )、sgmdt( )、shmtctl( ),编制一个程序,对一个长度为1K的消息进行发送和接收。
4.程序中对共享存储区进行创建、附接和断开的操作。
[实验学时]
2学时
[实验名称]
实验3 进程通信的管道通信和软中断通信
[实验类型]
验证性
[实验要求]
1.实现进程的管道通信:使用系统调用pipe()建立一个管道文件,用来实现两个进程之间的通信;
2.分析管道通信的实现过程。
3.实现进程之间的软中断通信:使用系统调用fork()创建两个子进程,再用系统调用signal()、kill()实现进程之间的通信。
4.进一步理解体会以上各进程通信的特点及实现。
[实验学时]
2学时
第三章处理机调度与死锁(7学时)
教学要求:
1.掌握三级调度的概念及各级调度的分类;
2.掌握作业调度及进程调度的评价准则;
3.掌握几种典型的调度算法并能灵活应用;
4.掌握死锁的基本概念、产生的原因和必要条件;
5.掌握解决问题的4种方法,以及死锁预防的方法;
6.掌握死锁避免的概念、方法,掌握银行家算法的思想、数据结构和编程方法,并能灵活运用;
7.掌握死锁的检测和解除的方法。
教学重点:
调度的类型和模型;调度算法;实时系统中的调度;多处理机调度;死锁的基本概念、原因和必要条件;死锁的预防和避免;死锁的检测和解除。
教学难点:
三级调度的概念;调度算法;死锁的避免。
[实验名称]
银行家算法
[实验类型]
综合型
[实验要求]
1.正确设置银行家算法中的数据结构,并根据实际情况初始化,理解各结构之间关系及变化过程;
2.根据银行家算法的思想,设计解决实际问题的正确算法;
3.使用gcc写出程序,进行调试和测试。
4.分析程序的运行结果。
[实验学时]
2学时
第四章存储器管理(8学时)
教学要求:
1.理解操作系统内存管理的任务需求,掌握计算机系统的各种存储介质及其特点,以及在功能增强需求时操作系统采取的策略和思想;
2.掌握内存分配的基本方法,包括分区、分页、分段及段页式存储管理方法的思想及优缺点;
3.掌握各种基本内存管理方法的数据结构、重定位方法;
4.掌握虚拟存储器的概念及原理,以及实现虚拟存储器的技术;
5.掌握对换的概念及管理方法;
6.掌握请求分页技术及实现方法,掌握OPT、FIFO、LRU、CLOCK页面置换算法,并能灵活运用;
7.掌握请求分段存储管理方式;
8.掌握工作集、抖动的概念,理解Belady异常现象。
教学重点:
连续分配存储管理方式;基本分页存储管理方式;基本分段存储管理;对换技术;请求分页存储管理方式;页面置换算法;请求分段存储管理方式。
教学难点:
页式存储管理方式;虚拟存储器的概念;请求分页。
[实验名称]
页面置换算法模拟
[实验类型]
验证型
[实验要求]
1.模拟实现各种页面置换算法。具体步骤为:使用产生随机数函数得到一个随机的数列,做为将要载入的页面序列。
2.可以选择使用先进先出(FIFO)算法、最近最久未使用(LRU)置换算法和最佳(OPT)置换算法,给出所需淘汰的页面号序列。列出缺页中断次数。
3.观察实验结果,对以上各置换算法进行分析对比,得出结论。
[实验学时]
2学时
第五章文件管理(6学时)
教学要求:
1.掌握文件及文件系统的概念、功能;
2.掌握文件的逻辑结构,以及在逻辑结构基础上文件的访问方式;
3.掌握文件的物理结构,以及各种结构的特点、文件访问的优缺点;
4.掌握目录文件的结构方法,以及操作系统实现按名访问的工作原理;
5.掌握文件存储空间的管理方法,以及各自的特点;
6.基本掌握文件共享和文件保护的理论及方法。
教学重点:
文件逻辑结构;外存分配方式;目录管理;文件存储空间的管理;文件共享与文件保护。
教学难点:文件的存取方式;文件的物理结构;文件目录。
[实验名称]
实验1文件管理命令
[实验类型]
验证型
[实验要求]
1.掌握文件相关命令在系统中的存在方式及bin子目录;
2.练习并掌握文件管理命令的使用;
3.练习并掌握目录管理命令的使用。
[实验学时]
2学时
[实验名称]
实验2 文件管理编程
[实验类型]
验证型
[实验要求]
1.使用文件系统调用open(),read(),write(),close(),对文件进行操作。编写实现两个文件合并的程序;在进程中执行一个可执行文件,可以是系统的,也可以是自定义的;
2.编写一个程序,利用fork调用创建一个子进程,并让子进程执行一个可执行文件。
3.理解及掌握操作系统文件管理中命令的建立及实现
[实验学时]
2学时
第六章设备管理(6学时)
教学要求:
1.掌握I/O系统的组成、I/O控制方式;
2.掌握缓冲区的引入目的,以及缓冲分类,掌握缓冲池的构成及使用过程;
3.了解设备分配方法及设备处理程序的功能特点;
4.掌握设备独立性的概念;
5.了解设备处理程序的处理过程;掌握中断处理程序的处理过程;
6.掌握虚拟设备技术及其实现的方法,掌握Spooling技术原理及其构成;
7.掌握磁盘调度算法;了解磁盘的管理方法;
8.理解操作系统对设备管理的各种方法对提高系统效率的意义。
教学重点:
I/O系统的组成;I/O控制方式、缓冲管理;设备分配;设备处理;磁盘存储器管理。
教学难点:
I/O控制方式;缓冲管理;磁盘调度算法。
[实验学时]
0学时
四、课程目标与考核内容
课程目标 | 考核内容 |
课程目标1:能够准确理解及掌握操作系统的基本概念、基本功能和基本原理,理解操作系统的整体运行过程。 | 1.操作系统的概念、功能、分类、结构,以及操作系统启动的过程。 2.在线学习成绩。 3.期末考试成绩。 |
课程目标2:能够理解及掌握操作系统的各组成部分,包括进程管理、调度、内存管理、文件管理、设备管理的功能及策略、算法、机制及相互关系。 | 1.进程管理、调度、内存管理、文件管理、设备管理。 2.在线学习成绩。 3.期末考试成绩。 |
课程目标3:能够运用操作系统原理、方法与技术分析问题和解决问题,并能利用C语言描述相关算法。 | 1.对于一个实际应用问题,利用操作系统知识、策略与算法,进行计算及版式法编程。 2.在线学习成绩。 3.期末考试成绩。 |
课程目标4:在理解及掌握操作系统原理及算法的基础上,在进行硬件配置、软件设计及编程过程中,能够在资源和效率方面综合考虑,完善提高设计方案,提高利用操作系统知识解决实际问题的能力。 | 1.综合利用本课程知识解决实际描述的问题,可以是定性描述或者定量计算、结构设计、性能评价等。 2.在线学习成绩。 3.期末考试成绩。 |
五、推荐教材
推荐教材
王红.《操作系统原理及应用(Linux)》.清华大学出版社,2018.3
本书采用任务驱动模式,阐述操作系统的目标、功能及实现策略。
全书针对操作系统五大功能展开分析,讲述了这些功能需求和实现的方法,介绍了当今操作系统发展中出现的一些新技术及操作系统发展趋势,具体内容分为8章。
第1章操作系统概述,讲述操作系统的概念、分类、功能及追求的目标、结构以及操作系统的发展方向;
第2章进程管理,讲述进程的概念、进程控制及进程同步的实现;
第3章处理机调度与死锁,讲述调度的概念、三级调度的过程以及算法,死锁的概念及死锁的解决方案;
第4章内存管理,讲述内存管理的概念、基本内存管理方法和虚拟内存管理方法;
第5章文件,讲述文件的概念、文件的逻辑结构、文件的物理结构、文件系统实现按名存取的方法,文件系统的共享与保护;
第6章设备管理,讲述设备的分类、设备管理的方法,以及在设备管理中如何提高进程的并发性,进而提高系统的效率;
第7章现代操作系统,讲述经典的UNIX系统、分布式系统、多处理机操作系统;
第8章操作系统的安全性,讲述操作系统安全性的概念以及实现方案。
(1)问题驱动,由浅入深。书中对重要的概念及原理,从提出问题入手,通过分析问题,由浅入深一步一步地对操作系统的原理进行探究,使读者自然融入操作系统的学习研究中,为读者更好地掌握操作系统原理提供便利和支持。
(2)突出重点,强化理解。操作系统课程的一个特点是内容宽泛而且深入,各管理功能涉及面广,而且对每个子功能的算法及实现都可以进行深入研究。本书结合作者多年教学经验,针对应用型本科的教学要求和学生特点,突出重点,深入理解;同时内容方面兼顾知识的系统化要求。
(3)注重理论,联系实际。操作系统课程的另一个特点是理论性强,对于一些概念和原理,学生在学习过程中不太容易理解。本书在重要的知识点部分都给出了典型例题,便于老师教学和同学对知识的掌握;本书以Linux系统作为操作系统实例对操作系统原理进行再认识和应用,算法采用C语言描述。
(4)风格简洁,使用方便。本书在风格简洁明快,除了重点突出,对于不是重点的内容不做长篇论述,以便读者在学习过程明确内容之间的逻辑关系,更好地掌握操作系统课程内容。
为便于教学,本书配备的教学资源有微课视频、教学大纲、教学日历、教案、教学课件PPT。
本书可以作为高等学校特别是应用型本科院校计算机类专业教材,也可以作为计算机和信息科学类相关专业技术人员的参考书。