暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

计算机操作系统-处理器

JAVA咸鱼日记 2021-07-26
1379

概述

处理器 即cpu

回顾一下cpu组成,运算单元、逻辑单元、寄存器、总线

寄存器

寄存器分类

用户可见寄存器

  • 数据寄存器(又叫通用寄存器)
  • 地址寄存器:索引、栈指针、段地址寄存器

控制与状态寄存器

  • PC 程序计数器,存储将取指令的地址
  • IR 指令寄存器,存储最近使用的指令
  • 条件码CC,cpu为指令操作结果设置的位,标志正/负/溢出等结果
  • 标志位,中断位、中断允许位、中断屏蔽位、处理器模式位等

程序状态字寄存器(PSW)

  • PSW指的当前运行程序运行的动态信息,指的就是控制与状态寄存器的部分内容
  • 操作系统专门设置了一种寄存器存储PSW内容,即PSW寄存器,程序状态字

指令执行

单条指令执行过程
  • 取指:根据PC到存储器或者高速缓冲存储器中取指令到IR

  • 解码:解译IR中的指令决定其执行行为

  • 执行:连接CPU部件,执行运算,产生结果并回写,设置cc标志位

  • 调整PC:跳转指令设置PC、其它指令递增PC

执行模式

流水线模式:不是等一条指令执行完再执行另一条指令,第一条指令开始解码,第二条指令就可以开始取指,以增加效率

处理器模式

特权指令,与核心资源相关的只能由操作系统内核调用的指令
处理器模式
  • 用户模式,可以执行非特权指令
  • 内核模式,可以执行所有指令,强调可以执行特权指令
模式切换

触发处理器模式由用户模式向内核模式切换

  • 中断,指外部中断信号
  • 异常,指cpu内部异常
  • 系统异常,专门为系统调用设计的一种机制

内核模式向用户模式切换

  • 内核处理完成后,调用中断返回指令

中断

概念

程序中心过程中,遇到急需处理时间,暂时终止cpu上现运行的程序,转去执行相应的时间处理程序,待完成后返回原程序执行或调度其它程序执行

操作系统是中断驱动的,中断是激操作系统的唯一方式

  • 用户程序向操作系统程序切换依赖中断
  • 用户程序之间切换依赖中断:用户程序通过中断切换到操作系统程序,操作系统可以选择其它用户程序运行
中断的分类
  • 中断(狭义):来源于处理器外部的中断,与当前运行指令无关,如IO中断,时钟中断,外部信号中断
  • 异常:处理器运行当前指令发生错误,如地址异常、算数异常、处理器硬件故障
  • 系统异常:执行陷入指令而触发系统调用引起的中断事件,如请求设备,请求IO,创建进程
中断源
  • 异常:硬件异常,处理器,内存储器,总线等硬件故障
  • 异常:程序性中断,除数0,非法指令,虚拟地址异常
  • 系统异常:系统调用,自愿性中断
  • 狭义中断:IO中断(中断发生后,操作系统释放等待进程,这里的中断指的是IO完成时的中断处理)
  • 狭义中断:外围设备中断信号
中断系统

中断相应包括中断响应(由硬件子系统完成)和中断处理(由软件子系统处理)

指令与中断响应

  • 在指令执行周期(取指,解译,执行)最后增加一个检查中断的微操作,可以实现响应中断
  • 中断信息存储在中断位、中断屏蔽、中断允许寄存器

中断装置

  • 外部中断:中断控制器
  • 异常:陷阱
  • 系统异常:系统陷阱

中断响应过程

  • 发现中断源,提出中断请求
  • 中断当前程序运行,保存当前程序PSW
  • 转向操作系统的中断处理程序

中断处理过程

  • 保护未被硬件保护的处理器状态
  • 分析被中断进程的PSW中断码字段,识别中断源
  • 分别处理中断事件
  • 恢复正常操作(1返回现场 2原现场没有条件执行,调用其它进程执行)

中断响应及处理流程

多中断的响应与处理

  • 中断屏蔽可以使中断装置不响应中断
  • 中断有优先级,在不同的场景,中断优先级可能不同
  • 中断可以嵌套处理

进程

进程是一段程序在某个数据集合上的一次活动,是操作系统进行资源分配和调度的一个独立单位

进程组成实体
  • 操作系统管理运行程序的数据结构
  • 内存代码
  • 内存数据
  • 通用寄存器
  • 程序状态字PSW
进程状态
  • 运行
  • 就绪:具备运行条件,等待cpu调度
  • 等待:不具备运行条件
进程挂起

挂起指在系统资源不足时剥夺某些进程的资源

挂起态不占有资源,等待态仍然占有资源

进程数据描述-进程控制快

进程控制块是OS用于记录和刻画进程状态及环境信息的数据结构,进程标识,进程现场信息,进程控制信息

  • 进程标识
    • 进程标志号
    • 进程组标志号
    • 进程名
    • 进程组名
  • 现场信息
    • 通用寄存器内容
    • 控制与状态寄存器内容
    • 核心栈和用户栈指针
  • 控制信息
    • 调度相关信息:状态、等待事件/原因、优先级
    • 进程组成信息:数据/内存地址等
    • 队列指引元:进程队列指针、父子兄弟进程指针
    • 通信相关:消息队列、信号量、锁
    • 进程特权相关:内存访问权限、处理器特权
    • 处理器使用时间:占用的处理器事件
    • 资源清单信息:正占用资源、已使用资源
进程数据描述-进程映像

某一时刻进程内容和执行状态集合,是进程内存级的物理实体,又称为内存映像

  • 进程控制块
  • 用户栈(进程程序块、进程数据块)
  • 核心栈
  • 共享地址空间
进程管理-队列管理
  • 就绪队列
  • 等待队列(对于不同的等待事件有不同的扽等待队列)

队列中的进程可以通过PCB中的队列指引元采用单/双指引元或索引连接,队列指引元原来是和队列有关的

进程管理-进程控制与管理
  • 进程创建、撤销
  • 进程阻塞、唤醒
  • 进程挂起、激活
进程管理-进程控制原语

进程控制涉及对OS核心数据修改,为防止错误应当使用原语

原语是由若干指令构成的完成某种特定功能的程序,执行上不可分割

原语的执行可以通过关中断来实现

进程控制使用的原语叫进程控制原语,另一类常用原语是进程通信原语

进程切换

进程切换必须在内核模式下完成

进程切换一定伴随着模式切换

  • 用户模式切换到内核模式,通过中断/异常/系统调用 中断用户进程来触发
  • 内核模式完成进程调度
  • 内核模式切换用户模式,通过执行中断返回指令将控制权交还给用户进程
多线程进程

传统进程是单线程进程

单线程进程的问题
  • 进程切换开销大
  • 进程通信开销大
  • 限制了进程并发粒度
  • 限制了并行计算的效率
多线程进程的概念
  • 进程是操作系统进行保护和资源分配的独立单位
  • 线程是系统调度的基本单位
KLT与ULT
KLT内核级线程
  • 线程完全用内核实现,通过api供用户进程使用

  • 内核负责线程调度

  • 多处理器环境多个线程并行执行

  • 用户态的线程切换涉及模式切换,开销很大

  • 适合解决物理并行性问题

ULT用户级线程
  • 线程概念只存在用户态,用户态负责线程管理
  • 线程的调度不需要内核的参与,不涉及模式切换
  • 不能利用多处理器的优点,无法做到真正并行运行
  • 线程管理的成本是很高的
  • 适合逻辑并行性问题
混合线程
  • 线程创建是在用户空间做的
  • 多个ULT可以绑定若干个KLT

处理器调度

处理器调度层次
  • 高级调度 是否接受进程创建
  • 中级调度 进程挂起与恢复
  • 低级调度  三态调度
调度算法
  • 优先级调度算法
    • 低优先级不友好
  • 时间轮转调度算法
    • 时间片
  • 分级调度算法
    • 不同优先级队列
    • 不同队列有不同时间片,相同队列有相同时间片
  • 彩票调度算法
    • 承诺分配

总结

处理器

组成:逻辑单元、控制单元、寄存器、总线

寄存器:通用、控制与状态、PSW

中断:外部中断、异常、系统异常

中断实现:指令执行周期增加中断检测操作

中断处理流程:现场、调度、恢复

进程

进程:内存(地址、数据)、寄存器、进程控制块(标志、现场、控制)

多线程进程:KLT ULT

进程状态

进程调度:优先级、时间片、分级、彩票


文章转载自JAVA咸鱼日记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论