概述
处理器 即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
进程状态
进程调度:优先级、时间片、分级、彩票




