第一章 操作系统概述
1.1_1 操作系统的概念、功能和目标
概念
计算机系统的层次结构:裸机(纯硬件)=> 操作系统 => 应用程序(软件)=> 用户
操作系统:(Operating System, OS)是指控制和管理整个计算机硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
- 负责管理协调硬件、软件等计算机资源的工作
- 为上层的应用程序、用户提供简单易用的服务
- 操作系统是系统软件,而不是硬件
功能和目标
-
作为系统资源的管理者—— 功能:文件管理、存储器管理(内存管理)、处理机管理、设备管理 目标:安全、高效 -
作为用户和计算机硬件之间的接口—— 功能——
- 命令接口 (允许用户直接使用)—— 联机命令接口(交互式命令接口,用户说一句,系统做一句)、脱机命令接口(批处理命令接口,用户说一堆,系统做一堆)
- 程序接口(允许用户通过程序间接使用):由一组系统调用组成(程序接口=系统调用)
- GUI(图形用户界面)
目标:方便用户使用 -
作为最接近硬件的层次 功能:实现对硬件机器的拓展
1.1_2 操作系统的四个特征
并发和共享是两个最基本的特征,二者互为存在条件。
并发和共享的关系:如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义;如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。
-
并发 两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。 并发 VS 并行(两个或多个事件在同一时刻同时发生) 操作系统的并发性指计算机系统中同时存在着多个运行着的程序。 一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)。 -
共享 即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用 两种资源共享方式:
- 互斥共享方式(一个时间段内只允许一个进程访问该资源)
- 同时共享方式(允许一个时间段内由多个进程”同时“对该资源进行访问,宏观上的同时)
-
虚拟 虚拟指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是用户感受到的。 虚拟技术——
-
空分复用技术 (如虚拟存储器技术) -
时分复用技术 (如虚拟处理器) 显然,如果失去了并发性,则一个时间段内系统中只运行一个程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。 -
异步 在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。 显然,如果失去了并发性,则系统只能串行地处理各个程序,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。
1.1_3 操作系统的发展与分类
-
手工操作阶段 主要缺点:用户独占全机,人机速度矛盾导致资源利用率极低 -
批处理阶段
-
分时操作系统 计算机以时间片为单位轮流为各用户/作业服务,各个用户可以通过终端与计算机进行交互。 主要优点:用户请求可以被即时响应,解决了人机交互问题。 主要缺点:不能优先处理一些紧急任务 -
实时操作系统 主要优点:能够优先响应一些紧急任务,不需要时间片排队,及时性、可靠性
- 硬实时系统(必须在绝对严格的规定时间内完成处理)
- 软实时系统(能接受偶尔违反时间规定)
1.1_4 操作系统的运行机制与体系结构
运行机制
指令:CPU能识别、执行的最基本的命令
- 特权指令:比如内存清零,不允许用户程序使用
- 非特权指令:比如加减乘除等普通的运算指令
CPU如何判断当前是否可以执行特权指令?
两种处理器状态——用程序状态字寄存器(PSW)中的某标志位来标识当前处理器处于什么状态
- 用户态(目态),此时CPU只能执行非特权指令
- 核心态(管态),此时CPU特权指令、非特权指令都可以执行
两种程序——
- 内核程序:操作系统发内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态
- 应用程序:只能执行非特权指令,运行在用户态
1.1_5 中断和异常
本质:发生中断就意味着需要操作系统介入,开展管理工作。
中断的分类
-
内中断(异常、例外、陷入) 信号的来源:CPU内部 与当前执行的指令有关
- 自愿中断——指令中断
- 强迫中断——硬件故障、软件中断
-
外中断(中断) 信号的来源:CPU外部 与当前执行的指令无关
另一种分类方式——
- 内中断
- 陷阱、陷入(trap)
- 故障 (fault)
- 终止 (abort)
- 外中断
1.1_6 系统调用
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作( 如存储分配、I/O操作、 文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
系统调用相关的处理需要在核心态下进行。
|