接下来我们讲操作系统的演变
也就是说在历史上操作系统的技术
它到底有些什么样的变化
那么对于操作系统来说
它主要的功能是在用户态和硬件之间
做一个中间的协调和抽象
然后是使得
用户可以很方便的使用硬件的资源
和操作系统里面的软件资源
那么从这个道理上来讲
这个中间的变化做成以后
应该没有什么变化了
但是实际上我们说
操作系统的变化非常巨大的
原因在于在过去
操作系统发展的半个世纪的历史当中
技术上有非常大的变化
我们在这里举一个例子
说从80年代个人计算机出现
到2012年操作系统硬件技术
有一些什么样的变化
从这张表里我们可以看到
计算机系统里的价格
基本没有明显的变化
我们先不考虑物价上涨之类的因素
基本是在几千美元的尺度
但是我们看一下计算机系统当中
各个部分之间的变化
就是非常巨大的
我们从这里可以看出来CPU的速度
从4M到3G基本上M到G
基本增加了几百倍到1千倍的尺度
而处理能力从0.3个MIPS到12年的76个MIPS
基本上涨了200倍
而存储能力变化是最大的部分
从最早的内存从64K
到8个G应该是涨了几十万倍
而几十万倍的话
从硬盘的存储能量也是类似的
这种变化对于我们来说
到底计算机技术里有什么样的区别呢
大家可以想象一下
早的时候有可能我一个文件
从文本就是几百个字节
几千个字节
现在我们存的一个视频文件
动不动几个G了
这种变化实际上对操作系统来说
它有至关重要的影响
实际上在操作系统的发展历史上
它从最简单的单用户系统
就是说我们能让一个用户
能够用计算机的资源
能够算它的作业这就是它的目的了
然后有了这个目的之后
我计算机系统这个系统太贵了
好 这个时候
我能不能提高它的利用效率
提高利用效率就是批处理系统
和多道系统要干的事
等到效率能提高一定程度以后
如果说我在这里排作业算的时候
我排到前面一个用户算的时间很长
我在后面要等很长的时间
这个时候怎么弄
这个时候我们这个分时系统
使得我可以
在前一个作业没有结束的时候
我后一个作业能够交替运行
等到分时系统出现之后
并且成熟了以后
我们操作系统里面
这些性能提高的这一部分
就大致差不多了
接下来是说个人计算机系统出现
那这个时候
它易用性变成它最主要的部分
而分布式系统出现之后
它的这种联成网络以后
它的安全性和高可靠性
变成它的主要内容
我们看一下在这个变化的过程当中
各个技术的变化的要点
从计算机出现的
40年代的前面的10年左右
基本是解决
我如何能让花很大价钱买来的计算机
能够让它的利用效率能提高
比如说这是最早的计算机系统
能摆半层楼
那在这头昂贵的计算系统
我花了很多的时间
去换子代穿孔机和最后打印成的结果
这对于我来说是很不合算的
我要努力的减少这部分的时间
从而使得我的执行时间
占的比例越来越高
这样我的利用效率就高了
怎么做呢
它的做法是把这些
前后打印和前面的输入
不用昂贵的计算机来做
用周边设备来做这种输入和最后的输出
中间这一段价钱贵的部分
我让它尽可能的快
这一部分数顺序的快速的执行
这是第一个阶段要做的事情
顺序执行我用批处理
然后在这里面呢
我为了让它能快
我在这里把若干个作业搁到一起
它们在执行的时候还是顺序执行
结果一块顺序打印
这个阶段最有名的计算机公司就是IBM
它在这里面发家
就是靠做这些输入输出设备
和计算机系统
那么等到这一个阶段行了
实际上对于我的CPU来说
对于我的计算机系统来说
它是满负荷的从头一个作业
接一个作业去算
为了进一步的提高系统的性能
我们这个时候看怎么来做这点
这就是我们这里的多道系统
多道系统是干什么呢
它利用到的一点还是为了提高效率
也就是说我一个程序开始执行
其中有一个做I/O
做I/O呢我从系统调用进入系统里面来
布置相应的设备进行I/O操作
进行IO操作的过程当中
我的计算机系统就在这等着了
那这个等待呢
我CPU是停着的
没法干别的事
要想进一步提高效率呢
我让系统里同时存在多个作业
第二个作业是
在你第一个作业不在执行的时候
空闲的时候
这个时候我让第二个作业来执行
等到你第一个作业返回结果回来以后
我再切回来继续执行你的第一个作业
这个时候在内存里面程序执行的
就由原来的顺序执行
变成的多道程序的交替执行
但是交替的条件
是前一个正在执行的程序
主动让出CPU的使用权
有了这一条以后我的CPU
就可以变成是连续的
尽可能的在处于运行的状态了
这样的话我的效率又进一步提高了
这一步提高以后再往下发展呢
就是我们的分时系统
分时系统它仍然是在做系统的
多个程序的交替执行
但是这个时候大家注意
我们交替的条件不一样了
我在这里加了一个时钟中断
每一个作业算一段时间以后
硬件会产生一个时钟中断
时钟中断的时候
我会暂停当前进程的执行
去由操作系统去调度
我让另一个程序继续执行
等它的时间再一个时钟中断
然后再回来
这样的话我让多个进程交替执行
这个时候交替执行就变成什么
如果我有一个作业在前面
花很长时间要算
我又来一个作业我仅仅是做编译
也许编译我就不一定通过了
这种情况下我排在后面
我会等很长时间
有了分时系统以后大家一人算一点
对于我刚才说的这种
只是做编译测试的这种情况
它可以分到它的时间很快算完
算错了它就退出来了
而另外一个长的呢
它在交互式的这几个运行结束以后
后面长的作业可以一直算下去
这样一来就可以减少了
我用户等待的时间
这个时候说它的系统的性能
在什么地方做提升
它的提升不是在于
有CPU的效率有提高
原因在于CPU加了调度以后
它的性能某种角度它会下降
但是由于我让一些短的作业
能够公平性能更好了
这样的话我短作业
用户的时间的会节约了
从这个角度来讲仍然是提高效率的
到了这一步以后
分时系统我们的CPU的效率
就基本上提到极致了
接下来计算机发展的变化是什么呢
就是个人计算机系统
在个人计算机系统里面呢
效率已经不再是我们关心的重点了
这个时候计算机的价格
已经降低到一个办公室
或者说一个家庭
可以有一台计算机的状态
在这种状态下
我用户也不再是局限于
是计算机专业人士
才能够使用计算机 写计算机程序
很多人开始利用计算机
来做自己的事情
这个时候计算机的易用性
变得非常重要了
这个时候图形用户界面
是这个阶段发展的重点
在这个里面计算机变成一个
支持沟通和交流的系统了
而这个里头呢
安全性的问题又变成这里最重要的了
这个相当于安全的问题
在操作系统里面重要程度有上升
个人操作系统实际上
和网络的出现又联在一起
这个时候我们网络的
又形成了另外一个分支
就是分布式操作系统
分布式操作系统
它因为有了网络以后
我在多台机器之间
需要有数据的共享和协调
然后一台机器里面
我也可能使用多个CPU
这个时候多个CPU的使用
和多台机器互联的使用
这个时候可能提高的结果
使得我们系统的可用性
和可靠性有进一步提高
这个时候我们见到的一种典型场景
是若干个用户通过网络联在一起
我们有服务器提供一些
共性的资源的共享
各个用户在自己的机器上
进行相应的处理
使得我整个网络可以开始
去处理一些实时的信息
比如说我们在这样的系统里面
可以买飞机票 买火车票
在网上进行购物
这个图可以很方便地的来说明
在操作系统演变的过程当中
计算机的处理能力和
操作系统变化之间的某种关系
在最早的时候计算机系统
主要是一个大型的主机系统
一个学校可能会有一台计算机系统
很多的计算机专业人士
围绕这台计算机系统
来提高它的效率
我们所说到的批处理系统
多道系统 分时系统
都是在这个阶段出现
并且不断成熟和发展起来的
然后等到计算机硬件成本
降低到一定程度
这个时候我们每一个办公室
或者说每一个家庭
可以有一台计算机的时候
这个时候通过网络互联的
个人计算机变成主流了
在这种情况下我们的方便性
易用性就变成其中一个重要的内容
这是我们在桌面系统上看到的
图形用户接口的发展
鼠标的使用
这些都算是这个阶段的
再往上等到我们每一个人
都有一台便携式的
可随身携带的计算机系统的时候
这个时候我们要处理的易用性
或者说这种自适应能力变得更强
也许到不远的将来
甚至于现在我们一个人就有可能有
多台计算机系统了
比如说我会有手机
有一台笔记本
那在这个系统里面呢
我们如果说到某一个状态下是
每一个电子设备里
都有一个计算机系统
里面都有操作系统的话
这个时候就是我们所说的
普适计算 移动计算 云计算
就变成一个主流的内容了
而在这种环境下
我们可能涉及到大量的数据
而这种数据的处理
又对主机系统又会产生一轮影响
这就是我们这个云计算
需要面对的环境
在这个状态下实际上操作系统
还会再继续往前又发展
这个就是我们在最开始讲到的
实际上像现在的
谷歌 亚马逊 百度 搜狐
这一类的互联网公司
会把精力集中到
操作系统研究上来的缘故
好 这就是我们说到的
操作系统发展的过程