操作系统概述(自顶向下):
操作系统有两个基本上独立的任务:
为应用程序员(应用程序)提供一个资源集的清晰抽象
管理硬件资源,而不仅仅是一对硬件
作为扩展机器的操作系统:
抽象:抽象是管理复杂性的一个关键,好的抽象可以把一个几乎不可能管理的任务划分为两个可管理的部分:
第一部分:有关抽象的定义和实现
第二部分:随时用这些抽象解决问题
操作系统的任务是创建好的抽象,并实现和管理它所创建的抽象对象,即隐藏硬件,呈现给程序(及程序员)良好、清晰、优雅、一致的抽象
操作系统的实际客户是应用程序,他们直接与操作系统及其抽象打交道;而最终用户与用户接口所提供的抽象打交道,即命令行shell或图形接口
作为资源管理者的操作系统(自底向上):
操作系统用来管理一个复杂系统的各个部分,在这个角度上看,操作系统的任务是在互相竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配
现代操作系统允许同时在内存中运行多道程序
当一个计算机(或网络)有多个用户时,管理和保护存储器、I/O设备以及其他资源的需求变得强烈起来,因为用户之间会相互干扰,用户不仅共享硬件,还要共享信息
在这个角度上看操作系统的主要任务是记录哪个程序在使用什么资源,对资源请求进行分配,评估使用代价,并且为不同用户调解相互冲突的资源请求
资源管理有两种方式实现多路复用(共享)资源:
时间复用:不同的程序轮流使用资源,先是第一个获得资源的使用,然后下一个,以此类推
空间复用:每个客户都得到一部分资源,从而取代客户排队,磁盘资源使用多路复用