目录
1 为什么要有操作系统2 操作系统的位置
3 操作系统的功能
4 操作系统的发展
5 多道技术
1 为什么要有操作系统
现在的计算机结构比较复杂,通常有一个或多个处理器、主存、硬件、鼠标、显示器、打印机、网络接口及其他输入输出设备组成。 如果每一位程序员在编写代码前,都需要了解从硬件到软件的每一个细节,那学习成本将会非常高,严重影响程序员的学习开发效率。在这样一种情况下,安装 一层软件(系统软件),将底层繁琐的硬件操作等工作交给这层软件,为用户或程序员程序提供一个更好、更简单、更清晰的体验。这样一层软件就是操作系统的模型。
2 操作系统的位置
如图,操作系统位于计算机硬件与应用程序之间,但本质上也是一个软件。操作系统是由操作系统的内核(处于内核态,管理硬件资源)和系统调用(处于用户态,为应用程序提供接口调用)两部分组成的。
3 操作系统的功能
操作系统的作用:
-
将硬件资源抽象出来
如底层的各种硬件驱动等,有了操作系统提供的抽象接口,用户就不用再考虑具体的细节实现。
如操作系统提供的文件这个抽象概念,这样对文件的操作即是对磁盘的操作 -
管理硬件资源
现在的操作系统能同时运行多个程序,操作系统的任务是在多个竞争的程序中,合理有效分配现有的资源,如处理器、存储器及其他I/O接口设备等。
4 操作系统的发展
- 第一代计算机(1940~1955):真空管和穿孔卡片
-
产生原因:
第一代计算机的产出是在机械时代进入电子时代的标志。其间,人们想要用机械取代人力,但在此之前,数学计算机的建造几乎毫无进展。二战的爆发空前的刺激了计算机的研究 -
特点:
没有操作系统的概念
所有的程序都是纯粹的机械语言编写 -
工作过程:
程序员要事先预约时间,然后拿他的插线板去机房,将自己的插线板连接到计算机。在接下来的几个小时他将独享整个计算机。后面一批人都得等着。(若计算机故障,程序员也要自己会修理计算机)
后来出现了穿孔卡片,可以将程序写在卡片上,而不再用插件板 -
优点:
程序员在使用期独享整台计算机,可及时的调试程序 -
缺点:
对计算机提供商来说是一种资源浪费
PS:同一时刻只能有一个程序在内存被cpu调用,串行。
- 第二代计算机(1955~1965):晶体管和批处理系统
- 产生背景:
由于当时计算机非常昂贵,为了减少资源浪费。改用批处理的方式。 - 特点:
需要额外的操作人员来完成中间过程,有了早起操作系统的概念 - 工作过程:
-
优点:
批处理,节省了计算机的等待时间 -
缺点:
- 这个过程都要人为控制
- 计算的过程仍是顺序计算(串行)
- 程序员不再独享计算机,极大影响程序开发,和调试
- 第三代计算机(1965~1980):集成电路芯片和多道程序设计
-
产生背景:
20世纪60年代初期,大多数计算机厂商都有两条完全不兼容的生产线。一条面向字,用于大型科学计算;一条面向字符,用于商用计算机。开发和维护完全不同的产品会比较昂贵。
为了解决二代计算机中,需要人的干预,引入了SPOOLING(该技术同时用于输出);为了解决二代计算机中顺序处理带来的cpu资源浪费,引入了多道技术。PS:解决第二代计算机的问题3:
分时操作系统:
多个联机终端+多道技术 -
优点:
解决额二代计算机中前两个问题 -
缺点:
仍是批处理
- 第四代计算机(1980~至今):个人计算机
5 多道技术
多道复用是为了解决多个程序竞争或共享同一个资源的有序调度。
多道技术分为:空间复用和时间复用
-
空间复用:
将内存分为多个部分,每个部分放入一个程序。这样,同一时间内存可以有多个程序。
由于cpu运算过快,当把要执行的程序都加载在内存,从一个程序切换到另一个程序,就可以直接完成。不用再等数据从磁盘读到内存。 -
时间复用:
当程序在等待I/O时,其他的程序也可以使用CPU。类似统筹方法的实现。
PS:空间复用需要注意的事项:程序直接的内存必须分割, 这种分割在硬件层面实现,由操作系统控制实现。如果不分割,内存中的程序可以相互访问,系统会出现安全性和稳定性方面的问题。