第二章 进程控制
来源:互联网 发布:淘宝省钱群是真的吗 编辑:程序博客网 时间:2024/06/04 23:27
原语:由若干条指令组成的,能够完成一定功能的程序段;该程序段要么全部执行,要么一句也不执行。
进程控制是对系统中的全部进程实施有效的管理,包括进程创建、终止、进程阻塞与唤醒、进程挂起与激活。
一、进程的创建
⒈ 引起进程创建的事件
● 用户登录
● 作业调度
● 提供服务
⒉ 进程创建过程
操作系统发现要求创建新进程的事件后,调用进程创建原语Creat()创建新进程。
Creat()的执行过程:
申请空白PCB —> 为新进程分配资源 —> 初始化进程控制块 —> 将新进程插入就绪队列
二、进程的终止
⒈ 引起进程终止的事件
● 正常结束
● 异常结束
越界错误、非法指令等
● 外界干预
操作员或操作系统干预
父进程请求
父进程终止
⒉ 进程终止过程
如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语终止进程。
终止原语的执行过程:
找出被终止进程的PCB —> 若进程状态为运行态,置CPU调度标志为真 —> 若其有子孙进程,终止其子孙进程并回收其资源 —> 回收终止进程的资源 —> 回收终止进程的PCB
三、进程的阻塞与唤醒
⒈ 引起进程阻塞与唤醒的事件
● 请求系统服务
● 启动某种操作
● 新数据尚未到达
● 无新工作可做
⒉ 进程阻塞过程
正在执行的进程,如果发生了上述某事件,进程便通过调用阻塞原语Block()将自己阻塞。
Block()的执行过程:
将PCB中的状态改为阻塞态,并加入阻塞队列 —> 转进程调度
⒊ 进程唤醒过程
当阻塞进程等待的事件发生,则由有关进程调用唤醒原语Wakeup()唤醒等待该事件的进程。
Wakeup()的执行过程:
把阻塞进程从等待该事件的阻塞队列中移出 —> 置进程状态为就绪态,将PCB插入到就绪队列中
注:阻塞原语与唤醒原语作用相反,成对使用
四、进程的挂起与激活
⒈ 引起进程挂起与激活的事件
● 终端用户的请求
● 父进程请求
● 负荷调节的需要
● 操作系统的需要
⒉ 进程挂起过程
当出现引起进程挂起的事件时,系统利用挂起原语Suspend()将指定进程或处于阻塞的进程挂起。
Suspend()的执行过程:
检查被挂起进程的状态,若处于活动就绪,则改为静止就绪;若处于活动阻塞,则改为静止阻塞;若挂起的进程正在执行,则重新进行进程调度
⒊ 进程激活过程
当发生激活进程的事件时,系统利用激活原语Active()将指定进程激活。
Active()的执行过程:
将进程从外存调入内存 —> 检查该进程的状态,若为静止就绪,则改为活动就绪;若为静止阻塞,则改为活动阻塞
- 第二章 进程控制
- 第二章 进程的描述与控制
- 第二章、进程的描述与控制(1)
- 计算机操作系统 第二章 进程的描述与控制
- 第二章:进程管理
- 第二章 进程
- 第二章 进程管理
- 第二章 进程管理
- 《unix环境高级编程》第二版 第八章 进程控制 知识点
- 第八章 进程控制
- 第八章 进程控制
- 第六章 进程控制
- 第八章 进程控制
- 第八章 进程控制
- 8章 进程控制
- 第二章 进程管理 2.1 进程基本概念
- [OS] 第二章 进程管理
- 操作系统思考 第二章 进程
- 常用的adb指令
- java使用pdfbox把PDF转成html
- java数组实现去重且不改变原先顺序
- Failed to resolve: com.jakewharton.rxbinding2:rxbinding:2.0.0
- Java Jsp 九大内置对象及四大作用域概述
- 第二章 进程控制
- VMware克隆虚拟机 重新设置ip
- elasticsearch字段过大导致的内存问题
- 机器学习基石-Validation
- 基于springboot的maven工程打war包
- mysql主从复制框架图及原理理解
- java创建HttpURLConnection连接并获取返回值
- (十六)优雅停机
- js的iframe 获取后台重定向的值