Windows操作系统处理机管理(上)_第1页
Windows操作系统处理机管理(上)_第2页
Windows操作系统处理机管理(上)_第3页
Windows操作系统处理机管理(上)_第4页
Windows操作系统处理机管理(上)_第5页
已阅读5页,还剩43页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Windows操作系统处理机管理(上)进程的定义和描述进程的定义和描述进程的状态转换进程的状态转换进程控制进程控制Windows的进程管理的进程管理进程的定义一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。进程的特征动态性具有动态的地址空间动态性具有动态的地址空间独立性各进程的地址空间相互独立独立性各进程的地址空间相互独立并发性宏观上各进程同时运行并发性宏观上各进程同时运行结构化进程的地址空间是结构化的结构化进程的地址空间是结构化的进程和进程控制进程是动态的,程序是静态的:程序是有序代码的集合;进程进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在

2、计算机之间迁移;而程序通常是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件,是静态的,可以复制。对应着文件,是静态的,可以复制。进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。久保存。进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。进程状态信息)。进程与程序的对应关系:通过多次执行,一个程序可对应多个进程进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。;通

3、过调用关系,一个进程可包括多个程序。进程的定义和描述进程和进程控制每个进程在每个进程在OS中的登记表项(可能有总数目限制),中的登记表项(可能有总数目限制),OS据此对进程进据此对进程进行控制和管理(行控制和管理(PCB中的内容会动态改变)中的内容会动态改变)处于核心段,通常不能由应用程序自身的代码来直接访问,而要通过系统处于核心段,通常不能由应用程序自身的代码来直接访问,而要通过系统调用访问调用访问进程控制块(PCB, process control block)是由OS维护的用来记录进程相关信息的一个数据结构。进程和进程控制进程的定义和描述进程描述信息:进程描述信息:进程标识符进程标识符(

4、process ID),唯一,通常是一个整数;,唯一,通常是一个整数;进程名,通常基于可执行文件名;进程名,通常基于可执行文件名;用户标识符用户标识符(user ID);进程组;进程组 (process group)进程控制信息:进程控制信息:当前状态;当前状态;优先级优先级(priority);代码执行入口地址;代码执行入口地址;程序的外存地址;程序的外存地址;运行统计信息(执行时间、页面调度);运行统计信息(执行时间、页面调度);阻塞原因阻塞原因资源占用信息:虚拟地址空间的现状、打开文件列表资源占用信息:虚拟地址空间的现状、打开文件列表CPU现场保护结构:寄存器值(通用、程序计数器现场保护

5、结构:寄存器值(通用、程序计数器PC、状态、状态PSW,地址,地址包括栈指针)包括栈指针)进程和进程控制进程的定义和描述链表:同一状态的进程其链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表。各状态的成一链表,多个状态对应多个不同的链表。各状态的进程形成不同的链表:就绪链表、阻塞链表进程形成不同的链表:就绪链表、阻塞链表索引表:同一状态的进程归入一个索引表:同一状态的进程归入一个index表(由表(由index指向指向PCB),多个状态对应),多个状态对应多个不同的多个不同的index表。表。各状态的进程形成不同的索引表:就绪索引表、阻塞索引表各状态的进程形成不同的索引表:就绪

6、索引表、阻塞索引表进程和进程控制进程的定义和描述用户级上下文:进程的用户地址空间(包括用户栈各层次),包括用户用户级上下文:进程的用户地址空间(包括用户栈各层次),包括用户正文段、用户数据段和用户栈;正文段、用户数据段和用户栈;寄存器级上下文:程序寄存器、处理机状态寄存器、栈指针、通用寄存器级上下文:程序寄存器、处理机状态寄存器、栈指针、通用寄存器的值;寄存器的值;系统级上下文:系统级上下文:静态部分(静态部分(PCBPCB和资源表格)和资源表格)动态部分:核心栈(核心过程的栈结构,不同进程在调用相同核心动态部分:核心栈(核心过程的栈结构,不同进程在调用相同核心过程时有不同核心栈)过程时有不同

7、核心栈) 进程上下文是对进程执行活动全过程的静态描述。进程上下文由进程的用户地址空间内容、硬件寄存器内容及与该进程相关的核心数据结构组成。进程和进程控制进程的定义和描述五状态进程模型(状态转换)进程的状态转换进程在从创建到终止的全过程中一直处于一个不断变化的过程, 为了刻画进程的这个变化过程,操作系统把进程分成若干种状态 进程和进程控制AdmitRunningNewExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseCreate新建状态新建状态(New):进程刚创建,但还不能运行:进程刚创建,但还不能运行(一种可能的原因是一种可能

8、的原因是OS对并发进程对并发进程数的限制数的限制);OS在进程新建状态的工作在进程新建状态的工作:分配和建立分配和建立PCB表项、建立资源表格(如打开文表项、建立资源表格(如打开文件表)并分配资源,加载程序并建立地址空间表。件表)并分配资源,加载程序并建立地址空间表。结束状态结束状态(Exit):进程已结束运行:进程已结束运行.回收除回收除PCB之外的其他资源,并让其他进程从之外的其他资源,并让其他进程从PCB中收集有关信息(如记帐中收集有关信息(如记帐,将退出码,将退出码exit code传递给父进程)。传递给父进程)。进程的状态转换五状态进程模型进程和进程控制AdmitRunningNew

9、ExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseCreate运行状态运行状态(Running):占用处理机资源并运行;处于此状态的进程的数目小于等于:占用处理机资源并运行;处于此状态的进程的数目小于等于CPU的数目。的数目。 在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的行系统的idle进程(相当于空操作)。进程(相当于空操作)。就绪状态就绪状态(Ready):进程已获得除处理机外的所需资源,等待分配处理机资源;只:进程已获得除处理机外的

10、所需资源,等待分配处理机资源;只要分配要分配CPU就可执行。就可执行。可以按多个优先级来划分队列,如:时间片用完可以按多个优先级来划分队列,如:时间片用完低优,低优,I/O完成完成中优中优,页面调入完成,页面调入完成高优高优阻塞状态阻塞状态(Blocked):由于进程等待某种条件(如:由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前操作或进程同步),在条件满足之前无法继续执行。在该事件发生前即使把处理机分配给该进程,也无法运行。如:等待无法继续执行。在该事件发生前即使把处理机分配给该进程,也无法运行。如:等待I/O操作的完成。操作的完成。进程的状态转换五状态进程模型进程和进程控制

11、AdmitRunningNewExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseCreate创建创建(Create)新进程:创建一个新进程,以运行一个程序。新进程:创建一个新进程,以运行一个程序。提交提交(Admit):收容一个新进程,进入就绪状态。由于性能、内存、进程总数等原:收容一个新进程,进入就绪状态。由于性能、内存、进程总数等原因,系统会限制并发进程总数。因,系统会限制并发进程总数。调度运行调度运行(Dispatch):从就绪进程表中选择一个进程,进入运行状态;:从就绪进程表中选择一个进程,进入运行状态;释放释放(Rel

12、ease):由于进程完成或失败而中止进程运行,进入结束状态;:由于进程完成或失败而中止进程运行,进入结束状态;运行到结束:分为正常退出运行到结束:分为正常退出Exit和异常退出和异常退出abort(执行超时或内存不够,非法指(执行超时或内存不够,非法指令或地址,令或地址,I/O失败,被其他进程所终止)失败,被其他进程所终止)就绪或阻塞到结束:可能的原因有:父进程可在任何时间中止子进程;就绪或阻塞到结束:可能的原因有:父进程可在任何时间中止子进程;进程的状态转换五状态进程模型进程和进程控制AdmitRunningNewExitReadyBlockedDispatchTimeoutEventWai

13、tEventOccursReleaseCreate超时(超时(Timeout):由于用完时间片或高优先进程就绪等导致进程暂停运行;):由于用完时间片或高优先进程就绪等导致进程暂停运行;事件等待(事件等待(Event Wait):进程要求的事件未出现而进入阻塞;可能的原因包):进程要求的事件未出现而进入阻塞;可能的原因包括:申请系统服务或资源、通信、括:申请系统服务或资源、通信、I/O操作等;操作等;事件发生(事件发生(Event Occurs):进程等待的事件发生;如:):进程等待的事件发生;如:I/O操作完成、申请资源操作完成、申请资源成功等;成功等;进程的状态转换五状态进程模型进程和进程控

14、制AdmitRunningNewExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseCreate五状态进程模型没有区分进程地址空间位于内存还是外存,而在操五状态进程模型没有区分进程地址空间位于内存还是外存,而在操作系统中引入虚拟存储管理技术后,需要进一步区分进程的地址空作系统中引入虚拟存储管理技术后,需要进一步区分进程的地址空间状态。间状态。 这个问题的出现是由于进程优先级的引入,一些低优先级这个问题的出现是由于进程优先级的引入,一些低优先级进程可能等待较长时间,从而被对换至外存。这样做的目的是:进程可能等待较长时间,从而被对换至

15、外存。这样做的目的是:提高处理机效率:就绪进程表为空时,有空闲的内存空间来提交新进程提高处理机效率:就绪进程表为空时,有空闲的内存空间来提交新进程,以提高处理机效率;,以提高处理机效率;为运行进程提供足够内存:资源紧张时,暂停某些进程,如:为运行进程提供足够内存:资源紧张时,暂停某些进程,如:CPU繁忙(或实时任务执行),内存紧张繁忙(或实时任务执行),内存紧张用于调试:在调试时,挂起被调试进程(从而对其地址空间进行读用于调试:在调试时,挂起被调试进程(从而对其地址空间进行读写)写)挂起进程模型进程的状态转换进程和进程控制单挂起进程模型挂起进程模型进程的状态转换进程和进程控制AdmitRunn

16、ingNewExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseBlockedSuspendSuspendActivate双挂起进程模型挂起进程模型进程的状态转换进程和进程控制AdmitRunningReadySuspendExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseBlockedSuspendSuspendNewEventOccursActivateSuspendActivateAdmitSuspend就绪状态就绪状态(Ready):进程在内存且可立即进入运

17、行状态;:进程在内存且可立即进入运行状态;阻塞状态阻塞状态(Blocked):进程在内存并等待某事件的出现;:进程在内存并等待某事件的出现;阻塞挂起状态(阻塞挂起状态(Blocked, suspend):进程在外存并等待某事件的出现;):进程在外存并等待某事件的出现;就绪挂起状态(就绪挂起状态(Ready, suspend):进程在外存,但只要进入内存,即可):进程在外存,但只要进入内存,即可运行;运行;挂起进程模型进程的状态转换进程和进程控制挂起(挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况:):把一个进程从内存转到外存;可能有以下几种情况:阻塞到阻塞挂起:没有进程处

18、于就绪状态或就绪进程要求更多内存资源时,会进行这种转换,以提阻塞到阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程;交新进程或运行就绪进程;就绪到就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统就绪到就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程;会选择挂起低优先级就绪进程;运行到就绪挂起:对抢先式操作系统,当有高优先级阻塞进程因事件出现而进入就运行到就绪挂起:对抢先式操作系统,当有高优先级阻塞进程因事件出现而进入就绪状态时,系统可能会把运行进程转到

19、就绪挂起状态;绪状态时,系统可能会把运行进程转到就绪挂起状态;挂起进程模型进程的状态转换状态转换进程和进程控制RunningReadySuspendReadyBlockedDispatchTimeoutEventWaitEventOccursBlockedSuspendSuspendEventOccursActivateSuspendActivateSuspend激活(激活(Activate):把一个进程从外存转到内存;可能有以下几种情况:):把一个进程从外存转到内存;可能有以下几种情况:就绪挂起到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,会进行这种转换;就绪挂起到就绪:没有就绪进

20、程或挂起就绪进程优先级高于就绪进程时,会进行这种转换;阻塞挂起到阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起进程激活阻塞挂起到阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起进程激活, 系系统认为会很快出现所等待的事件;统认为会很快出现所等待的事件;挂起进程模型进程的状态转换状态转换进程和进程控制RunningReadySuspendReadyBlockedDispatchTimeoutEventWaitEventOccursBlockedSuspendSuspendEventOccursActivateSuspendActivateSuspend事件发生(事件发生

21、(Event Occurs):进程等待的事件发生,可能的情况有:):进程等待的事件发生,可能的情况有:阻塞到就绪:针对内存进程的事件发生;阻塞到就绪:针对内存进程的事件发生;阻塞挂起到就绪挂起:针对外存进程的事件发生;阻塞挂起到就绪挂起:针对外存进程的事件发生;挂起进程模型进程的状态转换进程和进程控制状态转换RunningReadySuspendReadyBlockedDispatchTimeoutEventWaitEventOccursBlockedSuspendSuspendEventOccursActivateSuspendActivateSuspend收容收容(Admit):收容一个新

22、进程,进入就绪状态或就绪挂起状态。进入就绪挂起的原因是系:收容一个新进程,进入就绪状态或就绪挂起状态。进入就绪挂起的原因是系统希望保持一个大的就绪进程表(挂起和非挂起);统希望保持一个大的就绪进程表(挂起和非挂起);挂起进程模型进程的状态转换进程和进程控制状态转换AdmitRunningReadySuspendReadyDispatchTimeoutNewSuspendActivateAdmitSuspend双挂起进程模型挂起进程模型进程的状态转换进程和进程控制AdmitRunningReadySuspendExitReadyBlockedDispatchTimeoutEventWaitEve

23、ntOccursReleaseBlockedSuspendSuspendNewEventOccursActivateSuspendActivateAdmitSuspend进程控制, 就是操作系统使用一些具有特定功能的程序段来创建与撤消进程以及完成进程状态的转换, 从而达到多个进程高效率地并发执行和协调,实现资源共享.进程控制主要体现在进程的创建与撤消,以及进程的阻塞与唤醒。 操作系统对进程的控制是依据用户命令和系统状态来决定的。用户可在一定程序上对进程的状态进行控制。 具有特定功能的程序段-原语进程和进程控制原语(primitive):由若干条指令构成的“原子操作(atomic operati

24、on)”过程,作为一个整体而不可分割要么全都完成,要么全都不做。许多系统调用就是原语。注意:系统调用并不都是原语。进程A调用read三,因无数据而阻塞,在read三里未返回。然后进程B调用read三,此时read三被重入。系统调用不一定一次执行完并返回该进程,有可能在特定的点暂停,而转入到其他进程。进程和进程控制进程和进程控制创建原语进程的存在以PCB为标志, 所以创建新进程的主要任务就是为进程建立PCB, 将调用者提供的有关信息填入PCB的各数据项中开始分配PCB空间将有关信息填入PCB的数据项将PCB送入相应状态PCB链表结束进程和进程控制撤消原语进程完成其任务之后, 系统应及时回收它占有

25、的资源开始搜索PCB链表释放该进程所占有的资源释放PCB结构本身结束有此PCB异常处理NoYes进程和进程控制阻塞原语开始将CPU当前状态存入PCB设置进程状态为阻塞状态将PCB置入阻塞队列转处理机调度进程和进程控制唤醒原语开始从阻塞队列删除该PCB设置进程状态为就绪状态将PCB置入就绪队列转处理机调度Windows 的进程由执行体进程块的进程由执行体进程块EPROCESS表示,表示, EPROCESS即即进程对象。进程对象。进程对象的属性进程对象的属性:PID, PCB, Access Token, Base Priority, 句柄表,指向句柄表,指向进程环境块进程环境块PEB的指针,亲和

26、处理器集合等的指针,亲和处理器集合等在在Windows 中中,PCB也称为内核进程块也称为内核进程块KPROCESS,即内核进程,即内核进程对象对象EPOCESS和和KPROCESS位于内核空间,位于内核空间,PEB位于用户空间位于用户空间进程和进程控制Windows 的进程管理进程和进程控制进程创建CreateProcess三函数用于创建新进程及其主线程,以执行指定的程序。三函数用于创建新进程及其主线程,以执行指定的程序。新进程可以继承:打开文件的句柄、各种对象(如进程、线程、新进程可以继承:打开文件的句柄、各种对象(如进程、线程、信号量、管道等)的句柄、环境变量、当前目录)每个句信号量、管

27、道等)的句柄、环境变量、当前目录)每个句柄在创建或打开时能指定是否可继承;柄在创建或打开时能指定是否可继承;新进程不能继承:优先权类、内存句柄、新进程不能继承:优先权类、内存句柄、DLL模块句柄模块句柄CREATE_NEW_CONSOLE表示新进程有一个新的控制台表示新进程有一个新的控制台CREATE_NEW_PROCESS_GROUP表示新进程是一个新的进表示新进程是一个新的进程组的根。程组的根。Windows 的进程管理进程和进程控制ExitProcess三或TerminateProcess三,则进程包含的线程全部终止;ExitProcess三终止一个进程和它的所有线程;它的终止操作是完整

28、的,包括关闭所有对象句柄、它的所有线程等;TerminateProcess三终止指定的进程和它的所有线程;它的终止操作是不完整的(如:不向相关DLL通报关闭情况),通常只用于异常情况下对进程的终止。Windows 的进程管理进程和进程控制与进程管理相关的内核变量PsActiveProcessHead进程链表头PsInitialSystemProcess系统进程(系统线程的宿主)PsIdleProcess空闲进程Windows 的进程管理进程和进程控制线程的引入线程的引入操作系统对线程的实现方式操作系统对线程的实现方式进程和线程的比较进程和线程的比较Windows的线程的线程如果说在操作系统中引

29、入进程是为了使多个程序能够并发执行,提高资源利用率和系统吞吐量,那么引入线程(THREAD)的目的则是减少程序并发执行所付出的时空开销来,进一步提高系统的并发程度。线程进程:进程: 资源(存储器、文件)分配单位和资源(存储器、文件)分配单位和CPU调度调度/分派单位。分派单位。由于进程是资源拥有者,因而在创建、终止、切换过程中,系统必由于进程是资源拥有者,因而在创建、终止、切换过程中,系统必须为之付出较大的时空开销。正因为如此,系统中并发执行的进程须为之付出较大的时空开销。正因为如此,系统中并发执行的进程的数目不宜过多,进程切换才频率也不宜过高,这样就限制了系统的数目不宜过多,进程切换才频率也

30、不宜过高,这样就限制了系统的并发程度。的并发程度。解决这一问题的思路:将进程的两个基本属性分开,由操作系统分解决这一问题的思路:将进程的两个基本属性分开,由操作系统分别处理别处理线程概念的引入线程概念的引入在支持线程的操作系统中,进程只作为资源分配单位,而线程则作在支持线程的操作系统中,进程只作为资源分配单位,而线程则作为为CPU调度调度/分派单位。分派单位。线程线程:作为线程:作为CPU调度单位,只拥有必不可少的资源,如:线程状态、寄存调度单位,只拥有必不可少的资源,如:线程状态、寄存器上下文和栈器上下文和栈同样具有就绪、阻塞和执行三种基本状态同样具有就绪、阻塞和执行三种基本状态线程的优点:

31、减小并发执行的时间和空间开销(线程的创建、退出和线程的优点:减小并发执行的时间和空间开销(线程的创建、退出和调度),因此容许在系统中建立更多的线程来提高并发程度。调度),因此容许在系统中建立更多的线程来提高并发程度。线程的创建时间比进程短;线程的创建时间比进程短;线程的终止时间比进程短;线程的终止时间比进程短;同进程内的线程切换时间比进程短;同进程内的线程切换时间比进程短;由于同进程内线程间共享内存和文件资源,可直接进行不通过内核由于同进程内线程间共享内存和文件资源,可直接进行不通过内核的通信;的通信;线程进程与线程的关系线程线程的引入内核维护进程和线程的上下文信息;内核维护进程和线程的上下文

32、信息;线程切换由内核完成;线程切换由内核完成;一个线程发起系统调用而阻塞,不会影响其他线程的运行。一个线程发起系统调用而阻塞,不会影响其他线程的运行。时间片分配给线程,所以多线程的进程获得更多时间片分配给线程,所以多线程的进程获得更多CPU时间。时间。依赖于OS核心,由内核完成创建和撤销。Windows 支持内核线程;内核线程(kernel-level thread)线程用户线程的维护由应用进程完成;用户线程的维护由应用进程完成;内核不了解用户线程的存在;内核不了解用户线程的存在;用户线程切换不需要内核特权;用户线程切换不需要内核特权;用户线程调度算法可针对应用优化;用户线程调度算法可针对应用

33、优化;不依赖于OS核心,应用进程利用线程库提供的创建、同步、调度和管理线程的函数来控制用户线程。如:数据库系统Informix,图形处理Aldus PageMaker。调度由应用软件内部进行,通常采用非抢先式和更简单的规则。一个线程发起系统调用而阻塞,则整个进程在等待。时间片分配给进程,多线程则每个线程就慢。线程OS对线程的实现方式地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享某进程内的线程在其他进程不可见线程间共享某进程内的线程在其他进程不可见通信:进程间只能使用通信:进程间只能使用IPC线程间可以直接读写进程数据段(如全局变量)来进行通信线程间可以直接读写进程数据段(如全局变量)来进行通信也需要同步和互斥手段的辅助,以保证数据的一致性也需要同步和互斥手段的辅助,以保证数据的一致性调度:线程上下文切换比进程上下文切换要快得多;调度:线程上下文切换比进程上下文切换要快得多;线程线程切换和进程切换线程进程和线程的

温馨提示

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

评论

0/150

提交评论