-
在操作系统中,引入进程的目的是什么?
a.程序的执行具有顺序性、封闭性和可再现性特征
b.并发环境中,存在多个程序同时访问同一个资源的状况,因而失去了程序对资源操作的封闭性。
c.并发环境中,各程序执行的异步性导致无法预测共享资源状态的变化情况,是程序执行的结果不再具有“可再现性” -
进程控制包括哪些操作?
(说一点,以下表格中,原语和引发事件并不是一一对应关系,可以看完相关原语再来看相应事件)
a.进程创建
创建原语 | 引发事件 |
---|---|
1.向系统申请空闲的PCB | 用户登录 |
2.为新进程分配资源,例如分配内存空间存放程序和数据 | 作业调度 |
3.初始化新进程的PCB,在PCB中填写进程标识符、进程状态、程序和数据的地址、资源清单等 | 提供系统服务(为响应应用程序请求创建新的服务进程) |
4.将新建进程的PCB排入就绪队列 | 应用程序请求(使用系统调用创建进程) |
b.进程终止
撤销原语 | 引发事件 |
---|---|
1.查找撤销进程的PCB | 进程正常结束,即进程执行完需要做的工作 |
2.若进程处于运行状态,予以终止,并进行进程调度,以重新挑选其他进程运行 | 进程异常结束,即运行期间由于程序出现某些错误和故障而迫使进程终止 |
3.若进程有子孙,予以终止 | 外界干预,即并非本进程在运行期间出现故障,而是由进程以外的事件引起进程终止 |
4.归还资源 | |
5.从所在队列移出 |
c.进程阻塞
阻塞原语 | 引发事件 |
---|---|
1.停止进程的执行 | 请求系统服务 |
2.将进程插入阻塞队列 | 启动某种操作 |
3.重新调度 | 新数据尚未到达 |
无 | 无新工作可做 |
d.进程唤醒
唤醒原语 | 引发事件 |
---|---|
1.将进程从阻塞队列解下 | 请求系统服务 |
2.将进程插入就绪队列 | 启动某种操作 |
3.改变进程在PCB中的状态 | 新数据尚未到达 |
无 | 无新工作可做 |
e,进程切换
切换原语 | 引发事件 |
---|---|
1.保存当前执行进程的CPU现场 | 时钟中断 |
2.修改当前运行态进程的PCB信息 | I/O设备中断 |
3.将当前进程的PCB移入相应状态等待队列 | 异常 |
4.恢复系统调度进程的CPU现场 | 陷入 |
5.选择另一个将要进行的进程 | 当前时间片到 |
6.保存系统调度进程的CPU现场 | 有更高优先级的进程到达 |
7.修改系统调度进程的PCB信息(修改为运行态) | 当前进程主动阻塞 |
8.恢复新调入进程的从从CPU现场 | 当前进程终止 |
-
在操作系统中,进程实体是如何实现的?
a.进程实体是指放在操作系统实现进程时,把进程结构组织分为三个部分:程序段、数据段和PCB
b.程序段存放进程执行的程序代码,数据段存放程序执行过程中的使用大抵数据
c.PCB是操作系统中标识进程的唯一数据结构。PCB中记录了与进程执行相关的所有数据信息,包括进程标识符、进程当前状态、进程队列指针、程序和数据段地址、CPU现场(上下文)、通信信息、家族关系、占用资源清单。 -
操作系统如何实现进程状态转换?
a.进程状态的转换主要是由进程控制原语实现。
b.对三种基本状态的表述。
阻塞态,指因等待某种时间的发生而不能运行(即使CPU空闲,也无法运行的进程)
就绪态,已经具备运行,但由于没有空闲CPU而暂时不能运行(拥有除处理机之外的所有需要的资源,只欠CPU)
运行态,占有CPU,并CPU上运行(单核处理机系统,每一个时刻最多只有一个进程处于运行态)
c.在三状态模型中,引起状态转换的事件和实施状态转换的操作,例如:
就绪态 → 运行态:进程被调度(一个进程被调度进程选中)
运行态 → 就绪态:时间片到,或CPU被优先级高的进程抢占(时间片用完或者优先级抢占)
运行态 → 阻塞态:等待系统分配资源,或等待某事件发生(主动行为)或等待某个事件发生
阻塞态 → 就绪态:资源分配到位,或等待事件发生(被动行为)或等待的事件已发生而被唤醒 -
操作系统提供了哪些进程通信机制?
a.共享存储器系统:分为共享数据结构和共享存储区。共享数据结构由于传递的数据较少,所以主要用于传递资源状态或控制信息,如信号和信号量;共享存储区则是提供可共享的内存空间,因而可以传递任意数量的数据。
b.管道:一种半双工的通信机制,允许在两个进程间创建数据流。可以借助文件系统调用实现。
c.消息传递系统:进程交换以消息为单位,用户通过系统调用实现信息的传递,例如消息队列。消息传递机制不要求通信的进程间拥有共享的设备资源,因而可用于网络通信。