Day32 of learning python --并发编程的操作系统发展史
1.手工操作--穿孔卡片
1946年第一台计算机诞生,计算机工作还在采用手工操作方式,此时还没有操作系统的概念。
操作方式:程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输入计算结果;用户取走结果,并卸下纸带(或卡片)后,才让下一个用户上机。
手工操作方式的两个特点:
1)用户独占全机,资源的利用率低。
2)CPU等待手工操作,CPU的利用不充分。
人机矛盾:手工操作的慢速度和计算机的高速度之间形成了尖锐的矛盾,手工操作方式已经严重损害了系统资源的利用率。
解决办法:摆脱人的手工操作,实现作业的自动过渡。这样就形成了批处理的方式。
2.批处理--磁带存储
批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或者多个用户地作业(这作业包括程序、数据和命令)
1)联机批处理系统,即作业地输入/输出由CPU处理。
主机与输入机之间增加一个存储设备--磁带,在运行于主机上地监督程序的自动控制下,计算机可自动完成:成批地把输入机上地用户作业读入磁带,依次把磁带上上地用户作业读入主机内存并执行并把计算结果向输出机输出。完成了上一批作业后,监督程序又从输入机上输入另一批作业,保存在磁带上,不断重复上诉步骤的
但是,在作业输入和结果输出时,主机的高速CPU仍处于空闲状态,等待慢速的输入/输出设备完成工作:主机处于“忙等”状态。
2)脱机批处理系统
克服:高速主机和慢速外设的矛盾,提高CPU的利用率,又引入了脱机批处理系统,即输入/输出脱离主机控制。


卫星机:一台不与主机直接相连而专门用于与输入/输出设备打交道的
其功能是:
1)从输入机上读取用户作业并放在输入磁带上
2)从输出磁带上读取执行结果并传给输出机
这样,主机不是直接与慢速的输入/输出设备打交道,而是速度较快的磁带机发生关系的。
不足:每次主机内存中存放一道作业,每当它运行期间发出输入/输出(I/O)请求后,高速的CPU便处于等待低速的I/O完成状态,致使CPU空闲。为了改善CPU利用率,又引入了多道程序系统。
3.多道程序系统
1)多道程序设计技术
所谓多道程序设计,就是允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许他们交替在CPU中运行。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

在A程序计算时,I/O空闲, A程序I/O操作时,CPU空闲(B程序也是同样);必须A工作完成后,B才能进入内存中开始工作,两者是串行的,全部完成共需时间=T1+T2。

将A、B两道程序同时存放在内存中,它们在系统的控制下,可相互穿插、交替地在CPU上运行:当A程序因请求I/O操作而放弃CPU时,B程序就可占用CPU运行,这样 CPU不再空闲,而正进行A I/O操作的I/O设备也不空闲,显然,CPU和I/O设备都处于“忙”状态,大大提高了资源的利用率,从而也提高了系统的效率,A、B全部完成所需时间<<T1+T2。
多道程序设计技术不仅使CPU得到充分利用,同时改善I/O设备和内存的利用率,从而提高了整个系统的资源利用率和系统吞吐量(单位时间内处理作业(程序)的个数),最终提高了整个系统的效率。
特点:
(1)多道:计算机内存中同时存放几道相互独立的程序;
(2)宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕;
(3)微观上串行:实际上,各道程序轮流地用CPU,并交替运行。
5.实时系统
6.通用操作系统
7.总结
程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件。
精简的说的话,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如图

操作系统的功能:
1)隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的更好,更简单,更清晰的模型(系统调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,有了文件我们无需再去考虑关于磁盘的读写控制(比如控制磁盘转动,移动磁头读写数据等细节)
2)将应用程序对硬件资源的竞态请求变得有序化,例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,那么a程序竞争到了打印机资源就打印,然后可能是b竞争到打印机资源,也可能是c,这就导致了无序,打印机可能打印一段a的内容然后又去打印c...,操作系统的一个功能就是将这种无序变得有序。
浙公网安备 33010602011771号