一、操作系统的发展史
1.手工操作----穿孔卡片
对应于程序和数据的已穿孔的纸带(或卡片) --------> 装入输入机 --------> 启动输入机 --------> 把程序和数据输入计算机内存 ---------> 通过控制台开关启动程序针对数据运行 ---------> 计算完毕 ---------> 打印机输出计算结果 --------> 用户取走结果并卸下纸带(或卡片)
缺点:①用户独占全机。不会出现因CPU资源已被其他用户占用而等待的现象,但CPU资源的利用率低。
② CPU等待手工操作。CPU的利用不充分。
20世纪50年代后期,出现人机矛盾:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。这样就出现了成批处理。
2.批处理----磁带存储
批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)
(1) 联机批处理系统
用户作业 --------> 输入机 -------> 成批地把作业输入磁带 ---------> 依次把磁带上的作业读入主机内存并执行 -------> 把计算结果向输出机输出
优点:减少了作业建立时间和手工操作时间,有效克服了人机矛盾,提高了计算机的利用率。
缺点:主机处于“忙等”状态:在作业输入和结果输出时,主机的高速CPU仍处于空闲状态,等待慢速的输入输出设备完成工作。
(2) 脱机批处理系统
优点:极大地缓解了人机矛盾及主机与外设的矛盾。
缺点:每次主机内存中仅存放一道作业,每当它运行期间发出输入输出(IO)请求后,高速的CPU边处于等待低速的IO完成状态,致使CPU空闲。
3.多道程序系统 ------ 提高了CPU的利用率
多道:计算机内存中同时存放几道相互独立的程序。
特点:①宏观上并行------从宏观上看是多道程序在一起运行
②微观上串行------实际上是各道程序轮流地用CPU,交替运行
③空间隔离---------多道程序同时运行,只有内存空间的隔离,才能让数据更加安全、稳定
④时空复用---------遇到IO操作就切换程序,使得CPU的利用率提高了,计算机的工作效率也随之提高
4.分时系统------降低了CPU的利用率,提高了用户体验
由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好像自己独占机器一样。
分时系统分时间片工作,在没有遇到IO操作时就用完了自己的时间片被切走了,这样的切换工作其实并没有提高CPU的效率,反而使计算机的效率降低了。但是我们牺牲了一点效率,却实现了多个程序共同执行的效果,这样你就可以在计算机上一边听音乐一边聊qq了。
5.实时系统 ------ 提高了用户体验,但没有提高CPU利用率
实时控制系统:飞机飞行、导弹发射
实时信息处理系统:订票、银行系统、情报检索系统
优点:及时响应、高可靠性
二、通用操作系统
兼具以下两种或两种以上的操作系统
1.多道批处理系统
2.分时系统
3.实时系统
三、操作系统的进一步发展
1.个人计算机操作系统
2.网络操作系统
3.分布式操作系统(重要)
四、操作系统的作用
程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了它,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件。
精简的说,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。
细说的话,操作系统应该分成两部分功能:
1.隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源更好、更清晰的模型(采用调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。
2.将应用程序对硬件资源的竞态请求变得有序化。
操作系统所处的位置如图所示: