南大OS
处理器管理
1.处理器与寄存器
用户可见寄存器:
数据的(ax,bx),地址的(),控制与状态(pc)寄存器
2.指令与处理器模式
机器指令:操作码+操作数
指令执行过程:CPU根据PC取出指令,放入IR(指令暂存器),译码,
发出各种控制命令,执行微操作,完成一条指令
指令执行周期与指令流水线:
特权指令:只能被操作系统使用的,与计算机核心资源相关的指令。
处理器模式位:比如0状态模式(内核)可以执行所有指令
模式切换:中断、异常或者系统异常触发模式的切换
3.中断:暂时中止,转去执行相应事件处理后,继续执行
中断驱动:中断(广义)是激活操作系统的唯一方式
狭义中断:来源于处理器之外的中断事件
异常:由当前指令引起的中断事件
系统异常:执行系统调用而进入内核态
中断源:
1. 硬件故障
2. 程序性
3. 系统调用
4. io状态
5. 外部设备
4.中断系统:处理中断事件的系统,硬件+软件
中断响应处理:在指令周期中加入一个检查中断的微操作,以响应中断
中断装置:发现并响应中断的硬件装置,一般有多种且实现方式不一
中断控制器:CPU中一个控制部件,中断线路+中断寄存器
由外部改变寄存器,cpu检查到后,交给os处理中断
陷阱与系统陷阱:指令执行出现异常后,os处理中断
中断响应过程:
1发现中断,提出中断请求
2中断当前,保存现场
3转向os中断处理程序
中断处理程序:
保存未被硬件保存信息
处理
恢复现场
返回或者进程调度
中断屏蔽:通过屏蔽位不处理某些中断
优先级:有优先度的中断处理
中断嵌套处理:
5.进程:被执行的程序
状态模型:就绪,运行,等待(占有资源,等待另一部分)
进程挂起:与等待状态不同,不具备任何资源
6.多线程:调度的最小单位
基本概念
单线程进程结构:一个资源管理,一个执行序列-线程
多线程:多个执行序列共享进程资源
多线程技术:并发程序设计
KLT和ULT
KLT:内核级多线程,物理并行性问题(cpu高利用率)
进程的一个线程被阻塞,另一个就占据cpu
进程的多个线程实现在多核cpu并行,同一进程同时占据多个cpu
优化内核:OS本身通过多线程实现并行
系统调度管理开销大,需要频繁模式切换
ULT:用户级多线程,如java语言级线程,逻辑并行性问题(对cpu利用
率并没有高要求)
由线程管理库实现调度,内核不知道线程存在
不能利用多处理器的优点,OS还是以进程调度,所以一个同时只能有一个线程占 据cpu
一个线程阻塞意味着整个进程阻塞
Jacketing技术:ULT的进程管理->线程管理
把阻塞式系统调用改造成非阻塞式的
当线程陷入系统调用时,执行jacketing程序由jacketing 程序来检查资源使用情况,以决定是否执行进程切换 或 传递控制权给另一个线程
多线程的混合策略
线程库实现用户级到内核级的绑定
综合KLT和ULT的优点
线程状态
KLT:系统调度
就绪->运行->阻塞
ULT:用户调度
活跃态的线程对应到KLT
7.处理器调度
调度层次
高级调度:进程进入就绪态或挂起态(等待资源)
中级调度:挂起态到就绪态,进程能否交换入主存
低级调度,处理器调度:进程三态转换
处理器调度算法
算法指标
cpu利用率,响应时间,周转时间,吞吐量,公平性
优先级调度
抢占式
非抢占式
短作业优先
剩余时间优先
响应比优先:等待时间/估算工作时间
先来先服务
时间片轮转法
合适长度的时间片500ms左右
分级调度算法
多个不同优先级的进程队列,32个到128个
高级的队列时间片短,一旦超过时间片加入到低级队列中
彩票调度
概率调度,命中彩票的进程获得cpu