操作系统复习

上传人:d****1 文档编号:222144342 上传时间:2023-07-08 格式:DOCX 页数:8 大小:20.72KB
收藏 版权申诉 举报 下载
操作系统复习_第1页
第1页 / 共8页
操作系统复习_第2页
第2页 / 共8页
操作系统复习_第3页
第3页 / 共8页
资源描述:

《操作系统复习》由会员分享,可在线阅读,更多相关《操作系统复习(8页珍藏版)》请在装配图网上搜索。

1、2.1进程与线程进程是指令的集合(错,程序是指令的集合,进程是程序的一次执行过程)优先级是进程调度的重要依据,一旦确定就不能改变(错)在单CPU的系统中,任意时刻都有一个进程处于运行状态(错,可以空转)进程申请CPU得不到满足时,其状态变为阻塞(错!等待CPU的进程处于就绪状态)进程获得CPU运行是通过调度得到的(对)线程是一种特殊的进程(对)进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的独立单位(对) 进程是PCB结构、程序和数据的集合(对)撤销父进程时,应同时撤销子进程(错!进程撤销可采用两种策略,一种是只撤销指定进 程,另一种是撤销指定进程和其子孙进程) 线程的切换,可

2、能会引起进程的切换(对)引入线程后,处理机只在线程中切换(错! !)线程是比进程更小的能独立运行的基本单位(错,这句话的成立需要一定的前提条件) 线程的引入增加了程序执行的时空开销(错,应为减少)一个进程一定包含多个线程(错)一个进程创建的若干线程共享该进程的程序段和数据段,但是它们有各自的运行栈区(对) 中断是进程切换的必要条件,而不是充分条件。(对)进程的基本特点:动态性,并发性,独立性,异步性,结构性。在多道程序设计环境下,操作系统分配资源以进程为基本单位在引入线程的操作系统中,资源分配的基本单位是进程,CPU分配的基本单位是线程。 在引入线程的操作系统中,进程是资源分配的基本单位,线程

3、是调度的基本单位 从运行状态到就绪状态是由于时间片用完或出现了比现在进程优先级更高的进程(调度程 序决定)从就绪状态到运行状态是调度程序决定的从阻塞状态到就绪状态是协作程序决定的从运行状态到阻塞状态是进程站决定的(只有这个是主动的)对进程的管理和控制使用原语。(原语包括创建原语,撤销原语,阻塞原语,唤醒原语等) 一个进程被唤醒意味着进程变为就绪状态(该进程可能重新占用CPU)。(唤醒原语的功能 是将被被唤醒进程从阻塞队列中移到就绪队列中) 降低进程优先级的合理时机是进程的时间片用完。进程调度主要负责选一个进程占有CPU o建立多线程的主要目的是提高CPU的利用率。进程调度的方式有抢占式,非抢占

4、式两种。(?)以下 C 不会引起进程创建o A.用户登录B作业调度C设备分配D应用请求进程与程序的联系与区别:联系:进程是程序的一次执行过程,没有程序就没有进程区别:1进程是程序的执行,所以进程属于动态概念,程序是一组指令的有序集合,是静态的概念 2进程的存在是暂时的,程序的存在是永久的(相对而言)3进程的组成包裹程序,数据和PCB块4.一个程序可能对应多个进程,一个进程也可以包含多个程序。也就是说,程序和进程无一 一对应关系。多线程与多任务的区别:多任务是针对操作系统而言的,代表操作系统和同时执行的程序数。多线程是针对一个程序 而言的,代表着一个程序内部可以同时执行的线程个数。什么是内核线程

5、?什么是用户线程?内核线程是与操作系统内核中的程序相对应的线程。用户线程是与用户的应用程序相对应的线程。什么是内核支持线程?内核支持线程是指其创建、撤销和切换都需要内核程序支持才能实现的线程,内核通过保 留一个线程控制块用于感知该线程的存在并对其控制。所对应的程序可以是内核程序,也 可以是用户程序,但主要是用户的应用程序简述用户级线程和内核支持线程的区别。1. 内核支持线程是操作系统内核可感知的,而用户级线程是操作系统内核不可感知的。2用户级线程的创建,撤销和调度不需要操作系统内核的支持,是在语言这一级处理的(如 运行在Java虚拟机中的程序);而内核支持线程的创建,撤销,调度都需要操作系统内

6、核 提供支持,而且与进程的创建,撤销和调度大体上是相同的。3在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个 线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为 单位,由操作系统的线程调度程序负责线程的调度。4用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是运行在 任何状态下的程序。2.2处理机调度调度的层次:高级调度(作业调度,宏观调度),中级调度(中程调度,交换调度),低 级调度(进程调度,微观调度,短程调度)。运行频率:高级调度中级调度低级调度以下四种情况可能发生CPU调度:1. 进程从运行状态转换到

7、等待状态2. 进程从运行状态转换到就绪状态3. 进程从等待状态转换到就绪状态4. 进程终止调度算法的评价准则:1. CPU利用率2. 系统吞吐量(单位时间CPU完成作业的数量)3周转时间(完成时间-提交时间)4.平均周转时间(所有作业周转时间平均值)5带权周转时间(周转时间/运行时间)6. 平均带权周转时间(所有作业带权周转时间平均值)7响应时间(系统首次产生响应时间-用户提交请求时间,在交互式系统中更重要)进程调度方式:抢占方式,非抢占方式在调度时机中只有当进程从运行状态转换到等待状态,当进程终止时的两种情况下进行的调 度为非抢占式的。典型调度算法1先来先服务调度算法(FCFS)FCFS对C

8、PU繁忙型进程比较有利,而对I/O繁忙型进程则不利。因为I/O繁忙型进 程在执行I/O操作时进场放弃对CPU的占用;当I/O操作完成后,又需要等待很长一段时间 后才能分配到CPU。FCFS是非抢占性的。有利于长作业,不利于短作业。不适合分时系统。 无饥饿问题2. 短作业优先调度算法(SJF)可以证明当所有进程同时到达时,SJF可以给出最小的平均等待时间,所以经常被用 于批处理系统。该算法的缺点是对长进程不利,而且不能保存及时处理紧急性作业,而且有 一个实际困难是难以预先获知CPU请求的占用长度。SJF通常在批处理系统的长程调度中使 用。SJF算法可以是抢占性或非抢占式的;抢占式SJF调度也被称

9、为最短剩余时间优先级 调度(SRTF)有可能出现“饥饿问题”。3优先级调度算法根据进程调度方式的不同,可以将该算法分为非抢占式优先级调度算法和抢占式优先 级调度算法。根据优先级是否可变,可以分为静态优先级和动态优先级。静态优先级有可能 出现“饥饿问题”。4.时间片轮转调度算法(RR)时间片轮转调度算法主要用于分时系统中的进程调度。时间片大小对系统性能影响很 大,时间片过大,该算法退化为FCFS ;时间片过小,系统开销很大。5高响应比优先调度算法(HRRN)HRRN主要用于作业调度,其做法是在每次调度时,计算后备队列中每个作业的响应 比,选择响应比最高的作业投入运行。响应比二作业周转时间/估计运

10、行时间=1+作业等待时间/估计运行时间HRRN是非抢占式的既有利于短作业又兼顾长作业,没有饥饿现象6. 多级队列调度算法(MQ)用于进程调度,其核心思想是根据进程的性质或类型,将就绪队列划分成为若干子队 列,每个进程固定属于一个就绪队列,每个就绪队列采用一种调度算法。7. 多级反馈队列调度算法多级反馈队列调度算法是时间片轮转调度算法和优先级调度算法的综合和发展。可以 兼顾多方面的系统目标。不必估计进程的执行时间。算法实现思想如下:1. 系统中应设置多个就绪队列,每个就绪队列设置一个优先级,第一个队列优先级最 高,其余队列优先级依次降低。2每个队列中进程执行时间片大小各不相同,队列优先级越高,时

11、间片越短。3当一个新进程进入系统时,首先将它放入第一个队列的末尾,按FCFS排队。如果 它在一个时间片内尚未完成,调度程序便将该进程转入第二个队列的末尾,如果还未完成就 转入第三个.以此类推。最后一个队列中使用时间片轮转调度算法。4仅当第一个队列为空事,调度程序才从第二个队列中选择进程运行,仅当第1个到 第i-1个队列均为空时,才会调度第i个队列的进程运行。当CPU正在执行第i个队列某进 程时,若又有新进程进入优先级较高的队列中,则此时新进程将抢占正在运行进程的处理机。 即由调度程序把正在执行的进程放入第i个队列末尾,重新将处理机分配给优先级更高的进 程。例题: 若某单处理器多进程系统中有多个

12、就绪进程,则下列关于处理机调度的叙述中,错误的 是 CA. 在进程结束后才能进行处理机调度B. 创建新进程后能进行处理机调度C. 在进程处于临界区时不进行处理机调度D. 在系统调用完成并返回用户态时能进行处理机调度作业是用户提交的,进程是系统自动生成的,除此之外,两者的区别是 B A.两者执行不同的程序段B前者以用户任务为单位,后者是操作系统控制的单位C. 前者是批处理的,后者是分时的D. 后者可并发执行,前者则不行在单处理机的多进程系统中,进程切换时什么时候占用处理机和占用多长时间取决于进程自 身和进程调度策略。简述作业和进程的区别:进程是一个程序对某个数据集的执行过程,是分配资源的基本单位

13、,作业是用户需要计算机 完成的某项任务,是要求计算机所做工作的集合。一个作业的完成要经过作业提交,作业收 容,作业执行,和作业完成4个阶段。而进程是对已提交完毕程序所执行过程的描述,是资 源分配的基本单位。其主要区别如下:1作业时用户向计算机提交任务的任务实体。在用户向计算机提交作业后,系统将它放入内 存中的作业等待队列中等待执行。而进程是完成用户任务的执行实体,是向系统申请分配资 源的基本单位。2. 一个作业可以由多个进程组成,且至少有一个进程组成,反过来就不成立。3作业的概念主要用于批处理系统中,向UNIX这样的分时系统中没有作业的概念,而进程 的概念则用在几乎所有的多道程序系统中,在Wi

14、ndows中进程又被细化成线程。作业调度的主要功能是检查系统是否满足作业的资源要求以及按照一定的算法来选取作业, 把内存中的作业调度到内存中,并为其创建进程,加入就绪队列中等待进程调度。进程调度 根据一定的短发将CPU分派给队列中的的一个进程,让其执行。2.3进程同步临界资源:把一次仅允许一个进程使用的资源成为临界资源。临界区:访问临界资源的那段程序称为临界区进程互斥应遵循的准则:空闲让进:当没有进程处于临界区时,可以允许一个请求进入邻接区的进程立即进入 忙则等待:当已有进程处于临界区时,其他试图进入临界区的进程必须等待。有限等待:对要求访问临界资源的进程,应保证在有限时间内进入临界区 让权等

15、待:当进程不能进入临界区时,应让出处理机实现临界区互斥的既可以采用软件方法,也可以采用硬件方法(中断屏蔽,硬件指令)硬件方法的优点:适用范围广,简单,支持多个临界区;缺点:不能实现让权等待,可能导 致饥饿现象进程同步:所谓进程同步是指多个相互合作的进程,在一些关键点上需要相互等待或互相交 换消息。信号量分为整型信号量和记录型信号量记录型信号量含有一个整型变量和一个等待队列,整型变量大于0时,表示系统中当前可用 资源的个数,当值小于0时,其绝对值表示系统中因请求该类资源而被阻塞的进程个数。建 立是需要指定资源数量,等待队列置空。信号量的操作原语(信号量记为S)1. P操作,完成下述动作:.S.v

16、alue=S.valueT;.若S.value=0,则进程继续执行,否 则,阻塞该进程,插入等待队列队尾。2. V操作,完成下述动作:.S.value=S.value+l;.若S.value=0,则操作系统从信号量 的等待队列中移出队头,放入就绪队列中,否则,什么也不发生经典同步问题:生产者-消费者问题sem_t full 二 0, empty 二 n, mutex = 1;producer。while(l) P(emp ty)P(m ut ex)生成一个产品V(m ut ex) V(full)consumer。while(1) P(full)P(m ut ex)取出一个产品V(m ut ex

17、)V(emp ty)读者写者问题sem_t mutex = 1, db = 1int rc = 0 reader() P(m ut ex)rc += 1if(rc = 1)P(db)V(m ut ex)读P(m ut ex)rc -= 1if(rc = 0)V(db)V(m ut ex) writ er() P(db)写V(db)上述算法实际上不太利于写者,要想置两者于平等地位,需要再加一个信号量哲学家进餐问题sem _t sti ck5 = 1,1,1,1,1philosopher(int i)/i:04while(1) 思考 if(i % 2 =0) P(s ti cki)/取左边筷子P(

18、s ti ck(i+l)%5)/取右边筷子 else P(s ti ck(i+1)%5)/取右边筷子P(s ti cki)/取左边筷子进餐V(s ti cki)/放回左边筷子V(stick(i+l)%5)/放回右边筷子理发师问题理发师是否完成finish = 0/ 互斥量理发椅个数空椅子个数是否有顾客准备好理发sem_t mutex = 1, bchair = 1, wchair = 5, ready = 0,int waiting = 0barber() while(l) P(ready)理发V(finish)cus to mer() P(m ut ex)if(waiting 6) wait

19、ing += 1V(m ut ex)else V(m ut ex)离开P(wchair)/在等待区坐下P(bchair)/等待理发椅V(wchair)/释放等待区座位V(ready)/告诉理发师可以理发了P(finish)/等理发师理完V(bchair)/离开理发椅P(m ut ex)waiting 二 1V(m ut ex)在操作系统中,要对并发进程进行同步的原因是并发进程是异步的。2.4死锁死锁是指多个进程因竞争系统资源或相互通信而永久处于阻塞状态。 产生原因:系统资源不足,进程推进顺序不当 处理策略:忽略,预防,避免,检测及解除 死锁预防:要想防止死锁的发生,只需破坏死锁产生的4个必要条

20、件之一即可(1)互斥条件,不太可能(2)不剥夺条件,常用与状态易于保存和恢复的资源,如CPU和内存,一般不能用于打印 机之类的资源(3)请求和保持条件(部分分配条件),可以采用静态资源分配法。静态资源分配法要求 进程在其运行之前申请他所需要的全部资源。这种方法既简单又安全,但降低了资源利用率。(4)循环等待条件(环路等待条件),可以采用有序资源分配法,实现思想是将系统中的 所有资源都按类型赋予一个编号,要求每一个进程均严格按照编号递增的顺序来申请资源, 同类资源一次申请完。这种方法存在的主要问题是各种资源编号后不宜修改;而且容易浪费 资源。预防死锁的几种策略,总的来说都对资源的使用施加了较强的

21、限制条件,虽然实现起来较简 单,但却严重损害了系统性能。死锁避免:银行家算法实现思想:允许进程动态的申请资源,系统在每次实施资源分配之前,先计算资源分配的安 全性,若此次资源分配安全,便将资源分配给进程,否则不分配银行家算法有较好的理论意义,但在实际系统中却难以实施。因为难以预先获得进程申请的 最大资源数;运行过程中的进程的个数是不断变化的,所以银行家算法难以解决实际中的死 锁问题死锁检测和解除:(1)资源分配图(2)死锁定理:若S状态的资源分配图不可完全化简(化简过程类似银行家算法),则S 为死锁状态(3)死锁检测算法。需要确定何时使用死锁检测,一种实现方法是每次分配资源后进行死 锁检测,但是会花费大量CPU时间,另一种方法是定期检测,如每隔一段时间检测一次,或 当CPU使用率下降到某个下限值时进行检查。死锁的解除:资源剥夺法,撤销进程法 在有m个进程的系统中出现死锁,死锁进程个数k的取值范围是lk二m。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!