- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                【2017年整理】2进程管理
                    第二章??? 进程管理;2.1??进程的基本概念;1、前趋图与前趋关系;2、程序顺序执行的特征;3、程序的并发执行;并发执行时的特征
①间断性——“停停走走”
②失去封闭性——原因:多个程序共享资源
③不可再现性;程序A
{
    n=n+1;
};并发执行的条件:达到封闭性和可再现性;进程的定义;进程与程序的区别;4、进程的特征与状态;PCB;进程的基本状态及其转换;进程3种基本状态转换(3-4);进程的挂起状态(静止状态);进程的挂起状态(5-9);PCB(Process Control Block)
PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。
OS是根据PCB来对并发执行的进程进行控制和管理的。是进程存在的唯一标志。
PCB可被操作系统中的多个模块读或修改,如被调度程序、资源分配程序、中断处理程序以及监督和分析程序读或修改。
PCB经常被系统访问,故应常驻内存。;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.;(1)进程标识符
(2)处理机状态
(3)进程调度信息:
(4)进程控制信息:
;(1)链接方式
把具有同一状态的PCB,用其链接字链接成一个队列
就绪队列、若干个阻塞队列、空队列
(2)索引方式
系统根据所有进程的状态建立相应的索引表
就绪索引表、阻塞索引表等,索引表在内存的首地址记录在内存的一些专用单元中。;执行指针 ;2.2? 进程的控制;进程图;1、进程创建;2、进程撤消;3、进程阻塞;4、进程唤醒;5、进程挂起与激活;同步现象;互斥现象;2.3? 进程同步;2、临界区(临界段);同步机制应遵循的规则
空闲让进:当无进程处于临界区时,允许一个请求进入临界区的进程立即进入自己的临界区
忙则等待:当已有进程进入自己的临界区时,所有其它试图进入临界区的进程必须等待
有限等待:对要求访问临界资源的进程,应保证该进程能在有效时间内进入自己的临界区,以免进入“死等”状态
让权等待:当进程不能进入自己的临界区时,应释放CPU,以免进程陷入“忙等”
;软件方法实现的同步机制;软件方法实现的同步机制;OS实现的同步机制——信号量;3、信号量(灯)机制;1965年,荷兰人Dijkstra首先提出信号量机制
信号量(Semaphores)
用于表示资源数目或请求使用某一资源的进程个数的数据结构。
信号量是一个被保护的变量,它的值只能通过初始化和两个wait、signal原语来操作——作为OS核心代码执行。;信号量的类型:
整型:S为初值非负的整型变量,通常描述资源的状态或可用资源的数量。
记录型:二元组(S,Q) ,Q初始状态为空的队列。
AND型:一次需要多个共享资源,改进wait-signal操作。
信号量集:一次需要N个多类资源,改进wait-signal 操作。;整型信号量
	int S;    //Semaphore  	
   wait(S) 
      {
         while S≦0 do no-op;
		    S--;
 }
	signal(S)
	  {S++;}
	wait(s)和signal(s)是原子操作
只要信号量S≦0就不断测试,不满足让权等待
;是一个记录型的数据结构,包含两个数据项,一是记数值域,另一是等待该信号量的进程队列首指针域。描述如下:    ;wait(S) {
     S.value- - ;
     if   S.value0 then 
     block(S.L);   //将该进程状态置为等待状态;并 将该进程的PCB插入相应的等待队列S.L末尾     };s.value的物理含义:;执行一次signal操作意味着释放一个单位的资源,故s.value = s.value +1。
           加1后:若 s.value>0,则进程继续;若s.value ≤0,表示信号量请求队列中仍有因请求该资源而被阻塞的进程,因此应把队列中的一个或几个进程唤醒,使之转至就绪队列中。
;设打印机资源信号量为s,初值为2。
;AND型信号量;Swait(S1,S2,…,Sn)   
{
  while(true)
  { if (S1=1S2=1…Sn=1)
    {
        for  (i=1;i=n;++i)  --Si;
        break;
     }
     else
     { 
         调用进程进入第一个小于1信号量的等待队列Sj.L;
         阻塞调用进程;
       }
    
                 原创力文档
原创力文档 
                        

文档评论(0)