第一章 计算机系统概述
1.1操作系统的基本概念
操作系统的特征
-
并发
- 指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
- 常考易混概念——并行:指两个或多个事件在同一时刻同时发生
- 操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。 - 注意(重要考点):
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行
-
共享
-
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
-
两种资源共享方式
-
互斥共享方式
- 系统中某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源(如:对摄像头设备的共享使用)
-
同时共享方式
- 系统中某些资源,允许一个时间段内由多个进程“同时”对它们进行访问,如:对硬盘资源的共享使用)
-
-
-
虚拟
-
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上
对应物(后者)是用户感受到的。- 空分复用技术(如虚拟存储器技术)
- 时分复用技术(如虚拟处理器)
-
-
异步
- 异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,
而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
- 异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,
1.2操作系统的发展与分类
手工操作阶段
- 缺点::用户独占全
机、人机速度矛盾导致
资源利用率极低
批处理阶段
-
单道批处理(引入脱机输入输出技术)(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出
- 优:缓解了一定
程度的人机速度矛盾,
资源利用率有所提升 - 缺:内存中仅能
有一道程序运行,只有
该程序运行结束之后才
能调入下一道程序。
CPU有大量的时间是在
空闲等待I/O完成。资源
利用率依然很低。
- 优:缓解了一定
-
多道批处理(操作系统开始出现)
- 优:多道程序并发执行,共享计算机
资源。资源利用率大幅提升,CPU和其他资
源更能保持“忙碌”状态,系统吞吐量增大。 - 缺:用户响应时间长,没有人机交互
功能(用户提交自己的作业之后就只能等待
计算机处理完成,中间不能控制自己的作业
执行。eg:无法调试程序/无法在程序运行过
程中输入一些参数)
- 优:多道程序并发执行,共享计算机
分时操作系统
- 优:提供人机交互功能
- 缺:不能优先处理紧急任务
- 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
实时操作系统
-
硬实时系统
- 必须在绝对严格的规定时间内完成处理
-
软实时系统
- 能接受偶尔违反时间规定
-
优:能优先处理紧急任务
-
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。 在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事 件。实时操作系统的主要特点是及时性和可靠性
网络操作系统
- 是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传
送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是
一种典型的网络操作系统,网站服务器就可以使用
分布式操作系统
- 主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些
计算机上,由它们并行、协同完成这个任务
个人计算机操作系统
- :如 Windows XP、MacOS,方便个人使用
1.3操作系统的运行机制
运行指令
-
指令
- 就是处理器(CPU)能识别、执行的最基本命令
-
内核是操作系统最重要最核心的部分,也是最接近硬件的部分
甚至可以说,一个操作系统只要有内核就够了
内核程序 v.s. 应用程序
-
内核程序
-
我们普通程序员写的程序就是“应用程序”
- 应用程序只能使用“非特权指令”,如:
加法指令、减法指令等
- 应用程序只能使用“非特权指令”,如:
-
-
应用程序
-
微软、苹果有一帮人负责实现操作系统,他们写的就是“内核程序”
- 操作系统内核作为 “管理者”,有时会让CPU执行一些
“特权指令”,如:内存清零指令。这些指令影响重大,
只允许“管理者”——即操作系统内核来使用
- 操作系统内核作为 “管理者”,有时会让CPU执行一些
-
内核态 v.s. 用户态
-
内核态
- 处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
-
用户态
- 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令
-
拓展:CPU 中有一个寄存器叫 程序状态字寄存器(PSW),其中有个二进制位,1表示
“内核态”,0表示“用户态”
别名:内核态=核心态=管态;用户态=目态 -
内核态、用户态 的切换
- 内核态-》用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权
- 用户态-》内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺 回CPU的使用权
回顾
两种指令、两种处理器状态、两种程序
-
指令
-
特权指令
- 如:内存清零指令
- 如:普通的运算指令
-
-
处理器状态
- 用户态(目态)
- 核心态(管态)
-
程序
-
内核程序
- 操作系统的内核程序是系统的管理者,
既可以执行特权指令,也可以执行非特
权指令,运行在核心态。
- 操作系统的内核程序是系统的管理者,
-
应用程序
- 为了保证系统能安全运行,普通应用程
序只能执行非特权指令,运行在用户态
- 为了保证系统能安全运行,普通应用程
-
操作系统的内核
-
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。-
时钟管理
- 实现计时功能
-
中断处理
- 负责实现中断机制
-
原语
- 是一种特殊的程序
- 处于操作系统最底层,是最接近硬件的部分
- 这种程序的运行具有原子性——其运行只能一气呵成,不可中断
-
对系统资源进行管理的功能
- 进程管理
- 存储器管理
- 设备管理
-
-
操作系统的体系结构
-
大内核
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护
-
微内核
- 只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在核心态和用户态之间切换,性能低
-
注意
- 操作系统内核需要运行在内核态
操作系统的非内核功能运行在用户态
- 操作系统内核需要运行在内核态
-
中断和异常
-
中断的作用
- 让操作系统内核强行夺回CPU的控制权
- 使CPU从用户态变为内核态
-
中断的分类
-
内中断(也称为异常、例外)
- 陷阱、陷入(trap)
- 故障(fault)
- 终止(abort)
-
外中断(也称中断)
- 时钟中断
- I/O中断请求
-
-
中断机制基本实现原理
-
检查中断信号
-
内中断:
- CPU在执行指令会检查是否有异常发生
-
外中断:
- 每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
-
-
找到相应的中断处理程序
-
通过中断向量表实现
- 中断处理程序一定是内核
程序,需要运行
在“内核态
- 中断处理程序一定是内核
-
-
系统调用
-
什么是系统调用
- 操作系统对应用程序/程序员提供的接口
-
系统调用与库函数的区别
- 有的库函数是对系统调用的进一步封装
- 有的库函数没有使用系统调用
-
小例子:为什么系统调用是必须的
- word和wps打印同时打印
-
什么功能要用系统调用实现
-
设备管理
- 完成设备的请求、释放、启动等功能
-
文件管理
- 完成文件的读、写、创建、删除等功能
-
进程控制
- 完成进程的创建、撤销、阻塞、唤醒等功能
-
进程通信
- 完成进程之间的消息传递、信号传递等功能
-
内存管理
- 完成内存的分配、回收等功能
-
-
系统调用的过程
- 传参
- 陷入指令/Trap/访管(用户态)
- 由操作系统内核程序处理系统调用请求(核心态)
- 返回应用程序
-
注意
- 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
- 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
1.4操作系统的体系结构
大内核(又名:宏内核、单内核)
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护
微内核
- 只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在核心态和用户态之间切换,性能低
分层结构
模块化
外核
1.5操作系统引导
什么是操作系统引导
- 开机的时候,
怎么让操作系统运行起来?
磁盘里边有哪些相关数据
操作系统引导的过程
1.6虚拟机
虚拟机定义
- 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都
可以独立运行一个操作系统 - 同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machine Monitor/Hypervisor
两类虚拟机对比
与硬件关联较紧密的模块
有的操作系统不把这部分功能归
为“内核功能”。也就是说,不 同的操作系统,对内核功能的划
分可能并不一样
没有中断机制,就不可能实现操
作系统,不可能实现程序并发
凡是与共享资源有关的操作、会
直接影响到其他进程的操作,就
一定需要操作系统介入,就需要
通过系统调用来实现