汤子瀛《计算机操作系统》考研4版考研复习笔记.docx
《汤子瀛《计算机操作系统》考研4版考研复习笔记.docx》由会员分享,可在线阅读,更多相关《汤子瀛《计算机操作系统》考研4版考研复习笔记.docx(28页珍藏版)》请在冰点文库上搜索。
汤子瀛《计算机操作系统》考研4版考研复习笔记
汤子瀛《计算机操作系统》考研4版2021考研复习笔记
第1章 操作系统引论
1.1 复习笔记
一、操作系统的目标和作用
1操作系统的目标
(1)方便性。
(2)有效性。
(3)可扩充性。
(4)开放性。
2操作系统的作用
(1)OS作为用户与计算机硬件系统之间的接口。
(2)OS作为计算机系统资源的管理者。
(3)OS实现了对计算机资源的抽象。
二、操作系统的发展过程
1未配置操作系统的计算机系统
(1)人工操作方式。
(2)脱机输入/输出方式。
2单道批处理系统
3多道批处理系统
多道批处理系统特征:
多道、宏观上并行、微观上串行。
4分时系统
分时系统的特征:
多路性、独立性、及时性、交互性。
5实时系统
(1)实时系统的类型
①工业(武器)控制系统,如火炮的自动控制系统、飞机的自动驾驶系统,以及导弹的制导系统等。
②信息查询系统,如飞机或火车的订票系统等。
③多媒体系统。
④嵌入式系统。
(2)实时系统最主要的特征便是及时性与可靠性。
6微机操作系统的发展
微机操作系统按运行方式分为以下几类:
(1)单用户单任务操作系统。
(2)单用户多任务操作系统。
(3)多用户多任务操作系统。
三、操作系统的基本特性
1并发(Concurrence)
区分并行与并发
(1)并行性是指两个或多个事件在同一时刻发生;
(2)并发性是指两个或多个事件在同一时间间隔内发生。
2共享(Sharing)
目前实现资源共享的主要方式有以下两种:
(1)互斥共享方式。
(2)同时访问方式。
3虚拟(Virtual)
4异步(Asynchronism)
并发和共享是多用户(多任务)OS的两个最基本的特征。
四、操作系统的主要功能
1处理机管理功能
对处理机的管理可归结为对进程的管理。
处理机管理的主要功能有:
(1)进程控制。
(2)进程同步。
(3)进程通信。
(4)调度。
2存储器管理功能
(1)内存分配。
(2)内存保护。
(3)地址映射。
(4)内存扩充。
3设备管理功能
(1)缓冲管理。
(2)设备分配。
(3)设备处理。
4文件管理功能
(1)文件存储空间的管理。
(2)目录管理。
(3)文件的读/写管理和保护。
5操作系统与用户之间的接口
(1)用户接口
用户接口进一步分为联机用户接口、脱机用户接口和图形用户接口三种。
(2)程序接口
程序接口是由一组系统调用组成的,每一个系统调用都是一个能完成特定功能的子程序。
6系统调用
(1)系统调用又被称为广义指令。
(2)系统调用的相关处理都是在核心态下进行。
(3)系统调用按功能分类为:
设备管理、文件管理、进程控制、进程通信、内存管理。
五、操作系统的运行环境
1内核态与用户态
(1)操作系统的内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
(2)操作系统内核的核心功能包括时钟管理,中断处理,原语,进程管理,存储器管理,设备管理。
(3)用户态也叫做目态,核心态也叫做管态。
2操作系统的指令分为特权指令和非特权指令。
(1)特权指令是只能由操作系统才能执行的指令,如I/O指令、内存清零指令,只能在核心态下执行。
(2)非特权指令是用户可以去执行的指令,在用户态下执行。
3中断与异常
(1)中断分为内中断和外中断。
其中,内中断信号的来源是CPU内部,与当前执行指令的有关;外中断信号的来源是CPU外部,与当前执行指令的无关。
(2)内中断也称为异常或者陷入(trap)。
(3)外中断就是狭义上的中断。
(4)中断可以使CPU从用户态切换为核心态。
六、微内核OS结构
(1)基本概念
微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,微内核通常包含以下几部分:
①与硬件处理紧密相关的部分;
②一些较基本的功能;
③客户和服务器之间的通信。
(2)微内核的基本功能
①进程(线程)管理。
②低级存储器管理。
③中断和陷入处理。
(3)微内核操作系统的优点
①提高了系统的可扩展性。
②增强了系统的可靠性。
③可移植性强。
④提供了对分布式系统的支持。
⑤融入了面向对象技术。
(4)微内核操作系统存在的问题
微内核OS存在着潜在的缺点。
其中最主要的是,较之早期OS,微内核OS的运行效率有所降低。
第一部分 教材精讲
第一章 操作系统引论
本章内容
1.1 操作系统的目标和作用
1.2 操作系统的发展过程
1.3 操作系统的基本特性
1.4 操作系统的主要功能
1.5 操作系统的结构设计
1.1 操作系统的目标和作用
1.1.1 操作系统的目标
目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。
通常在计算机硬件上配置的OS,其目标有以下几点:
1.方便性
2.有效性
3.可扩充性
4.开放性
1.1.2 操作系统的作用
1.OS作为用户与计算机硬件系统之间的接口
OS作为用户与计算机硬件系统之间接口的含义是:
OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。
或者说,用户在OS帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。
应注意,OS是一个系统软件,因而这种接口是软件接口。
图1-1 OS作为接口的示意图
(1)命令方式。
这是指由OS提供了一组联机命令(语言),用户可通过键盘输入有关命令,来直接操纵计算机系统。
(2)系统调用方式。
OS提供了一组系统调用,用户可在自己的应用程序中通过相应的系统调用,来操纵计算机。
(3)图形、窗口方式。
用户通过屏幕上的窗口和图标来操纵计算机系统和运行自己的程序。
2.OS作为计算机系统资源的管理者
在一个计算机系统中,通常都含有各种各样的硬件和软件资源。
归纳起来可将资源分为四类:
处理器、存储器、I/O设备以及信息(数据和程序)。
相应地,OS的主要功能也正是针对这四类资源进行有效的管理,即:
处理机管理,用于分配和控制处理机;存储器管理,主要负责内存的分配与回收;I/O设备管理,负责I/O设备的分配与操纵;文件管理,负责文件的存取、共享和保护。
可见,OS确是计算机系统资源的管理者。
事实上,当今世界上广为流行的一个关于OS作用的观点,正是把OS作为计算机系统的资源管理者。
3.OS用作扩充机器
对于一台完全无软件的计算机系统(即裸机),即使其功能再强,也必定是难于使用的。
如果我们在裸机上覆盖上一层I/O设备管理软件,用户便可利用它所提供的I/O命令,来进行数据输入和打印输出。
此时用户所看到的机器,将是一台比裸机功能更强、使用更方便的机器。
通常把覆盖了软件的机器称为扩充机器或虚机器。
如果我们又在第一层软件上再覆盖上一层文件管理软件,则用户可利用该软件提供的文件存取命令,来进行文件的存取。
此时,用户所看到的是台功能更强的虚机器。
如果我们又在文件管理软件上再覆盖一层面向用户的窗口软件,则用户便可在窗口环境下方便地使用计算机,形成一台功能更强的虚机器。
1.1.3 推动操作系统发展的主要动力
1.不断提高计算机资源利用率
2.方便用户
3.器件的不断更新换代
4.计算机体系结构的不断发展
1.2 操作系统的发展过程
1.2.1 无操作系统的计算机系统
1.人工操作方式
从第一台计算机诞生(1945年)到50年代中期的计算机,属于第一代,这时还未出现OS。
这时的计算机操作是由用户(即程序员)采用人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行。
当程序运行完毕并取走计算结果后,才让下一个用户上机。
这种人工操作方式有以下两方面的缺点:
(1)用户独占全机。
(2)CPU等待人工操作。
2.脱机输入/输出(Off-LineI/O)方式
这种脱机I/O方式的主要优点如下:
(1)减少了CPU的空闲时间。
(2)提高I/O速度。
图1-2 脱机I/O示意图
1.2.2 单道批处理系统
1.单道批处理系统(SimpleBatchProcessingSystem)的处理过程
图1-3 单道批处理系统的处理流程
2.单道批处理系统的特征
单道批处理系统是最早出现的一种OS,严格地说,它只能算作是OS的前身而并非是现在人们所理解的OS。
尽管如此,该系统比起人工操作方式的系统已有很大进步。
该系统的主要特征如下:
(1)自动性。
(2)顺序性。
(3)单道性。
1.2.3 多道批处理系统
1.多道程序设计的基本概念
在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。
为了进一步提高资源的利用率和系统吞吐量,在60年代中期又引入了多道程序设计技术,由此而形成了多道批处理系统(MultiprogrammedBatchProcessingSystem)。
在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;
然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
在OS中引入多道程序设计技术可带来以下好处:
(1)提高CPU的利用率。
当内存中仅有一道程序时,每逢该程序在运行中发出I/O请求后,CPU空闲,必须在其I/O完成后才继续运行;尤其因I/O设备的低速性,更使CPU的利用率显著降低。
图1-4(a)示出了单道程序的运行情况,从图可以看出:
在t2~t3、t6~t7时间间隔内CPU空闲。
在引入多道程序设计技术后,由于同时在内存中装有若干道程序,并使它们交替地运行,这样,当正在运行的程序因I/O而暂停执行时,系统可调度另一道程序运行,从而保持了CPU处于忙碌状态。
图1-4 单道和多道程序运行情况
(2)可提高内存和I/O设备利用率。
为了能运行较大的作业,通常内存都具有较大容量,但由于80%以上的作业都属于中小型,因此在单道程序环境下,也必定造成内存的浪费。
类似地,对于系统中所配置的多种类型的I/O设备,在单道程序环境下也不能充分利用。
如果允许在内存中装入多道程序,并允许它们并发执行,则无疑会大大提高内存和I/O设备的利用率。
(3)增加系统吞吐量。
在保持CPU、I/O设备不断忙碌的同时,也必然会大幅度地提高系统的吞吐量,从而降低作业加工所需的费用。
2.多道批处理系统的特征
(1)多道性。
(2)无序性。
(3)调度性。
3.多道批处理系统的优缺点
(1)资源利用率高。
(2)系统吞吐量大。
(3)平均周转时间长。
(4)无交互能力。
4.多道批处理系统需要解决的问题
(1)处理机管理问题。
(2)内存管理问题。
(3)I/O设备管理问题。
(4)文件管理问题。
(5)作业管理问题。
1.2.4 分时系统
1.分时系统(Time-SharingSystem)的产生
如果说,推动多道批处理系统形成和发展的主要动力,是提高资源利用率和系统吞吐量,那么,推动分时系统形成和发展的主要动力,则是用户的需求。
或者说,分时系统是为了满足用户需求所形成的一种新型OS。
它与多道批处理系统之间,有着截然不同的性能差别。
用户的需求具体表现在以下几个方面:
(1)人—机交互。
(2)共享主机。
(3)便于用户上机。
2.分时系统实现中的关键问题
为实现分时系统,其中,最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。
此后,用户可继续键入下一条命令,此即人—机交互。
应强调指出,即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理。
3.分时系统的特征
(1)多路性。
(2)独立性。
(3)及时性。
(4)交互性。
1.2.5 实时系统
所谓“实时”,是表示“及时”,而实时系统(Real-TimeSystem)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
1.应用需求
(1)实时控制。
(2)实时信息处理。
2.实时任务
(1)按任务执行时是否呈现周期性来划分
①周期性实时任务。
②非周期性实时任务。
外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间(Deadline)。
它又可分为:
a.开始截止时间——任务在某时间以前必须开始执行;
b.完成截止时间——任务在某时间以前必须完成。
(2)根据对截止时间的要求来划分
①硬实时任务(hardreal-timetask)。
系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。
②软实时任务(Softreal-timetask)。
它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。
1.3 操作系统的基本特性
1.3.1 并发(Concurrence)
并行性和并发性是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。
1.3.2 共享(Sharing)
在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。
由于资源属性的不同,进程对资源共享的方式也不同,目前主要有以下两种资源共享方式。
1.互斥共享方式
系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该资源。
为此,当一个进程A要访问某资源时,必须先提出请求,如果此时该资源空闲,系统便可将之分配给请求进程A使用,此后若再有其它进程也要访问该资源时(只要A未用完)则必须等待。
仅当A进程访问完并释放该资源后,才允许另一进程对该资源进行访问。
我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。
计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,它们要求被互斥地共享。
2.同时访问方式
系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。
这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。
典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件,也可以被“同时”共享,即若干个用户同时访问该文件。
并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。
一方面,资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。
1.3.3 虚拟(Virtual)
操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的东西。
相应地,用于实现虚拟的技术,称为虚拟技术。
在OS中利用了多种虚拟技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等。
在虚拟处理机技术中,是通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一台处理机的。
此时,虽然只有一台处理机,但它能同时为多个用户服务,使每个终端用户都认为是有一个CPU在专门为他服务。
亦即,利用多道程序设计技术,把一台物理上的CPU虚拟为多台逻辑上的CPU,也称为虚拟处理机,我们把用户所感觉到的CPU称为虚拟处理器。
类似地,可以通过虚拟存储器技术,将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。
此时,虽然物理内存的容量可能不大(如32MB),但它可以运行比它大得多的用户程序(如128MB)。
这使用户所感觉到的内存容量比实际内存容量大得多,认为该机器的内存至少也有128MB。
当然这时用户所感觉到的内存容量是虚的。
我们把用户所感觉到的存储器称为虚拟存储器。
我们还可以通过虚拟设备技术,将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备,这样便可使原来仅允许在一段时间内由一个用户访问的设备(即临界资源),变为在一段时间内允许多个用户同时访问的共享设备。
例如,原来的打印机属于临界资源,而通过虚拟设备技术,可以把它变为多台逻辑上的打印机,供多个用户“同时”打印。
此外,也可以把一条物理信道虚拟为多条逻辑信道(虚信道)。
在操作系统中,虚拟的实现主要是通过分时使用的方法。
显然,如果n是某物理设备所对应的虚拟的逻辑设备数,则虚拟设备的平均速度必然是物理设备速度的1/n.
1.3.4 异步性(Asynchronism)
在多道程序环境下,允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。
在单处理机环境下,由于系统中只有一个处理机,因而每次只允许一个进程执行,其余进程只能等待。
当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它某进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续执行。
可见,由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。
内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成,等等,都是不可预知的。
由于各用户程序性能的不同,比如,有的侧重于计算而较少需要I/O;而又有的程序其计算少而I/O多,这样,很可能是先进入内存的作业后完成;而后进入内存的作业先完成。
或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性。
尽管如此,但只要运行环境相同,作业经多次运行,都会获得完全相同的结果。
因此,异步运行方式是允许的,是操作系统的一个重要特征。
1.4 操作系统的主要功能
1.4.1 处理机管理功能
1.进程控制
在传统的多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。
当进程运行结束时,立即撤消该进程,以便能及时回收该进程所占用的各类资源。
进程控制的主要功能是为作业创建进程、撤消已结束的进程,以及控制进程在运行过程中的状态转换。
在现代OS中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。
2.进程同步
为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。
进程同步的主要任务是为多个进程(含线程)的运行进行协调。
有两种协调方式:
①进程互斥方式,这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式;②进程同步方式,指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。
为了实现进程同步,系统中必须设置进程同步机制。
最简单的用于实现进程互斥的机制,是为每一个临界资源配置一把锁W,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁关上时,则禁止进程(线程)访问该临界资源。
3.进程通信
在多道程序环境下,为了加速应用程序的运行,应在系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。
而在这些进程(线程)之间,又往往需要交换信息。
例如,有三个相互合作的进程,它们是输入进程、计算进程和打印进程。
输入进程负责将所输入的数据传送给计算进程;计算进程利用输入数据进行计算,并把计算结果传送给打印进程;最后,由打印进程把计算结果打印出来。
进程通信的任务就是用来实现在相互合作的进程之间的信息交换。
4.调度
在后备队列上等待的每个作业,通常都要经过调度才能执行。
在传统的操作系统中,包括作业调度和进程调度两步。
作业调度的基本任务,是从后备队列中按照一定的算法,选择出若干个作业,为它们分配其必需的资源(首先是分配内存)。
在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就绪队列。
当相互合作的进程(线程)处于同一计算机系统时,通常在它们之前是采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。
而进程调度的任务,则是从进程的就绪队列中选出一新进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。
值得提出的是,在多线程OS中,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它。
1.4.2 存储器管理功能
1.内存分配
OS在实现内存分配时,可采取静态和动态两种方式。
在静态分配方式中,每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”;在动态分配方式中,每个作业所要求的基本内存空间,也是在装入时确定的,但允许作业在运行过程中,继续申请新的附加内存空间,以适应程序和数据的动态增涨,也允许作业在内存中“移动”。
为了实现内存分配,在内存分配的机制中应具有这样的结构和功能:
①内存分配数据结构,该结构用于记录内存空间的使用情况,作为内存分配的依据;
②内存分配功能,系统按照一定的内存分配算法,为用户程序分配内存空间;
③内存回收功能,系统对于用户不再需要的内存,通过用户的释放请求,去完成系统的回收功能。
2.内存保护
内存保护的主要任务,是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。
一种比较简单的内存保护机制,是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。
系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。
如果这种检查完全用软件实现,则每执行一条指令,便须增加若干条指令去进行越界检查,这将显著降低程序的运行速度。
因此,越界检查都由硬件实现。
当然,对发生越界后的处理,还须与软件配合来完成。
3.地址映射
一个应用程序(源程序)经编译后,通常会形成若干个目标程序;这些目标程序再经过链接便形成了可装入程序。
这些程序的地址都是从“0”开始的,程序中的其它地址都是相对于起始地址计算的;由这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”或“相对地址”。
此外,由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。
在多道程序环境下,每道程序不可能都从“0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一致。
使程序能正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
该功能应在硬件的支持下完成。
4.内存扩充
存储器管理中的内存扩充任务,并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;或者是让更多的用户程序能并发运行。
这样,既满足