操作系统(第2版)孟庆昌 牛欣源 编著 课件 第二章 进程和线程.ppt

操作系统(第2版)孟庆昌 牛欣源 编著 课件 第二章 进程和线程.ppt

ID:57000822

大小:664.00 KB

页数:89页

时间:2020-07-26

操作系统(第2版)孟庆昌 牛欣源 编著  课件  第二章 进程和线程.ppt_第1页
操作系统(第2版)孟庆昌 牛欣源 编著  课件  第二章 进程和线程.ppt_第2页
操作系统(第2版)孟庆昌 牛欣源 编著  课件  第二章 进程和线程.ppt_第3页
操作系统(第2版)孟庆昌 牛欣源 编著  课件  第二章 进程和线程.ppt_第4页
操作系统(第2版)孟庆昌 牛欣源 编著  课件  第二章 进程和线程.ppt_第5页
资源描述:

《操作系统(第2版)孟庆昌 牛欣源 编著 课件 第二章 进程和线程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章进程和线程2.1进程概念2.2进程的状态和组成2.3进程管理2.4线程2.5进程的同步和通信2.6经典进程同步问题2.1进程概念2.1.1多道程序设计1.顺序程序活动的特点顺序性封闭性可再现性2.多道程序设计提高系统资源利用率,增加作业吞吐量,增加系统的复杂性。(参见上一章单道和多道程序设计示意图)3.程序并发执行的特征失去封闭性程序与计算不再一一对应并发程序在执行期间相互制约2.1.2进程概念1.进程概念的引入用程序无法表示程序并发执行过程。2.进程概念进程具有动态性和并发性的属性进程定

2、义:程序在并发环境中的执行过程进程和程序的区别进程是动态的,程序是静态的进程具有并发性,宏观上同时运行;程序本身具有顺序性,程序的并发执行是通过进程实现的程序和进程无一一对应关系进程异步前进,会相互制约,程序不具备此特性进程具有独立性,是一个能独立运行的单位是系统资源分配的基本单位是运行调度的基本单位3.进程的基本特征(1)动态性(2)并发性(3)调度性2.2进程的状态和组成2.2.1进程的状态及其转换1.进程的基本状态运行期间可能的情形:运行状态(Running)分到CPU就绪状态(Ready

3、)只等分到CPU阻塞状态(Blocked)等待某种事件发生运行状态就绪状态阻塞状态等待某事件发生(如等待I/O)所等待事件发生(如I/O完成)分到CPU时间片到增加两种基本状态新建状态(New)——进程创建终止状态(Terminated)——进程终止2.进程状态的转换图2-2进程的5种基本状态及其转换2.2.2进程描述1.进程映像(image)用户地址空间内容硬件寄存器内容与该进程有关的数据结构图2-3进程映像模型UNIXS_5进程映像用户级context寄存器context系统级context

4、2.进程控制块由进程的描述信息和控制信息构成反映进程动态特性作为系统对进程施行识别和控制的依据进程控制块组成进程名特征信息进程状态信息调度优先权通信信息现场保护区资源需求进程实体信息进程族系关系其他信息3.进程控制块作用每个进程有唯一进程控制块操作系统根据PCB对进程实施控制和管理,记录进程动态、并发等运行特征PCB是进程存在唯一标志2.2.3进程队列操作系统以队列方式管理进程。主要有线性方式、链接方式和索引方式。1.线性方式:空间固定、查找费时图2-4PCB线性队列示意图2.链接方式图2-5P

5、CB链接队列示意图3.索引方式:空间整齐、容易维护图2-6PCB索引结构示意图2.3进程管理2.3.1进程图进程图(ProcessGraph)描述进程族系关系的有向树图2-7进程创建的层次关系2.3.2进程创建创建新进程的时机调度新的批作业交互式用户登录操作系统提供服务现有进程派生新进程创建新进程的系统调用,如UNIX/Linux系统的fork其主要操作过程有如下四步:1)申请一个空闲的PCB2)为新进程分配资源3)将新进程的PCB初始化4)将新进程加到就绪队列中2.3.3进程终止(1)正常终止

6、进程完成工作(2)异常终止进程运行中出现某些错误或故障(3)外部干扰本进程之外的强行干预如:调用exit()实现进程终止。终止进程的主要操作过程找到指定进程PCB终止该进程的运行回收该进程所占用的全部资源终止其所有子孙进程,回收所占用的全部资源将终止进程PCB从原来队列中删除2.3.4进程阻塞进程阻塞的过程如下:立即停止当前进程的执行当前进程的CPU现场保存当前状态由运行变为阻塞执行进程调度程序阻塞原因该进程执行I/O指令该进程等待信号或数据等该进程执行系统调用。如调用wait()令本进程阻塞。

7、2.3.5进程唤醒唤醒原语执行过程:①把阻塞进程从对应的阻塞队列中删除②将当前状态变为就绪状态,然后把该进程插入就绪队列③执行进程调度程序进程唤醒时机该进程的I/O指令执行完毕该进程等待的信号或数据等到来该进程的系统调用执行完毕UNIX/linux系统中,父进程创建子进程C程序voidmain(){intpid;pid=fork();/*forkanotherprocess*/if(pid<0){/*erroroccurred*/fprintf(stderr,"ForkFailed");exit

8、(-1);}elseif(pid==0){/*childprocess*/execlp("/bin/ls","ls",NULL);}else{/*parentprocess*//*parentwillwaitforthechildtocomplete*/wait(NULL);printf("ChildComplete");exit(0);}}2.4线程2.4.1线程概念进程指一个可执行程序完成了某个执行路径的一次运行例如一个进程正在运行一个字处理程序,如果只允许进程一次完成一条执行路径,无法在同

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。