操作系统原理Linux篇 读书笔记(1)——进程管理

  • 1.进程的定义和特征
    • 进程的概念:
      进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是进行系统资源分配、调度的一个独立单位。
  • 2.进程的五大特征
    a.动态性
    b.并发性
    c.异步性
    d.独立性
    e.结构性:每个进程都有其相对应的数据结构及独立表项。
  • 3.引入进程的利弊
    利:多道程序并行执行,改善了系统资源利用率,提高了系统的吞吐量
    弊:1》空间开销 2》时间开销

  • 4.进程控制块(Process Control Block —PCB)
    PCB是系统为描述和控制进程的运行而为每个进程定义的一个数据结构,PCB中记录了操作系统所需的全部的关于进程的描述和控制信息,它是进程存在的唯一标识。
    PCB的组织方式(根据不同的状态来组织):索引表结构,或链接表结构。

  • 5.进程控制:
    原语:是执行一定功能的程序段,它的执行不可中断,好像执行一条指令一样。原语具有原子操作性,即一个操作的所有动作,要么全做,要么全部做。这种原子性通过屏蔽中断来实现传送数据。

    • 创建原语的主要操作
      a.先向系统申请一个空闲的PCB
      b.再根据父进程提供的参数将子进程的PCB初始化
      c.将此PCB插入就绪队列
      d.返回一个进程标识符
    • 1.撤销原语
      1》撤销原因:a任务完成;b发生错误;c父进程被撤销
      2》主要功能:收回被撤销进程占用的所有资源,并撤销它的PCB。
      3》主要操作:
      a.找到要撤销的进程PCB,如果有子孙进程,需要遍历进程树,找到所有的子孙进程的PCB
      b.释放它及其后代进程所占用的全部资源
      c.删除其子孙进程
      d.把进程PCB从其所在队列中删除,并回收PCB
      e.如果撤销的是运行进程,则需要从就绪队列中选择一个进程投入运行。
      注意:撤销进程原语是应该由父进程或者祖先进程发出、进程一般不能自己撤销自己
    • 2.阻塞原语
      1》主要功能:将进程由执行状态或其他状体转为阻塞状体。
      2》挂起原因:资源缺乏、等待I/O操作等。
      3》挂起方式:进程将自身挂起、将指定标识的进程挂起、将某进程的全部或部分子进程挂起等。
      4》主要操作:
      a.中断处理机,保存该进程的CPU现场
      b.将该进程插入等待队列中
      c.从就绪队列中选择一个新的进程投入运行
    • 3.唤醒原语
      1》主要功能:由“发现者”进程将处于阻塞状态的进程转变为就绪状态。
      2》主要操作:
      a.从相应的阻塞队列中查找等待事件的阻塞进程,改变被恢复的进程的PCB的内容
      b.把该进程从阻塞队列中撤出,并将该进程插入就绪队列
  • 6.进程调度方式
    1.非剥夺方式:不能从正在运行的进程夺走处理器控制权,除非它运行完毕或因某种原因阻塞
    2.剥夺方式:按某种原则,将正在运行的进程强制撤销,并将处理器分配给其他就绪进程

    • 剥夺原则:
      1》优先级原则
      2》短进程优先原则
      3》时间片原则
      4》强制性剥夺
  • 7.进程调度算法
    1.先进先出(FIFO)

    • 特点
      a.按照进程进入就绪队列的先后次序来分配处理机
      b.非剥夺方式调度方法
      2.短执行进程优先(SCBF)
      -特点
      a.按照就绪队列中的进程预期执行时间的长短来分配处理机
      b.剥夺方式调度方法
      3.优先级调用(最常用)
      -特点
      a.按照就绪队列中的进程的优先级的高低来分配处理机(优先权:静态、动态)
      b.剥夺/非剥夺方式调度方法
      4.时间片轮转法
      -特点
      a.系统将所有就绪进程按到达时间的先后顺序排出一个队列,依次轮流调度各个进程。
      5.多级队列反馈调度算法
  • 8.信号量

    • 定义:记录性变量。
    • value的取值意义
      • 初始值:表示系统中某类资源的数目
      • >0:表示系统当前可用的该类资源的数目
      • <=0:其绝对值表示系统中因请求该类资源而被阻塞的进程数目
    • 信号量的操作
      操作系统原理Linux篇 读书笔记(1)——进程管理_第1张图片

    • 信号量的应用
      1》实现进程互斥
      用信号量解决几个进程互斥进入临界区的问题,几个进程共享一个公用信号量(互斥信号量)。
      每个进程进入临界区必须先执行P(mutex),退出临界区后执行V(mutex)。对于n个进程同时共享一个临界资源,则mutex的取值为1~(n-1)。
      2》用信号量实现进程同步
      设立与资源相关的私有信号量。

  • 9.进程通信机制

    • 1.进程通信的类型:
      根据通信实施方式和数据存取方式可分为三类:
      • 共享存储器系统:相互通信的进程共享某些数据结果和共享存储区(如寄存器、数组等)。
      • 消息传递系统
      • 管道通信系统:用一个打开的共享文件连接两个相互通信的进程。
    • 2.消息通信
      基本思想:把需要在进程间传递的一组消息看做一个消息。在系统中设置一个存放消息的存储区域,称为消息缓冲区,它可以同时存放一定数量的消息。
      系统中每个进程都设置一个消息队列,进程的PCB中设置一个纸箱其缓冲队列的指针。对该队列的操作要遵循同步互斥原则。
    • 3.信箱通信
      信箱:是一种公共的存储区,通信的一种中间实体。
      组成:
      • 信箱头:描述信箱(信箱名称、信箱大小、信箱方向)以及拥有该信箱的进程名等。
      • 信箱体:存放消息,由若干格子组成,每个格子放一信件。(格子数目及大小在创建信箱时确定)
        • 双向信箱:即发也收
        • 公用信箱:与多个进程通信(按优先级处理)
        • 单向信箱:只发不答
  • 10.死锁
    定义:多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都无法向前推进,死锁是计算机系统和进程所处的一种状态。

    • 死锁产生的必要条件
      1、互斥条件
      2、不剥夺条件
      3、请求与保持条件
      4、循环保持条件(存在一种进程资源的循环等待)

    • 死锁的预防
      A:破坏互斥条件(保证对临界资源的互斥访问,故不大可能实现)
      B:破坏不剥夺条件:当进程资源请求不能立即满足时,必须释放所有已获得的资源。
      C:破坏请求与保持条件:静态地一次性分配资源
      D:破坏循环等待条件:有序资源分配法。
      1》对资源进行编号
      2》进程申请资源时,必须以编号递增方向申请。

    • 死锁的检测
    • 操作系统原理Linux篇 读书笔记(1)——进程管理_第2张图片

    • 死锁的解除

      • 1 资源剥夺法(抢占):当发生死锁后,从其他进程剥夺足够数量的资源给死锁进程,以解除死锁状态。
      • 2 撤销进程法(终止):采用强制手段,从系统中撤销一个或部分死锁进程,并剥夺这些进程的资源,供其他死锁进程使用。

你可能感兴趣的:(操作系统)