操作系统个人笔记--概述
参考视频: 操作系统_清华大学(向勇、陈渝)
参考书籍: 现代操作系统 原书第4版
*. 小结
考察操作系统有两种观点:资源管理观点和扩展的机器观点。在资源管理观点中,操作系统的任务是有效地管理系统的各个部分。在扩展的机器观点中,系统的任务是为用户提供比实际机器更便于运用的抽象。这些抽象包括进程、地址空间以及文件。
操作系统的历史很长,从操作系统开始替代操作人员的那天开始到现代多道程序系统,主要包括早期批处理系统、多道程序系统以及个人计算机系统。
由于操作系统同硬件的交互密切,掌握一些硬件知识对于理解它们是有益的。计算机由处理器、存储器以及10设备组成。这些部件通过总线连接。
所有操作系统构建所依赖的基本概念是进程、存储管理、1/0管理、文件管理和安全。这些内容都将在后续用一章来讲述。
任何操作系统的核心是它可处理的系统调用集。这些系统调用真实地说明了操作系统所做的工作。对于UNIX,我们已经考察了四组系统调用。第一组系统调用同进程的创建和终止有关,第二组用于读.写文件;第三组用于目录管理;第四组包括各种杂项调用。
操作系统构建方式有多种。最常见的有单体系统、层次化系统、微内核系统、客户端一服务器系统、虚拟机系统和外核系统
一. 什么是操作系统
视频的描述
没有一个完整, 精准,公认的定义,但我们可以从功能和特点来介绍操作系统.
从功能和特点来划分操作系统 :
从功能上区分可以认为上 (对用户,应用程序提供服务) 和对下 (对它内部管理的东西) 两个层面区分:
- 用户角度上,操作系统是一个控制软件(对上, 从控制角度)
- 管理应用程序
- 为应用程序提供服务
- 杀死应用程序
- 对它内部管理的东西来说, 操作系统是一个资源分配器,资源管理(对下, 资源分配角度)
- 管理外设,分配资源 (操作系统将CPU,磁盘,内存抽象为进程,文件,地址空间来给应用程序使用,如下图:)
- 管理外设,分配资源 (操作系统将CPU,磁盘,内存抽象为进程,文件,地址空间来给应用程序使用,如下图:)
<<现代操作系统>> 的描述
很难给出操作系统的准确定义. 操作系统是一种运行在内核态的软件 – 尽管这个说法并不总是符合事实.另外,还取决于从什么角度看操作系统.
-
作为扩展机的操作系统(自顶向下的观点)
操作系统的一个主要任务是隐藏硬件,并呈现给程序 (以程序员) 良好,清晰,优雅,一致的 抽象. 这些抽象包括进程, 地址空间以及文件.
在机器语言一级上,多数计算机的体系结构是很原始的,而且编程是很困难的. 以SATA(一种硬盘)为例, 没有如何理智的程序员会想要在硬件层面上与硬盘打交道. 因此他们用硬盘驱动软件来和硬盘交互; 但即便如此, 对于大多数应用来说依旧太低层. 所有操作系统提供了硬盘的又一层 抽象–文件; 使用该抽象,程序能创建,读写文件, 不用处理硬件实际工作中的细节.操作系统的任务是创建好的 抽象 并实现和管理它所创建的抽象对象.
-
作为资源管理者的操作系统(自低向上的观点)
从这个角度看: 操作系统的任务是在相互竞争的程序之间有序的控制对处理器,存储器以及其他 I/O 接口设备的分配.
- 资源管理包括以下两种方式实现多路复用(共享资源):
- 在时间上复用
当一种资源在在时间上复用时, 不同程序或用户轮流使用它. 例如: 多个程序在CPU运行, 打印机的共享 - 在空间上复用
每一客户都得到资源的一部分,从而取代客户排队. 例如: 若干运行程序之间分割内存,使每个运行程序都可入驻内存(为了能够轮流使用CPU)
- 在时间上复用
- 资源管理包括以下两种方式实现多路复用(共享资源):
-----------------------------------------------------------------------------------分割线----------------------------------------------------------------------------
操作系统层次结构
简单概括为: 操作系统在硬件之上, 应用程序之下. 即:运行在裸机之上,为其他程序 (应用程序) 提供基础的运行环境.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一些词汇: 用户接口程序
多数计算机有两种运行模式: 内核态 和 用户态. 软件中最基础的部分是操作系统,它运行在内核态 (也称之为管态,核心态). 在这种模式中, 操作系统具有对所有硬件的完全访问权, 可以执行机器能够运行的如何指令. 软件的其他部分运行在用户态. 在用户态下,只使用了机器指令中的一个子集.
特别的, 那些会影响机器的控制或可进行 I/O (输入/输出) 操作指令, 在用户态中的程序里是禁止的.
操作系统在软件中
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~