计算机操作系统知识整理

操作系统:一个协调、管理和控制计算机硬件资源和软件资源的控制程序

操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成,所以,单纯的说操作系统是运行于内核态的,是不准确的。

操作系统功能

1.隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的更好,更简单,更清晰的模型(系统调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。

2.将应用程序对硬件资源的竞态请求变得有序化,例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,那么a程序竞争到了打印机资源就打印,然后可能是b竞争到打印机资源,也可能是c,这就导致了无序,打印机可能打印一段a的内容然后又去打印c...,操作系统的一个功能就是将这种无序变得有序(多路复用)

操作系统发展史:

第一代计算机(1940~1955):真空管和穿孔卡片

硬件发展滞后,计算机科学便停止了进展,直到第二次世界大战刺激了有关计算机研究的爆炸性进展。

“埃尼阿克”的工作模式是以纯粹的二进制语言进行编写的,以晶体管和二极管作为介质,对计算机进行操作,工作过程大致是程序员在墙上的机时表预约一段时间,然后拿着他的插件版到机房里,将自己的插件板街道计算机里,这几个小时内他独享整个计算机资源,后面的一批人都得等着(两万多个真空管经常会有被烧坏的情况出现)

 

后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板。

第二代计算机(1955~1965):晶体管和批处理系统

设计人员、生产人员、操作人员、程序人员和维护人员直接有了明确的分工,计算机被锁在专用空调房间中,由专业操作人员运行,这便是‘大型机’。

有了程序设计语言:FORTRAN语言或汇编语言,写到纸上,然后穿孔打成卡片,再讲卡片盒带到输入室,交给操作员,然后喝着咖啡等待输出接口。

减少了人机交互,提升了计算机的工作效率,但是被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序)

第三代计算机(1965~1980):集成电路芯片和多道程序设计

 

20世纪60年代初期,大多数计算机厂商都有两条完全不兼容的生产线

 

一条是面向字的:大型的科学计算机,如IBM 7094,主要用于科学计算和工程计算

 

另外一条是面向字符的:商用计算机,如IBM 1401,主要用于银行和保险公司从事磁带归档和打印

解决前代机的方法:

空间复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序,敝如把需要运行的程序先加载到内存,可以解决硬盘的读取延迟。根本原理就是运行程序先进行加载,所有进程排队等待运行命令。

 

时间复用:当一个程序在等待I/O时,另一个程序可以使用cpu,如果内存中可以同时存放足够多的作业,则cpu的利用率可以接近100%,类似于我们小学数学所学的统筹法。根本原理就是运行程序不再等待,多线程处理。

二者称之为:多道复用

CTTS:麻省理工在一台改装过的7094机上开发成功的,CTSS兼容分时系统,第三代计算机广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后,分时系统才开始流行

后来一位参加过MULTICS研制的贝尔实验室计算机科学家Ken Thompson开发了一个简易的,单用户版本的MULTICS,这就是后来的UNIX系统,基于它衍生了很多其他的Unix版本,也是目前为止最为稳定的操作系统,为了使程序能在任何版本的unix上运行,IEEE提出了一个unix标准,即posix(可移植的操作系统接口Portable Operating System Interface),在此之后芬兰学生Linus Torvalds基于它编写了Linux,开源,免费且稳定的特性使linux成为服务器运行的最佳选择。

第四代计算机(1980~至今):个人计算机

当前流行的分布式系统分布在不同位置的,敝如客户端和服务端,将数据分布成很多类,存储与不同的介质中,好处是不受地理限制。

posted @ 2017-03-13 09:42  GeeKTuNG  阅读(572)  评论(0编辑  收藏  举报