最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球热文:期末复习——进程与线程

来源:博客园

MEMO

  1. PCB块:进程存在唯一唯一唯一!标志
  2. 程序静态,进程动态
  3. 每个进程有UID:用户ID,进程创建者的ID;通常大于500EUID:有效用户ID,表示进程对文件资源的访问权限;
  4. setuid:对二进制文件执行setuid,任何用户执行时都以setuid程序文件所属用户权限去执行;(用户uid执行passwd命令时,euid=root ID=0)
  5. PC程序计数器: PC总是指向下一条将要取指的指令地址。CPU总是按照PC的指向对指令序列进行取指、译码和执行。PC决定了程序运行流向。

进程

一次只有一个进程在一个处理器上运行。

  • PCB块:包含①进程状态(5种)、②进程编号、③PC程序计数器、④寄存器、⑤内存界限、⑥打开文件列表……还有CPU调度信息内存管理信息、记账信息(CPU时间、等等)、I/O状态信息(分配到的I/O设备列表、打开文件列表)
  • 进程的内存结构:①栈(向低地址生长)、②堆(向高地址生长)、③数据段(全局变量)、④文本段/代码段、⑤PC程序计数器的值

创建进程

  1. 申请空白PCB块
  2. 分配资源
  3. 初始化PCB块
  4. 加入ready队列

进程状态切换

  • 运行态:正在占用CPU运行ing;


    (资料图片仅供参考)

  • 就绪态:在ready就绪队列中排队等待CPU

  • 阻塞态:e.g.在等待I/O

  • 创建态:new正在创建

  • 终止态:进程完成执行。

  • 就绪态-->运行态:被CPU调度,获得CPU资源开始运行;

  • 运行态-->就绪态:时间片用完、更高优先级进程抢占

  • 运行态-->阻塞态主动、请求某一资源、等待I/O操作完成

  • 阻塞态-->就绪态被动I/O完成、中断结束

CPU上下文切换/进程间CPU切换

上下文切换:从进程A切换到进程B运行;PCB信息:寄存器值、进程状态、内存管理信息等等

  • 上下文切换流程:A状态保存、B状态恢复

    1. 进程0running,挂起进程0:保存状态到PCB0
    2. 进程1执行,从PCB1加载状态
    3. CPU跳转到PCB1的PC指向位置执行
  • 进程间CPU切换

    1. 进程0running,中断or系统调用;
    2. 挂起进程0:保存状态到PCB0;
    3. 进程1执行,从PCB1加载状态;
    4. 中断or系统调用;
    5. 挂起进程1:保存状态到PCB1;
    6. 进程0恢复执行,从PCB0加载状态;

进程调度

调度队列

  • 作业队列:所有进程
  • 就绪队列;
  • 设备队列:每个设备都有自己的设备队列,e.g.I/O设备队列:等待I/O操作。

进程调度选择

调度器/调度程序执行。

  • 长期调度程序(作业调度):从缓冲池选择进程加入内存。选择合适的I/O、CPU密集型进程组合,使得V创建进程= V进程离开系统频率低
  • 短期调度程序(CPU调度程序):从ready队列中取出一个进程,并分配CPU。频率高。
  • 中期调度程序(内存调度):swap 降低多道程序程度,提高内存利用率、吞吐量挂起一些暂时不能运行的进程到外存等待(阻塞态),后面再调回来加入ready队列(就绪态)。

关键词: 上下文切换 进程调度 进程状态