Skip to content

操作系统(02323):概念与资源管理笔记 · 进程与调度至I/O 设备管理 ​

返回分篇目录

进程与调度 ​

1、进程描述 ​

  • 并发执行

    • 操作系统本质是数据结构加算法
    • 操作系统中最核心的概念是进程
    • 程序的顺序执行特点:顺序性、封闭性、可再现性
    • 程序的并发执行特点:间断性、失去封闭性、不可再现性
  • 进程概念

    • 进程是允许并发的程序在某个数据集合上的运行过程
    • 进程是正文段、用户数据段和进程控制块(PCB)共同组成的执行环境
      • 正文段:存放被执行的机器指令
      • 用户数据段:存放进程在执行时要操作的用户数据
      • 进程控制块:存放程序的执行环境
  • 进程的特征

    • 并发性
    • 独立性
    • 异步性
    • 动态性
    • 结构特征
  • 进程和程序区别

    • 程序静态,进程是动态
    • 程序永久,进程暂时存在
    • 程序和进程存在实体不同
      • 程序:指令集合
      • 进程:正文段、用户数据段、进程控制快组成
  • 进程和程序的联系

    • 进程是程序的一次执行
    • 进程总是对应至少一个特定的程序,执行程序的代码
    • 一个程序可以对应多个进程
  • 进程控制块

    • 进程实体存在的标志是操作系统管理进程所使用的数据结构—进程控制块

    • 进程控制块(PCB)是进程实体的一部分,是操作系统中最重要的数据结构

    • 进程控制块中记录了操作系统所需要的,用户描述进程情况以及控制进程运行所需要的全部信息

    • 进程控制块是操作系统感知进程存在的唯一标志

    • 包含信息有哪些

      • 进程标识符信息:唯一标识一个进程
      • 处理机状态信息:包括通用寄存器,指令计数器,程序状态字 PSW,用户栈指针
      • 进程调度信息:包括进程状态信息,进程优先级和进程调度所需的其他信息
      • 进程控制信息:包括程序和数据的地址,进程同步和通信机制资源清单以及链接指针
  • 进程的状态

    • 就绪态、执行态、阻塞态

      system_2.1.4

2、进程的控制 ​

  • 进程的创建

    进程创建--阻塞--唤醒--终止

    • 创建条件

      • 用户登录
      • 作业调度
      • 提供服务
      • 应用请求
    • 新进程执行情况

      • 父子进程并发执行
      • 父等待,知道某个子执行完毕
    • 新进程地址空间情况

      • 子共享父地址空间
      • 子拥有独立地址空间
      • 操作系统组织和管理进程是通过管理和组织进程控制块来实
    • 调用创建新进程的系统调用来创建进程的一般步骤

      • 申请空白 PCB
      • 为新进程分配资源
      • 初始化进程控制快
      • 将新进程插入就绪队列
  • 进程的阻塞

    • 条件

      • 请求系统服务
      • 数据尚未到达
      • 无工作可做
      • 启动某种操作
    • 完成进程阻塞简化过程

      • 将进程的状态改为阻塞态
      • 将进程插入相应的阻塞队列
      • 转进程调度程序,从就绪进程中选择进程为其分配 CPU
  • 进程的唤醒

    • 将阻塞队列中移除
    • 将进程状态阻塞态改为就绪态
    • 将进程插入就绪态
  • 进程的终止(撤销)

    • 正常执行完毕,终止进程,删除该进程

    • 一个进程调用适当的系统调用,终止另外一个进程

    • 父终止子原因

      • 子进程是了超过了分配的资源
      • 分配给子进程任务不再需要
      • 父进程退出
    • 操作系统通过系统调用完成进程终止的一般过程如下

      • 从进程 PCB 中读进程状态
      • 若进程正在执行,则终止进程的执行
      • 若进程有子孙进程,按平台和管理策略处理;父进程退出不必然终止所有子孙进程
      • 释放资源
      • 将终止进程的 PCB 移出
  • 操作系统内核:负责受控入口与核心资源管理;系统调用与进程切换的区别见系统调用为什么切换。

进程调度与死锁 ​

就绪表示除了CPU之外已经具备运行条件,阻塞表示仍在等事件。读磁盘时进程可以主动阻塞,I/O完成后回到就绪队列,只有被调度后才执行。轮转调度给就绪任务有限时间片;时间片越短,首次响应可能越快,但上下文切换比例也可能上升。

死锁需要同时具备互斥、占有等待、不可剥夺和循环等待。两线程分别持有L1与L2并互等时,可通过统一获取顺序破坏循环等待;预防直接约束条件,避免则依据未来资源需求判断安全状态,二者不能混称。

查看图表代码

内存管理 ​

分页把虚拟地址拆为页号与页内偏移。以4KiB页、虚拟地址0x1234为例,页号1、偏移0x234;若映射到物理页框9,地址就是0x9234。不同进程的相同虚拟地址可映射不同物理页,共享内存则可显式映到同一页。

TLB缓存翻译,未命中只意味着要进一步查页表;缺页可能触发按需分配、文件读入,也可能因为非法访问而终止任务。工作集超出可用内存时频繁换页会造成抖动,虚拟地址空间大不代表所有访问都能获得物理资源。

查看图表代码

文件系统 ​

路径解析逐级查目录项,把名字关联到文件元数据,再定位数据块。目录层级解决名字组织问题,读写权限控制访问;应用通常面对字节流,文件系统无需理解其中的业务记录。

读取可能命中页缓存;写入返回也可能只是数据进入内核缓存。崩溃一致性需考虑数据块、元数据和目录项的写入顺序,日志帮助恢复一致状态,但不能替代误删除恢复或独立备份。

查看图表代码

I/O 设备管理 ​

驱动把通用读写请求转换为设备操作。轮询主动检查是否完成,中断让设备通知处理器;DMA可在配置后搬运设备与内存之间的数据,减少CPU逐字节复制。DMA完成不意味着应用已经处理了这些字节,还需完成通知与调度。

缓冲吸收速度差并支持批量处理,但会消耗内存和引入等待。SPOOLing先把打印任务放入磁盘队列,由后台服务顺序送给打印机,使多个应用可以提交任务;它不提升打印机本身的物理打印速度。

查看图表代码

继续阅读