操作系统原理期末考试复习大纲牢记操作系统的宗旨两根红线:面向系统——提高资源利用率面向用户——提供良好的用户界面,方便用户第1章绪论操作系统定义及其功能;操作系统的定义:(本质)是一个大型的软件系统;(对内)负责计算机的全部软件、硬件资源的管理,控制和协调并发活动,实现信息的存储和保护;(对外)为用户使用计算机系统提供方便的用户界面;(结果)使计算机系统实现高效率和高自动化。面向系统资源,操作系统必须尽可能提高资源利用率;面向用户,操作系统必须提供方便易用的用户界面。操作系统的功能:从资源管理及面向用户的角度:处理机管理(最重要功能)作业调度进程(或线程)调度进程控制进程间通信存储管理内存的组织分配内存回收内存保护内存扩充(虚拟)内存映射设备管理设备分配(动态分配)一个通用设备驱动程序的接口——设备独立性(或无关性)用于特定硬件设备的驱动程序(含设备中断处理)缓冲区管理文件管理文件的操作和使用文件树状目录管理文件的物理结构及存储空间管理文件的共享和保护提供良好的用户界面操作命令界面简答:32分选择:10分填空:18分应用:40分键盘命令图形界面批处理界面系统调用界面多道程序设计技术;多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,它们在操作系统管理程序的控制下相互穿插地运行。多道特征:多道——同时有多个程序都在系统的某个硬件(CPU或外设)上执行或等待执行。宏观上并行(通常称为:并发)——站在用户的角度看,所有的程序都在运行之中。微观上串行——站在硬件设备的角度看,每次只运行一道程序。比如CPU和输入输出设备,任何时刻最多只被一个程序占有。批处理操作系统、实时操作系统与分时操作系统的主要特点与区别;(操作系统分类)是否所有操作系统都将提高资源利用率放在第一位?操作系统按功能可以分为以下几种类型:批处理系统由操作系统按作业控制语言给定的控制流程进行作业选择,并将选中的若干作业调入内存以多道方式投入运行。批处理系统的优点是系统吞吐量大,资源利用率高。批处理系统不具有交互性,这是其缺点。分时操作系统分时操作系统采用“时间片”、动态优先数等方式使CPU轮流为多个用户终端或多个任务服务。分时系统的主要特点是:1.多路调制性2.独占性3.交互性实时操作系统实时控制系统响应速度快,可靠性要求高实时信息处理系统更强调系统的安全性和可靠性不具备分时系统的强交互性。实时系统的主要特点是:1.对响应时间的实时要求(可高可低)。2.系统可靠性和安全性放在第一位,系统效率放在次要地位,交互性差或根本没有交互性。3.系统整体性强。很多实时系统同时又是分布式系统,具有分布式系统整体性强的优点。网络操作系统分布式操作系统操作系统的主要特征;并发性、共享性、不确定性多多多多多计计I/O计计计计I/O计计计计计计计计I/O计计计计计计I/O计计计计计计计计多多多多多计计ACPU计计1计计2计计B计计计第3章用户界面操作系统用户界面的两种类型操作命令界面系统调用界面(任何操作系统都必须提供系统调用界面。)用途:系统调用界面是为应用程序提供的系统服务界面,用于用户源程序中需要请求系统服务的地方;形式:以语句或函数的形式提供给用户;必要性:所有操作系统都必须提供系统调用。两者关系:操作命令界面是在系统调用界面的支持下开发完成的。系统调用是实现操作系统功能和应用程序功能的支撑平台。在设计操作系统时很大一部分任务是设计操作系统所有的系统调用函数。系统调用与子程序调用的区别第4章进程及进程管理进程的基本概念多道程序并发执行的特点及所产生的问题导致“与时间有关的错误”的原因:与诸程序的执行速度有关;由于多个程序都共享了同一个变量或者互相需要协调同步;对于变量的共享或者互相协作的过程没有进行有效地控制。程序并发执行的特点(1)失去了程序的封闭性和可再现性(2)程序与任务不再一一对应(3)程序并发执行中存在相互制约的关系进程的定义由进程控制块与程序组合,形成了一个新的实体进程,是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统进行调度和资源分配的基本单位。(进程是程序在并发环境中的执行过程)进程描述了程序动态执行的过程,当程序投入运行时创建进程,当程序终止时进程消亡,进程具有生命周期。进程的类型系统进程:它们是执行操作系统核心代码的进程,起着资源管理和控制的作用。用户进程:执行用户程序的进程。系统进程与用户进程的区别:系统进程被分配一个初始的资源集合,这些资源可以被它独占,也能以最高优先权使用;用户进程需要通过请求系统服务的手段竞争使用系统资源。系统进程可以做显式的、直接的I/O操作;用户进程不能直接做I/O操作。系统进程运行时CPU处于系统态(核态或管态);用户进程运行时CPU处于用户态(目态)。进程与程序的区别进程中包含了需要执行的程序,程序是进程的一个组成部分。进程与程序的关系主要体现在以下几点:进程是一个动态概念,而程序是一个静态概念进程具有并行特性,而程序没有。进程与程序之间存在多对多的联系(无一一对应关系)。进程映像及其组成,PCB的概念进程映像指进程实体的组成,它主要包括两个部分:程序和进程控制块。进程控制块(PCB)的定义:实质:定义的一个数据结构作用:控制和管理进程在执行过程中的动态信息,是进程存在的唯一标识,以此来感知进程的存在!进程与PCB的关系:每个进程有唯一的PCBOS依据PCB管理进程利用PCB来管理进程的动态、并发PCB是进程存在的唯一标志,进程存在则PCB存在,进程撤消则PCB消亡操作系统中的PCB一般应包含如下内容:进程标识处理器状态信息及现场保护区进程控制信息进程的可能状态及其变迁条件运行态就绪态阻塞态时间片到进程调度事件完成、I/O完成或消息到来请求I/O或等待消息运行态就绪态阻塞态时间片到进程调度事件完成、I/O完成或消息到来请求I/O或等待消息新建态终止态exit(1:使用或执行该操作的时机??2:执行该操作原语时操作系统完成的具体工作??3:Linux操作系统中实现的方法??)进程控制进程创建1.进程创建的时机在系统生成需要进程承担资源分配及管理工作——系统进程;用户作业的执行需创建子进程,或作业中完成某项具体的任务时——用户进程。2:进程创建时操作系统完成的工作分配进程标识及空白PCB,并在系统进程表中增加一个表目。为进程分配内存空间(程序、数据、用户栈等),复制父进程内存空间的内容到该进程内存空间中。初始化PCB。置该进程的状态为就绪,插入就绪队列。生成其它相关的数据结构。3.Linux操作系统中用户进程的创建过程:当用户在键盘上键入一个用户可执行文件名时,操作系统就为该文件创建一个相应的用户进程并投入运行。Linux提供的创建子进程的系统调用为fork()。进程撤销1.进程撤销的时机当一个进程已经完成所需完成的工作时,可以调用进程撤销原语自我撤销,进程终止,最后消亡。2:进程撤销时,操作系统完成的任务:释放进程所占资源;将该进程从系统进程表中删除,释放该进程的PCB。CPU被释放,进行进程调度。Linux中提供的撤销进程系统调用为exit():进程睡眠1.进程阻塞的时机当一个进程因为某种执行条件暂不满足或者等待某个事件的发生时。以下皆是引起进程阻塞的事件:进程请求I/O;进程请求系统资源时需要排队或暂时得不到满足;进程请求的同步或互斥信号没有满足或等待的同步消息没有到来;进程请求延时。2:进程睡眠原语执行后,操作系统需完成的工作:⑴.将当前需要睡眠的进程运行现场保护到其PCB中;⑵.置进程的状态为阻塞态;⑶.将该进程插入引起睡眠的chan的等待队列(假设引起睡眠的原因为chan,);⑷.CPU空闲,进行进程调度,以调度另一个进程投入运行。sleep(n)进程唤醒1:进程唤醒的时机当进程等待的事件发生时。该唤醒由完成事件的进程执行进程唤醒原语来完成。2:执行唤醒原语,操作系统完成的工作:检查该事件的等待队列上是否有等待进程;如果有等待进程,则将它们从该等待队列中移出,修改其状态为就绪态,插入就绪队列;转进程调度或继续执行。3:Linux下进程的唤醒存在于内核态下,包含在操作系统同步机制中(第四章内容)。未给用户提供任何直接的系统调用。临界资源与临界区两个概念:临界资源与临界区。1.临界资源临界资源指的是一次只允许一个进程使用的独占资源。诸进程对它的访问必须互斥。(包括可能的系统资源及用户资源)2.临界区临界区是指包含了访问临界资源的那段程序。临界区作为特殊的程序段进行如下处理:1)进程在进入临界区之前必须先申请,2)当且仅当临界区中涉及的临界资源没有其它进程使用时才能进入临界区;3)在出临界区后立即释放临界资源。进程同步与互斥互斥必要条件:⑴.诸进程共享同一个临界资源;⑵.共享的方式是先来者先使用的异步方式。操作系统提供的互斥机制必须满足以下要求:(临界区问题的解答必须满足的要求)1.实现互斥:即任意时刻最多只能有一个进程进入临界区,执行临界区的进程不能受到其它进程的干扰。2.有空让进:当临界资源空闲时,应该允许申请进入临界区的进程进入临界区。3.有限等待:对要求进入临界区的进程,应在有限时间内进入,以免陷入“死等“;进入临界区的进程不能被无限期地延迟或死锁同步问题:当各进程的执行具有一定先后顺序的限制时,称为同步问题。同步与互斥的比较:是否一定共享临界资源运行方式互斥问题一定异步:先来者先进入,无先后顺序,异步同步问题不一定同步:有先后顺序同步互斥混合问题一定进入临界区异步执行、进程间同步互斥与同步问题互斥同步PV操作用来申请或释放信号量的操作,由系统提供的系统调用完成:P操作表示申请资源;V操作表示释放资源。P、V操作用原语实现,不允许中断。实现互斥:1.上锁原语和开锁原语实现进程互斥2.用信号灯实现进程互斥实现同步:用P、V操作实现进程同步的算法可以简单归纳如下:⑴.设置信号量分析每个进程的执行条件和释放条件,针对每个执行条件设置一个信号量,其初值根据初始情况确定;⑵.对每个进程的处理:在请求条件处执行P(执行条件信号量);在释放条件处执行V(释放条件信号量)。解决同步问题与互斥问题的区别:互斥问题中各进程涉及共同的临界资源,因此每个进程中涉及同一个临界资源的临界区中所执行的P、V操作的信号量是相同的;同步问题中每个进程由于执行条件和释放条件的不同因而其P、V操作涉及的信号量不同。/*P操作原语——请求资源或条件*/P(s){s――;if(s<0){保留调用进程的CPU现场;将该进程插入s的等待队列;置该进程为等待态;转进程调度;}}/*V操作原语——释放资源或条件*/V(s){s++;if(s<=0){移出s等待队列中的第一个进程;将该进程插入就绪队列;置该进程为就绪态;}}例如:设有4个进程,其执行的先后流图如下图所示。用P、V操作实现其同步。同步分析:P1P4P3P2进程Pj有无前驱(执行条件)请求信号量信号量初值有无后继(释放条件)释放信号量P1无无无P2、P3S12、S13P2P1结束S120P4S24P3P1结束S130P4S34P4P2、P3结束S24、S340无无算法描述:main(){ints12=s13=s24=s34=0;cobeginp1();p2();p3();p4();coend}p1(){执行P1自己的程序;//无前驱,所以无P操作V(s12);//有后继P2,释放条件s12V(s13);//有后继P3,释放条件s13}p2(){P(s12);//有前驱P1,申请条件s12执行P2自己的程序;V(s24);//有后继P4,释放条件s24}p3(){P(s13);//有前驱P1,申请条件s13执行P3自己的程序;V(s34);//有后继P4,释放条件s34}p4(){P(s24);//有前驱P2,申请条件s24P(s34);//有前驱P3,申请条件s34执行P4自己的程序;//无后继,所以无V操作}这样,无论哪个进程先来,只要不是p1进程,都会在执行了相应的P操作后,因为执行条件不成立而被挂到相应信号量的等待队列上,等待其前驱执行该信号量的V操作后将