操作系统

操作系统
李阳操作系统
逆水行舟 不进则退
计算机系统概述
408 要求
(一)操作系统的基本概念
(二)操作系统的发展历程
(三)程序运行环境
1.CPU 运行模式(内核模式、用户模式)
2. 中断和异常的处理
3 系统调用
4 程序的链接与装入
5 程 序运行时内存映像与地址空间
(四)操作系统结构(分层,模块化,宏内核,微内核,外核)
(五)操作系统引导
(六)虚拟机
操作系统的概念
概念
操作系统(Operating System,OS)是指控制和 管理 整个计算机系统的 硬件和软件资源,并合理地组织调度计算机的工作和资源的分配; 以提供给用户和其他软件方便的接口和环境; 它是计算机系统中最基本的 系统软件。
- 操作系统是系统的管理者
- 向上层提供方便易用的服务
- 是最接近硬件的一层软件
操作系统提供的功能
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
操作系统向上层提供方便易用的服务
直接给用户的
1.命令接口:
- 联机命令接口:交互式命令接口
- 脱机命令接口:批处理命令接口
GUI
直接给软件/程序员使用的
程序接口: 程序接口由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用外部设备、申请分配和回收内存及其其他各种要求
操作系统对硬件机器的拓展: 将 CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,能够相互协调配合,实现更多更复杂的功能
操作系统的四个特征
并发 共享 虚拟 异步
并发
并发: 指两个或多个事件在同一时间间隔内发生。这些事件 宏观上是同时发生的,但 微观上是交替发生的。常考易混概念――并行: 指两个或多个事件在同一时刻同时发生。
操作系统的并发性 指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
共享
共享 即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
互斥共享方式
系统中的某些资源,虽然可以提供给多个进程使用, 但一个时间段内只允许一个进程访问该资源
同时共享方式
系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问
如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义
如果失去共享性,则 QQ 和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发
虚拟
虚拟 是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
操作系统的发展与分类
操作系统类型 | 定义 | 特点 | 应用场景 |
---|---|---|---|
批处理操作系统 | 用户提交一批作业后不再干预,由操作系统自动控制运行 | 自动性:系统按照一定的顺序自动依次处理作业,无需人工干预每个作业的执行过程 高效性:通过批量处理作业,减少了作业之间的切换时间和人工操作时间,提高了系统资源的利用率和作业处理效率。、无交互性:用户在提交作业后直到作业完成,无法与作业进行交互,不能实时控制作业的执行。 | 大规模数据处理任务,如银行批量账务处理、企业批量报 |
实时操作系统 | 能在规定时间内对外部事件快速响应,并在严格时间约束下完成处理 | 及时性:对外部事件能够在规定的时间内做出快速响应,确保系统的实时性要求。 可靠性 :具有高度的稳定性和可靠性,保证在任何情况下都能准确无误地完成任务,通常采用冗余设计等 专用性:一般为特定的实时应用系统而设计,如工业自动化控制、航空航天、军事指挥等领域。 | 工业控制、航空航天、智能交通等对实时性和可靠性要求高的领域,如飞机飞行控制、工业流水线控制 |
网络操作系统 | 管理网络通信和共享资源,为用户提供网络服务 | 网络通信功能:提供强大的网络通信能力,支持多种网络协议,能够实现计算机之间的通信和数据传输。 资源共享管理:可以对网络中的硬件资源(如打印机、存储设备等)和软件资源(如文件、数据库等)进行有效的管理和共享,方便用户使用、用户管理:具备用户认证、授权等管理功能,确保网络资源的安全访问和使用,用户知道资源位置并可共享 | 构建企业局域网、校园网等,常见系统有 Windows Server 系列、UNIX、Linux |
分时操作系统 | 把 CPU 时间划分为时间片,轮流分配给各终端用户使用计算机 | 交互性:用户可以通过终端与计算机进行实时交互,及时得到系统的响应,方便用户进行程序开发、文本编辑等工作 多路性:允许多个用户同时使用计算机系统,每个用户都感觉自己独占计算机资源。独立性:每个用户在自己的终端上进行操作,相互之间互不干扰,各自独立地运行自己的程序。 | 需要用户频繁交互的场合,如软件开发环境、办公自动化系统 |
分布式操作系统 | 通过网络连接大量计算机,实现资源共享、协同工作和分布式计算 | 分布性:系统中的资源分布在不同的计算机上,通过网络进行连接和通信,整个系统看起来像一个统一的整体。 并行性:可以将一个大型任务分解成多个子任务,分布到不同的计算机上并行执行,提高任务的处理速度 透明性:用户使用系统资源时,不需要知道资源的具体位置和分布情况,就像使用本地资源一样方便 | 大规模科学计算、数据中心、云计算等领域,如谷歌 GFS、Hadoop 平台 |
手工操作阶段
缺点:用户独占全机、人机速度矛盾导致资源利用率极低
批处理阶段
单道批处理
主要优点: 缓解了一定程度的人机速度矛盾, 资源利用率有所提升。
主要缺点: 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU 有大量的时间是在空闲等待/o 完成。资源利用率依然很低。
多道批处理
主要优点: 多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU 和其他资源更能保持“忙碌”状态,系统吞吐量增大。
主要缺点: 用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。eg: 无法调试程序/无法在程序运行过程中输入一些参数)
分时操作系统
分时操作系统: 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点: 用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点: 不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
实时操作系统
主要优点: 能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性
硬实时系统
必须在绝对严格的规定时间内完成处理
软实时系统
能接收偶尔违法时间规定
操作系统的运行环境
(三)程序运行环境
1.CPU 运行模式(内核模式、用户模式)
2. 中断和异常的处理
3 系统调用
4 程序的链接与装入
5 程 序运行时内存映像与地址空间
CPU 的运行模式
处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令
中断和异常处理
中断的作用
中断是让操作系统内核重新夺回 CPU 使用权的途径
陷入指令(访管指令)
在用户状态下,主动把 CPU 的控制权还给内核
中断的分类
中断(Interruption)也称外中断,是指来自 CPU 执行指令外部的事件,通常用于信息输入/输出(见第 5 章),如设备发出的 I/O 结束中断,表示设备输入/输出处理已经完成。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。
异常(Exception)也称内中断,是指来自 CPU 执行指令内部的事件,如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件。异常不能被屏蔽,一旦出现,就应立即处理
内中断(异常):与当前执行的指令有关,中断信号的来自 CPU 内部
外中断(中断):与当前执行的指令无关,中断信号来自 CPU 外部
陷阱:由陷入指令引发, 是应用程序故意引发的(如:非法操作码,除数为 0,运算溢出)
故障:由错误条件引起的, 可能被内核程序修复。内核程序修复故障后会把 CPU 使用权还给应用程序, 让它继续执行下去。(如: 缺页故障,条件陷入指令,系统调用指令)
终止: 由致命错误引起, 内核程序无法修复该错误,因此一般不再将 CPU 使用权还给引发终止的应用程序, 而是直接终止该应用程序。(如:非法使用特权指令,控制器出错,存储器校验错)
中断机制基本原理
不同的中断信号,需要用不同的中断处理程序来处理。当 CPU 检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。
系统调用
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
系统调用和库函数的区别
普通应用程序:可直接进行系统调用,也可使用库函数。有的库函数涉及系统调用, 有的不涉及
编程语言:向上提供库函数。有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便。
操作系统:向上提供系统调用,使得上层程序能请求内核的服务
系统调用的分类
功能 | 解析 |
---|---|
设备管理 | 完成设备的请求/释放/启动等功能 |
文件管理 | 完成文件的读/写/创建/删除等功能 |
进程控制 | 完成进程的创建/撤销/阻塞/唤醒等功能 |
进程通信 | 完成进程之间的消息传递/信号传递等功能 |
内存管理 | 完成内存的分配/回收等功能 |
为什么要用到系统调用
应用程序通过 系统调用 请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此 凡是与共享资源有关的操作(如存储分配、I/O 操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样 可以保证系统的稳定性和安全性, 防止用户进行非法操作。
系统调用的过程
操作系统的体系结构
(四)操作系统结构(分层,模块化,宏内核,微内核,外核)
操作系统的内核
内核 是操作系统最基本、最核心的部分
实现操作系统内核功能的那些程序就是 内核程序
时钟管理:利用时钟中断实现计时功能
中断处理:负责实现中断机制
原语:是一种特殊程序,处于操作系统最底层,是最接近硬件的部分,这种程序的运行具有原子性(其运行只能一气呵成,不可中断),运行时间较短,调用频繁
操作系统 内核 需要运行在 内核态
操作系统的 非内核功能 运行在 用户态
对系统资源进行管理的功能
进程管理
存储器管理
设备管理
大内核与微内核
大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱难以维护
微内核: 只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在核心态和用户态之间切换,性能低
操作系统结构考点
操作系统引导
(五)操作系统引导
- CPU从一个特定主存地址开始取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 将磁盘的第一块——主引导记录读入丙存,执行磁盘引导程序,扫描分区表
- 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作
虚拟机
虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统
进程与线程
(一)进程与线程
1. 进程与线程的基本概念
2. 进程 / 线程的状态与转换
3. 线程的实现(内核支持的线程,线程库支持的线程)
4. 进程与线程的组织与控制
5. 进程间通信(共享内存,消息传递,管道,信号)
(2025 新增)
(二)CPU 调度与上下文切换
1. 调度的基本概念
2. 调度的目标
3. 调度的实现
调度器 / 调度程序(scheduler),调度的时机与调度方式(抢占式 / 非抢占式),闲逛进程,内核级线程与用户级线程调度
4.CPU 调度算法(2025 新增)
5. 多处理机调度(2025 新增)
6. 上下文及其切换机制
(三)同步与互斥
1. 同步于互斥的基本概念
2 基本的实现方法 (软件方法;硬件方法)。
3 锁
4. 信号量
5 条件变量
6. 经典同步问题(生产者-消费者问题;读者-写者问题;哲学家进餐问题。)
(四)死锁
1. 死锁的基本概念
2. 死锁预防
3. 死锁避免
4 死锁检测和解除
进程与线程
进程的概念、组成、特征
概念
程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。
进程(Process) :是动态的,是程序的一次执行过程
一个进程实体(进程映像)由PCB、程序段、数据段组成。进程是动态的,进程实体(进程映像)是静态的。
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
组成
进程控制块—PCB
PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB。
PCB是给操作系统用的
程序段
程序段就是能被进程调度程序调度到CPU执行的程序代码段
数据段
一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或者最终结果
特征
进程是由多道程序的并发执行而引出的,它和程序是两个截然不同的概念。程序是静态的,进程是动态的,进程的基本特征是对比单个程序的顺序执行提出的。
- 动态性。进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。动态性是进程最基本的特征。
- 并发性。指多个进程同存于内存中,能在一段时间内同时运行。引入进程的目的就是使进程能和其他进程并发执行。并发性是进程的重要特征,也是操作系统的重要特征。
- 独立性。指进程是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序,都不能作为一个独立的单位参与运行。
- 异步性。由于进程的相互制约,使得进程按各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须配置相应的进程同步机制。
- 结构性。每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成
进程的状态
创建态、就绪态、阻塞态、终止态
- 进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB
- 当进程创建完成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行
- 在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下CPU,并让它进入“阻塞态”,当CPU空闲时,又会选择另一个就绪态进程上CPU运行
- 一个进程可以执行exit系统调用,请求操作系统终止该进程。此时该进程会进入“终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。
进程控制
概念
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。