二、操作系统的发展历程
(一)操作系统的发展与分类
本节重点是要弄清楚操作系统发展的各阶段的优缺点和存在的问题,以及如何解决的这些问题。
操作系统的发展阶段分为:手工操作阶段、批处理阶段(单道批处理系统和多道批处理系统)、分时操作系统、实时操作系统。
①手工操作阶段
需要把程序打印在纸带上,通过手工将纸带送入纸带机,计算机从纸带机上读取程序,再把结果输出到纸带机,纸带机打印出纸带。
缺点一:计算机处理速度是很快的,但是计算机从纸带机上读取程序是很慢的,人手工的将纸带送入纸带机更慢,所以这会极大的拖累计算机,浪费资源。
缺点二:一次只能供一个用户使用,一个用户使用完了之后下一个用户才可将程序放入纸带机使用计算机,这种独占全机也会导致资源利用率的降低。
②批处理阶段—单道批处理系统
引入脱机输入/输出技术,用外围机和磁带机完成,用户可同时将程序送入纸带机,由外围机控制着将这些程序存入磁带,并由监督程序(操作系统的雏形)控制着计算机从磁带上读取程序进行计算,将计算结果输入到磁带中。
单道批处理系统解决了用户独占全机的矛盾,多个用户可以同时使用,同时由于磁带的读写速度要比纸带机快得多,所以资源利用率有所提升。
但还是有缺点:
缺点一:内存中还是只能有一条程序运行,程序运行结束后才能运行下一条程序。
缺点二:CPU有大量的时间处于空闲等待,没有得到充分的利用,资源利用率依然很低。
②批处理阶段—多道批处理系统
计算机运行完下一条程序无需等到整个流程结束可接着读入下一条程序运行,一直处于忙碌状态。
优点:多道程序并发执行,共享计算机资源,资源利用率大幅提升,CPU和其他资源更能保持忙碌状态,系统吞吐率增大。
缺点:没有人机交互功能(提交完作业之后就只能等作业处理完成,中间不能控制自己的作业执行)
③分时操作系统
以时间片为单位轮流为各个用户或作业服务(执行每个作业的时间绝对公平),用户可通过终端与计算机进行交互
优点:用户请求可以被及时响应,解决了人机交互的问题。多个用户同时使用一台计算机,并且用户对计算机操作相互独立,感受不到别人的存在。
缺点:对各个作业或用户都是绝对公平的,这就导致不能优先处理一些紧急任务。
④实时操作系统
优点:能够优先响应紧急任务
实时操作系统分为硬实时系统和软实时系统
硬实时系统是要求这些紧急任务必须在绝对严格的时间内完成处理(如导弹和无人驾驶汽车,稍微晚一点点就会出事,导弹会射偏,汽车会撞树)
软实时系统允许紧急任务的处理时间相对宽松,偶尔可以违反时间规定(如订票系统,可以晚一点点,不会造成太大损失和影响)
三、操作系统运行环境
(一)操作系统的运行机制
应用程序:普通程序员写的程序
内核程序:操作系统内的一些必不可少的程序(少一条计算机就没法运行)
多条内核程序就组成了操作系统内核
特权指令:只允许内核来使用的指令(影响重大)
非特权指令:应用程序可以执行的指令
在CPU设计和生产的时候就划分了特权指令和非特权指令,所以计算机可以很方便的识别出特权指令和非特权指令
虽然CPU可以方便的识别出哪些指令是特权指令哪些指令是非特权指令,但是怎么识别正在运行的程序是应用程序还是内核程序呢(因为内核程序也可以运行特权指令也可以运行非特权指令,当它运行非特权指令的时候就需要分辨它到底是内核程序还是应用程序)就通过CPU所处的状态来判断
CPU处于内核态表示运行的是内核程序(可以执行特权指令也可执行非特权指令),处于用户态就表示运行的是应用程序(只能执行非特权指令)。
怎样标识CPU的状态,通过程序状态字寄存器PSW来标识
如何实现内核态和用户态的切换
内核态到用户态
在内核程序执行完毕后,会有一条程序用来修改PSW的标志位,改为用户态,也就是内核程序会主动让出CPU的使用权
用户态到内核态
只能通过中断来实现。产生中断时,CPU会停止运行应用程序转而运行中断程序(中断程序就是内核程序),也就是通过中断内核程序强行夺回CPU使用权
(二)中断和异常
中断的作用
①可以使用户态转为内核态
②如果没有中断,CPU就会一直运行这个程序直到结束,也就不会有并发了
中断分为内中断和外中断
内中断:由CPU内部发出的中断(指令本身或参数有问题)
例如当前指令非法,或者除数是0。还有一个例子就是应用程序执行陷入指令故意产生中断使用户态变为内核态
外中断:由CPU外部发来的中断
时钟部件(时间到了,中断程序运行下一条程序)或I/O设备(输入的时候发出中断)发来的中断
内中断分为陷入、故障、终止,具体区分见下图
注意:内中断通常称为异常,外中断通常称为中断
中断机制的原理见下图,简单了解即可