zoukankan      html  css  js  c++  java
  • 进程的控制与状态细化

    ···进程控制

    进程控制的主要任务是:创建和撤销进程以及进行进程间的状态转换。这包括:

      *创建一个进程

      *撤销一个进程

      *改变进程状态

      *实现进程间的通信

    这些由操作系统内核通过执行各种原语完成

    ···原语

    含义:由若干条机器指令构成的可完成特定功能的程序段,它是一个原子操作过程,作为一个整体而不可分割---要么全都完成,要么全都不做。原语主要是通过屏蔽各种中断和固化技术保证其原子性的

    分类:

      *进程控制原语

      *进程通信原语

      *进程管理原语

      *其他方面的原语

    其中,进程控制原语包括:

        1.进程创建原语

        2.进程撤销原语

        3.进程阻塞原语

        4.进程唤醒原语

        5.进程挂起原语

        6.进程激活原语

    ···进程状态的细化

    “挂起”、“激活”  操作的引入

    系统管理员:暂停某个进程,排除系统故障或暂时减轻系统负荷。

    用户:暂停自己的进程以便检查自己作业的中间结果

    由于被挂起前进程的状态有三种,挂起后的进程就分为两种状态:静止就绪态和静止阻塞态(有的称挂起就绪态和挂起阻塞态)。挂起前的进程就绪态和阻塞态也改为活动就绪态和活动阻塞态。

    ···创建原语

    创建一个进程主要是为新进程创建一个PCB。创建原语首先从系统的PCB表中索取一个空白的PCB表目,并获得其内部标识,然后将调用进程提供的参数:如外部名、正文段、数据段的首址、大小、所需资源、优先级等填入这张空白PCB表目中。并设置新进程状态为   活动/静止  就绪态,并把该PCB插入到就绪队列中,就可进入系统并发执行。

    ···撤销原语/终止

    由父进程发出,撤销它的一个子进程及该子进程所有的子孙进程,被撤销进程的所有资源(主存、I/O资源、PCB表目)全部释放出来归还系统,并将他们从所有的队列中移去。如撤销的进程正在进行,则调用进程调度程序将处理器分给其他进程。

    ···阻塞原语

    当前事件因请求某事件而不能执行时(例如请求I/O而等待I/O完成时),该进程将调用阻塞原语阻塞自己,暂时放弃处理机。进程阻塞是进程自身的主动行为。阻塞过程首先立即停止原来程序的执行,把PCB中的现行状态由运行态改为活动阻塞态,并将PCB插入到等待某事件的阻塞队列中,最后调用进程调度程序进行处理机的重新分配。

    ···唤醒原语

    当被阻塞的事情所期待的事情发生时,则有关进程和过程调用wakeup原语,将阻塞的进程唤醒,将等待该事件的进程从阻塞队列移出,插入到就绪队列中,将该进程的PCB中的现行状态,如是活动阻塞态则改为活动就绪态,如是静止阻塞态则改为静止就绪态。

    ···挂起原语

    调用挂起原语的进程只能挂起它自己或它的子孙,而不能挂起别的族系的进程。挂起原语的执行过程是:检查要挂起进程PCB的现行状态,若正处于活动就绪态,便将它改为静止就绪态;如是活动阻塞态则改为静止阻塞态。如是运行态,则将它改为静止就绪态,并调用进程调度程序重新分配处理机。为了方便用户或父进程考察该进程的运行状况,需把该进程的PCB复制到内存指定区域。

    ···激活原语

    用户进程或父进程通过调用激活原语将被挂起的进程激活。激活原语执行过程是:检查被挂起进程PCB中的现行状态,若处于静止就绪态,则将它改为活动就绪态,若处于静止阻塞态,则将它改为活动阻塞态。

  • 相关阅读:
    ch_5102 Mobile Service
    ch_POJ1201 Intervals
    [CodeVs]谁是赢家
    树上莫队
    [NOI2009]管道区珠
    拉格朗日差值
    Simpson&自适应Simpson
    数论学习笔记
    hibernate FetchType理解
    Hibernate的generator属性之意义
  • 原文地址:https://www.cnblogs.com/fate-/p/12420434.html
Copyright © 2011-2022 走看看