进程控制

处理机的执行方式分为系统态和用户态
进程控制一般是由内核来实现,内核的两大方面功能:

  •  支撑功能:中断处理、时钟管理、原语操作
  •  资源管理功能:进程管理、存储器管理、设备管理

进程的创建:
   进程的层次结构:os允许一个进程创建另一个进程,所以形成了一个层次结构
    子进程继承父进程的所拥有的资源,注意Windows不具有层次解构,每个进程之间多具有相同的的地位,但是一个进程创建另一个进程时,获得了一个句柄,作用相当于一个令牌,可以用来控制被创建的进程,这个令牌是可以传递的,也就是说,谁获得了令牌,谁就有控制该进程的权利。


 进程图:Unix


 进程创建的过程:
  引起进程创建的事件:用户登录、作业调度、提供服务、(前三个都是由内核完成的)应用请求(这个是由用户进程自己创建的)。
  首先申请一个空白的PCB,获得唯一的PCB标识符,为新进程分配所需的资源,资源各种:内存、文件、io、CPU时间等。操作系统为其分配内存空间时,需要知道需要多大的内存空间。如果是批处理作业,用户创建进程时提供。如果是应用进程创建子进程,也是该进程在提出创建进程请求时给出。然后初始化PCB,有标识信息、处理机状态信息、处理机控制信息。如果进程就绪队列能够接纳新的进程,就放入就绪进程队列。

进程的终止:
引起进程终止的事件:
  正常结束,批处理系统会加一条holt指令。分时系统利用logs off 实现
  异常结束:

  • 越界错:进程访问的存储区超过了该进程。
  • 非法指令:执行了不存在的指令
  • 特权指令错:执行了一条只允许os去执行的指令
  • 运行超时
  • 等待超时
  • 算术运算错
  •  i/o故障
  • 外界干预:

       操作系统或操作员的干预,比如系统发生了死锁,有操作员或操作系统采取终止的方式将系统从死锁状态解救出来
       父进程请求:子进程完成父进程要求的工作后,父进程提出请求结束子进程
       因父进程终止


 进程终止的过程:
    首先根据进程标识符,检索出要终止的进程,读到该进程的状态。然后,如果处于运行态,立刻终止,并置调度标志位真用于指示该进程被终止后,应重新进行调度,如果还有子进程,将子进程也终止,防止子进程变为不可控的进程。被终止得到进程将所有的资源归还给父进程,或者归还给系统将被终止进程移出所在队列,等待其他程序来收集信息。信息收集完毕后,删除PCB。

进程的阻塞:
   引起阻塞的事件:

  •   向系统请求资源失败:系统没有足够的资源分配时。
  •   等待某种操作的完成:例如io操作
  •   新数据尚未到达:例如进程a要对进程b输入得到数据进行处理时。
  •   等待新任务的到达:比如网络环境下的发送进程,当所有的数据包发送完后,没有其他的数据包要发送时

 进程的阻塞过程: 
    当发生引起阻塞的事件后,进程调用block原语,可见是一种主动行为,进入block后,由于处于运行状态,所以立即终止运行,改PCB中的状态参数为阻塞状态,并将其插入阻塞队列。如果是多阻塞队列,应将该进程插入具有相同事件的队列。

进程唤醒过程:
   当阻塞状态的所期待的事件发生时,将等待该事件的进程唤醒,比如io操作完成后,就将其唤醒,首先存阻塞队列中移出,更改PCB中的状态值,然后将其插入就绪队列。

 需要指出的是,block,和wakeup需要成对存在。否则可能永久处于阻塞状态。

进程的挂起过程:
  引起挂起的事件:

  •   终端用户发现一些问题,希望暂停运行,以便于用户研究执行情况和程序更改。
  •   父进程有需要让其暂停运行,以便协调各个子进程之间的活动,以及考查修改子进程。
  •   操作系统,以便于检查运行中资源的使用情况或进行记账。
  •   负荷调节的需要,当实时系统的负荷过重时,挂起不重要的进程,保证任务的完成时间,和系统的正常运行。

 挂起的过程:
    首先检查状态,如果处于活动就绪就该为静止就绪,如果处于活动阻塞就改为静止阻塞,为了方便考查进程运行情况,把进程的PCB放到指定的内存区域,叫做存储交换区。如果是运行态变为静止就绪。


进程的激活过程:
   现将进程从外存调入内存,检查进程的现行状态,如果静止就绪,就改为活动就绪,如果是静止阻塞,就改为活动阻塞。如果采用抢占策略,每当插入就绪队列时,应该检查与当前进程得到优先级,看是否要进行调度。

 

转载于:https://www.cnblogs.com/mhzhou-whyj/p/7739491.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值