首页 > 系统相关 >期末复习——进程与线程

期末复习——进程与线程

时间:2023-02-15 02:11:05浏览次数:50  
标签:复习 队列 调度 PC 期末 内存 进程 线程 CPU

MEMO

  1. PCB块:进程存在唯一唯一唯一!标志
  2. 程序静态,进程动态
  3. 每个进程有
    UID:用户ID,进程创建者的ID;通常大于500
    EUID:有效用户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设备列表、打开文件列表)
    image
  • 进程的内存结构:①栈(向低地址生长)、②堆(向高地址生长)、③数据段(全局变量)、④文本段/代码段、⑤PC程序计数器的值
    image

创建进程

  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队列(就绪态)。

标签:复习,队列,调度,PC,期末,内存,进程,线程,CPU
From: https://www.cnblogs.com/sectumsempra/p/17121354.html

相关文章

  • 期末复习——操作系统概述 chapter(0+1)
    MEMOOS:管理计算机硬件的软件;为应用程序提供基础;充当计算机硬件与用户之间的媒介。存于磁盘。一个一直运行在计算机上的程序(也叫kernel内核);计算机系统可以粗分为:硬......
  • 期末复习——网络层
    网络层最后一遍复习的时候再回头整理细节关注如何将数据包一路发送到接收方,主机之间的逻辑通信。中间可能要经过许多跳hop中间路由器。网络层是处理端到端通信的最底......
  • Javase基础复习-day8常用API
    1.API1.1API概述什么是APIAPI(ApplicationProgrammingInterface):应用程序编程接口java中的API指的就是JDK中提供的各种功能的Java类,这些类将底层的实现......
  • 线程私有变量ThreadLocal详解
    本文已收录至Github,推荐阅读......
  • 线程私有变量ThreadLocal详解
    本文已收录至Github,推荐阅读......
  • 创建线程的三种基本方式
    多线程的基本概念,线程创建的三种基本方式及线程的生命周期等其他线程相关的简要介绍Author:MsuenbDate:2023-02-14多线程基本概念程序(program):为完成特定任务......
  • CompletableFuture.supplyAsync 多线程异常捕获
    CompletableFuture.supplyAsync多线程异常捕获/***保存错误信息*/publicvolatileRuntimeExceptionerror=null;/***自动发起流......
  • JAVA线程sleep和wait方法区别
    一、sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,调用sleep不会释放对象锁。由于没有释放对象锁,所......
  • 复习
    概念模型评测混淆矩阵预测:1预测:0真实:1TruePositive(TP)FalseNegative(FN)真实:0FalsePoisitive(FP)TrueNegative(TN)准确率:预测正确......
  • rxjava之复习
    1.rxjava之操作符1).转换类操作符(mapflatMapconcatMapflatMapIterableswitchMapscangroupBy...);map及flatMap以及concatMap区别?map和flatMap都可以对RxJava传入......