操作系统:进程

进程概念:

  • 为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程
  • 进程-在执行中的程序
  • 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程
  • 一个程序是静态的,一个进程是动态的
  • 引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增加了OS的复杂性

一个进程包括:程序代码 + 进程控制块 + 相关数据(栈,堆,数据段)
进程与程序

  • 进程是动态的,程序是静态的。
  • 进程是暂时的,程序是永久的。
  • 进程与程序组成不同
  • 进程与程序对应关系:通过多次执行’,一个程序可对应对个进程;通过调用关系,一个进程可包括多个程序。

进程的特征

  • 结构特征:进程实体 = 程序段+ 相关的数据段+PCB
  • 动态性:进程的实质是程序的一次执行过程
  • 并发性:多个进程实体同存在于内存中,且能在一段时间内同时运行。
  • 独立性:'指进程实体是一个能独立运行,独立分配资源和独立接受调度的基本单位
  • 异步性:进程按各自独立的,不可预知的速度向前推进

进程状态:不是固定的,而是在不停变化

  • 新建:在创建进程;已构造了进程标识符;已创建了管理进程所需的表格
  • 就绪:进程等待分配处理器;存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行(有多个进程处于此状态)
  • 运行:指令在执行;当进程有调度/分派程序分派后,得到CPU控制权,它的程序正在运行(在系统中,总只有一个进程处于此状态)
  • 等待:进程等待某些事件发生;进程正在等待某个事件的发生(如等待I/O完成),而暂停执行,即使给它CPU时间,它也无法执行
  • 终止:进程执行完毕;它不再有执行资格,当数据不再需要后,进程将被删除
    操作系统:进程
    进程控制块(PCB):程序计数器,CPU现场保护区,CPU调度信息
  • 一个专门的数据结构,系统用它来记录进程的外部特征,描述进程的运动变化过程
  • PCB是进程管理和控制最重要的数据结构,在创建进程时,建立PCB,并伴随进程运行的全过程,直到进程撤销而撤销
  • PCB是系统感知进程存在的唯一标志,进程与PCB是一一对应的
  • PCB经常被系统访问,如,调度程序,资源分配程序,中断处理程序等,所以PCB应常驻内存

调度

  • 进程调度队列:
    • 作业队列:在系统中所有队列的集合
    • 就绪队列:在主内存中的,就绪并等待执行的所有进程的集合
    • 设备队列:等待某I/O设备的进程队列
  • 长调度(或作业调度):选择可以进入就绪队列的进程
  • 短进程(或CPU调度):选择可被下一个执行并分配CPU的进程
  • 上下文切换:
    • 当CPU切换至另一个进程时,系统必须保存旧进程并为新进程调入所保留状态

进程阻塞:一个处在运行状态的进程,因等待某个事件的发生(如等待打印机,同步事件等)而不能继续运行时,将调用阻塞原语,把进程置为阻塞状态,并转进程调度程序(等于让出虚拟机)。它的执行将引起等待某事件的队列改变。
进程唤醒:当进程所等待的事件发生时,该进程将被唤醒。有两种方法将其唤醒:由系统进程唤醒;由事件发生进程唤醒
进程通信

  • 共享存储:

    • 使用共享存储模型的进程间通信要建立共享存储区
    • 进程通过读写共享存储区来交换信息
    • 有通信进程来确定交换的数据和位置,不受操作系统的控制
  • 消息传递:

    • 用于进程通信的机制,同步其间的活动
    • 消息系统:进程间通信无须再利用共享变量
    • IPC提供两个操作:发送;接受
    • 直接通信
      • 进程必须显示的命名:send(p,message);receive(Q,message)
      • link通信连接的特征:连接自动建立;连接精确的与一对在通信的进程相关;在每一对之间就存在一个连接;连接可以无向,但通常是双向的
    • 间接通信
      • 消息导向至信箱并从信箱接受;每个信箱有唯一的id;仅当共享一个信箱时才能通信
      • send(A,message); receive(A,message)
      • 特征:连接可同多个进程相关;每一对进程可共享多个通信连接;连接可是无向或双向的;允许一个连接最多同2个进程相关,只允许一个时刻有一个进程执行接受操作;允许系统任意选择接受者。发送者被通知谁是接收者