三条主线:一、操作系统的功能:资源管理+接口二、操作系统的实现:数据结构+算法三、一个进程的生命周期进程是有生命周期的,产生、运行、暂停、终止。对进程的这些操作叫进程控制。贯穿始终的一些概念:时间与空间逻辑与物理第一章:1、什么是OS,操作系统的功能。OS是计算机系统资源的管理者处理机管理:用于分配和控制处理机(对进程、线程的管理);存储器管理:主要负责内存的分配与回收;I/O设备管理:负责I/O设备的分配与操纵;文件管理:负责文件的存取、共享和保护。2、了解操作系统的发展过程,了解分时系统、实时系统、批处理系统及特点。分时系统:是指在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,每个用户都可以通过自己的终端以交互方式使用计算机。(1)多路性(2)独立性(3)及时性(4)交互性实时系统:是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。(1)多路性(2)独立性(3)及时性(4)交互性(5)可靠性。单道批处理:是指系统中有一个监控程序,它负责完成用户程序的调入、启动运行、输出运行结果等工作。(1)自动性(2)顺序性(3)单道性3、理解多道程序设计概念。t1t2t3t4t5t6t7t8结束中断I/O完成启动I/OI/O中断请求I/O完成启动I/OI/O中断请求用户程序监督程序I/O操作(a)单道程序运行情况程序A程序AI/O请求程序AI/O完成程序B程序BI/O请求程序C程序CI/O请求程序D程序DI/O请求CI/O完成C再被调度程序BI/O完成程序A再被调度程序A程序B程序C程序D调度程序(b)四道程序运行情况A完成结束中断作业4作业3作业2作业1OS内存后备队列作业调度外存内存4、现代操作系统的特点。并发共享异步虚拟5、操作系统的作用,操作系统作为硬件与用户间接口的观点。第二章:进程管理1、理解并发与并行的区别与联系。并发:同一个cpu上在多个程序间切换运行多个程序并行:每个cpu运行一个程序宏观上两者都是同时执行。2、程序与进程及线程的关系。程序是一组用计算机语言编写的命令序列的集合。进程是已运行程序的实体,是线程的容器。线程是进程中某个单一顺序的控制流,指运行中的程序的调度单位。不能单独执行,必须组成进程。一个程序至少有一个进程,一个进程至少有一个线程。3、原语及原语的特点和作用。原语:一种特殊的、执行时不可中断的系统调用作用:实现进程的通信和控制4、PCB及重要作用,需要联系操作系统每一章来理解。进程控制块PCB是操作系统为描述和控制进程运行为每个进程定义的数据结构。PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。OS是根据PCB来对并发执行的进程进行控制和管理的。PCB的作用(1)作为独立运行基本单位的标志。PCB成为进程存在于系统中的唯一标志。(2)能实现间断性运行方式。PCB保存运行时CPU现场信息。用户应用程序系统调用命令图标、窗口操作系统计算机硬件*操作系统作为计算机系统资源的管理者。*操作系统是用户与计算机硬件之间的接口,操作系统向用户提供各种服务。*操作系统实现了对计算机资源的抽象,扩充了机器功能。(3)提供进程管理所需要的信息。PCB中保存了进程资源信息。(4)提供进程调度所需要的信息。PCB中保存了进程状态、优先级等信息。(5)实现与其它进程的同步与通信。PCB中设置信号量、用于进程通信的区域或通信队列指针。5、进程的基本状态及状态间的转换,需要联系其它章节的内容。(1)就绪(Ready)状态:当进程已分配到除CPU以外的所有资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。(2)执行(Running)状态:进程已获得CPU,程序正在执行。(3)阻塞(Block)状态:正在执行的进程由于发生某事件而暂时无法继续执行时,放弃处理机而处于暂停状态,称为阻塞状态(等待/封锁状态)。6、了解进程控制,包括引起进程控制的事件及进程控制的操作。进程的创建(1)申请空白PCB(2)为新进程分配资源(3)初始化进程控制块(4)将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列引起事件(1-3系统内核创建4基于用户需求创建)(1)用户登录(2)作业调度(3)提供服务(4)应用请求进程的终止(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。(3)若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程。(4)将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。(5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。引起事件(1)正常结束(2)异常结束(进程运行期间,出现某些错误和故障)(3)外界干预(操作员、操作系统、父进程请求、父进程终止)进程的阻塞与唤醒(1)向系统请求共享资源失败(2)等待某种操作的完成(3)新数据尚未到达(4)无新工作可做7、理解信号量的作用,及对信号量的PV操作(信号量值的变化),会用信号量解决进程同步问题(包括前趋图和进程同步与互斥)。保证两个或多个关键代码段不被并发调用。整型信号量:整型量S仅能通过原子操作wait(S)和signal(S)来访问分别被称为P、V操作wait(S){while(S≤0);/*dono-op*/S--;}signal(S){S++;}进程同步问题1、有一阅览室,共有100个座位。读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名。读者离开时要消掉登记内容。试用P、V操作描述读者进程的同步结构。varmutex:semaphere;信号量,用于互斥full:semaphere;信号量,用于同步table:array0..n-1ofitem;登记表procedurereader;读者进程beginP(full);P(mutex);Register_name(table);V(mutex);Reading;P(mutex);Delet_name(table);V(mutex);V(full)end;beginseminitsal(mutex.v,1;full.v,100);初始化cobeginreader;reader;...coendend.2、设公共汽车上有一位司机和一位售票员,它们的活动如下:司机:售票员:启动车辆售票正常行车开车门到站停车关车门请分析司机与售票员之间的同步关系,如何用PV操作实现。答:为了安全起见,显然要求:关车门后才能启动车辆;到站停车后才能开车门。所以司机和售票员在到站、开门、关门、启动车辆这几个活动之间存在着同步关系。用两个信号量close,open以开车和可以开门,close,open=0,PV操作实现司机进程和售票员进程同步的算法描述如下:Semaphoreclose=0,stop=0;driver(){/*司机*/while(True){P(close);启动车辆;正常行车;到站停车;V(stop);}}Conductor(){/*售票员*/while(True){关车门;V(close);售票;P(stop);开车门;上下乘客;}}3、桌上有一个盘子,每次只能放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放桔子,一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果。试用PV操作实现四个人的同步,并写出程序描述。Main(){SemaphoreS空=1;SemaphoreS苹果=0;SemaphoreS桔子=0;cobeginfather();mother();son();daughter();coend}father(){while(..){p(S空);放苹果;v(S苹果);}}mother(){while(..){p(S空);放桔子;v(S桔子);}}son(){while(..){p(S桔子);吃桔子;v(S空);}}daughter(){while(..){p(S苹果);吃苹果;v(S空);}}8、理解临界资源的概念。各进程采取互斥的方式,实现共享的资源称作临界资源(一次仅允许一个进程使用的资源称为临界资源)9、进程调度方式,进程调度算法,会计算周转时间、带权周转时间。(1)非抢占方式(处理机一旦分配,不允许其他进程强占处理机):优点:实现简单、系统开销小缺点:难以满足紧急任务(2)抢占方式:时间片、优先权、短进程优先优点:公平、能满足实时任务缺点:系统开销大1、先来先服务(FCFS)2、短进程优先(SPF)周转时间=等待时间+运行时间带权周转时间=周转时间÷运行时间10、死锁的概念,产生死锁的原因、必要条件,解决死锁问题的方法,银行家算法。多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。产生死锁的原因:(1)竞争资源(2)进程推进顺序非法产生死锁的必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。解决死锁问题的方法:(1)预防死锁(加限制条件,破坏产生死锁的四个条件)(2)避免死锁(资源分配过程中防止进入不安全状态)(3)检测死锁、解除死锁银行家算法步骤:P112(一)检查资源请求的合法性:当Pi发出资源请求后,系统按下述步骤进行检查:(1)如果Requesti[j]≤Need[i,j],便转向步骤(二);否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。(2)如果Requesti[j]≤Available[j],便转向步骤(三);否则,表示尚无足够资源,Pi须等待。(二)资源试分配。系统试探着把资源分配给进程Pi,并修改相关的数据结构(三)安全性检查。系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。第三章:存储管理。1、地址重定位(静态重定位、动态重定位)。静态重定位:程序装入时对目标程序中的指令和数据地址的修改过程动态重定位:程序装入时不修改地址,地址转换推迟到程序执行时执行2、单一连续分配、固定分区分配、可变分区分配(算法),重点在内存的分配与回收。单一连续分配:仅用户区和OS区固定分区式分配:内存空间划分为若干固定大小区域,每个分区中装入一道作业首次适应算法:要求空闲分区链以地址递增的次序链接,在分配内存时,从链首开始顺序查找,直到找到一个大小能满足要求的空闲分区为止,然后再按照作业的大小,从该分区中划出一块内存空间分给请求者,余下的空闲分区仍停留在空闲链中。循环首次适应算法:在分配内存空间时,不再每次从表头(链首)开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。最佳适应算法:从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。3、分页存储管理、分段存储管理,重点地址变换与内存保护。分页存储管理进程的逻辑空间分成若干个大小相等的片,称为页面或页。内存空间也分成与页相同的若干个存储块,或称为物理块或页框。分配:以块为单位将进程中的若干页分别装入到内存中多个不相邻接的块中。分段存储管理:程序地址空间按其内在逻辑关系划分成若干个相对独立的段,如主程序段、子程序段、数据段