要想更好的学习就要好好了解一下操做系统的发展史,了解代码如何过分衍变的,下面咱们来了解一二。程序员
操做系统发展史编程
研究并发编程其实就是研究操做系统的底层原理,因此咱们须要从操做系统的发展史开始学起并发
手工操做 —— 穿孔卡片ide
1946年第一台计算机诞生--20世纪50年代中期,计算机工做还在采用手工操做方式。此时尚未操做系统的概念。学习
程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,而后启动输入机把程序和数据输入计算机内存,接着经过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。操作系统
手工操做方式两个特色:内存
(1)用户独占全机。不会出现因资源已被其余用户占用而等待的现象,但资源的利用率低。资源
(2)CPU 等待手工操做。CPU的利用不充分。it
20世纪50年代后期,出现人机矛盾:手工操做的慢速度和计算机的高速度之间造成了尖锐矛盾,手工操做方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。惟一的解决办法:只有摆脱人的手工操做,实现做业的自动过渡。这样就出现了成批处理。class
批处理 —— 磁带存储
批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机可以自动地、成批地处理一个或多个用户的做业(这做业包括程序、数据和命令)。
联机批处理系统
首先出现的是联机批处理系统,即做业的输入/输出由CPU来处理。
主机与输入机之间增长一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户做业读入磁带,依次把磁带上的用户做业读入主机内存并执行并把计算结果向输出机输出。完成了上一批做业后,监督程序又从输入机上输入另外一批做业,保存在磁带上,并按上述步骤重复处理。
监督程序不停地处理各个做业,从而实现了做业到做业的自动转接,减小了做业创建时间和手工操做时间,有效克服了人机矛盾,提升了计算机的利用率。
可是,在做业输入和结果输出时,主机的高速CPU仍处于空闲状态,等待慢速的输入/输出设备完成工做: 主机处于“忙等”状态。
脱机批处理系统
为克服与缓解:高速主机与慢速外设的矛盾,提升CPU的利用率,又引入了脱机批处理系统,即输入/输出脱离主机控制。
卫星机:一台不与主机直接相连而专门用于与输入/输出设备打交道的。
其功能是:
(1)从输入机上读取用户做业并放到输入磁带上。
(2)从输出磁带上读取执行结果并传给输出机。
这样,主机不是直接与慢速的输入/输出设备打交道,而是与速度相对较快的磁带机发生关系,有效缓解了主机与设备的矛盾。主机与卫星机可并行工做,两者分工明确,能够充分发挥主机的高速计算能力。
脱机批处理系统:20世纪60年代应用十分普遍,它极大缓解了人机矛盾及主机与外设的矛盾。
不足:每次主机内存中仅存放一道做业,每当它运行期间发出输入/输出(I/O)请求后,高速的CPU便处于等待低速的I/O完成状态,导致CPU空闲。
为改善CPU的利用率,又引入了多道程序系统。