操作系统学习笔记2

第五讲
进程的 三种基本状态:就绪状态,执行状态,阻塞状态(请求I/O,申请缓存)。




PCB是OS中最重要的记录型结构。
OS用PCB对并发进程进行管理和控制。
PCB是进程存在的唯一标志。
PCB常驻内存。
OS专门开辟PCB区将所有的PCB组织成若干个链表或队列。
PCB中的信息:1)进程标识符。(内部标识符,数字,给OS使用;外部标识符,字母数字,给用户使用)2)处理机状态。(1,通用寄存器 8-32个,暂存信息用。2,指令计数器,要访问的下一条指令地址;3 程序状态字 PSW  条件码,执行方式(系统态,用户态),中断屏蔽标志;4 用户栈指针 用户进程拥有的系统栈,存放过程和系统调用参数及调用地址)3)进程调度信息。(进程状态,进程优先级,与调度算法有关信息,事件(如阻塞原因))4)进程控制信息。(程序和数据地址,进程同步和通信机制,资源清单:除CPU之外的所需资源与已经分配资源清单;链接指针:本进程PCB所在队列的下一个地址)
PCB的组织方式:1)链接方式 2)索引方式
第六讲 进程控制
进程管理中最基本功能是进程控制
进程控制任务:进程的创建,终止,进程状态的转变等
进程控制一般由OS内核来实现。
引起创建进程的事件:1)用户登录。 2)作业调度。 3)提供服务。4)应用请求(由自己创建)
进程的创建(原语CREAT()):1)申请空白PCB。2)为新进程分配资源。3)初始化进程控制块。4)将新进程插入就绪队列。
PCB的初始化:1)初始化标识信息。2)初始化处理机状态信息 3)初始化处理机控制信息
引起进程终止的事件:1)正常结束。2)异常结束。(1 越界错误,2 保护错,3 非法指令 4 特权指令错 5 运行超时 6 等待超时 7 算术运算错 8 I/O 故障)3)外界干预(1 操作员或OS干预,2 被父进程终止 3 父进程终止)
进程的终止过程:从PCB集合中检索出该进程的PCB,从中读出该进程的状态。若处于执行状态,终止该进程的执行,并置调度标志为真,重新调度。若有子孙进程,将所有子孙进程终止。将进程全部资源归还其父进程或系统。将PCB从所在队列(或链表)中移出。
引起阻塞和唤醒的事件:请求系统服务,启动某种操作,新数据尚未到,无新工作可做
进程阻塞过程:

第七讲
挂起(调到外存)的原语:suspend(),执行过程:检查被挂起进程的状态,若处于活动就绪状态,改为静止就绪;若处于活动阻塞状态,则改为静止阻塞;若正在执行,则转向调度程序重新调度。
进程的两种制约关系:间接制约:进程间由于共享某种系统资源,而形成的相互制约。直接制约:进程间由于合作而形成的相互制约。
互斥:互斥是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系。
同步:同步是进程间共同完成一项任务时直接发生相互作用的关系。
临界资源:一次仅允许一个进程使用的共享资源。(打印机,表格)
临界区:在每个进程中访问临界资源的那段程序。进程必须互斥进入临界区。

同步机制遵循的原则:1 空闲让进,2 忙则等待, 3 有限等待, 4 让权等待(让CPU)。
信号量: 是一种数据结构,信号量的值与相应资源的使用情况有关,值仅由P,V操作改变。
第八讲
整型信号量S: P操作(wait)原语,V操作(signal)原语
wait和signal是原子操作,只要信号量s<=0,就不断测试, 不满足让权等待。(缺点)
记录型信号量:记录型结构,包含两个数据项(结构体类型)

S.value为资源信号量其初值:某类资源是数目;S.value>=0时,代表系统当中可用资源的数目。S.value<0时,代表等待使用系统资源的进程数目。
wait操作:申请一个单位资源
signal操作:释放一个单位资源
为避免死锁,AND型信号量
基本思想:将进程在整个运行中需要的所有资源,一次性全部分配给进程,待进程使用完后一起释放。
在wait中加入AND条件,又称AND同步或同时wait操作。
第九讲
申请资源,使用临界区,使用资源,释放资源。
实现互斥时要注意:wait(mutex) 和 signal(mutex)成对出现。
经典的同步问题:1 生产者-消费者问题。2 读者-写着问题。3 哲学家进餐问题。
1:相互合作进程关系的一种抽象。如:在输入时,输入进程是生产者,计算进程是消费者。一组生产者进程生产产品给一组消费者进程消费。为使他们并发执行,设一个有n个缓冲区的缓冲池,生产者一次向一个缓冲区投入消息,消费者从一个缓冲区中取得消息。
制约关系: 不允许消费者进程到一个空缓冲区中取产品。不允许生产者进程到一个已满且还没被取走的缓冲区中投放产品。
用记录型信号量解决生产者-消费者问题:1)设有n个缓冲区,每个缓冲区存放一个消息,用互斥信号量mutex对缓冲池实现互斥访问。2)利用资源信号量empty和full分别表示缓冲池中空缓冲区及满缓冲区的数量。又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将消息送入缓冲池取走一个消息。
2:一个数据文件或记录可被多个进程共享。其中,有些进程要求读,而另一些进程要求写或修改。只要求读的进程称为“Reader进程”,其他进程称为“writer进程”。允许多个Reader进程同时读一个共享对象,不允许一个writer进程和其他Reader进程或writer进程同时访问共享对象。所谓读者-写者问题是指 保证一个writer进程必须与其他进程互斥地访问共享对象的同步问题。
信号量设置:为解决一个writer进程和其他reader进程互斥,设互斥信号量Wmutex;设置整型变量Readercount表示正在读的进程数目;Readercount是一个可被多个Reader进程访问的临界资源,为它设置互斥信号量Rmutex.
3:有5个哲学家,他们的生活方式是交替地进行思考和进餐,哲学家们共用一张圆桌,分别坐在周围的五张椅子上。在圆桌上有5个碗和5支筷子(临界资源),平时一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐毕,放下筷子又继续思考。
为避免死锁:1,至多4个人拿起左边的筷子。2,判断左右筷子都在的时候才允许拿。3,奇数号都拿左边的,偶数号都拿右边的。4,AND型信号量,要给都同时给,要不给都不给。同时释放。
第十一讲
进程通信:指进程之间的信息交换。交换的信息量:1,一个状态或数值。2,上千个字节。
1)低级通信:进程的互斥和同步。
2)高级通信:指用户可直接利用OS提供的一组通信命令,高效地传送大量数据的一种通信方式。对用户透明。
高级通信分类:1,共享存储器系统。2,消息传递系统。3,管道通信。
1,共享存储器系统。1)共享数据结构的通信方式:进程之间通过某种数据结构,如缓冲池进行通信属于低级通信方式;(同步,互斥,他们通过交换信号量)2)共享存储区通信方式:为了传送大量信息,在存储器中划出一块共享存储区,进程可通过对共享存储区进行读或写来实现通信,属于高级通信方式。
2,消息传递系统。信息交换的单位是消息或报文(计算机网络中将消息称为报文) ,
分成两种:
1).直接通信方式。发送进程直接把消息发送给目标进程;发送进程和接收进程都以显式方式分别提供对方的标识符;系统提供两条通信原语(原语:是一种功能函数,特点是执行原子操作)Send(Receiver,message);Receive(Sender,message)可以解决生产值-消费者问题。
2).间接通信方式:进程之间的通信需要通过某种中间实体,该实体用来暂存发送进程发送给目标进程的消息;接收进程则从该实体(信箱)中取出对方发送给自己的消息。消息在信箱中可以安全地保存。只允许核准的目标用户随时读取,故可实现非实时通信。信箱的创建和撤销:进程用信箱创建原语来建立一个新信箱。创建者进程应给出信箱名字,信箱属性(公用,私用或共享);对于共享信箱,还应给出共享者的名字。用信箱撤销原语来撤销。Send(mailbox,message);Receive(mailbox,message);
私用信箱:用户进程建立,作为该进程的一部分。拥有者有权读消息。其他用户只能发送。采用单向通信链路。进程结束时信箱也消失。
公用信箱:它由OS创建,提供给系统中的所有核准进程使用;进程既可发送也可取出;采用双向通信链路的信箱来实现;系统运行期间始终存在。
共享信箱:由某进程创建,创建时提供共享进程(用户)的名字;信箱的拥有者和共享者,都有权从信箱中取走发送给自己的消息。
信箱通信时发送进程和接收进程的关系:1)一对一关系(私用信箱)。建立一条专用的通信链路。2)多对一关系。服务进程与多个用户进程之间进行交互,又称客户/服务器交互。3)一对多关系。一个发送进程与多个接收进程进行交互,使发送进程可用广播形式,向接收者发送消息。4)多对多关系:建立一个公用信箱,多个进程投递并取走自己的消息。
管道通信:管道通信方式建立在文件系统的基础上,利用共享文件来连接两个相互通信的进程,此共享文件称为管道(Pipe)。
管道是指用于连接一个读进程和一个写进程,以实现它们之间通信的 共享文件(在外存)
管道通信必需的协调能力:1)互斥:当一个进程正在对管道进行读/写操作时,另一进程必须等待。2)同步 :当写(输入)进程把一定量的数据(如4K)写入管道后,便去睡眠等待,直到读(输出)进程取走数据后再把它唤醒。当读进程发现管道空时也应睡眠等待,直至写进程将消息写入管道后,才将它唤醒。3)判别对方是否存在。只有确定了对方存在时方能进行通信。
第十二讲
进程:使多个程序能并发执行,以提高资源利用率和系统吞吐量。引入线程是为了减少程序在并发执行时付出的时空开销,使os具有更好的并发性。
引入线程的目的:进程是可拥有资源的独立单位和可独立调度和分派的基本单位。创建,撤销和切换中,系统必须为之付出较大的时空开销。故进程,其数目不宜过多,进程切换的频率也不宜过高。进程不应同时作为拥有资源的单位和可独立调度和分派的基本单位,应该“轻装上阵”。( 提高并发性
线程(网络操作系统,多CPU操作系统)的属性:1)轻型实体。线程中的实体基本上不拥有系统资源。2)独立调度和分派的基本单位。线程的切换非常迅速,开销小。3)可并发执行。4)共享进程资源。
操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
操作系统的基本特征是:并发,共享,虚拟,异步性。
引入进程的目的是描述程序动态执行过程的性质。
进程和程序的主要区别:1,进程是动态的,程序是静态的,2,进程具有并发性,而程序具有顺序性;3,进程具有独立性,是资源分配和调度的基本单位,而程序无此特性;4,进程和程序间没有一一对应关系;5,进程异步运行,会相互制约,程序不具备此特性。
第十三讲 处理机调度与死锁
一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,可能要经历的三级调度:
1)高级调度:又称作业调度,长程调度,接纳调度。作用:把外存上处于后备队列中的作业调入内存,并未为它们创建进程,分配资源,排在就绪队列上,准备执行。(分时系统,实时系统,通常不需要作业调度。)批处理操作系统中出现。
2)低级调度:又称为进程调度,短程调度。作用:决定就绪队列中的哪个进程应获得处理机,然后由分派程序执行把处理机分配给该进程的具体操作。在OS中都必须配置。两种调度方式:1)非抢占方式:一旦把处理机分配给某个进程后,便让该进程一直执行,直至该进程完成或阻塞时,才再把处理机分配给其他进程。;2)抢占方式:允许暂停某个正在执行的进程,把处理机分配给其他进程。抢占原则:1:)优先权原则。优先权高的抢占处理机。2)短作业优先原则。3)时间片原则。(分时系统)
3)中级调度:又称中程调度。目的:提高内存利用率和系统吞吐率。作用:使暂时不能运行的进程从内存调至外存,进入就绪驻外存状态或挂起状态。把外存上又具备运行条件的就绪进程,重新调入内存,并修改为就绪状态,挂在就绪队列上。
调度队列模型:
1)仅有进程调度:通常,把就绪进程组织成FIFO队列(先进先出),每创建新进程时排在就绪队列的末尾,按时间片轮转方式运行(分时系统)。进程在执行时,出现三种情况:1)在时间片内完成,释放并进入完成状态。2)未完成,放在就绪队列末尾。3)阻塞时,放在阻塞队列中。
2)有高级调度和低级调度的调度队列模型(批处理操作系统):1)就绪队列的形式。批处理系统中最常用的是优先权队列。也可采用无序链表方式。2)设置多个阻塞队列。

3)三级调度都有:调出时,可使进程状态由内存就绪转变为外存就绪,由内存阻塞转变为外存阻塞;在中级调度使外存就绪转变为内存就绪。
第十四讲 选择调度方式和调度算法的准则
1)面向用户的准则:周转时间短(批处理操作系统);响应时间快(实时操作系统);截止时间的保证;优先权准则;
2)面向系统的准则:系统吞吐量;处理机利用率好;资源的平衡利用;
周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔称为作业周转时间。包括:1)在外存后备队列上等待调度的时间(高级调度);2)进程在就绪队列上等待调度的时间(低级调度);3)进程在CPU上执行的时间;4)进程等待i/o操作完成的时间。
平均周转时间:
带权周转时间:w=T/Ts;T:作业的周转时间;Ts: 系统为它提供服务的时间(真正运行时间),占有CPU的时间。
平均带权周转时间:
响应时间(分时):从用户通过键盘提交一个请求开始直至系统首次产生响应为止的时间间隔。它包括3部分:1)从键盘输入的请求信息传送到处理机的时间。2)处理机对请求信息进行处理的时间。3)将响应信息回送到终端显示器的时间。是分时系统中的重要原则。
截止时间是指某任务必须开始执行的最迟时间,或必须完成的最迟时间。对于严格的 实时系统,其调度方式和调度算法必须能保证这一点。
吞吐量:单位时间内系统完成的作业数。是评价批处理系统性能的重要指标。与作业的平均长度有关。大型作业,一小时一道,中小型,一小时十几道。
第十五讲
调度算法:根据系统的资源分配策略所规定的资源分配算法,不同系统不同算法。
先来先服务调度算法(高级,低级):作业调度中每次从后备作业队列中,选择一个或多个最先进入该队列的作业调入内存,为它们分配资源,创建进程,然后放入就绪队列。进程调度时每次从就绪队列中,选择一个最先进入该队列的进程分配处理机使之运行。直至完成或阻塞后,才放弃处理机。(最简单 ,FCFS,有利于长作业(进程),不利于短作业(进程);有利CPU繁忙型作业,不利于i/o繁忙型作业)
短作业(进程)优先法:
短作业优先(SJF)法:从后备队列中选择一个或若干个估计运行时间最短的作业调入内存运行。
短进程优先(SPF)调度算法:从就绪队列中选出一估计运行时间最短的进程,分配处理机使它立即执行直到完成,或发生某事件而被阻塞放弃处理机时,再重新调度。

SJ(P)F法缺点:1)对长作业不利。如果有一长作业进入系统的后备队列,由于总是优先调度那些短作业(进程),将导致长作业长期不被调度。
2)完全未考虑作业的紧迫程度,不能保证紧迫性作业(进程)会被及时处理。
3)作业(进程)的长短根据用户所提供的估计执行时间而定的不一定能真正做到短作业优先调度。

第十六讲
周转时间:用户满意程度;带权周转时间:CPU利用率
高优先权优先调度算法:
1 优先权调度算法的类型:1)非抢占式优先权算法:(批处理系统,对实时性要求不严的实时系统);2)抢占式优先权调度算法(要求较严格的实时系统,以及对性能要求较高的批处理和分时系统中)
2 优先权的类型:1)静态优先权:在创建进程时确定,在进程的整个运行期间保持不变,用整数表示。确定优先权依据:1,进程类型:系统进程高于用户进程;2 进程对资源的要求:要求少的优先权高;3 用户要求:这是由用户进程的紧迫程度及所付费多少来确定。
优缺点:
1)简单,系统开销小
2)不精确,仅在要求不高的系统中使用
2)动态优先权:优先权随进程推进或随其等待时间的增加而改变的,以便获得更好的调度性能。
3 高响应比优先调度算法
引入动态优先权,并使作业优先级随着等待时间的增加而以速率a提高。
该优先权的变化规律为:优先权=(等待时间+要求服务时间)/要求服务时间
优先权 = Rp(响应比)=响应时间/要求服务时间
1)作业等待时间相同,则有利于短作业。2)要求服务时间相同,实现的是先来先服务。3)长作业也可获得处理机。
优点:兼顾长短作业
缺点:由于做响应比计算增加了系统开销。
时间片轮转法:分时系统中多采用时间片轮转法;把就绪进程组织成FIFO队列;把CPU分配给队首进程;规定它执行一个时间片;时间片完成时排在就绪队列的末尾,重新把处理机分配给就绪队列中新的队首进程,也执行一个时间片;就绪队列中的所有进程在一定时间内,均可获得一个时间片的CPU时间。
多级反馈队列调度算法(UNIX):
1)为多个就绪队列赋不同的优先级。第一个队列的优先级最高其余逐个降低。各队列中进程执行时间片的也不同,优先权越高的队列中的时间片越小。
2)新进程进入内存后,首先放入第一队列的末尾,按FCFS原则排队等待调度。到该进程执行时,如果能在该时间片内完成,便准备撤离系统;如果未完成,转入第二队列的末尾,依次,最后按时间片轮转的方式运行。
3)仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列,则新进程将抢占处理机,即又调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。
性能:1)终端型作业用户。作业小,能在第一队列规定的时间内完成,便可令用户满意。2)短批处理作业用户。其周转时间短。3)长批处理作业用户。不必担心作业长而得不到处理。
第十七讲
实时调度基本条件:
1)提供必要的信息:就绪时间;开始截止时间和完成截止时间;处理时间;资源要求;优先级。
2)系统处理能力强;
3)采用抢占式调度机制;
4)具有快速切换机制:对外部中断的快速响应能力,响应禁止中断的时间间隔尽量短,快速的任务分派能力。


实时调度算法分类:
按调度方式:非抢占调度算法;抢占调度算法;
按调度时间:静态调度算法;动态调度算法;
非抢占调度算法:算法简单,用在小型实时系统或要求不严的实时控制系统中。
分两种:
1)非抢占式轮转调度算法。用于工业群控系统中,由一台计算机控制若干个相同的对象,为每个被控对象建立一个实时任务,并将它们排列成一个轮转队列。调度程序每次选择队列中的第一个任务运行,完成后,便把它挂在轮转队列的末尾,等待下次调度运行,这次调度程序在选择下一个任务运行。可获得数秒至数十秒的响应时间。
2)非抢占式优先调度算法。针对有一定要求的系统,为实时要求高的任务赋予较高的优先级。优先安排在就绪队列队首,待当前任务结束后,被调度执行。响应时间为数秒至数百毫秒。
抢占调度算法:响应时间在数十毫秒一下的系统。根据抢占时间不同:
1)基于时钟中断的抢占式优先权调度算法:高优先级的实时任务到达后不立即抢占,等到时钟中断到来时再重新分配处理机。
2)立即抢占的优先权调度算法:高优先级的实时任务到达后,只要当前任务未处于临界区(使用临界资源的代码)就立即把处理机分配给它。
常用的实时调度算法:最早截止时间优先算法即EDF算法;最低松弛优先算法即LLF算法(least laxity first)
第十八讲
EDF算法:根据任务的开始截止时间确定优先级,截止时间越早优先级越高。系统中保持一个实时任务优先级就绪队列,调度程序选择队首任务分配处理机。可以采取抢占式和非抢占式调度。
LLF算法:根据任务的紧急程度确定优先级,紧急程度越高优先级越高。系统中保持一个实时任务优先级就绪队列,调度程序选择队首任务分配处理机。可采用抢占式和非抢占式调度。
多处理器系统(MPS):提高系统性能的主要途径有两条:1)提高元器件的运行速度,特别是处理器芯片的速度。2)改进计算机系统的体系结构,特别是在系统中引入多个处理器或多台计算机。
多处理机系统类型:
1 从多处理机之间耦合的紧密程度上,可分为:
紧密耦合MPS:(多处理器)通常通过高速总线或高速交叉开关实现多个处理器互连;他们共享主存和i/o设备,并要求将主存划分为若干个能独立访问的储存器模块,以便多个处理器能同时对主存进行访问。系统中的所有资源和进程,都由操作系统实施同一的控制和管理。
松弛耦合MPS:(多计算机)通过通道或通信线路实现多台计算机之间互连;每台计算机都有自己的存储器和I/o设备,并配置了OS来管理本地资源和在本地运行的进程;每台计算机都能独立工作,必要时可通过通信线路与其他计算机交换信息。
2,根据系统中处理器的相同与否可分为:对称MPS,非对称MPS。
对称MPS:系统中的处理器单元在功能和结构上都相同。
非对称MPS: 系统中的处理器单元在功能和结构上不相同,只有一个主处理器,多个从处理器。
进程分配方式(之前的内容都是单处理器系统):多处理器系统中进程的调度与系统结构有关;对称系统中进程可以分配到任一处理器上;非对称系统中进程只能分配到某一合适运行的处理器上。
对称多处理器系统的进程分配:1,把所有处理器作为一个处理器池;2,由调度程序或基于处理器的请求,将任何一个进程分配给池中的任何一个处理器。采用两种方式:
1 静态分配方式:特点:进程被固定分配到一个处理器上,与单机进程调度方式相同。优点:开销小;缺点:各处理机忙闲不均。
2 动态分配方式:设置一个公共就绪队列,进程可被分配到任一处理器上。优点:消除了忙闲不均的现象。
非对称式MPS中的进程分配方式:多采用主-从式OS,即OS的核心部分驻留在一台主机上,从机上只是用户程序,进程调度只由主机执行。优点:系统处理简单,因为进程分配由主机独立处理,使进程间的同步问题得以简化。
第十九讲
进程(线程)调度方式:
自调度方式:
1)自调度机制:是最简单的一种调度方式,是直接由单处理机环境下的调度方式演变而来的。单处理机环境下的FCFS(多处理机系统中,是一种好的调度算法),FPF(完成,阻塞,时间片到达)和抢占式FPF(当前进程在临界区时不能被抢占)调度算法都可用。整个系统中只设置一个就绪队列,供多个处理器共享,这些处理器必须互斥地访问该队列。
2)优点:容易将单处理机环境下的调度机制移植到多处理机系统中。处理器的利用率高。
3)缺点:瓶颈问题(主要是只有一个就绪队列)。低效性(线程在整个生命周期中,可能要多次更换处理器,使高速缓存(处理机的缓存,每次CPU都有一个缓存)的使用效率很低);线程切换频繁:多个相互合作型的线程很难同时获得处理器,将会使某些线程阻塞,被切换下来。
成组调度方式:
专用处理机分配方式:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值