让权等待-进程管理-重难点答疑
2024年01月14日 11:01
来源于:烟月稀财经笔记
浏览量:次
重难点答疑进程基本概念的理解进程是操作系统进行资游分配和独立运行的基本单位,理解进程需掌握以下几个问题: 进程引入的目的引入进程的主要目的是
重难点答疑进程基本概念的理解进程是操作系统进行资游分配和独立运行的基本单位,理解进程需掌握以下几个问题: 进程引入的目的引入进程的主要目的是使内存中的多道程序能够正确的并发执行。...
重难点答疑
进程基本概念的理解
进程是操作系统进行资游分配和独立运行的基本单位,理解进程需常握以下几个问题:
- 进程引入的目的
引入进程的主要目的是使内存中的多道程序能够正确的并发执行。为保证进程能够正确的并发执行,进程实体具由自己的数据结构及同步机制,进程实体的数据结构包括:PCB(进程的唯一标识符)、程序段和数据段,各个进程通过宏观上进程同步(互斥访问)的方式实现进程间的通信,保证进程并发执行。 - 进程和程序的区别与联系
进程是程序的运行过程,它们之间既有联系又有区别,除了从结构上区分外,还主要从动态性并发性、独立性、和异步性上比较进程和程序的区别。结构上:进程是有PCB、程序段和数据段组成,而程序是组有序的指令的集合。动态性:进程和程序的基本区别。进程是程序的一次执行过程,是动态创建及消亡的过程,具有生命周期,是动态的;而程序是一组代码的集合,是静态的,是长期保存的。并发性:同一段时间间隔内由多个进程实体同时存在千内存中,并且正确地运行,提高系统资源的利用率,也是引入进程的主要目的,而程序是静态,不存在运行并发性。独立性:进程是操作系统进行资源分配和独立运行的基本单位,拥有独立的资源,进程可以创建进程,而程序不仅具有独立的资源,也不能创建新的程序。异步性:多个进程实休能够在同一时间段同时运行,一个任务完成可能不是按照正常顺序一次性运行完毕,而是走走停停完成的。程序不具有该特征。 - 进程基本状态。
执行、就绪、阻塞之间的状态转换及转换的条件。 - 进程控制块
进程的唯一标识,如果没有进程控制块,说明进程没有创建成功,就不能进行并发执行。
进程同步的基本概念
对进程同步的理解,重点是对以下概念较好的理解及掌握:
- 临界资源
指同一段时间内只允许 一个进程访问的资源,该资源包括可抢占资源和不可抢占资源,进程同步实质是对临界资源进行互斥的访问。死锁即访问不可抢占资源而进入阻塞状态的情况。 - 临界区
进程访问临界资源的那段代码称为临界区。为了实现互斥的访问临界资源,两个或多个进程不能同时进入临界区,这就引出了同步机制及后期的经典同步问题。 - 同步机制应遵循的准则
“空闲让进” “忙着等待” “有限等待” “让权等待“ 4个准则,考生要理解每一个准则如果不遵循,系统会出现什么后果。
经典进程的同步问题
以生产者和消费者为例,分析经典进程的同步问题的解题方法:
- 确定进程
首先根据问题的含义,确定问题中有哪些进程,因为进程是动作的主体,在生产者——消费者问题中,每个生产者和每个消费者都是动作的主体,所以他们都是独立的进程。然后考虑每个进程应该完成哪些动作。比如生产者的动作就是不断地生产下一个产品,把产品放到空闲缓冲区中。最后,根据进程所做的动作为每个进程写出不同的同步算法。因所有的生产者和消费者的动作都一样,所以算法是一样的。 - 确定互斥和同步的关系
进程间相互制约的关系有两种:一种是进程之间竞争使用临界资源,只允许单个使用,称互斥关系(竞争关系);另一种是进程之间协同完成任务,在关键点上等待另一个进程发来的消息,以便协同一致,是一种协作关系,也称同步关系。首先考虑问题中哪些资源属于临界资源,需要互斥;哪些地方有哪些进程在哪些地方协调完成哪些动作,需要同步。如生产者-消费者问题中的空闲缓冲区满缓冲区(或缓冲区中的产品)以及in、out变量(in、out变量被当作一个组合,看成一个资源)均是临界资源,对它们的访问都需要互斥。 - 整理实现进程互斥的思路
为实现临界资源的互斥访问,可以为每类临界资源设置一个信号量,初值为临界资源的初始个数,并在算法中访问资源以前的位置插入信号量的wait操作,完成临界资源访问的位置插入信号址的signal操作,另外,要为每一类同步关系设置一个初值为0的信号最,在算法中等待动作的位置插入信号址的wait操作,在被等待的动作完成的位置插入信号址的signal操作。如生产者-消费者问题的空闲缓冲区,需为它设置一个初值为n的信号鼠empty;生产者放产品时要使用它,所以,在放产品之前加wait(empty);产品从缓冲中取走后,该缓冲就不再被使用,它被消费者释放,归还给系统,所以取走产品之后要加signal(empty) - 正确的程序书写及阅读方式
根据上述分析过程的思路书写程序,同时根据互斥和同步的关系,正确阅读程序。如由于生产者-消费者问题属于并发互斥访问,因此在阅读时应采取交替阅读的方式。
死锁的基本概念
死锁概念主要从以下三方面理解:
- 死锁产生的原因
死锁产生的根本原因是资源竞争和进程推进顺序非法。操作系统的基本特征是并发和共享,因为多道程序的并发操作,使进程推进顺序是异步进行的,因此就为死锁产生提供了条件;共享资源是提高操作系统资源利用率的最根本方法,但同时也为多个进程同时访问共享资源出现竞争提供了条件。所以资源竞争和进程推进顺序异步是操作系统不可避免的,可见死锁产生的可能性是不可避免的。 - 产生死锁的必要条件
死锁产生的四个必要条件:“互斥条件” “请求与保持条件” “不可剥夺条件” “环路等待条件” ,考生重点思考,为什么任一条件不满足就不会产生死锁。 - 预防死锁的策略
依据产生死锁的四个必要条件,预防死锁的方法通常采用破坏四个必要条件的其中一个即可,其中互斥条件不能破坏,其它三种条件都可以通过什么样的方式方法破坏,是考生学习应思考的问题。 - 死亡与饥饿的区别
所谓死锁是指多个进程(至少两个进程及以上)因竞争不可剥夺性资源(或系统共享资源)而使多个进程处于相互等待状态(僵局),若无外力作用,所有进程都将无法向前执行。所谓饥饿是指一个或多个进程无限期阻塞(lndefiniteBlocking)称饥饿(Starvation),即一个进程多个在信号最内无穷等待的情况。饥饿产生的原因是指系统在动态分配资源的过程中,根据分配策略,有的进程可能会出现长时间等待,或者长时间某些进程不能完成任务或者完成任务没有意义的现象称为饥饿。饥饿不一定会出现死锁。其中死锁和饥饿的主要区别:一是进入饥饿状态的进程可能只有一个,而处于死锁状态至少两个进程。二是饥饿状态可能是就绪状态,只是在长时间等待,而死锁状态的进程处于阻塞状态。 - 银行家算法理解
避免死锁的算法中最有代表性的算法是银行家算法,对银行家算法重点从以下二点内容理解:
首先明白避免死锁的实质在于如何防止系统进入不安全状态。不安全状态的检测通过安全算法来实现。考生要理解不安全状态不等于死锁状态,也不是必定会导致死锁;然后进一步理解,不安全状态会使某些进程因请求的资源无法满足而进入饥饿状态,如若多个进程进入不安全状态极易出现死锁状态。在分配资源之前首先通过安全性检查算法找出安全序列,然后再分配资源,如若不满足安全序列,则不分配资源。
在银行家算法中用到的可利用资源向量Availab但最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need等数据结构,以及在安全性检查算法中用到的工作向量Work和完成向量Finish等数据结构,考生应对它们的物理意义和相互关系有较好的理解。
安全性检查算法的目的是寻找一个安全序列。考生应了解,进程在满足什么条件时,其对应资源的最大需求可以得到满足,则可顺利完成;当进程完成后,考生应理解如何修改工作向最Work和完成向最 Finish。
在利用银行家算法避免死锁时,考生要了解什么时候系统可以为提出资源请求的进程实行分配资源;什么时候才可以正式将资源分配给进程。
关键词:
猜你喜欢
-
部位(学生班里裸露隐私部位引深思:家校社如何共同应对)
2024-05-26
-
推理电影(趁着假期,这8部烧脑电影看起来)
2024-05-26
-
信息学院(客观理性地聊聊湖南信息学院)
2024-05-26
-
中国汉服(汉服是指中国传统服饰吗?)
2024-05-26
-
乳腺有结节(乳腺结节的症状及治疗方案推荐)
2024-05-26
-
宫颈癌(得了宫颈癌,麻烦一个接一个光4个症状就让人吃不消)
2024-05-26