B站资源,操作系统快速复习
https://www.bilibili.com/video/BV1a54y1D7R8?p=3
- 没有操作系统之前,资源只属于当前运行的程序。计算机只能一个程序接着一个程序地运行。容易造成资源的浪费
- 配置操作系统,引入多道程序设计的概念
- 进程起到 合理的隔离资源的作用,提升资源利用率
总结:
- 进程是系统进行资源分配和调度的基本单位
- 进程作为程序独立运行的载体保障程序正常执行
- 进程的存在使得操作系统的资源利用率大幅提升
在主存中,进程占用一段连续的空间,并拥有进程控制块(PCB) (1)标识符:唯一标记一个进程,用于区别其他进程 (2)进程状态 (3)优先级 (4)程序计数器:指向进程即将被执行的下一条指令的地址 (5)内存指针:程序代码、进程数据相关的指针 (6)上下文数据:进程执行时处理器存储的数据 (7)IO状态信息:被进程IO操作所占用的文件列表 (8)记账信息:进程使用处理器的时间、时钟数总合等 …… 以上信息所描述的进程标识符、处理机状态、进程调度信息、进程控制信息就是主存中的进程形态。
总结一下进程控制块(PCB):
- 用于描述和控制进程运行的通用数据结构
- 记录进程当前状态和控制进程运行的全部信息
- PCB使得进程成为能够独立运行的基本单位
- PCB是操作系统进行调度经常会被读取的信息
- PCB是常驻内存的,存放在系统专门开辟的PCB区域内
- 线程是操作系统进行运行调度的最小单位
- 线程包含在进程中,是进程中实际运行工作的单位
- 一个进程可以并发多个线程,每个线程执行不同的任务
- 一个进程的多个线程共享进程资源
创建
- 分配PCB
- 插入就绪队列
- 创建进程时拥有PCB但其他资源尚未就绪的状态称为创建状态
- 操作系统提供fork函数接口创建进程 就绪
- 当进程被分配到除CPU以外所有必要的资源后
- 在就绪态的进程获得CPU的使用权可以立即执行
- 在系统中多个处于就绪状态的进程通常排成一个队列,就绪队列 阻塞
- 进程由于某种原因,例如其他设备未就绪无法继续执行,从而放弃CPU的状态称为阻塞状态
- 在系统中多个处于阻塞状态的进程通常排成一个队列,阻塞队列 执行
- 进程获得CPU,正在被执行
- 在单处理器机中,某个时刻只能有一个进程处于执行状态 终止
- 系统清理
- PCB归还
- 进程结束由系统清理或者归还PCB的状态称为终止状态
举例: 生产者-消费者问题 多个进程生产,放到缓冲区;多个进程消费,在缓冲区拿 临界资源的互斥访问 哲学家进餐问题
总结:进程同步协调竞争资源在多进程间使用的次序,使得并发执行的多个进程之间可以有效使用资源和相互合作。
临界资源
空闲让进 忙则等待 有限等待 让权等待
消息队列 共享存储 信号量
互斥量 读写锁 自旋锁 条件变量
进程调度是指计算机通过决策决定哪个就绪进程可以获得CPU使用权
- 保留旧进程的运行信息,请出旧进程
- 选择新进程,准备运行环境并分配CPU 三个机制:
- 就绪队列的排队机制 将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程
- 选择运行进程的委派机制 调度程序以一定的策略选择就绪进程,将CPU资源分配给它
- 新老进程的上下文切换机制 保存当前进程的上下文信息,装入被委派执行进程的运行上下文
根据老进程是否执行完可以分为:非抢占式的调度和抢占式的调度 非抢占式的调度:直到进程完成工作或因为IO阻塞才会让出处理器 抢占式的调度:允许调度程序以一定的策略暂停当前运行的进程
- 先来先服务
- 短进程有限调度:对长进程不利
- 高优先权有限调度:前端优于后台
- 时间片轮转:公平,但不能及时响应