用户需求的提升和硬件技术的发展,是操作系统发展的必要条件和基础。
计算机的发展经历了4个阶段,电子管计算机(1945-1955)、晶体管计算机(1955-1965)、集成电路计算机(1965-1980)、大规模集成电路计算机(1980-至今)。因此,伴随着计算机硬件的更新换代,操作系统也经历了4个阶段,分别是手工操作(50年代早期)、单道批处理系统(50年代)、多道批处理系统(60年代初)、分时系统(60年代中)。
1.手工操作(无操作系统)
出现背景:电子管计算机时代(1946-1955)
计算机硬件:电子管、接线面板(按钮/开关)
程序:二进制程序,用纸带表示。
流程:
人们先把程序纸带(或卡片)装上计算机,然后启动输入机把程序和送入计算机,接着通过控制台开关启动程序运行。计算完毕,打印机输出计算结果,用户卸下并取走纸带(或卡片)。第二个用户上机,重复同样的步骤。
特点:效率低,CPU有效运行时间极低,因为要等待大量手工操作时间,用户独占机器,程序运行过程中无法和程序员进行交互。
2.单道批处理系统
为了充分利用CPU资源,通常是把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序,在它的控制下使这批作业能一个接一个的连续处理。这种方式便是单道批处理系统。
流程:管理员先将多个作业输入到磁盘形成作业队列,操作系统一次自动处理队列中每个作业。
即:装入——运行——撤出的一个过程。
程序的装入和撤出:自动完成,效率高,运行结束通知用户取结果。
特点:
1)批量:作业队列
2)自动:识别作业,装入和撤出
3)单道:依次、串行
一个程序运行过程中有时候使用CPU计算,有时候使用外部设备(如磁盘)进行输入输出。
如图,在单道批处理系统中,一程序A运行过程,从图中可以看出,外设与CPU交替空闲和忙碌,CPU会在程序进行IO操作的时候空闲下来,CPU资源利用效率低,同理外设利用效率也低。
3.多道批处理系统
在上述单道批处理系统中,在程序A进行IO操作的那段时间里,CPU是处于空闲状态的,我们能不能把这段CPU空闲时间利用起来,利用此时的CPU去执行程序B的计算过程?
因此,多道批处理系统由此诞生。
流程:内存中有多道程序,某程序放弃CPU的时候,操作系统便调度另一程序投入运行,提高了系统的CPU利用率,也提高了整个系统的吞吐量。
一个程序运行过程中有时候使用CPU计算,有时候使用外部设备(如磁盘)进行输入输出。
由此看出,A、B、C三道程序相互穿插执行。在作业A放弃CPU进行IO操作时,分配CPU给作业B执行,作业B放弃CPU进行IO操作,此时A、B都在进行IO操作,系统将CPU分配给C执行任务,因此,CPU的资源利用率大大提高。
特点:
1)多道:内存同时存放多道程序。
2)并行:宏观(多个程序一同向前)
3)串行:微观(CPU只有一个,串行)
4.分时系统
在多道批处理系统的时代,用户对新系统的需求具体表现在两个方面。
一是人机交互,每当程序员写好一个程序时,都需要上机调试,由于程序难免存在错误,因此用户希望能像早期使用计算机一样独占全机资源并对它进行直接控制,以便能方便地对程序中的错误进行修改,意即人机交互。
二是共享主机,在20世纪60年代计算机还十分昂贵,一台计算机要同时供多个用户共享使用,每个用户在共享一台计算机时都希望能像独占时一样,不仅可以随时与计算机进行交互,而且还不会感觉到其他用户的存在。
分时系统在这样的背景下诞生,因此分时系统是指在一台主机上连接了多个终端并由此组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。分时操作系统最典型的例子就是UNIX和Linux,它们可以同时连接多个终端,并且每隔一段时间重新扫描进程,重新分配进程的优先级,动态分配系统资源。
原理
分时操作系统将系统处理机时间与内存空间按一定的时间间隔(划分时间片),采用轮转运行方式轮流地切换给各终端用户的程序使用(例如规定每个作业每次只能运行一个时间片)。由于时间间隔很短,每个用户就感觉像独占全机一样,这样就解决了主机共享问题。
而对于人机交互,为实现用户键入命令后能对自己的作业及其运行及时控制或修改,各个用户的作业都必须留在内存中(作业在磁盘上是不能运行的),用时间片进行切换管理。
分时操作系统的特点是可有效增加资源的使用率,支持人机交互与资源共享。例如UNIX系统就采用了剥夺式动态优先的CPU调度以支持分时操作。
简而言之,分时操作系统的核心原理在于将作业直接放入内存,并引入了时间片的概念,采用轮转运行的方式,规定每个作业每次只能运行一个时间片,然后就暂停该作业并立即调度下一个作业运行。在不长的时间内使所有的作业都执行一个时间片的时间,便可以使每个用户都能及时地与自己的作业进行交互,从而使用户的请求得到及时响应。这样就解决了在分时系统中最重要的及时接收、及时处理问题。
特征
与其前辈批处理系统相比,分时系统有如下几个特点:
1)多路性:系统允许将多台终端同时连接到一台主机上,并按分时原则为每个终端分配系统资源,提高资源利用率,降低使用费用。
2)独立性:各终端之间相互独立,互不干扰,每个用户都感觉像一人独占主机一样。
3)及时性:用户的请求能在很短的时间内就得到响应。
4)交互性:用户可通过终端与系统进行人机对话,例如请求多方面的服务。
更多内容,请关注微信公众号:IT界的泥石流