现代操作系统(第1章 引论)
操作系统的任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理硬件设备。
用户与操作系统交互的程序,基于文本的通常称为shell,基于图标的称为GUI(Graphics User Interface),都不是操作系统的一部分。

操作系统是软件中最基础的部分,运行在内核态(也称为管态、核心态)。
用户接口程序(shell或者GUI)处于用户态程序中的最低层次,允许用户运行其他程序。
1.1什么是操作系统
操作系统有两个基本上独立的任务,即为应用程序员(实际上是应用程序)提供一个资源集的清晰抽象,并管理这些硬件资源,而不仅仅是一堆硬件。
1.1.1 作为扩展机器的操作系统
抽象是管理复杂性的一个关键。好的抽象可以把一个几乎不可能管理的任务划分为两个可管理的部分。其第一部分是有关抽象的定义和实现,第二部分是随时用这些抽象解决问题。
硬盘驱动(disk driver)是硬件的抽象,文件是硬盘的抽象。
操作系统的任务是创建好的抽象,并实现和管理它所创建的抽象对象。
操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。

1.1.2 作为资源管理者的操作系统
把操作系统看作向应用程序提供基本抽象的概念,是一种自顶向下的观点。按照另一种自底向上的观点,操作系统则用来管理一个复杂系统的各个部分。从这个角度看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配。(eg:将多个程序同时打印出的结果送到磁盘上缓冲区、为不同程序和用户调解互相冲突的资源请求)
资源管理包括用以下两种不同方式实现多路复用(共享)资源:在时间上复用和在空间上复用。
1.2 操作系统的历史
1.2.1 第一代(1945~1955):真空管和穿孔卡片
1.2.2 第二代(1955~1965):晶体管和批处理系统
1.2.3 第三代(1965~1980):集成电路和多道程序设计
多道程序设计(multiprogramming)——伪并行
分时(timesharing)

浙公网安备 33010602011771号