操作系统学习笔记(day5)进程控制

1. 进程的创建与终止

1.1 引起创建进程的事件

导致一个进程区创建另一个进程的典型事件有四类:

  • 用户登录。 在分时系统中,用户在终端键入登录命令后,若登录成功,系统将为该用户建立一个进程,并把它插入就绪队列中。

  • 作业调度。 在多道批处理系统中,当作业调度程序按一定的算法调度到某个(些)作业时,便将它(们)装入内存,为它(们)创建进程,并把它(们)插入就绪队列中。

  • 提供服务。 当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务。

  • 应用请求。 由用户自己创建新进程,以便使新进程以同创建者进程并发运行的方式完成特定任务。

1.2 进程的创建

当出现创建新进程的请求后,OS便调用创建原语Creat按下述步骤创建一个新进程:

  • 申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。

  • 为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等。

  • 初始化进程控制块(PCB):①初始化标识信息 ② 初始化处理机状态信息 ③ 初始化处理机控制信息

  • 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。

1.3 引起进程终止的事件

  • 正常结束,表示进程的任务已经完成,准备退出运行。 如,批处理系统中的Halt指令,分时系统中的Logs off指令。

  • 异常结束,是指进程在运行时发生了某种异常事件,使程序无法继续运行。常见的异常事件有:

  1. 越界错
  2. 保护错
  3. 非法指令
  4. 特权指令错
  5. 运行超时
  6. 等待超时
  7. 算术运算错
  8. I/O故障
  • 外界干预,是指进程应外界的请求而终止运行。这些干预有:
  1. 操作员或操作系统干预
  2. 父进程请求
  3. 因父进程终止

1.4 进程的终止

如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语,按下述过程去终止指定的进程:

  • 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态;

  • 若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度;

  • 若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程;

  • 将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统;

  • 将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜索信息。

2. 进程的阻塞与唤醒

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

  • 向系统请求共享资源失败

  • 等待某种操作的完成

  • 新数据尚未到达

  • 等待新任务的到达

2.2 进程阻塞过程

调用阻塞原语block自我阻塞 —— 停止执行并将PCB的状态设为阻塞 —— 将PCB插入阻塞队列 —— 进程调度

2.3 进程唤醒过程

有关进程调用唤醒原语wakeup将等待事件的进程唤醒

block原语和wakeup原语要成对出现!

3. 进程的挂起与激活

3.1 进程的挂起

suspend原语:首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞;为了方便用户或父进程考查该进程的运行情况,而把该进程的PCB复制到某指定的内存区域;最后,若被挂起的进程正在执行,则转向调度程序重新调度。

3.2 进程的激活过程

active原语:先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞,便将之改为活动阻塞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值