操作系统PPT文档格式.ppt
《操作系统PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《操作系统PPT文档格式.ppt(85页珍藏版)》请在冰豆网上搜索。
,SVCntrapn,3.1.2.2中断类型与中断向量,中断向量:
中断处理程序的运行环境与入口地址(PSW,PC)每类中断事件有一个中断向量,中断向量的存放位置是由硬件规定的,中断向量的内容是OS在系统初始化时设置好的。
中断向量mode应为系统态,3.1.2.2中断类型与中断向量,PSW1,PC1时钟中断向量PSW2,PC2I/O中断向量PSW3,PC3console中断向量PSW4,PC4硬件故障PSW5,PC5程序错误PSWn,PCn访管中断向量,000000080016002400300090,时钟中断处理程序,PC1:
I/O中断处理程序,PC2:
访管中断处理程序,PCn:
系统空间,3.1.2.3中断嵌套与系统栈,一般原则:
高优先级别中断可以嵌入低优先级中断实现方法:
中断响应后立即屏蔽不高于当前中断优先级的中断源。
3.1.2.3中断嵌套与系统栈,进入中断后一般需要进一步保存现场关中断(屏蔽所有中断)进一步保存现场(地址寄存器,通用寄存器等)开中断(或开放高优先级中断).中断处理.恢复现场中断返回,3.1.2.3中断嵌套与系统栈(Cont.),目态,PSW1:
PC1,管态,PSW2:
PC2,管态,PSWn:
PCn,中断嵌套:
3.1.2.3中断嵌套与系统栈(Cont.),PSWn-1PCn-1PSW2PC2PSW1PC1,栈顶指针:
系统栈:
3.1.2.4中断优先级与中断屏蔽,中断优先级:
硬件规定的中断响应次序,依据:
紧迫程度;
处理时间。
中断屏蔽:
高优先级中断事件处理不受低优先级中断打扰;
程序调整中断响应次序。
3.1.3中断处理程序,强迫性中断:
自愿性中断:
转中断处理程序是否嵌套中断由系统栈恢复现场需要切换进程返回上层中断由系统栈恢复现场转CPU分派返回目态程序(dispatcher),保存现场信息取中断字分析中断原因,保存现场信息取访管号分析调用功能,T,F,F,T,3.1.3.1IO中断处理,正常结束继续传输;
唤醒相关进程。
传输错误复执(eg.3次);
报告系统操作员。
3.1.3.2时钟中断处理,Housekeeping进程管理重新计算进程调度参数(eg.动态优先数)实现软时钟,启动定时程序硬时钟5ms发生一次中断,软时钟50ms考虑进程切换,3.1.3.3控制台中断处理,一个控制按钮,一个中断向量,一个中断处理程序。
3.1.3.4硬件故障处理,电源故障处理掉电:
内存,寄存器外存停止设备停止处理机恢复:
启动处理机启动设备外存内存,寄存器,UseUPSforcriticalapplications,3.1.3.4硬件故障处理(cont.),内存故障处理海明校验,奇偶校验错误下雨检查划出系统报告操作员,3.1.3.5程序性中断的处理,只能由操作系统处理的中断影响系统或其它进程越界,非法指令,(处理:
终止进程、调试)需要系统管理或协助页故障,缺段,(处理:
动态调入)可以由用户自己处理的中断不影响系统和其它进程除0,溢出,(处理:
用户处理,或OS处理),应用程序自己处理中断,调试语句:
on例如:
ongotoLA;
除0中断时转LA处理,除0中断时转LB处理,ongotoLB,除0中断续元,除0中断续元,LA:
LB:
相同中断发生在不同位置可采用不同处理方法,应用程序自行处理中断(Cont.),编译时:
生成中断续元表:
中断续元入口0,中断续元入口1,中断续元入口n,中断事件0:
中断事件1:
中断事件n:
.,运行时:
执行调试语句,填写中断续元表。
中断时:
根据中断原因查中断续元表,为0,用户未规定中断续元,由OS标准处理;
非0,用户已规定中断续元,由用户处理。
初始时均为0,图3-9(P44),步骤:
(1)发生溢出中断
(2)保存旧PSW和PC(3)取中断向量(4)转到中断处理程序(5)访问中断续元表(假定非0)(6)系统栈中现场转移到用户栈(7)中断续元入口送寄存器(OS中断处理完成)(8)执行中断续元(9)用户栈PSW和PC送寄存器(10)返回中断断点,3.1.3.6自愿性中断的处理,访管指令(SuperVisorCall)形式:
准备参数SVCn取返回值,系统调用(systemcall)形式:
返回值=系统调用名称(实参1,实参n),参数和返回值的存放位置是由OS规定的。
3.1.3.6自愿性中断的处理,系统调用驱动表:
(tabledriven),Eg.UNIX,3.2处理机调度,3.2.1处理机调度算法按什么原则分配3.2.2处理机调度时机何时重新分配3.2.3处理机调度过程如何完成分配,scheduling,3.2.1处理机调度算法,考虑因素(schedulingcriteria)CPU利用率;
(max)吞吐量;
(max)周转时间;
(min)响应时间;
(min)系统开销;
(min),CPUburstvs.I/Oburst,阵发期:
CPUburstcycle:
进程(线程)使用CPU计算;
I/Oburstcycle:
进程(线程)使用设备I/O。
进程运行行为:
CPUburst,I/Oburst,CPUburst,I/Oburst,CPU调度:
考虑处于CPUburst进程集合CPUburst时间根据以前行为推定。
剥夺式调度与非剥夺式调度,剥夺式(preemptive)就绪进程可以从运行进程手中抢占CPU。
非剥夺式(non-preemptive)就绪进程不可从运行进程手中抢占CPU。
3.2.1.1先到先服务算法,FCFS(FirstComeFirstServe)按进程申请CPU(就绪)的次序。
Gantt图(到达次序:
P1,P2,P3),P1,P2,P3,0273035,3.2.1.1先到先服务算法(Cont.),平均等待时间:
(0+27+30)/3=19(ms)Gantt图(到达次序:
P2,P3,P1)平均等待时间(0+3+8)/3=3.67,P1,P2,P3,03835,3.2.1.1先到先服务算法(Cont.),优点:
“公平”;
短作业等待时间长。
3.2.1.2短作业优先,SJF(ShortestJobFirst)按CPUburst长度Gantchart:
P1,P3,P2,P4,0381527,3.2.1.2短作业优先(SJF),平均等待时间:
(0+3+8+15)/4=6.5(ms)特点:
假定所有任务同时到达,平均等待时间最短。
长作业可能被饿死。
3.2.1.3最高优先数算法(HPF),静态优先数(static)优先数在进程创建时分配,生存期内不变。
响应速度慢,开销小。
适合批处理进程动态优先数(dynamic)进程创建时继承优先数,生存期内可以修改。
响应速度快,开销大。
适用于实时系统,3.2.1.3最高优先数算法(Cont.),非剥夺式静态优先数获得处理机的进程运行,直至终止等待剥夺式动(静)态优先数获得处理机的进程运行,直至终止等待出现高优先级的进程,3.2.1.3最高优先数算法(Cont.),例子UNIX:
preemptive+dynamicpriority(可抢占CPU动态优先数)。
计算公式:
p_pri=min127,USER+p_cpu/16+p_nice定义USER=100;
p_cpu:
运行进程每20ms加1(优先级降低),其它进程每1200ms减10(优先级提高);
p_nice:
可以通过系统调用nice()修改的量:
规定用户进程020之间(低),系统进程-20+20之间(高)。
3.2.1.4循环轮转算法(RR),RoundRobin(RR)基本轮转时间片(quantum,timeslice)长度固定,不变;
所有进程等速向前推进。
改进轮转时间片长度不定,可变。
适用于分时系统,3.2.1.4循环轮转算法(Cont.),时间片长度:
几十毫秒几百毫秒(eg.50ms)过长:
响应速度慢;
过短:
系统开销(overhead)大。
适应系统:
分时,3.2.1.5多级队列算法(MLQ),多级队列多个就绪队列,进程所属的队列固定。
例如:
通用系统中:
队列1:
实时进程就绪队列(HPF)队列2:
分时进程就绪队列(RR)队列3:
批处理进程就绪队列(HPF),3.2.1.6最短剩余时间(SRTN),ShortestRemainingTimeNext可剥夺SJF,3.2.1.7反馈排队算法(FB),Feed-Back:
多个就绪队列,进程所属队列可变。
Q1(RR,HPF),Q2(RR,HPF),Qn(RR,HPF),运行s1时间片,运行s2时间片,.,创建唤醒,优先级时间片,运行sn时间片,3.2.1.7反馈排队算法(Cont.),调度效果:
资源利用率高被唤醒的进程尽早投入运行;
响应速度快交互式进程反应及时;
系统开销小计算量大的进程落入底层队列。
FeedBack,3.2.2处理机调度时机,中断处理完毕,没有嵌套中断,即将返回目态。
目态(Pi运行)目态(Pj运行),管态,管态,.,中断,中断,中断,返回,返回,返回,Pi=Pj:
未发生进程切换;
PiPj:
发生了进程切换。
3.2.2处理机调度时机(Cont.),必然引起进程切换的中断进程自愿结束,exit()进程被强行终止;
非法指令,越界,kill进程等待可能引起进程切换的中断时钟系统调用,3.2.3处理机调度过程,保存下降进程的现场系统栈PCB选择上升进程按处理机调度算法恢复上升进程的现场PCB寄存器,3.3调度级别与多级调度,3.3.1交换与中级调度Swappingandmid-levelscheduling3.3.2作业与高级调度Jobandhigh-levelscheduling,处理机调度为低级调度CPUscheduling=lowlevelscheduling,3.3.1交换与中级调度,术语交换(swapping)中级调度(mid-levelscheduling)并发度(degreeofmulti-programming)目标:
控制并发度并发度过高系统开销大响应速度慢内存等资源紧张进程(线程)频繁进入等待状态Moredeadlocks,3.3.1交换与中级调度,剥夺,就绪,等待,运行,选中,等待事件,事件发生,就绪挂起,等待挂起,无,终止,创建,创建,结束,换出,换出,换入,换入,事件发生,UNIX的中级调度(sched#0),移入SRUN状态进程如内存不够,移出SWAIT和SSTOP状态进程;
如还不够,移出SSLEEP和SRUN