进程的创建终止、阻塞唤醒、挂起激活(操作系统)
创始人
2024-03-31 16:10:18
0

目录

一、引起创建进程的事件

二、进程的创建

三、进制的终止

1.引起进程终止的事件

2.进程的终止过程

四、进程的阻塞和唤醒

1.引起进程阻塞和唤醒的事件

2.进程阻塞过程

3.进程唤醒过程

五、进程的挂起和激活

1.进程的挂起

2.进程的激活


 

进程控制是进程管理中最基本的功能。 进程控制包括:

创建进程         ◆ 终止进程         ◆ 进程状态转换

进程控制是由OS的内核完成的。

一、引起创建进程的事件


用户登录

作业调度

提供服务

        当用户进程提出某种请求后,系统将专门创建一个进程来提供用户所需的服务。如,文件打印。

应用请求

        是基于应用进程的需求,由应用进程自己创建一个新进程,以便新进程以并发运行方式完成特定任务。

二、进程的创建


调用进程创建原语Create(),按下述步骤创建一个进程:

(1)申请空白PCB;

(2)为新进程分配资源。主要是内存空间。

(3)初始化PCB。包括:

初始化标识信息

初始化处理机状态信息:程序计数器,堆栈指针等

初始化处理机控制信息:进程状态——就绪或静止就绪、优先级等。

(4)将新进程插入就绪队列

Win32创建进程API函数CreateProcess( );

创建线程APICreateThread( )函数;

三、进制的终止


1.引起进程终止的事件


正常结束

异常结束

常见的异常——结束事件

越界错误 保护错——试图访问不允许访问的资源或文件,或者以不适当方式访问 非法指令 特权指令错——用户程序试图执行只允许OS执行的指令 运行超时 等待超时 算术运算错——0 I/O故障 

外界干预

操作员或操作系统干预(如发生死锁)

 父进程请求

 父进程终止

2.进程的终止过程


OS调用终止原语,按下述过程终止进程

(1)根据被终止进程的标识,从PCB集合中找除该进程的PCB,读出该进程状态。 (2)若被终止进程正处于执行状态,应立即终止其执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。若该进程还有子孙进程,应将其所有子孙进程终止,以防止它们成为不可控进程。 (3)将被终止进程的所有资源,或者归还给其父进程,或者归还给系统 (4)将被终止进程(它的PCB)从所在队列中移出,等待其他进程来搜索信息。 

Win32中终止进程的API函数是TerminateProcess( );

终止线程的API函数是TerminateThread( )。

四、进程的阻塞和唤醒


1.引起进程阻塞和唤醒的事件


请求系统服务

     当执行进程请求OS服务时,由于某种原因,OS并不立即满足该进程的请求时,该进程只能转变为阻塞状态来等待。

如,进程请求打印机

启动某种操作

        当进程启动某种操作后,如果该进程必须在该操作完成后才能继续执行,则必须先使该进程阻塞,以等待操作完成。

如,启动了某I/O设备

新数据尚未到达

        对于相互合作的进程,如果其中一个进程需要获得另一个(合作)进程提供的数据才能运行以对数据进行处理,则只要其所需数据尚未到达,该进程只有阻塞(等待)

无新工作可做

        系统往往设置一些具有特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来。

如,系统中发送数据的进程

2.进程阻塞过程


调用阻塞原语block把自己阻塞。(主动行为)

阻塞(block)过程:

立即停止执行; 把PCB中进程状态执行改为阻塞 PCB插入具有相同事件的阻塞队列; 转进程调度程序,将处理机分配给某个就绪进程,并进行进程切换——保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中处理机状态设置CPU的环境。 

3.进程唤醒过程


调用唤醒原语wakeup( ),将等待事件的进程唤醒。

唤醒原语执行过程

将被唤醒进程的PCB从阻塞队列移出;

将其PCB中进程状态由阻塞改为就绪

将改PCB插入到就绪队列中。

block()和wakeup()是成对的。

Win32中线程阻塞的API函数是SuspendThread( );唤醒线程的API函数是ResumeThread ( )

Windows中一般没有挂起状态,即线程“挂起”后并不调到外存,而只是阻塞。唤醒也称为释放。

五、进程的挂起和激活


1.进程的挂起


当出现了引起进程挂起的事件时(用户进程请求将自己挂起,或父进程请求将子进程挂起),系统将用挂起原语suspend( )将指定进程或处于阻塞状态的进程挂起。

挂起原语的执行过程:

1、检查被挂起进程的状态:

若处于活动就绪或执行状态,则将其转为静止就绪;

若处于活动阻塞,则将其转为静止阻塞

2、把该进程的PCB复制到某指定内存区域 -----为方便用户或父进程考查该进程的运行状态。

3、若该进程正在执行,则转进程调度程序重新调度。

2.进程的激活


        当发生激活进程的事件时(如父进程或用户请求激活指定进程,而内存中已有足够空间时),系统利用激活原语active( )将指定进程激活。

激活过程是:

1、将进程从外存调入内存;

2、检查该进程现行状态:

若是静止就绪,则改为活动就绪;

若是静止阻塞,则改为活动阻塞。

3、若采用的是抢占式调度策略,则应检查被激活就绪进程的优先级,若其优先级比先行执行进程高,则应将处理机分配给被激活进程。

上一篇:网络协议一

下一篇:ArrayList源码简析

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...