课程概况
1946年第一台计算机面世之后,科学家与工程师们一直致力于让计算机更好地为人类工作,一代又一代操作系统因此应运而生。操作系统是计算机系统的灵魂,它管理计算机系统的资源,提供友善的人机互动,对于每一位计算机用户来说,认知和理解操作系统非常重要。
南京大学是中国最早从事,操作系统研发与教学的单位,1980年在中国首先出版了操作系统教程教材,至2014年该教材已更新至第五版。
本课程的教学组织为六个部分:计算机操作系统概述、处理器管理、存储管理、设备管理、文件管理、并发程序设计。学习者能够认知操作系统的基本概念与实现原理,并深入理解操作系统的设计方法与实现技术。
如果您是计算机科学、软件工程、电子、通信、控制、信息系统、电子商务、计算与信息科学等信息技术相关专业的学生,可以系统地学习本课程基本部分的内容,如果您想致力于操作系统的研发工作,可以进一步学习高级部分的内容;此外 如果您是计算机爱好者,
可以根据自己的需要,按需学习本课程相关部分的内容,建立对计算机操作系统整体或部分的认知。
本课程有三个特点:第一,强调计算机软硬件协同设计技术,讲授操作系统各个模块的实现方法、策略与算法;第二,从大型软件系统构造的角度看待操作系统的实现,训练学生以折中的方法和方案,综合解决宏观问题的能力;第三,采用工程师的立场,强调操作系统的构造特征,即概念大于理论、技术大于算法、整体先于局部,培养学生综合解决实际问题的能力。欢迎大家修读本课程!
课程大纲
周1
第一章 计算机操作系统概述
操作系统是计算机系统中最重要的系统软件。操作系统是一个大型复杂的并发系统,并发性、共享性和随机性是它的重要特征,并发机制支持多道程序设计,共享机制控制诸进程正确使用硬软件资源。其中,并发性和共享性又是两个最基本的特征,并发和共享虽能改善资源利用率和提高系统效率,但却引发了一系列问题,随机性使操作系统的实现更加复杂化,因而,设计操作系统时引进许多概念和设施来妥善解决这些问题。 多道程序设计技术是将多个作业放入主存并使它们同时处于执行状态,从宏观上看作业均开始运行但未运行结束,从微观上看多个作业轮流占有CPU交替执行,采用多道程序设计技术能改善CPU的利用率,提高主存和设备的使用效率和充分发挥系统的并行性。早期,操作系统沿着三条主线发展:多道批处理系统、分时交互系统和实时处理系统。多道批处理系统着眼于让CPU和外部设备同时保持忙碌,提高作业的吞吐率和系统的效率。其关键机制是:在响应一个作业的处理结束信号时,CPU将在主存中驻留的不同作业间切换;分时交互系统的设计目标是为用户提供方便的程序开发、调试环境和快速响应交互式用户的命令请求,但又要支持多用户同时工作,以降低系统的成本。其关键机制是:采用时间片轮转法,让CPU在多个交互式用户间多路复用;实时处理系统与分时系统相比常局限于一个或几个应用,例如,数据库的查询和修改应用或生产过程控制实时应用,但同样有响应时间的要求,甚至某些实时应用有更加严格的时间限制。其关键机制是:事件或队列驱动机制,当系统接受来自外部的事件后,快速分析这些事件,驱动实时任务在规定的响应时间完成相应处理和控制。上述各类操作系统都要妥善解决各种资源的管理和调度问题,使得操作系统功能变得愈加丰富和完整。 本章将讲述:计算机系统概览、计算机硬件系统、计算机软件系统、计算机操作技术的发展、计算机操作系统、资源管理的角度、程序控制的角度、操作系统控制计算机的角度、人机交互的角度、程序接口的角度、系统结构的角度。
周2
第二章 处理器管理
处理器管理是操作系统的重要组成部分,负责管理、调度和分派计算机系统的重要资源处理器,并控制程序执行,由于它是操作系统中最核心的部分,无论是应用程序,还是系统程序,最终都要在处理器上执行,以实现其功能,因此,它的优劣直接影响系统的性能。程序以进程形式来占用处理器和系统资源,处理器管理中最重要的是处理器调度,即进程调度,也就是控制、协调进程对处理器的竞争。 进程可被调度在一个处理器上交替执行,或在多个处理器上并行执行,不同类型的操作系统可能采用不同调度策略,交替和并行执行都是并发的类型。为了提高并发粒度和降低并发开销,现代操作系统又引进线程概念,此时进程仍然作为资源分配和管理单位,线程则成为处理器调度的基本单位。本章在简要介绍处理器的硬件运行环境后,首先着重介绍计算机系统的中断机制,然后详细论述进程和线程的基本概念及其实现,最后全面讨论各个层次的处理器调度方法。 本章将讲述:处理器与寄存器、指令与处理器模式、中断、中断源、中断系统、多中断的响应与处理、进程及其状态、进程的数据描述、进程的管理、进程切换与模式切换、多线程技术概述、KLT与ULT、多线程实现的混合策略、处理器调度的层次、处理器调度算法。
周3
第三章 存储管理
存储管理是操作系统的重要组成部分,负责管理计算机系统的重要资源-主存储器,由于任何程序及数据必须占用主存空间才能执行和处理,因此,它的优劣直接影响系统性能。主存对数据的存取比处理器处理数据的速度慢得多,硬件技术的发展还进一步拉大这种距离,通过高速缓存可部分缩小差距,但高效的主存管理仍然是操作系统设计中的重要课题。 主存空间一般分为两部分:一部分是系统区,存放操作系统内核程序和数据结构等;另一部分是用户区,存放应用程序和数据,存储管理对核心区和用户区都应提供支持和进行管理,当然也包括对辅存(磁盘)空间的管理。尽管现代计算机主存容量不断增大,但仍然不能保证有足够大空间支持大型应用和系统程序及数据的使用。因此,操作系统的任务之一是要尽可能方便用户使用和提高主存利用率,此外,有效的存储管理也是多道程序设计系统的关键支撑。具体地说,存储管理包含以下功能: ·分配和去配:进程可请求对主存区的独占使用,主存区的请求与释放、即主存空间分配和去配操作由存储管理完成; ·抽象和映射:主存被抽象使得进程认为分配给它的地址空间是一个大而连续地址组成的数组,或者把主存抽象成二维地址空间,以支持模型化程序设计;同时建立抽象机制支持进程使用逻辑地址来映射到物理主存单元,实现地址转换; ·隔离和共享:系统负责隔离分配给进程的主存区,互不干扰、免遭破坏,确保进程对自己存储单元的独占使用,以实现存储保护功能;系统也允许多个进程共享主存区,在这种情况下,越过隔离机制并授权进程允许共享访问,达到既能提高主存利用率又能共享主存某区内信息的目的; ·存储扩充:实际主存容量不应该限制应用程序的大小,物理主存和辅存被抽象为虚拟主存,允许用户的虚拟地址空间大于主存物理地址空间,存储管理能自动地在不同存储层次中移动信息。 本章将讲述:存储管理的主要模式、存储管理的功能、虚拟存储器的概念、存储管理的硬件支撑、单连续分区存储管理、可变分区存储管理、页式存储管理的基本原理、页式存储管理的地址转换、页式虚拟存储管理、页面调度、反置页表、段式存储管理、段式虚拟存储管理、段页式存储管理。
周4
第四章 设备管理
设备管理是操作系统中最庞杂和琐碎的部分,普遍使用I/O中断、缓冲区管理、通道、设备驱动调度等多种技术,这些措施较好地克服由于设备和CPU速度的不匹配所引起的问题,使主机和设备并行工作,提高设备使用效率。另一方面,操作系统将所有设备(如磁带机、打印机、显示器和终端等)都定义为文件,统一在文件系统之下,赋予文件属性,对设备的操作就类似于对文件的操作,其优点是:尽可能统一文件和设备的I/O处理;尽可能把设备文件和普通文件纳入同一保护机制下。为了方便用户或高层进程使用,设备管理还对各种设备进行抽象,配置驱动程序,提供统一界面,屏蔽设备的物理细节和操作过程。为此,设备管理应具有以下功能:1)设备中断处理;2)缓冲区管理;3)设备分配和去配;4)设备驱动调度;5)虚拟设备及其实现。 本章将讲述:设备管理概述、I/O控制方式、总线与I/O、I/O软件的实现层次、I/O软件的实现、I/O缓冲区、设备独立性、独占型外设的分配、磁盘的物理结构、磁盘的驱动调度、SPOOLing系统、批处理系统的作业管理。
周5
第五章 文件管理
文件系统是操作系统中负责存取和管理信息的模块,它用统一方法管理用户和系统信息的存储、检索、更新、共享和保护,并为用户提供一整套方便有效的文件使用和操作方法。文件这一术语不但反映用户概念中的逻辑结构,而且和存放它的辅存的存储结构紧密相关,所以,一个文件必须从逻辑文件和物理文件两个侧面来观察。对于用户来说,可按需要并遵循文件系统的规则定义文件信息的逻辑结构,由文件系统提供“按名存取”来实现对文件信息的存储和检索;对于系统来说,必须采用特定数据结构和有效算法,实现文件的逻辑结构到存储结构的映射,实现对文件存储空间和文件信息的管理,提供多种存取方法。例如,用户希望与具体的存储硬件无关,使用路径名、文件名、文件内位移就可进行数据的读、写、改、删操作;而作为实现这些功能的文件系统来说,它的工作与存储硬件紧密相关,是根据用户的文件操作请求,转化为对磁盘上的信息按照所在的物理位置进行寻址、读写和控制。所以,文件系统的功能就是要在逻辑文件与物理文件、逻辑地址与物理地址、逻辑结构与物理结构之间实现转换,并做到存取速度快、存储空间利用率高、数据可共享、安全可靠性好。文件系统的主要功能有:文件的按名存取,实现从逻辑文件到物理文件的转换;文件目录的建立和维护;文件的查找和定位;文件存储空间的分配和管理;提供文件存取方法和文件存储结构;实现文件共享、保护和保密;提供一组方便易用的文件操作和命令;提供与设备管理的统一接口。 本章将讲述:文件的概念、文件系统及其功能、文件的存储、文件的逻辑结构、文件的物理结构、文件目录结构、文件目录的管理、文件共享、文件保护和保密、存取方法、文件的使用、辅存空间管理、文件操作的执行过程。
周6
第六章 并发程序设计
在多道程序设计系统中,同一时刻可能有许多进程/线程,它们之间存在两种基本关系:竞争关系和协作关系。并发进程/线程可能需要竞争使用资源,互斥是解决进程/线程间竞争关系的手段,为了避免竞争条件,引入临界区概念以解决进程互斥问题;为完成同一任务,某些进程/线程需要分工协作,同步是解决进程/线程间协作关系的手段,进程同步的主要目的是使协作的并发进程之间能有效地共享资源和相互协同工作,从而,使进程的执行过程具有可再现性和执行结果的惟一性。进程低级通信机制主要有:原子操作、锁机制、信号量和PV操作及管程;进程高级通信机制,如消息传递等。 死锁是系统中一组并发进程/线程因等待其他进程占有的资源而永远不能向前推进的僵化状态,对操作系统十分有害。系统产生死锁有四个必要条件:互斥条件、占有并等待条件、不剥夺条件和循环等待条件,以及解决死锁问题的三种策略和方法:死锁的预防、死锁的避免、死锁的检测和解除。 本章将讲述:并发程序设计的概念、并发进程的制约关系、临界区、临界区管理实现的尝试、临界区管理实现的硬件方式、PV操作与进程互斥、PV操作与进程同步、生产者消费者问题探究、管程概述、霍尔管程、霍尔管程的例、进程通信、高级进程通信机制、死锁的产生、死锁的防止、死锁的避免、死锁的检测。