zoukankan      html  css  js  c++  java
  • 进程管理(四)-进程的状态以及转换

    进程的状态以及转换

    运行状态

    简要描述:该时刻实际占有着CPU

    就绪状态

    简要描述:可以运行,但是由于其他进程正在运行而暂时停止

    这种情况下,只不过是系统暂时没有把CPU分配给它而已,一旦系统将CPU分配给它,它立马就可以跑。

    阻塞状态

    简要描述:除非外部事件发生否则就不能运行

    当一个进程不能运行的时候,它就会被阻塞。典型的例子就是等待可以使用的输入。除此之外,一个理论上可以运行的进程被迫停止,由于操作系统调度另外一个进程占用了CPU。

    这种状况下进程不能运行,不管CPU闲不闲,它都运行不了,因为它缺少可以运行的条件,所以陷入等待中。

    进程状态的转换

    1.进程发现该进程由于缺少条件不能运行下去了,发生了转换一,比如等待用户输入数字来计算,用户不输入数字,根本就进行不下去,只能变成阻塞状态并陷入等待。

    2.转换2和转换3是由调度程序做的,调度程序决定哪个进程占有CPU。发生这种转换的情况是,当调度程序发现某个程序占用CPU时间有点过长了,为了让其他进程也享受到和该进程一样的待遇,会让这个进程暂时让出CPU,进而让与他地位相同的进程使用。而当所有与他地位相同的人享受并使用过CPU之后,又轮到原来的那个进程的时候,会发生转换3.

    3.当一个阻塞进程得到其继续执行的条件的时候,比如程序得到输入的时候,它会从原来的阻塞状态变为就绪状态,假如现在CPU不忙的话,立马回继续变成执行状态。

    进程模型

    操作系统的最低层是属于调度程序,在它的上面有许多的进程,所以关于中断处理、启动进程和停止进程的具体细节都隐藏在调度程序之中

  • 相关阅读:
    三目运算符不易发现的错误
    [转]理解C# 4 dynamic(1)
    [转]C# and the using Statement in 3 seconds and a bug in Reflector
    异步上传文件多种方式归纳
    JQuery的两个each方法的注意点
    CRM2011 concurrency问题及解决方案
    [转]Android与电脑局域网共享之:Samba Client
    [转]Android与电脑局域网共享之:Samba Server
    [转]SQL2005后的ROW_NUMBER()函数的应用
    Javascript中布尔运算符的高级应用
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/11608116.html
Copyright © 2011-2022 走看看