Skip to content

Latest commit

 

History

History
119 lines (97 loc) · 4.46 KB

操作系统学习记录.md

File metadata and controls

119 lines (97 loc) · 4.46 KB

B站资源,操作系统快速复习

https://www.bilibili.com/video/BV1a54y1D7R8?p=3

进程

为什么需要进程?

  1. 没有操作系统之前,资源只属于当前运行的程序。计算机只能一个程序接着一个程序地运行。容易造成资源的浪费
  2. 配置操作系统,引入多道程序设计的概念
  3. 进程起到 合理的隔离资源的作用,提升资源利用率

总结:

  1. 进程是系统进行资源分配和调度的基本单位
  2. 进程作为程序独立运行的载体保障程序正常执行
  3. 进程的存在使得操作系统的资源利用率大幅提升

进程的实体

主存中的进程形态

在主存中,进程占用一段连续的空间,并拥有进程控制块(PCB) (1)标识符:唯一标记一个进程,用于区别其他进程 (2)进程状态 (3)优先级 (4)程序计数器:指向进程即将被执行的下一条指令的地址 (5)内存指针:程序代码、进程数据相关的指针 (6)上下文数据:进程执行时处理器存储的数据 (7)IO状态信息:被进程IO操作所占用的文件列表 (8)记账信息:进程使用处理器的时间、时钟数总合等 …… 以上信息所描述的进程标识符处理机状态进程调度信息进程控制信息就是主存中的进程形态。

总结一下进程控制块(PCB)

  1. 用于描述和控制进程运行的通用数据结构
  2. 记录进程当前状态和控制进程运行的全部信息
  3. PCB使得进程成为能够独立运行的基本单位
  4. PCB是操作系统进行调度经常会被读取的信息
  5. PCB是常驻内存的,存放在系统专门开辟的PCB区域内

进程与线程

  1. 线程是操作系统进行运行调度的最小单位
  2. 线程包含在进程中,是进程中实际运行工作的单位
  3. 一个进程可以并发多个线程,每个线程执行不同的任务
  4. 一个进程的多个线程共享进程资源

进程的五状态模型

创建

  1. 分配PCB
  2. 插入就绪队列
  3. 创建进程时拥有PCB但其他资源尚未就绪的状态称为创建状态
  4. 操作系统提供fork函数接口创建进程 就绪
  5. 当进程被分配到除CPU以外所有必要的资源后
  6. 在就绪态的进程获得CPU的使用权可以立即执行
  7. 在系统中多个处于就绪状态的进程通常排成一个队列,就绪队列 阻塞
  8. 进程由于某种原因,例如其他设备未就绪无法继续执行,从而放弃CPU的状态称为阻塞状态
  9. 在系统中多个处于阻塞状态的进程通常排成一个队列,阻塞队列 执行
  10. 进程获得CPU,正在被执行
  11. 在单处理器机中,某个时刻只能有一个进程处于执行状态 终止
  12. 系统清理
  13. PCB归还
  14. 进程结束由系统清理或者归还PCB的状态称为终止状态

进程间的同步

为什么需要进程同步

举例: 生产者-消费者问题 多个进程生产,放到缓冲区;多个进程消费,在缓冲区拿 临界资源的互斥访问 哲学家进餐问题

总结:进程同步协调竞争资源在多进程间使用的次序,使得并发执行的多个进程之间可以有效使用资源和相互合作。

临界资源

进程同步的原则

空闲让进 忙则等待 有限等待 让权等待

进程间同步的方法

消息队列 共享存储 信号量

线程间同步的方法

互斥量 读写锁 自旋锁 条件变量

进程调度

进程调度是指计算机通过决策决定哪个就绪进程可以获得CPU使用权

  1. 保留旧进程的运行信息,请出旧进程
  2. 选择新进程,准备运行环境并分配CPU 三个机制:
  3. 就绪队列的排队机制 将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程
  4. 选择运行进程的委派机制 调度程序以一定的策略选择就绪进程,将CPU资源分配给它
  5. 新老进程的上下文切换机制 保存当前进程的上下文信息,装入被委派执行进程的运行上下文

根据老进程是否执行完可以分为:非抢占式的调度和抢占式的调度 非抢占式的调度:直到进程完成工作或因为IO阻塞才会让出处理器 抢占式的调度:允许调度程序以一定的策略暂停当前运行的进程

进程调度算法

  1. 先来先服务
  2. 短进程有限调度:对长进程不利
  3. 高优先权有限调度:前端优于后台
  4. 时间片轮转:公平,但不能及时响应