定义:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件
1.1 功能和目标:
作为系统资源的管理者:文件管理、存储器管理、处理机管理、设备管理
作为用户和计算机硬件之间的接口:
程序接口又称为系统调用或系统调用命令或广义指令
作为最接近计算机硬件的层次:实现对硬件机器的拓展
通常把没有任何软件支持的计算机称为裸机;覆盖了软件的机器称为扩充机器,又称为虚拟机
特征
并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生,微观上是交替发生
共享:
-
互斥共享方式:一个时间段内只允许一个进程访问该资源
-
同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问(往往宏观同时,微观交替)
虚拟:指把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而对应物(后者)是用户感受到的
-
空分复用技术(如虚拟存储器技术)
-
时分复用技术(虚拟处理器)
异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程不是连贯的执行
操作系统的发展
-
人工输入阶段
-
单道批处理系统:引入脱机输入/输出技术(用磁带完成),并监督程序(操作系统的雏形)负责控制作业的输入输出
缺点:内存中只有一道程序执行,只有该程序执行结束之后才能调入下一道程序;CPU有大量时间是在空闲等待I/O完成,资源利用率依然很低
-
多道批处理系统:输入多道程序,操作系统正式诞生,并引入了中断技术
优点:并发执行,共享计算机资源,资源利用率大幅提升;CPU和其他资源保持“忙碌状态”,系统吞吐量增大
缺点:用户响应时间长,没有人机交互功能
-
分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务
优点:用户请求可以被及时响应,解决了人机交互问题
缺点:不能优先处理一些紧急任务,操作系统对各个用户/作业都是完全公平的,循环的为每个作业服务一个时间片,不区分任务的紧急性
-
实时操作系统
优点:能优先处理一些紧急任务
硬实时操作系统、软操作系统(可偶尔信息错误)
-
网络操作系统、分布式操作系统、个人计算机操作系统
1.2 操作系统的运行机制与体系结构
两种指令
-
特权指令:不允许用户程序使用,如内存清零指令
-
非特权指令:允许用户程序使用,如普通的运算指令
两种处理器状态
程序状态字PSW中的某标志位标识
-
用户态(目态):此时CPU只能执行非特权指令
-
核心态(管态):特权指令、非特权指令都可执行
两种程序
-
内核程序:系统的管理者,运行在核心态
-
应用程序:运行在用户态
操作系统的内核:计算机最接近硬件的部分,最核心、基本的部分
-
原语是一种特殊的程序,是最接近硬件的部分,这种程序的运行具有原子性(其运行不能中断)
操作系统的体系结构:大内核(集合操作系统的所有内核都运行在核心态)和微内核(只保留基本的内核功能,缺点是需要频繁地在核心态和用户态之间切换)
中断和异常
-
中断发生时,CPU立即进入核心态
-
中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
中断是用户态到核心态转换的唯一途径
中断的分类
内中断也可以分为:
-
陷阱、陷入(trap):有意而为之的异常,如系统调用
-
故障(fault):由错误条件引起的,可能被故障处理程序修复
-
终止(abort):不可恢复的致命错误造成的结果,不再将控制返回给引发终止的应用程序
系统调用
应用程序通过系统调用请求操作系统的服务,凡是与资源相关的操作,都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成,这样可以保证系统的稳定性和安全性,防止用户进行非法操作,需要在核心态完成
系统调用与库函数的区别
有的库函数涉及系统调用,有的不涉及;普通应用程序可直接系统调用也可以同库函数
系统调用的过程
-
陷入指令是唯一一个只能在用户态执行,不能在核心态执行的指令