找回密码
 立即注册

微信扫码登录

使用验证码登录

搜索
查看: 45|回复: 0

05.第05节课第二章进程的描述与控制

[复制链接]

5158

主题

3

回帖

1万

积分

管理员

积分
15576
发表于 2024-4-15 08:30:32 | 显示全部楼层 |阅读模式
那么我们再来看一下进程的创建。每当系统中啊。出现了创建新进程的请求后。操作系统呢,便调用进程创建源于create。按照一些步骤呢进行。进程的创建。首先。在操作系统当中。允许一个进程创建,另一个进程。通常把创建进程的进程呢?称为负进程,而把被创建的进程呢?称为子进程。

紫禁城呢,可继续创建更多的孙进城,由此便形成了一个由晋城的这样一个层次结构。比如,在unix系统中进程呢,与其子孙进程呢,共同一个组成一个进程家族。我们来看一下。操作系统调用create创建源于创建新进程的过程。首先呢是。申请。后排PCB,然后呢,为新进程分配其所需的资源。接下来呢,

初始化。进程控制块。最后呢,如果进程就绪,队列呢,能够容纳新进程,就将新进程呢插入到就绪队列,这是进行了创建。另外呢,我们还有进程的终止,首先我们来看一下我们因为紫禁城呢,可以继承父晋城的所有资源,例如继承父晋城打开的文件。建成附近层所分配的缓冲区,当紫禁城被撤销的时候呢,

应将其从附近城那里获得的资源呢,归还给附近城,另外呢,在撤销附近城市也必须同时撤销其所。有的紫禁城。为了标识进程之间的家族关系,在PCB中呢,设置了家族关系表项,以标明自己所有的父进程以及所有的子进程。进副进程呢,不能拒绝其子进程的继承权。那么,在WINDOWS中呢?这里大家注意,在WINDOWS中呢?

不存在任何进程,层次,结构的概念,所有的进程呢,都具有相同的地位。如果是一个进程创建,另一个进程时创建进程获得一个句柄,其作用呢,相当于一个令牌可以用来控制了被创建的进程,但是呢,这个句句柄呢,是可以进行传递的,也就是说获得了句柄的进程呢,就拥有控制其他进程的权利。权利因此呢,

进程之间不再是层次关系了,而是获得句柄与否,控制与被动预测的这样一个简单关系。引起做,引起创建进程的事件呢?那么,有用户登录作业调度,提供服务和应用请求。为了使进程程序之间能够并发执行,应将它们首先另为它们首先创建进程。导致一个进程去创建,另一个进程的这样一个事件呢,就由我们的作业登用户登录,作业调度,应用请求和提供服务,

我们首先来看一下用户登录。在分时系统中呢,用户在终端进入登录命令后,若登录成功,系统将为该用户呢创建一个进程,并将它插入救助队列中。那么,作业调度呢?是在多道批处理系统中。当作业调度程序呢,按一定的算法调度到某个作业时,将它们装入内存,为它们创建进程,并将它们插入就绪队列中。提供服务呢,

是运行中的用户程序呢,提出某种请求后,系统呢,将专门创建一个进程,用来用为用户所需的服务呢,那么来提供这些所需的服务。比如说用户程序要求进行文件打印时,操作系统呢,将为它创建一个打印进程,这样呢,不仅可以使打印进程永远用户的并发执行,还便于。计算完成打印任务所花费的这样一个时间,最后那个是应用请求是吧?在在刚才的这三种情况当中呢,

比如说用户登录作业调度提供服务当中呢?都是以系统内核。为用户创建一个新进程,而这类事件呢,则是由用户自己进程。创建新进程。以便呢,使新进程,以同创建者进程并发运行的方式来完成特定任务。比如说某用户进程呢?需要不断的从键盘中断读入数据,然后呢,再对输入的这样一个数据来进行相应的处理,然后再以相。处理结果以表格的形式呢?

在屏幕上显示,然后呢?再对输入数据呢?进行相应的处理,该用户进程呢?为了使这几个操作的并发执行已完成任务的完成,以加速任务的完成,可以分别建立键盘输入进程。表格输入进程。这是引起创建进程的这样一个事件。刚才我们讲过进程的创建呢,它的过程呢,是申请空白空PCB为新进程的分配所需的资源和初始化控制块,以及呢,如果用户进进程就是对接了,

能接纳新进程。便使新进程呢,插入就绪队列,那么我们来看一下这个过程,首先呢,申请空白PCB为新进程,请求获得唯一的数字标志符。并从PCB结构中索取一个空白PCB。第二个为新进程分配。其运行所需的资源包括各种物理和逻辑资源,如内存文件IO设备和CPU时间等。这些资源呢,从操作系统或从其父进程获得新进程,对这些资源的需求情况呢,一般也要提前告知操作系统或者父进程。

比如说为新进行的程序和数据及用户呢,找分配了必要的这样一个存内存空间操作系统啊,必须知道新进程所需内存的大小。那么,比如说对于批处理作业,其实大家可以用为用户提供创建时所提供第二种。若是为应用进程,创建子进程呢?也应该是在进程提出创建进程的请求中呢?给出所需内存的大小第三种,对于交互型作业,用户可以不给出。内存的需求,而又系统分配一定的空间,如果新进程呢,

要共享某个已在内存中的地址,空间则必须建立相应的连接,那么这是我们为新进程呢,分配其所需需的运用资源的这样一个情况。第三个过程呢,是初始化。进程工程块PCB pcp的初始化呢,它包括初始化标识信息,将系统的分配的标识符和附进程标识符填入新的PCB中。第二步是初始化处理器状态信息使程序计数器呢?指向程序的入口地址,使在指针呢?指向在顶。第三步,初始化处理及控制信息将进程的状态呢?

为设置为就绪状态,为或者为是就就禁止就绪状态。对于优先级了,通常情况下设置为最低优先级。那么,这样一些部分。第四步呢,就是如果。进程就绪,队列能够接纳新进程,就将新进程呢?加入就绪队列,这是进程的这样一个创建的这样一个步骤。我们来看一下进程呢,有创建也有终止。

引起进程终止的事件呢,有我们的正常结束,有异常结束,以及呢,外部干预,外界干预。正常结束了表示进程的任务已经完成,准备退出运行在任何系统中都应有一个用于表示进程已经运行的指示。在批处理系统中呢,通常会在程序的最后一排。安排一条指令用于向操作系统的表示任务已经结束,当程序运行到这样一个指令时,产生一个中断。那么,去通知操作系统的本进程已完成,

在分析系统中,用户可利用这样一个lots of。来表示,进程已运行完毕,此时呢?时间。此时呢,同样产生一个中断。去通知操作系统呢,已经运行完毕。那么,还有异常结束,异常结束了是指进程呢?在运行时发生了某种异常事件,使程序呢?

无法继续运行常见的异常事件呢?有第一个越界错,这是指程序所访问的存储器。区已经超出该进程的区域第二个保护措是进程事务,去访问一个不允许访问的资源和文件,或者以不适当的方式进行访问,比如说。进程呢,试图去写一个只读文件,第三个非法指令,把指程序试图去执行一条不存在的指令,出现该错误的原因呢,可能是程序错误的转移到数据区。把数据当成了指令第四个特权指令错使用户进程呢,试图去执行一条执行起操作系统执行的指令。

运行超第五个运行超时,使进程的执行时间超过用指定的最大值第六个等待超时。指进程等待某事件的时间呢,超过了规定的最大值第七个算术运算错使程进程呢,试图去执行一个被静止的运算,比如说被零除第八个。是IO故障,这是指IO过程中呢,发生了错误。那么我们再看一下外界第三部分,外界干预,外界干预呢,是指进程因外界的请求而终止运行,这些干预呢,有操作员或操作系统的干预,

比如说系统中发生了某事件。比如,例如发生了系统死锁,由操作员或操作系统呢,采取终止某些进程的方式呢,使系统从死锁状态中解决出来。第二个呢,是父进程请求当子系统,呢子进程已完成了,父进程要求的某些任务时,父进程呢,可以提出请求该子进程。请请求结束该子进程,第三个父进程终止,当父进程终止时,

它所有的子进程都应该结束。因此呢,操作系统在终止父进程的时候呢,也应该将它的子孙进程呢,都进行终止。那么,我们来看一下。系统进程终止了,系统系进程,信息进程的终止过程,如果系统中发生的要求禁终止进程的某事件时。操作系统啊,被调用进程终止源于按照一些过程呢去终止指定的进程,比如说第一步。根据被终止进程的标志符,

从PCB集合中呢,检检索出该进程的PCB。从中读出该进程的状态第二步,若被终止进程正处于执行状态,则应立即终止该进程的执行,并至调度标志为真,用于指示该进程被终止后应从。重新进行调度第三步,若该进程还有子孙进程,则应将所有的子孙进程呢都予以终止,使他们呢?防止他们成为不可控的进程,第四步将终止进程,所有拥有的全部资源呢,归还给父或者归还给父进程或者归还给操作系统。

第五步呢,将终止进程。PCB所在队列中移出,等待其他进程呢。其他等待其他程序呢,来搜取信息,那么这是我们进程的终止过程,那么我们再看一下进程的阻塞与唤醒。那么,引起进程阻塞唤醒的事或唤醒的事件,那么有这有这些有几类事件呢?会引起进程阻塞或被唤醒,比如说。向系系统请求共享资源失败,等待某种操作的完成,

新数据尚未到达,等待新任务的到达,这些呢,都有可能引起进程阻塞或被唤醒。比如说第一个向请求系统请求共享资源失败进程,在向系统请求共享资源时,由于系统已无足够的资源分配给他,此时进程呢,因不能继续执行而转为阻塞状态。例如一个进程,请求使用打印机,但是由于系统呢,已将打印机呢分配给了其他进程,以无可再分配的打印机,这时呢,

请求者进程呢,只能被阻塞。仅在其他进程释放出打印机的时候呢,进程才被唤醒。第二种情况,等待第二种情,第二种方,第二个方面呢,等待某种操作的完成,当系统呢,将进程启动某种操作后。如果该进程呢,必须在完成该操作之后呢,才继续执行,则经则应该相加兼相,

该先将该进程阻塞。以等待。操作完成,比如说进程启动了,某IO设备如果只有在IO设备完成了,指定的IO操作任务之后呢,进程才能继续执行。则该进程呢?在启动了IO设备后呢?便应自动进入进阻塞状态去等待。在IO操作完成后呢?再o中断处理程序呢?将该进程唤醒。设备呢,便于自动进入阻塞状态,

等待在IO操作后呢,我们再由中断处理程序呢,将该进程唤醒。第三个方面,新数据尚未到达,对于相互合作的进程,如果一个进程呢,需要获得另一个进程提供的数据之后呢,才能对该数据进行处理。那么,只要激活所需的数据呢?尚未到达进程面,只有阻塞。比如说有两个进程,进程a呢?

用于输入数据,进程b呢?用于对数据进行加工处理。假如a尚未将数据的输入完毕,则进程b呢?将因没有所需处理的数据呢?而阻塞一旦进程a把数据a把数据输入完毕后呢?便可唤醒进程b第四个方面。等待新任务的到达,在某些系统中呢?每当往往设置一些特定的系统进程,当这种进程完成任务后,便把自己组织起来,等待新任务的到达。比如说在网络环境中发射进发送进程。

其任务呢,主要是发送数据包,若已有的数据包全部发送完毕而又无新的数据包发送,则是发送进程呢,便把自己阻塞起来。仅当有新的数据包发送时,才唤醒发送进程,那么这是我们引起进程阻塞和唤醒试验的这样一些。这样一些部分,那么我们再看一下进程的阻塞过程,正在执行的进程呢,如果发生了某些事件。比如说发生了。像发生了我们,我们的像气球发生了,

刚才我们讲的这些某些事件之后呢,系统变通过电路阻塞,原因不乐,可将自己阻塞。那么由此可见呢,主摄进程呢,是一种主动行为,就是自己主摄自己,那么如果主摄是自己主摄自己,那么主摄是自身的一种主动行为,就是自己主摄自己。进入阻塞状态后呢?由于该进程还处于执行状态,所以应该先立即停止执行,把进程控制块的线性状态呢?

由执行改为阻塞。同时呢,将PCB呢插入到阻塞队列,如果系统中设置了因不同事件阻塞的多个阻塞队列呢,就将本进程插入具有相同事件的阻塞队列,最后呢?转调度程序重新调度,将处理器分配给另一就区进程并进行切换,那么也就说保留主测进程的处理器状态,按新进程的PCB中的处理器状态呢?设置CPU的环境。那么我们再看一下进程的唤醒过程,当被阻塞程序所期待的事件发生后呢?比如它所启动的IO操作已完成,或者其他的它的数据已到达,

或者说它的任务呢?又有新的任务的到达,那么则。就相关的进程呢,去调用唤醒源语将该。当等待该事件的进程唤醒,唤醒执行的过程呢,是首先把被阻塞的进程呢。从等待该事件的阻塞队列中移出,将其PCB中的线性状态呢,由阻塞改为就绪。然后将该PCB呢插入到旧序队列中。那么我们这里呢,应该注意阻塞原语和唤醒原语是一对作用,刚好相反的原语,

那么在使用它们时呢,必须承兑的使用,如果在某进程中调用了阻塞原语。这必须在与之相合作的或其他相关的竞争中安排一条相应的唤醒言语,以便能唤醒被阻塞进程,否则阻塞进程呢,便会因不能被唤醒而永久的处于阻塞状态并。不能再进行运行,那么这是我们的唤醒过程,那么接下来我们看一下进程的挂起与激活,当进在系统中呢?出现了进程挂起的事件后呢,操作系统便利用挂起源于将指定进程呢或处于阻塞状态的进程挂起。那么,挂起的执行操作呢?

是首先检查被挂起进行的状态,若处于活动进程,活动处就绪状态,则将其改为就绪状,就禁止就绪。对于活动阻塞状态的进程呢,则改为禁止阻塞。那么,为了方便用户或副进程的考察,该进程的运行情况呢?而把该进程的PCB复制到某些。特定的类型区域,然后呢,若被挂起了进程性的执行,则转向调度程序的重新调度。

那么,接下来我们看一下进程的激活过程,当系统中发生的激活进程的事件时,操作系统呢,利用激活源于。将指定进程激活。激活源于了先将进程从外层调入内存检查,该进程的限行状态若是禁止就绪了,便将其改为活动就绪。若为禁止阻塞,便将其改为活动阻塞。若是采用的是抢占调度策略呢?每当有进程禁止就绪,进程就就就绪,进程呢?

被激活而插入就绪队列时。则应检查是否要进行重新调度,则由既调度进程呢,将被激活的进程与当前进程两者之间的优先级呢进行比较,如果呢,被激活的进程呢,它的优先级高。则。将处理器呢分配给刚刚被激活的进程,如果被激活的优先进程的优先级低,则不必重新调度进程。那么,如果它的优先级低了,不必重新调度进程,否则如果它的优先级高,

则剥夺当前进程的运行,将处理器呢分配给刚刚被激活的这样一个进程。接下来我们看一下进程的同步,在操作系统中引入进程后呢,一方面可以使系统中的多道程序的并发执行,这不仅能有效的改善系统资源利用率。还可显著的提高系统的吞吐量,而另一方面呢,却使系统呢变得更加复杂,如果不能采取有效措施呢,对多个进程进行。妥善的管理,必然呢,会因为这些进程呢,对系统资源的无序斟酌,

而给系统造成混乱,这是每次处理的结果,存在不稳定性。即显即显现出其不可再生性。那么我们看一下基本同系统性进程同步的基本概念,有我们两种形式的制约关系,有我们的临界资源,临界区和同步计算应遵守的规则。进程之间。同步机制的主要任务呢,是对多个相关进程在执行次序上进行协调。使并发执行的租进程之间呢?能按一定的规则共享系统资源,从而很好的合作,从而使程序呢?

应该有。可以具有可在线性,比如说我们的。一个一个公司那么处理处理事务,首先呢,我们提出这样一个项目。然后呢?这个项目呢?我们再进行规划,那么规划之后呢?我们讨论它的这样一个是否了合乎要求,合乎规定和是否合规定?遵遵守规定,那么接下来呢,我们再将它放入我们的公司的某个部门当中,

那么进行一个。进行一个检验,那么最后呢?我们再报给我们公司的这样一些其他的部门,那么申请这样一个。申请我们的这样一个资金,或者说进行我们的这样一个资源,那么进行一个实施,那么也就是说我们进程呢?我们这些部分呢?要进行一个同步,那么进行一个。来进行一个进行一个相互的协调,那么又比如说我们,比如说有多个进程呢?

在执行次序上进行协调,唉,也比如说我们的。在一个。在一个部门当中,部门当中呢,有一个员工a,他负责了嗯。写这样一个方案,那么员工b呢呃。负责了修改方案,那么员工a。写好了方案之后呢,将它放在我们的计算机当中,然后员工b呢,

然后才在计算机中呢,取出这样一个。方案那么打印出来了,进行修改,那么也就是说我们的要首先呢是员工a。设计了这个方案之后呢,员工b了才能够取出这个方案,也就是说它有一定的执行次序,比如说我们的相关进程,在次执行次序上呢,要进行协调。那么,接下来我们再看一下进程同步的基本概念。我们首先看一下两种形式的制约,在多大情绪环境下,

对于一个处理器同一个系统中的多个进程,由于他们共享系统中的资源,为了满。完成某一任务而相互合作,所以它们之间呢,可能存在着两种形式的租约关系,第一个呢,是间接制约关系,第二个呢,是直接制约关系,那么什么是间接制约关系呢?多个程序在并发执行时,由于共享系统资源,比如说CPU IO设备,致使这些把并发执行的程序之间呢,

形成了相互制约的关系。比如说像打印机,磁带机这样的临界资源。必须保证执行程序的形成,相互制约的关系。比比如说这些进程呢,只能互只能互斥的访问。由此呢,在这些进程,这些程序之间呢,这些进程之间形成了源于对该资源共享的所谓间接制约关系。为了保证这些进程呢,能够有效的执行,对于系统中的这些资源呢,必须由系统实现统一分配,

而在用户实行实行使用之前呢,应该提出申请,而不用户用,不允许用户呢直接使用。那么,这是间接制约关系,那么直接制约关系呢?比如说,某些应用程序为了完成某任务而建立的两个和多个进程,这些进程呢,将为完成同一项任务而相互合作。进程之间的直接制约关系呢,就是源于它们之间的相互合作。比如说两个相互合作的进程,输入进程a和计算进程b,

它们之间共享一个存储区进程a呢,通过缓冲区向b提供数据。进程必从缓冲区中提出数据,并对数据进行处理。但如果该缓冲区为空的时候呢?计算进程呢?便并不能获得。数据而被阻塞,一旦数据一旦进程a把数据呢输入缓冲区后变成该进程b唤醒返返回,另外呢,当缓冲区已满时,进程a呢不再不能再向缓冲区投放数据而被阻塞。进程b呢,变相缓冲区数据取走后呢,便可唤醒缓冲,

唤醒a在多大程序环境下呢?由于存在着上。存在着直接制约关系和间接制约关系进程。在运行过程中呢,能否获得处理及运行呢,以及怎样的速度运行,并不能由进程呢本身控制。也就是说。这是进程的异步性,由此会产生对共享变量或数据结构等资源不确定的这样一个访问次序,从而造成进程每次执行结果呢不一致。这种差错呢,往往与时间有关,不称为与时间有关的错误。为了杜绝这种差错呢,

必须对进程的执行次序呢进行协调,保证租进程的呢,按次序进行。那么,接下来我们再看一下临界资源,那么什么是临界资源呢?比如说我们举个例子,比如说硬件资源,比如说打印机,磁带机都属于零件资源。输进程呢之间应该采取相互互斥访问方式,实现对资源的共享。那么也就是说,所谓的临界资源呢?就是同一时间只能由一个进程访问的。

你你同一进程同一时也就说临界资源,比如说同一时间只能有一个进程,所使用的所访问的这样的资源呢,我们称之为临界资源。那么什么是?临界区呢,那么不论是硬件硬件,临界资源还是软件临界资源,多个进程呢,必须互斥了,对他们进行访问,那么我们把每个进程中访问临界资源的那。它的代码呢,称为临界区,那么比如说如果能保证能护士的进入自己的临界区,

便可实现进程对。临界资源的互斥访问,因此呢,每个进程在进入临界区之前,应该对预访问的临界资源进行检查,看它是否被访问。如如果此时临界资源呢?未被访问进程便进进程呢?便可进入临界区对该资源进行访问,由此并设置它被访问的标志。如果此刻临界资源呢?正在被某进程所访问。那么。本进程呢,不能进入临界区,

因此呢,必须在临界区前面加上一段用于进行检查的代码,把这段代码呢称为进出进入区。相应的,在临界区的后面呢,也加上一段也加上一段也加上一段称体的。你加上一段呢,称为退出区。用于将临界区正在被访问的标志呢?恢复为未被访问的标志。进程中,除了进入区,临界区和退出区之外的其他部分代码呢,都升为剩余区,那么我们可以呢?

因此,把一段访问临界资源的循环进程呢?描述为进入区,临界区,退出区和剩余区,那么最后我们来看一下同步计收应该遵循的规则,那么是四个是四个规则,那么这四个规则大家要要进行,咋要记住?也就是空闲让进忙着等待有限,等待让权等待,为了实现进程互斥的进入自己的营业区呢,可用软件方法更多的是在系统中设立专门的同步机构,来来协调各进程之间的运行。所有的同步机制呢,

都应该满足四条准则,大家要记住这四条准则,第一条呢是空闲让进,也就是说当无进程处于临界区时,表面临界资源呢,处于空闲状态,应该允许一个。请求进入临界区的进程呢,立即进入自己的临界区,也有效的进入你访问临界资源,就是空闲让进。忙着等待呢,是当已有进程进入临界区时,表明临界资源正在被访问,因而其他试图访问临界区的进程呢,

必须等待。以保证了对临界区的互斥访问,这是我们的。忙着等待第三个呢,是有限等待有限等待呢,要求访问进临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入死等的这样一个状态。这是有限等待,还有一个是让权等待,让权等待呢,是当进程不能释放进入自己的临界区时,应立即释放处理器,以免进行了陷入盲等的状态,那么所以说大家呢,

要记住这四个基本的原则。也就是我们的空闲让进忙着等待有限,等待让权等待这四个部分,那么那那么就是说这四个基本的准则,比如说空闲让进。忙着等待有限,等待让权等待,那么这四个规则就是同同步机制呢?应当遵循的规则。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5432考试网 ( 蜀ICP备2022024372号|川公网安备51152402000101号 )|网站地图

GMT+8, 2024-5-3 00:36 , Processed in 0.075888 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表