并发编程--------操作系统

一、操作系统的发展史

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.将应用程序对硬件资源的竞态请求变得有序化。

  操作系统所处的位置如图所示:

  

原文地址:https://www.cnblogs.com/yanyufeng/p/9377869.html