首页 > 代码库 > Python第二节课(操作系统简介)

Python第二节课(操作系统简介)

1.为何要有操作系统

先从操作系统的定义说起,操作系统是协调,管理和控制计算机硬件资源和软件资源的控制程序。也就是承接我们的软件应用和硬件调用的中间人。

操作系统位于计算机硬件和应用软件之间,本质也是一个软件,只不过可能他会有几百万行的代码,今天的我们已经不用费尽力气去研究他。准确的说,操作系统分为内核部门和系统调用两大部分,操作系统时而与软件交互,时而调用硬件进行工作,所以我们单纯的说操作系统始终处于内核态是不正确的。

那么内核态和系统调用具体为程序员们带来了什么便利呢,我们一点点的去分析一下:

1内核功能隐藏了底层电路板里各式各样的硬件调用接口,为程序员提供了更简单,清晰的系统调用接口,这时我们不再需要考虑底层的硬件接口,因为操作系统会帮我们搞定一切。

2我们安装的诸多软件会共享我们计算机的一套资源,但是当程序发生竞争的时候,我们的硬件是无法自行判断的,这是操作系统会为硬件制定一定的资源分配规则,从而让无序的竞争变得有序化。

 


2.操作系统的位置

操作系统是位于底层硬件与应用软件之间的一套大型系统软件,他可以把应用软件的指令通过翻译变换成硬件可以识别的机器码,从而实现软硬件的交互与通信。

 

 

3.操作系统的功能

通过内核功能屏蔽底层的电路结构与硬件接口,再通过系统调用实现软硬互通。

 

4.操作系统的发展

大体上来讲的话操作系统是经历了从无到有的过程,为什么我要这样说?因为我们的第一代计算机是没有操作系统的,只有躯壳没有灵魂,鄙人词薄,实在不会定义这样的操作系统,所以单独拎出来弄一个说法出来。

第一代操作系统其实是在第二代电脑出来以后才诞生的。

在大型机年代,FORTRAN语言或者汇编语言是通过纸带打孔进行输入进计算机进行计算的。但是这种操作方法的工作效率实在不高,当我们把若干个程序员的代码陆续录入读卡机的时候,第一个送来纸袋的程序员在干嘛呢,他在等这一批的程序员所传递来的所有纸带执行完毕,才会接收到自己的结果,在这之前,他无法进行自己的代码调试,而且在整个过程中他的时间成本是得到了过度消费的。当然,新的技术在压抑程序员的过程中让硬件得到了更大化的资源利用(这是最早的批处理系统)。

 

之后为了避免对时间的浪费,人们开发出了分时系统(通过多个联机终端+多道技术实现),通过利用CPU高频的特点把CPU处理多任务的时间进行分割,每一个外部用户都可以在无感知的情况下分时使用计算机资源,从而大大加快了工作的进程(此时内存隔离技术尚未成功,只能做到时间上的分离)。

在这之后,麻省理工(MIT)成功研制出了成功的内存物理隔离技术之后,结合之前的分时系统成功的在空间和时间上实现了复用,这样就有了我们今天广泛使用的系统的模型。

在这之后,基于单用户的Unix系统面世,并且基于这个版本衍生出了很多类似的版本。(Unix系统只存活于小机时代了,现在是Linux的天下)。

 

 


5.多道技术

     多道技术是操作系统实现批处理的基石:他意味着处理器处理多个程序发起的多个共享资源的请求。(通过空分复用和时分复用实现)

时分复用:

由于CPU频率较高,具备快速处理事务的能力,所以我们将CPU处理事务的时间进行分段,以前1S的时间处理一件事,现在我们定义他处理N件事,N个时间分区,这可以通过时钟程序和中断程序来实现,进而实现时间上的重复利用。

空分复用:

在时分复用的基础上,我们注定会遇到诸多程序一起写进内存然后再对内存进行物理隔离的过程,当我们内存足够大的时候,我们通过对内存的分区操作,实现一个时间片段完成多个任务的执行,可以说空分复用是时分复用的关键一环。

将这两种技术结合起来,那么就是我们所提到的多道技术啦!

2017-05-19

15:54:50

Python第二节课(操作系统简介)