漫谈操作系统
来源:互联网 发布:小白的第一本书python 编辑:程序博客网 时间:2024/06/11 09:49
人类很早就开始使用工具了。从旧石器时代的石器到奴隶社会的青铜器,从封建社会初期的铁器到资本主义时代的工业机器,制造工具并使用工具把人和动物区分开来。在二十世纪40年代之前的5000多年里,人类工具的发展是平稳而缓慢的。
1946年,美国的宾西法尼亚大学研制出了人类历史上第一台计算机。这是一个占地数百平米的庞然大物。它由50000个电子管组成,运行一个简单的程序需要十天半个月的时间。然而,这标志着人类在工具制造领域进入了一个新的阶段。
此后,计算机技术得到了迅猛的发展,到今天,个人计算机的处理能力已经超出了第一台计算机数百万倍,数千万倍都不止。而且,还广泛应用于航天、医疗、信息处理、机器人、勘探等各个领域,远远超出了当年仅用于科学计算的用途。
计算机的产生是为了满足人类使用的需要。最早期的计算机是硬件操作的。操作员通过机器上的按钮和连接线来控制计算机的运行。所有的数据信号和控制信号都要用按钮来发送,为了操作员查看方面,每个按钮都配有指示灯。每个控制信号都是由一个若干位(通常是四位)二进制数组成的微指令,负责对数据进行加、减、乘、除、移位等操作。操作员首先通过按钮把第一个数输入缓冲区(这里的缓冲区就是一组寄存器,每个数据按钮和控制按钮都对应一个寄存器)。然后按下“送数据”按钮,将第一个数送入ALU。这时,缓冲区的数据还在。之后输入第二个数进入缓冲区,再按下“送数据”按钮,于是第二个数也进入了ALU。然后开始输入控制指令。同样,控制指令进入缓冲区。按下“送数据”按钮。微指令对两个操作数进行操作,最终结果保存在第一个数所在的数据寄存器中。
在这个系统中,操作员负责整个运算的操作,相当于简单的操作系统。此时的计算机只具有计算机运算的基本模式,而整个运算过程还是和计算器一样,全部需要人工干预。
早期的大型机实现了手动操作。程序是由一组打在卡片上的圆洞组成的,包括数据信息、控制信息、对CPU的操作以及I/O操作等等。程序员把卡片交给操作员,操作员将卡片放入与大型机相连接的读卡机上。读卡机一边读卡片,大型机一边进行运算,最后产生结果。这种机器上同样没有操作系统,所有的操作信息都写在卡片上。也就是说,即使很多人的操作程序一模一样,也要自己写自己的。
后来实现了批处理。操作员对程序进行分类,相似的程序放在一起顺序执行。对系统资源使用情况相同的程序的共同部分就形成了操作系统,驻留在内存中。大型机只要顺序读取每个卡片的数据信息就可以了。
批处理虽然加快了计算机的处理速度,但是它毕竟还是单任务的模式,即一次一任务,CPU大多数时间都是空闲状态,等一个作业完成后才能进行下一个任务。于是,多道程序设计的思想应运而生。
在多道程序系统中,操作系统和若干个作业同时驻留在内存中。驻留在内存中的作业是系统作业池的子集,因为在磁盘和其他存储介质上还有其他很多作业。操作系统先执行第一个作业,在执行过程中,如果作业要求一个外部操作(如I/O),这时,操作系统调度CPU开始执行第二个作业。如果第二个作业也需要做一个外部操作,那么操作系统就调度CPU开始执行第三个作业。依次类推,直到第一个作业完成外部操作并对OS发送请求,OS就回到第一个作业并继续执行它。
这种多道程序系统没有用户交互的功能,全部的操作都由系统操作员来执行。系统操作员把多个作业同时放入系统内存,然后操作系统开始执行多个作业。后来的分时系统在这一基础上做了改进,增强了交互性。从某种意义上讲,分时系统是多道程序系统的自然延伸。
分时系统是具有用户交互性的多道程序系统。多个用户共同使用同一个系统,系统内存中有多个正在进行的用户程序。由于用户的操作速度与系统处理速度相差很多,所以当系统在多个作业之间切换时,速度快到用户无法感觉出来,好象整个系统只归自己使用一样。这其中涉及到时间片、CPU调度等概念,等我学习到相关章节后再详细说明。:)
有分时系统,就自然有实时系统。与其他计算机系统不同,实时系统对时间的要求非常严格。系统对事件的响应时间需要控制在某一特定范围之内,如果超出了这个范围,系统就是失败的。这就给系统设计人员提出了非常高的要求。分时系统在机器人、勘探、航天、过程控制等前沿学科领域有着很广泛的应用。
随着计算机技术的不断发展,很多曾经只能运用在大型机上的技术,也开始应用在小型机甚至微型机上。最早的PC机操作系统是DOS,它是一种单用户、单任务的简单操作系统。后来的WINDOWS、LINUXS、UNIX系统开始支持多任务、多用户,在微型机上实现操作系统的多用户和多任务处理,开创了计算机系统的新时代。
- 漫谈操作系统
- 漫谈操作系统 1 -- 简介
- 漫谈如何学习操作系统原理
- 漫谈如何学习操作系统原理
- 漫谈如何学习操作系统原理
- 漫谈如何学习操作系统原理
- 漫谈如何学习操作系统原理
- MiCO物联网操作系统漫谈
- 漫谈操作系统6 -- 内存管理
- 漫谈操作系统10 -- 调度器
- 漫谈操作系统11 -- 上下文切换
- 漫谈如何学习操作系统原理(转载)
- 漫谈操作系统 2 -- 从启动开始
- 漫谈操作系统5 -- 基础知识(进程隔离)
- 漫谈操作系统7 -- 一切皆为文件
- 漫谈操作系统8 -- 神奇的vDSO
- 漫谈操作系统9 -- 线程运行状态
- 漫谈操作系统4 -- 基础知识(进程和线程/任务)
- Shark包、流程管理
- 写点啥呢?
- 拒绝小肚子10大妙计
- 关于在DataGrid中创建一个弹出式窗口的问题!
- 用Perl:痛并快乐着!!
- 漫谈操作系统
- 好久没有来这里写Blog,主要原因是太慢了,而且有的时候总是打不开。
- 经典QQ资料
- 值得珍藏一辈子的80句话 [转贴]
- 如何用Delphi创建一个能随意拨号,并连接到对方的“猫”上的程序,谢谢(小弟才浅,请指教)
- 雪花屏幕保护程序(VB.ENT)
- 你可以顺手做到的20件环保小事
- 不认识的人问你手机如何使用时千万要躲
- 版本控制系统简介RCS/CVS/Subversion