zoukankan      html  css  js  c++  java
  • 操作系统-进程概念

    一、定义(Process)

      进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位

    1、进程是程序的一次执行过程,是对CPU的抽象,是正在运行的程序的抽象

    2、每个进程具有独立的地址空间

    3、操作系统通过调度将CPU的控制权交给某个进程

    二、进程控制块PCB(Process Control Block)

      又称进程描述符,进程属性,是操作系统用于管理控制进程的一个专门的数据结构,记录进程的各种属性

    PCB是系统感知进程存在的唯一标志,进程与PCB是一一对应的

      进程表:所有进程的PCB集合

    三、PCB包含哪些信息

      进程描述信息

    进程标识符PID,唯一,整数,进程名(不唯一),用户标识符userID,进程组关系(兄弟父子关系)

      进程控制信息

    当前状态,优先级,代码执行入口,运行统计信息,进程间同步和通信,进程队列指针,进程消息队列指针

      所拥有的资源和使用情况

    虚拟地址空间的状况,打开文件列表

      CPU现场信息

    进程不运行时的寄存器值和指向该进程的页表的指针

    四、进程状态及状态转换

      运行态(Running)

    占有CPU,并在CPU上运行

      就绪态(Ready)

    已经具备运行条件,但由于没有空闲CPU,而暂时不能运行

      等待态(Waiting/Blocked)

    或叫阻塞态,封锁态,睡眠态,因等待某一事件而暂时不能运行

      操作系统通常将进程状态分为多种模型,这里给出三状态和五状态

    五、进程队列

    1、操作系统为每一类进程建立一个或多个队列

    2、队列元素为PCB

    3、伴随进程状态的改变,其PCB从一个队列进入另一个队列

     

    上图中,一个进程创建后经许可(提交)进入就绪队列,经过调度进入CPU,如果正常处理完毕会释放,如超时重新进入就绪队列

    如果还有各种等待事件,则进入各类等待事件队列,当相应的事件发生后再次进入就绪队列,等待调度进入CPU

     六、上下文切换

    定义:CPU硬件状态从一个进程换到另一个进程的过程

    进程在运行时,其硬件状态保存在CPU上的寄存器中(只有一套)

    进程不运行时,这些寄存器的值保存在进程控制块PCB中,当操作系统要运行一个新的进程时,需要将这个进程的PCB中的值送到

    对应的寄存器中,这也是下一篇要讲的线程的概念。

    以上是操作系统关于进程的一些概述,摘自北大陈向群教授的操作系统课程学习

  • 相关阅读:
    sql server 中各个系统表的作用==== (转载)
    后台动态设置前台标签内容和属性
    利用C#编写一个简单的抓网页应用程序
    如何创建和使用Web Service代理类
    jdbc如何取得存储过程return返回值
    子窗口和父窗口的函数或对象能否相互访问 (转载)
    把aspx文件编译成DLL文件
    C#中的类型转换
    c#中对文件的操作小结
    转贴一篇 自定义数据库 希望对你有帮助
  • 原文地址:https://www.cnblogs.com/yb38156/p/9656713.html
Copyright © 2011-2022 走看看