操作系统

操作系统

逆水行舟 不进则退

计算机系统概述

408 要求

(一)操作系统的基本概念

(二)操作系统的发展历程

(三)程序运行环境

​ 1.CPU 运行模式(内核模式、用户模式)

​ 2. 中断和异常的处理

​ 3 系统调用

​ 4 程序的链接与装入

​ 5 程 序运行时内存映像与地址空间

(四)操作系统结构(分层,模块化,宏内核,微内核,外核)

(五)操作系统引导

(六)虚拟机

操作系统的概念

概念

操作系统(Operating System,OS)是指控制和 管理 整个计算机系统的 硬件和软件资源,并合理地组织调度计算机的工作和资源的分配; 以提供给用户和其他软件方便的接口和环境; 它是计算机系统中最基本的 系统软件

  1. 操作系统是系统的管理者
  2. 向上层提供方便易用的服务
  3. 是最接近硬件的一层软件

操作系统提供的功能

  • 处理机管理
  • 存储器管理
  • 文件管理
  • 设备管理

操作系统向上层提供方便易用的服务

直接给用户的

1.命令接口

  • 联机命令接口:交互式命令接口
  • 脱机命令接口:批处理命令接口
GUI
直接给软件/程序员使用的

程序接口: 程序接口由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用外部设备、申请分配和回收内存及其其他各种要求


操作系统对硬件机器的拓展: 将 CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,能够相互协调配合,实现更多更复杂的功能

操作系统的四个特征

并发 共享 虚拟 异步

并发

并发: 指两个或多个事件在同一时间间隔内发生。这些事件 宏观上是同时发生的,但 微观上是交替发生的。常考易混概念――并行: 指两个或多个事件在同一时刻同时发生。

操作系统的并发性 指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。

image-20250220132643929

共享

共享 即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

互斥共享方式

系统中的某些资源,虽然可以提供给多个进程使用, 但一个时间段内只允许一个进程访问该资源

同时共享方式

系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问

如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义
如果失去共享性,则 QQ 和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发

虚拟

虚拟 是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

异步

异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

操作系统的发展与分类

操作系统类型定义特点应用场景
批处理操作系统用户提交一批作业后不再干预,由操作系统自动控制运行自动性:系统按照一定的顺序自动依次处理作业,无需人工干预每个作业的执行过程 高效性:通过批量处理作业,减少了作业之间的切换时间和人工操作时间,提高了系统资源的利用率和作业处理效率。、无交互性:用户在提交作业后直到作业完成,无法与作业进行交互,不能实时控制作业的执行。大规模数据处理任务,如银行批量账务处理、企业批量报
实时操作系统能在规定时间内对外部事件快速响应,并在严格时间约束下完成处理及时性:对外部事件能够在规定的时间内做出快速响应,确保系统的实时性要求。 可靠性 :具有高度的稳定性和可靠性,保证在任何情况下都能准确无误地完成任务,通常采用冗余设计等 专用性:一般为特定的实时应用系统而设计,如工业自动化控制、航空航天、军事指挥等领域。工业控制、航空航天、智能交通等对实时性和可靠性要求高的领域,如飞机飞行控制、工业流水线控制
网络操作系统管理网络通信和共享资源,为用户提供网络服务网络通信功能:提供强大的网络通信能力,支持多种网络协议,能够实现计算机之间的通信和数据传输。 资源共享管理:可以对网络中的硬件资源(如打印机、存储设备等)和软件资源(如文件、数据库等)进行有效的管理和共享,方便用户使用、用户管理:具备用户认证、授权等管理功能,确保网络资源的安全访问和使用,用户知道资源位置并可共享构建企业局域网、校园网等,常见系统有 Windows Server 系列、UNIX、Linux
分时操作系统把 CPU 时间划分为时间片,轮流分配给各终端用户使用计算机交互性:用户可以通过终端与计算机进行实时交互,及时得到系统的响应,方便用户进行程序开发、文本编辑等工作 多路性:允许多个用户同时使用计算机系统,每个用户都感觉自己独占计算机资源。独立性:每个用户在自己的终端上进行操作,相互之间互不干扰,各自独立地运行自己的程序。需要用户频繁交互的场合,如软件开发环境、办公自动化系统
分布式操作系统通过网络连接大量计算机,实现资源共享、协同工作和分布式计算分布性:系统中的资源分布在不同的计算机上,通过网络进行连接和通信,整个系统看起来像一个统一的整体。 并行性:可以将一个大型任务分解成多个子任务,分布到不同的计算机上并行执行,提高任务的处理速度 透明性:用户使用系统资源时,不需要知道资源的具体位置和分布情况,就像使用本地资源一样方便大规模科学计算、数据中心、云计算等领域,如谷歌 GFS、Hadoop 平台

手工操作阶段

缺点:用户独占全机、人机速度矛盾导致资源利用率极低

批处理阶段

单道批处理

主要优点: 缓解了一定程度的人机速度矛盾, 资源利用率有所提升。

主要缺点: 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU 有大量的时间是在空闲等待/o 完成。资源利用率依然很低。

多道批处理

主要优点: 多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU 和其他资源更能保持“忙碌”状态,系统吞吐量增大。

主要缺点: 用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。eg: 无法调试程序/无法在程序运行过程中输入一些参数)

分时操作系统

分时操作系统: 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

主要优点: 用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

主要缺点: 不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

实时操作系统

主要优点: 能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性

硬实时系统

必须在绝对严格的规定时间内完成处理

软实时系统

能接收偶尔违法时间规定

操作系统的运行环境

(三)程序运行环境

​ 1.CPU 运行模式(内核模式、用户模式)

​ 2. 中断和异常的处理

​ 3 系统调用

​ 4 程序的链接与装入

​ 5 程 序运行时内存映像与地址空间

CPU 的运行模式

image-20250220165441606

处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令

处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令

image-20250220165250143

中断和异常处理

image-20250220173823433

中断的作用

中断是让操作系统内核重新夺回 CPU 使用权的途径

陷入指令(访管指令)

在用户状态下,主动把 CPU 的控制权还给内核

中断的分类

中断(Interruption)也称外中断,是指来自 CPU 执行指令外部的事件,通常用于信息输入/输出(见第 5 章),如设备发出的 I/O 结束中断,表示设备输入/输出处理已经完成。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。

异常(Exception)也称内中断,是指来自 CPU 执行指令内部的事件,如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件。异常不能被屏蔽,一旦出现,就应立即处理

image-20250220172341831

内中断(异常):与当前执行的指令有关,中断信号的来自 CPU 内部

外中断(中断):与当前执行的指令无关,中断信号来自 CPU 外部

陷阱:由陷入指令引发, 是应用程序故意引发的(如:非法操作码,除数为 0,运算溢出)

故障:由错误条件引起的, 可能被内核程序修复。内核程序修复故障后会把 CPU 使用权还给应用程序, 让它继续执行下去。(如: 缺页故障,条件陷入指令,系统调用指令)
终止: 由致命错误引起, 内核程序无法修复该错误,因此一般不再将 CPU 使用权还给引发终止的应用程序, 而是直接终止该应用程序。(如:非法使用特权指令,控制器出错,存储器校验错)

中断机制基本原理

不同的中断信号,需要用不同的中断处理程序来处理。当 CPU 检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

系统调用

image-20250220181943985

“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务

系统调用和库函数的区别

普通应用程序:可直接进行系统调用,也可使用库函数。有的库函数涉及系统调用, 有的不涉及

编程语言:向上提供库函数。有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便。

操作系统:向上提供系统调用,使得上层程序能请求内核的服务

image-20250220175418877

系统调用的分类
功能解析
设备管理完成设备的请求/释放/启动等功能
文件管理完成文件的读/写/创建/删除等功能
进程控制完成进程的创建/撤销/阻塞/唤醒等功能
进程通信完成进程之间的消息传递/信号传递等功能
内存管理完成内存的分配/回收等功能
为什么要用到系统调用

应用程序通过 系统调用 请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此 凡是与共享资源有关的操作(如存储分配、I/O 操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样 可以保证系统的稳定性和安全性, 防止用户进行非法操作。

系统调用的过程

image-20250220181920599

操作系统的体系结构

(四)操作系统结构(分层,模块化,宏内核,微内核,外核)

操作系统的内核

image-20250302090823449

内核 是操作系统最基本、最核心的部分

实现操作系统内核功能的那些程序就是 内核程序

时钟管理:利用时钟中断实现计时功能

中断处理:负责实现中断机制

原语:是一种特殊程序,处于操作系统最底层,是最接近硬件的部分,这种程序的运行具有原子性(其运行只能一气呵成,不可中断),运行时间较短,调用频繁

操作系统 内核 需要运行在 内核态

操作系统的 非内核功能 运行在 用户态

对系统资源进行管理的功能

进程管理

存储器管理

设备管理

大内核与微内核

image-20250302094352310

大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态

  • 优点:高性能
  • 缺点:内核代码庞大,结构混乱难以维护

微内核: 只把最基本的功能保留在内核

  • 优点:内核功能少,结构清晰,方便维护
  • 缺点:需要频繁地在核心态和用户态之间切换,性能低

操作系统结构考点

image-20250302095629461

操作系统引导

(五)操作系统引导

image-20250302131503082

  1. CPU从一个特定主存地址开始取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
  2. 将磁盘的第一块——主引导记录读入丙存,执行磁盘引导程序,扫描分区表
  3. 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
  4. 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作

虚拟机

虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统

image-20250302134628490

image-20250302134601843

进程与线程

(一)进程与线程

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 死锁检测和解除

进程与线程

进程的概念、组成、特征

image-20250302155459975

概念

程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。

进程(Process) :是动态的,是程序的一次执行过程

一个进程实体(进程映像)PCB、程序段、数据段组成。进程是动态的,进程实体(进程映像)是静态的。

进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位。

组成
进程控制块—PCB

PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB。

image-20250302151937275

PCB是给操作系统用的

程序段

程序段就是能被进程调度程序调度到CPU执行的程序代码段

数据段

一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或者最终结果

特征

进程是由多道程序的并发执行而引出的,它和程序是两个截然不同的概念。程序是静态的,进程是动态的,进程的基本特征是对比单个程序的顺序执行提出的。

  1. 动态性。进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。动态性是进程最基本的特征。
  2. 并发性。指多个进程同存于内存中,能在一段时间内同时运行。引入进程的目的就是使进程能和其他进程并发执行。并发性是进程的重要特征,也是操作系统的重要特征。
  3. 独立性。指进程是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序,都不能作为一个独立的单位参与运行。
  4. 异步性。由于进程的相互制约,使得进程按各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须配置相应的进程同步机制。
  5. 结构性。每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成

进程的状态

image-20250302170402018

创建态、就绪态、阻塞态、终止态

image-20250302165443199

  1. 进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB
  2. 当进程创建完成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行
  3. 在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下CPU,并让它进入“阻塞态”,当CPU空闲时,又会选择另一个就绪态进程上CPU运行
  4. 一个进程可以执行exit系统调用,请求操作系统终止该进程。此时该进程会进入“终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。

进程控制

概念

进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。