您好、欢迎来到现金彩票网!
当前位置:红彩会 > 分派优先级 >

操作系统进程管理

发布时间:2019-07-25 21:00 来源:未知 编辑:admin

  并发进程在执行次序上的协调,以达到有效的资源共享和相互合作,使程序执行有可再现性

  进程间可能存在的制约关系:间接制约(并发进程互斥的访问临界资源),直接制约(进程需相互合作执行)

  软件方法:信号量,管程(遵循原则:空闲让进,忙则等待,有限等待,让权等待)

  由进程同步而引起的一些经典的进程同步问题(生产者消费者问题, 哲学家进餐问题, 读写问题)可以在我的另一篇文章中查看.

  管程(英语:Monitors,也称为监视器)是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件设备或一群变量.

  代表共享资源的数据结构以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序共同构成了一个操作系统的资源管理模块,我们称之为管程.

  3.信息掩蔽,管程中的数据结构只能被管程的过程访问,这些过程也是在管程内部定义的,共管程外的进程调用,而管程中的数据结构及过程(函数)的具体实现外部不可见.

  管程的条件变量:条件变量是在管程内部的数据结构,且只有在管程内才能被访问,它对管程内所有过程是全局的,只能通过x.wait(),x.signal()两个操作访问.

  x.wait():正在调用的管程因x条件需要被阻塞或挂起,则调用x.wait()将自己插入到x条件的等待队列上,并释放管程,知道x条件变化.

  xsignal():正在调用管程的进程发现x发生了变化,则调用x.siganl(),重新启动一个因x条件而阻塞或挂起的进程,如果存在多个这样的进程,则选择其中的一个,如果没有则继续执行原进程,而不产生任何结果.

  自古以来熊和鱼掌不可兼得,同样对于进程来讲,作为调度和分派的基本单位同时又拥有资源这会加重系统开销.那么能否将它们分开呢?对于拥有资源的单位,并不频繁的进行上下文切换,于是线程便诞生了.进程作为拥有资源的单位, 线程作为独立调度和分派的单位. 一个进程可拥有多个线程. 在多线程中, 可将每个线程称为一个任务. 宏观上, 进程也是任务.

  线程,有时被称为轻量级进程(Lightweight Process, LWP),是程序执行流的最小单元.相对的,传统的进程叫做重型进程.

  调度的基本单位:传统OS中,进程是独立调度和分派的基本单位,占有资源独立运行,但是在引入线程的OS中,线程是调度的基本单位,可以独立运行的,此时进程已不是可以独立运行的实体.

  并发性:一个进程中拥有多个线程,称为多线程.这多个线程可以并发运行.不同进程间的线程也可并发运行.

  拥有资源:进程是系统中拥有资源的基本单位,而线程只有一点必不可少的,能保证独立运行的资源,这大大减少了系统的开销.

  独立性:每个进程拥有一个独立的地址空间和资源,除了共享全局变量以外不允许其他进程访问.同一进程中的线程除了只拥有自身必须的少量资源,它们共享进程的内存地址空间和资源

  系统开销:进程因为拥有资源,每次调度进程时必定要对其分配回收,系统开销大.线程只占有极少的资源,其系统开销远低于进程.

  系统为每个进程配置了一个进程控制块PCB用于管理进程.同样,也有一个线程控制块TCP用户控制和管理线程.它包括:

  为了使参与并发执行的程序(含数据)能独立的运行,必须位置配置一个专门的数据结构,称为进程控制块(PCB),系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,由程序段、相关数据段和PCB三部分构成了进程映像(进程实体)。所谓创建进程,实质上是创建进程映像中的PCB;而撤销进程,实质上是撤销进程的PCB,值得注意的是,进程映像是静态的,进程则是动态的。PCB是进程存在的唯一标志。

  2)并发性,提高资源利用率,单处理器系统中,是某个时间段的并发,某个时刻的并行。

  3)独立性,进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡是为创建PCB的程序都不能作为一个独立的单位参与运行。

  4)异步性:由于进程的相互制约,使得进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此,在操作系统中必须配置相应的进程同步机制。

  5)结构性:每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是由程序段、数据段和进程控制段三部分构成。

  1)运行状态:进程正在处理机上运行。在但处理机环境下,每一时刻最多只有一个进程处于运行状态。

  2)就绪状态:进程已处于准备运行的状态,即进程或得了除处理机之外的一切所需资源,一旦得到处理机即可运行。

  3)阻塞状态:进程正在等待某一事件而暂停运行,如等待某一资源为可用(不包括处理机)或等待输入、输出完成。即使处理机空闲,该进程也不能运行。

  4)创建状态:进程正在被创建尚未转到就绪状态。创建进程通常需要多个步骤:首先申请一个空白的PCB,并向PCB中填写一些控制和管理进程的信息;然后有系统进一步处理资源释放和回收工作。

  5)结束状态:进程正从系统中消失,这可能是进程正常结束或其他原因中断退出运行。当进程需要结束运行时,系统首先必须置该进程为结束状态,然后在进一步处理资源释放和回收等工作。

  就绪到运行:处于就绪状态的进程被调度后,获得处理机资源(时间片),于是进程有就绪转为运行状态

  运行到就绪:处于运行状态的进程在时间片用完后,不得不让出处理机,从而进程由运行状态转换为就绪状态。在可剥夺的系统中,更高优先级的进程就绪时,也会将其置为就绪,执行更高级的进程。

  运行到阻塞(主动行为):在进程请求某一资源的使用和分配或等待某一事件的发生(I/O操作的完成)时,他就从运行状态转换为阻塞状态。

  阻塞到就绪(被动行为):当进程等待的时间到来时,如IO操作结束或中断结束时,中断处理程序把相应进程的状态由阻塞状态转为就绪状态。

  额外的时间开销:管理和协调、跟踪、填写和更新有关数据结构、切换进程、保护现场;

  PCB是进程存在的唯一标志,创建进程时,创建PCB,进程结束时,系统将撤销其PCB;

  处理机状态信息:通常寄存器值,指令计数器值、程序状态字PSW值,用户栈指针值;

  所有进程的PCB通过链表组织成为一个队列。适用于进程数目不多的系统。如:windows操作系统;

  PCB按进程状态不同,组织成不同的表格:就绪进程表。执行进程表(多处理机系统中)及阻塞进程表;

  例如:假设内存中有3个进程A、B、C,他们的程序代码已全部装入内存,若A、B

  两进程需要执行12条指令,C进程需要执行4条指令。且C进程执行到底4指令处必须等待I/O

  进程进入内存中,分配器程序给该进程建立PCB以及其他运行的必要信息,并加入就绪队列;

  此时该程序只差处理机就可以执行了;”未执行“ 可分为 “就绪” 和  “阻塞”(读写文件,磁盘操作台面了)

  新建状态:进程已经创建,但未被os接纳为可执行进程;(PCB已存在,即进程标识符,该进程的父进程,该进程的所属用户,进程状态情况; 但是该进程的某些资源未存在);

  进程被交换到外存,此时进程处于挂起状态;进程PCB仍然保持在内存,程序和数据移到外存;

  3、操作系统的需要,操作系统可能需要挂起后台进程或一些服务进程,或者某些可能导致系统故障的进程;

  2、运行系统特定的指令,包括读/写控制寄存器的指令、基本I/O指令以及与存储器管理有关的指令,及一些特定的内存区;

  操作系统内核:操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是操作系统工作的基础;

  现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序,设备驱动程序),基本的,公共的,运行频率较高的模块(时钟管理,进程调度等)以及关键性数据结构独立开来,使之常驻内存,并为它们紧凑特殊保护,通常把这一部分称为操作系统内核;

  中断处理(没有中断就没有多道程序设计的实现)、 时钟管理 、  原语操作、 统计 、  检测;

  2、为进程分配空间:用户地址空间、用户栈空间、PCB空间。若共享已有空间。则应建立相应的链接;

  3、初始化PCB:进程标识、处理机状态信息,进程状态;4、建立链接;若调度队列是链表,则将新进程拆入到就绪或就绪/挂起链表;5、建立或扩展其他数据结构;

  进程终止:原理批处理作业执行到“结束”语句交互式用户注销停止进程(应用程序)的执行;

  1、进程切换,作用于进程之间的一种操作,当分派程序收回当前进程的cpu并准备把它分派给某个就绪进程时;该操作将被引用;、

  2、模式切换:是进程内部所引用的一种操作,当用户程序转入系统调用,或相反时,该操作将被引用;

  可以将进程排队的等待时间等因素纳入优先权的计算,随着进程等待时间的增长,其优先权也不断提高,进程也会在不久的将来得到调度;(优先级是动态改变的)

  进程调度方式:根据执行进程的处理机是由进程自己释放,还是被强行剥夺,可以将进程调度方式分为:非剥夺方式  和  剥夺方式

  两种;非剥夺方式:执行进程只有在执行完毕,或因申请I/O阻塞自己时,才中断其执行,释放处理机,调度新的进程执行;这种方式不利于“即时性”要求高的分时和实时系统,主要用于批处理系统;

  os可以在新进程到来时,或者某个具有较高优先权的被阻塞进程插入就绪队列时,或在基于时间片调度的系统中,时间片用完而中断当前进程的执行,调度新的进程的执行;这种方式会产生较多的中断,主要用于实时性要求较高的实时系统及性能要求较高的批处理系统和分时系统;调度的类型批处理调度,分时调度、实时调度、和多处理机调度;

  长程调度(把作业有外存调入内存,即创建新进程,在作业队列)、中程调度(外存中的挂起进程被激活进入内存,在进程队列)、短程调度(进程调度,进程队列)、  I/O调度(等待磁盘读写的队列);

  长程调度:高级调度或作业调度,它为被调度作业或用户程序创建进程,分配必要的系统资源,并将新创建的进程插入就绪队列,等待短程调度;

  某些采用交换技术的系统将新创建的进程插入到就绪/挂起队列,等待中程调度;

  在批处理系统中,作业进入系统中,先驻留在磁盘上,组织称批处理队列,称为后备队列;长程调度从该队列中选择一个或多个作业,为之创建进程;

  当内存空间非常紧张时,或处理机找不到一个可执行的就绪进程时,需要选择一个进程(阻塞或就绪状态)换出到外存,释放出内存空间给别的进程使用;当内存空间较充裕时,从外存选择一个挂起状态的进程调度到内存;

  1、保持进程A的现场    将进程A的当前运行信息,如程序执行到的当前位置,程序状态字,所以的寄存器值等保存到进程A的PCB中;

  2、恢复进程B的现场   从进程B的PCB中取其执行信息,将这些信息写入相应的寄存器中,程序计数器执行进程B将执行的下一条指令,进程B可能第一次开始执行,也可能被中断过的进程,恢复执行,不论是哪一种情况,进程B的执行信息都能在其PCB中找到;

  但是,对于那些后进入队列而言运行时间较短的进程,或I/O型的进程而言,可能需要常时间等待;

  一般地,FCFS与其他调度算法混合使用,例如,系统可以按照不同的优先级维护多个就绪队列,

  当需要调度进程(或作业)时,通过计算判断就绪进程队列中哪个进程的预期执行时间最短,或后备作业队列中哪一个或几个作业的预期执行时间最短,就调度谁;

  采用非剥夺调度方式,未考虑进程的紧迫程度;不适合分时系统和事务处理系统;

  采用基于时间片论转调度法,进程的周转实际那和平均周转时间并不比采用FCFS和短进程优先调度算法小;

  该法常用于分时系统及事务处理系统,合理的时间片大小将带来满意的响应时间;通常,合理的时间片是指,能让80%左右的进程在一个时间片内完成;

  基于时间片论转调度法循环式地为每个被调度的进程呢个分配一个时间片,对每个进程都是公平的;

  然而,实际应用中,进程的性质可能是不同的。例如,一个与用户交互的前台进程急迫地需要对用户的输入作出响应,而一个后台打印进程的迫切性也许就不那么重要;

  因此,可以为每个进程定义一个优先级,优先级越高,越先被处理机调度;如何设定进程的优先级?进程完成功能的重要性;进程完成功能的急迫性;

  动态优先级:系统首先赋予进程一个初始优先级,该优先级将随着进程的运行而改变;

  方式一:优先级随着进程运行的剩余时间的减少而上升,使将要执行结束的进程尽快完成;

  方式二:随着进程排队等待时间的增长而上升,使等待时间越长的进程优先得到调度,不至于长时间饥饿;

  可以在每个时钟中断时,或需要进程切换时,重新计算就绪队列中各进程的优先级,并优先调度高优先级的进程;

  与短进程优先调度算法一样,该调度算法很难准确估计进程的额剩余执行时间;响应比高者优先:

  将进程的等待时间和进程的预期执行时间纳入优先级的计算,进程(预期执行时间)越长优先级越低,而随着进程的等待时间增长优先级

  上升,即进程的优先级与等待时间成正比,与进程执行时间成反比,w表示等待时间,s表示预期执行时间,则响应比:

  如何选择进程调度算法与系统设计的目标有关,交互式多任务系统,主要考虑联机用户对响应时间的要求

  实时系统Real-Time System  :  实时控制系统(实时采集数据,并自动处理。炼钢控制), 实时信息处理系统:飞机订票系统

  指能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行的计算机系统;

  进程是操作系统资源分配和能够独立运行的基本单位。在多道程序的环境下,程序是并发执行的,这有个并发和并行的概念。所谓的并发是在一大段时间内,程序看似是一起执行的,但是实际上在一个时间点上只有一个程序在执行任务,而并行则是在同一时间点上,多个程序同时执行任务。

  :进程是进程实体的运行过程,是系统进行资源分配和调度的一个基本独立单位。

  :一个进程实体由PCB(进程控制块)、程序段、相关数据段组成,进程的创建只是创建的PCB,而进程的撤销也是撤销的进程的PCB。

  ①就绪态:当进程分配到资源后,只需要获得cpu就能执行时,就是出于就绪态。

  挂起状态也可以称为静止状态,是由于某些需要(例如中断用户要静止程序、父进程请求、负荷调节、操作系统需要)来使程序保持静止。在实际的系统中,为了管理需要还会引入创建状态和终止状态。创建状态:进程有了自己的PCB,但是还没分配到资源,没有进入主存的状态。

  终止状态:当进程达到了自然结束点,或者出现了无法克服的错误,或被操作系统终结,或被其他进程终结。进程的终结需要将PCB清零,将PCB空间返回给系统。进程控制块PCB

  为了描述和控制进程的运行,系统为每个进程定义了一个进程控制块PCB。PCB中描述了该进程当前情况的一些信息,操作系统根据PCB来控制和管理进程,PCB是进程的唯一标志。PCB所包含的内容:

  ③进程调度信息:包含了进程的当前状态,进程优先级,进程调度所需要的信息,阻塞原因。

  ④进程控制信息:程序和数据的信地址、进程的同步和通信机制、资源清单、链接指针(下一个pcb的地址)

  ②索引方式:将具有相同状态进程的PCB地址放在同一张表中,形成PCB表。

  ③初始化进程控制块:初始化标识信息、初始化处理机状态信息、初始化处理机控制信息;

  进程的阻塞和唤醒:进程的阻塞可以归结为一点:进程无法进行接下来的工作,例如新数据未到达,没有新工作可以做等。

  当进程阻塞时,会修改PCB状态,然后插入阻塞队列,保护现场,交出cpu使用权。

  一般进程间关系有两种:简单来说,一种是对于共享资源的互斥,另一种是资源的生产和消费关系。

  ①整型信号量:wait和singal都是两个原子操作,通常被称为PV操作。

  ②记录型信号量:由于整型信号量在没有资源时会不断地访问资源量,不符合让权等待的原则,所以在记录型信号量中引入了一个等待队列。

  所以wait(S)的操作就变成了先把资源数-1,如果资源量小于0,那么阻塞当前进程并把进程放到阻塞队列中。

  signal(S)的操作:给资源数+1,如果资源数S小于等于0,那么唤醒等待队列中的一个进程。

  ③AND型信号量:有些进程不止需要一种资源,当进程需要两个或多个资源的时候,如果一次只获取到一种资源,那么就会产生死锁问题。AND型信号量就是一个获取所有资源,如果资源获取不到,那么就不获取所有资源,这样就不会造成死锁问题。

  ④信号量集:之前的AND型信号量其实是资源种类概念上的,而信号量集是资源数量概念上的。Swait(S,d,d)的含义就是获取申请d个S资源,如果量小于d,那么就不获取。信号量应用

  S1可以代表有多于的空间可以生成,S2可以代表有足够的资源可以消费。当然在生产者和消费者关系中,也有对同一资源进行访问的时候,这时候就要互斥了。

  管程代表共享资源的数据结构,以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序。

  ③管道通信:管道通信是利用一个共享文件去实现进程间的通信,发送进程向共享文件输入,接收进程接收共享文件的输出。

  线程引入进程的目的是让多个程序能够并发执行,来提高资源的利用率和系统吞吐量。而引入线程的目的是减少程序在并发执行是付出的时空开销。因为在进程的创建、撤销和切换时是非常耗时的,在创建时需要分配资源,创建PCB;在撤销进程时,需要回收资源,撤销PCB;在切换线程时,需要保留进程cpu环境,重新设置cpu环境再进行切换。

  所以引进线程,让线程作为调度和分派的单位,而只有进程是拥有资源的基本单位。一个进程可以有若干个线程,传统的进程则是只有一个线程的进程。线程又称为轻量级进程。

  调度在引入多线程的系统中,线程作为调度和分派的基本单位,在同一进程中,线程的切换不会引起进程的切换,不同进程间的线程切换才会引起进程切换,这样大大提高了系统并发程度。

  在引入多线程的系统中,不仅进程间可以并发执行,线程间也可以并发执行。这样使得操作系统有更好的并发性,从而能更加提高系统资源的利用率和系统吞吐量。

  进程创建、撤销需要对资源进程分配或回收,还有对进程控制块进行处理,在切换进程时还需要对cpu环境进行保存,对新环境进行设置,而线程的切换只需要保存少量寄存器的值,所以线程切换代价远小于进程。

  系统在创建一个新进程时,为它分配一个PTDA任务数据区,其中包含若干个线程控制块TCB空间。TCB中可以保存线程标识符、优先级、线程运行的CPU状态等信息,这些都是被保存在内核空间中。每次创建一个线程要为新线程分配一个TCB,将有关信息写入里面,并为之分配资源。在撤销线程时不会直接收回资源和TCB,这样可以让新线程再次利用。

  用户级线程实现用户级线程是在用户空间实现的。所有的用户级线程都具有相同的结构,它们都运行在一个中间系统上。中间系统可以通过两种方式实现,第一种是运行时系统,第二种是内核控制线程,这种线程称为轻型进程LWP,LWP其实是内核提供的一种服务,每一个用户线程可以通过LWP跟内核进行通信,通过LWP来访问内核。

  进程描述进程状态线程进程间通信进程互斥与同步死锁进程描述在一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。进程的组成一个进程应该包括程序的代码;程序处理的数据程序计数器中的值,指示下一条将运行的指令;一组通用的寄存器的当前值,堆,栈一组系统资源包括了运行所需要的所有状态信息。动态性,并发性,独立性,共享某些资源。如何进行进程管理?程序=算...

  一、进程1.1多道程序设计允许多个程序同时进入内存并运行,提高CPU的利用率,目的是提高系统效率a图内存中有四个程序,串行执行,因为这里只有一个程序计数器。当有了多道程序技术之后就得到了b图,每个程序各自独立的占用一个逻辑程序计数器,达到并发执行效果从c图中可以看到多个程序是轮流执行的1.2并发环境与并发程序并发环境指一段时间间隔内,单处理器上有两个或两...

  进程在一个数据集上运行的程序过程,系统资源分配的基本单位。(强调动态特性)进程的特点动态性--程序在处理器上运行的一次动态过程 并发行--多个进程能够在内存中同时存在,一段时间内同时运行 独立性--进程是独立运行的基本单位,是系统资源分配和调度的独立单位 异步性--多个进程以自己的运行速度向前推进进程和程序的关系1.进程是动态的,程序是静态的。2.进程是暂时的,程序是...

  进程和线程的区别进程是计算机资源分配的基本单位,线程是CPU调度的基本单位进程有独立的地址空间,线程共享进程的地址空间进程的开销比线.线程的结构一个标准的线程由:线程ID,当前指令指针(PC),寄存器集合和堆栈组成。2.多线程的优点创建速度快,系统开销小通信简洁,系统传送速度快:线程间的通信在统一地址空间进程,不需要额外的通信机制并行...

http://m3-ctech.com/fenpaiyouxianji/671.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有