《操作系统教程》- 课本理论整理01
期末题解
⚪操作系统定义
⚪操作系统的功能
1. 处理器管理。即对中央处理器资源的分配、控制和管理,包括进程同步、通信、控制、调度等
2. 存储器管理。即主要对内存的管理,包括内存保护、资源分配、容量扩充、地址映射
3. 文件管理。即对文件系统的管理,便于用户的使用,文件逻辑系统和物理系统的组织、文件权限管理、文件数据保护等
4. I/O设备管理。即为各种外围设备提供驱动和控制程序,包括设备分配、缓冲管理、虚拟设备等
5. 用户接口。即为便于用户使用计算机提供两类接口:作业级接口和程序级接口
⚪操作系统的分类
1. 按照系统使用的用户数目:单用户系统和多用户系统
2. 按照系统所依赖的硬件环境:大型机、中型机、小型机、以及微机等
3. 按照系统所适应的环境:批处理系统、分时系统、实时系统
⚪分时系统的特性
1. 交互性(interactivity)。即多个用户通过不同终端上机与系统交互实现人机对话(man-machine conversation)。
2. 独立性(independence)。即处理器采用时间片轮转(Round Robin)的算法让一个计算机为多个终端服务,宏观并行微观穿行,用户直观地感觉独立占用该计算机。
3. 同时性(simultaneity)。即多个用户通过终端共享CPU和其他资源,充分发挥系统的效率。
4. 及时性(timeliness)。即系统能够在有效的时间内对用户的请求给予结果响应。
⚪操作系统的特性。
【并发性(concurrency)】并发性是指两个或多个事件在同一时间间隔内发生。宏观上程序是并行执行,微观上程序串行串行执行。并发性充分提高系统资源利用率和吞吐量。
【共享性(shareability)】并发的目的是共享资源和信息,有利于消除重复、提高资源利用率。
【虚拟性(virtuality)】通过某种技术将一个物理实体变成若干个逻辑对应物。物理实体是客观实在的,逻辑对应物是用户感知的。
> eg. 分时系统中只有一台主机利用多道程序技术将一台物理主机转换为多个逻辑主机。
【异步性(asychronism)】:在多道程序设计系统中,多个并发进程由于资源有限导致执行“走走停停”,进程的执行、挂起以及执行的时间不可预知。
⚪实时系统的特性
1. 实时性(instantaneity):即要求系统对外部请求能够在严格的时间范围内做出响应
- 硬实时任务:对截止时间要求极其严格。
- 软实时任务:对截止时间要求宽松。
2. 高可靠性和安全性(High reliability and safety):即采用多级容错机制和多机备份,以保证系统健壮可靠。
⚪操作系统为用户提供的接口
1. 作业级接口(job-level interface):操作系统提供一组联机命令,用户键入相关一组命令获取系统服务以组织和维持自己的作业运行。
2. 程序级接口(program-level interface):操作系统提供一组系统调用(system call)即一组系统模块功能,用户在运行自己的应用程序时与系统通信,调用相应系统模块以获得服务。
⚪操作系统发展过程
1. 人工操作时期(1945 - 1955)
2. 批处理系统时期(1955 - 1965)
3. 多道程序设计时期(1965 - 1980)
4. 现代操作系统时期(1980 - now)
⚪处理器管理概念以及包含的内容
处理器管理即对中央处理器资源的分配、控制和管理。
包括:进程同步、进程控制、进程通信、进程调度。
⚪时间片(Time slice)设定原则
1. 时间片不应该过大:过大会造成时间不变用户减少或用户不变响应时间变长。
2. 时间片不应该过小:过小会造成CPU频繁进行时钟终端,导致操作系统频繁在内存与CPU之间调换指令产生系统内耗。
⚪网络操作系统概念以及工作模式
- 网络操作系统概念
网络操作系统(Operating Operation System)即基于计算机网络实现网络间数据通信和资源管理的操作系统
- 网络操作系统工作模式
1. 客户端/服务器模式(Client/Server):即用户通过本地计算机(客户端)基于HTTP协议向服务端发送用户请求,服务段接收用户请求进行及时的处理和响应到客户端。
2. 对等模式(Peer-to-Peer):即网络中所有的站点都是对等的,即可以作为客户端提出数据请求也可以作为服务端作为请求处理和响应者。
⚪脱机作业和联机作业的概念
1. 脱机作业(off-line job): 即批处理作业。用户把作业提交给计算机系统之后,便不再与计算机系统交互。用户把作业控制意图用作业控制语言(JCL)编写成作业说明书(job description)提交给操作系统,系统按照作业说明书对用户作业连续稳定的处理。脱机作业适用于执行长时间的计算型任务。
2. 联机作业(on-line job): 即交互式作业。用户通过命令行、批命令或用户交互接口的方式与计算机系统实现人机对话进行作业的控制。
⚪作业说明书概念和作业说明书构成
- 作业说明书
作业说明书(Job Description)即用户用作业控制语言(Job Control Language)来编写对作业控制意图的程序。
- 作业说明书构成
- 作业基本描述。(用户名、作业名、编程语言、允许最大的处理时间等)
- 作业控制描述。(脱机还是联机控制、作业执行顺序等)
- 资源要求描述。(申请的内存大小、外设的种类和台数、处理器优先级、库函数或实用程序等)
⚪用户态、核心态
-
用户态(User Model): 即CPU执行用户程序时状态。
-
核心态(Kernel Model):即CPU执行系统程序时状态。
⚪ 进程概念、基本特性、进程实体组成、PCB概念
-
进程概念:
进程(Process):是一独立的具有特定功能的程序对某一个数据集合进行一次运行活动。是计算机系统软硬件资源分配的基本单位也是处理器调度和运行的基本单位。 -
进程状态:
就绪态(ready): 进程已经分配到除了CPU之外一切所需资源,正在等待自己CPU时间片到来。
运行态(running):进程获取CPU时间片之后到CPU时间片用完之前的状态。
阻塞态(blocked):进程正在等待某个事件的发生(请求I/O资源、请求调页、申请缓冲区等)而暂停执行的状态。进程在等待该事件发生的过程中自动放弃CPU进入等待状态。(阻塞状态也成为等待、睡眠状态)。 -
进程基本特性:
动态性。进程是程序【动态执行】的过程。
并发性。在【多道程序设计系统】之中,内存中保存【多个进程实体】,利用时间片轮转技术【依次分配】给每个进程时间片。
独立性。进程是计算机中一个【独立运行的实体】也是计算机系统中【软硬件资源分配的单位】。
异步性。多个进程按照【各自独立、不可预知的速度进行】。
结构性。进程是由【程序】、【数据】以及【进程控制块】3个部分组成的。 -
进程的实体组成:程序段、数据段以及程序控制块(Process Control Block)
-
进程控制块PCB概述
答:进程控制块(Process Control Block)是操作系统所维护描述进程信息的数据结构。
主要包括进程描述信息、进程控制信息以及进程资源要求。是进程动态特征的集中反应。
⚪程序并发执行的条件
1.从硬件角度。设置中断机构使得硬件能够并行运行,采用涌道技术使得I/O设备能够与处理器并行执行。
2.从操作系统角度。引入多道程序设计技术使得内存之中可以保存一个以上的进程,其活动在不同的硬件上
使得硬件并行能力得到充分发挥。
⚪线程的概念和状态
- 线程概念
线程(Thread)是进程的一个【执行单元】、【可调度实体】、一个【控制流线索】以及进程中【可独立执行的上下文(context of execution)】。
- 线程状态
- 就绪态(ready)。即线程获得除了CPU之外所有可执行的条件,正在等待自己时间片的到来。
- 运行态(running)。即处理器采用时间片轮转技术从就绪队列中根据算法调度一个合适进程并分配时间片方可进入运行态。
- 阻塞态(blocked)。即线程正在等待某个事件的发生(eg.请求I/O资源、请求调页、申请缓冲区)。
⚪进程状态的转换
【就绪态 -> 执行态】: 即处于就绪队列的进程在获得CPU时间片之后方可进入执行态。
【执行态 -> 就绪态】:即处于执行状态的进程出现【时间片用完】或【被具有更高优先级的进程剥夺】之后不得不让出处理器再次进入就绪状态。
【执行态 -> 阻塞态】:即处于执行状态的进程正在等待某个事件(请求I/O资源、请求调页、申请缓冲等)不得不让出处理器进入阻塞状态(睡眠状态)。
【阻塞态 -> 就绪态】:即处于阻塞状态的进程所等待的事件发生,由于无法自动唤醒被其他调度线程唤醒后随机进入就绪状态。
⚪进程之间的制约(the restrict among processes)
* 同步(synchronization) - 直接制约 - 进程合作引起
* 互斥(mutual exclusion) - 间接制约 - 进程竞争资源(共享临界资源)引起
⚪信号量的同步机制的基本原理(Fundamentals of the synchronization mechanism of semaphore)
答:
基本原理:在多个进程之间采用【简单的信号】【控制同步】.
- 公用信号量:【初始值0或1】【控制进程互斥地进入临界区也被称为互斥信号量】
- 私有信号量:【初始值资源数量】【控制进程间地同步运行也被称为同步信号量】
临界资源(Critical Resource): 一次只允许一个进程所使用的资源。
临界区(Critical Section):一个进程中使用临界资源的那段程序代码。
⚪同步机构设计原则
* 【空闲让进】当前临界资源处于空闲状态,则应允许请求进程进入临界区。
* 【忙则等待】当前临界资源已经有进程正在使用,其他需要共享该资源的进程需要进行等待状态。
* 【有限等待】当前进程应该在有限时间内进入临界区,不要让进程间竞争资源导致阻塞,出现“死等”现象。
* 【让权等待】当前进程无法进入临界区应立即释放处理器,避免出现“忙等”现象。
⚪与时间有关的错误
在多道程序设计系统之中,并发进程之间的相对速度无法相互控制。 进程会以不同的速率对资源进行访问会产生不同的操作序列,各种与 时间有关的错误就会出现。
⚪管道通信系统
管道通信系统(Pipe Communication System)即连续多个读写进程之间相互通信所共享的文件。共享文件被不同的进程
以不同的方式打开,发送者进程以写方式打开管道文件,以字符流(character stream)的形式将大量数据送入管道,而
接收进程则以读的方式打开共享文件。
管道文件的建立、打开、读写以及关闭由文件系统支持但是通信进程之间的协调需要由通信协调机制来支持。 相互协调三个方面的含义:
1. 互斥:进程必须互斥的使用通信管道,当一个进程正在read\write管道文件时其他共享该管道文件的进程必须等待。
2. 同步:读和写进程必须相互协调对管道文件的读取速率。
3. 对方是否存在:读和写进程能以一定的方式了解对方是否存在,若写进程了解到读进程关闭则不必继续发送信息。
⚪三级调度(Level 3 schedule)
1. 高级调度(Advanced Scheduling):即通过作业调度程序将位于后备队列的作业按照调度算法为合适作业分配内存空间、创建进程,等待时间片从而进入执行状态。
2. 中级调度(Intermediate Scheduling):即为提高内存的利用率,设置了对换调度。
3. 低级调度(Low-level Scheduling):即作业的执行归结为进程的调度。
⚪作业的定义、组成以及状态。
- 作业的定义
答:作业(job)即用户要求计算机进行一次解题或事物处理所做的工作集合。
- 作业的组成
答:用户程序、所需数据以及作业说明书(statement of work)
- 作业的状态
答:
- 【提交状态(submit state)】:即用户将作业提交给操作员,操作员根据某种方式将作业存储区外存之中。
- 【后备状态(backup state)】:作业从建立起作业控制块(Job Control Block)到被作业调度程序选中的状态。
- 【运行状态(running state)】:作业调度程序按照调度算法从后备队列中选取作业为其分配内存资源和创建进程等将其具备CPU资源竞争能力,当获取CPU时间片后方可进入运行状态。
- 【完成状态(finished state)】:当作业正常运行完毕或异常自我终止的状态。
⚪死锁的定义、原因、产生的必要条件以及解决策略
答:死锁(deadlock)即两个或两个以上的进程因为竞争资源而等待一个永远不可能发生的事件。。
- 死锁的原因
答:
- 竞争资源:即系统提供同类临界资源数量少于并发进程所需该类资源的数量。
- 进程推进顺序不合理:即进程进行请求和释放资源的顺序不当,导致进程竞争共享资源而产生死锁。
- 死锁产生必要条件
答:
- 互斥(mutual exclusion): 进程对所分配到的资源进行排他性使用。
- 不可剥夺(no preemption):进程在已经分配到资源到主动释放资源之间不能被其他进程强行剥夺
- 请求和保持(hold and wait):对于已经分配到资源的进程还可以提出新的资源请求
- 环路等待(circle waiting):当发生死锁时,必然会出现一个进程环形链,即一个进程等待相邻进程所占用的资源。
- 死锁解决策略
答:
- 【预防策略(prevention strategy)】:
通过设置限制条件破坏死锁必要条件中的一个或多个。 - 【避免策略(avoid strategy)】:
采用合理的资源分配算法(eg.银行家算法),保证系统不进入不安全状态以避免死锁。 - 【检测策略(detection strategy)】:
当系统中发生死锁时及时检测卷入该死锁的相关进程和资源利用解除策略进行处理。 - 【解除策略(remove strategy)】:
将卷入死锁的相关进行进行撤销或挂起并释放其所拥有的资源分配给阻塞状态的资源让其进入就绪状态保证进程合理推进下去。
⚪连续分配方式分类
存储管理分类为:连续分配方式、离散分配方式以及虚拟存储管理方式。
连续分配方式分类:连续分配方式是系统为一个用户程序分配一个连续的存储空间。
1. 【单一连续分配方式】:单一连续分配方式把内存划分为系统区和用户区两个分区,用户区仅被一个用户所独占。
2. 【分区式分配方式】:可变连续分配方式有两种,第一种固定分区模式将预先分为若干个固定大小的区域,每个仅驻留一道程序。
第二种可变分区分配方式将根据用户程序需要把用户区域分为若干个大小不一的区域,这种方式适应于多道程序的存储管理,极大的提高存储器资源利用率。
⚪地址重定位方式 (★★★)
地址重定位分类:静态重定位(Static Relocation)和动态重定位(Dynamic Relocation)。
【动态重定位(Dynamic Relocation】:即在程序执行期间,每次存储访问之前。需要硬件的支持———重定位寄存器,其内容是程序装配模块的起始地址减去 目标模块地址的相对地址。每个有效地址都要加上相对地址形成绝对地址(物理地址)。
⚪相对地址、绝对地址、相对地址空间、绝对地址空间的概念。
【绝对地址(物理地址-实地址)】即相对地址经过重定位机构转换为到绝对地址。
【地址空间(相对地址空间)】即相对地址的集合。
【存储空间(绝对地址空间)】即地址空间经过重定位机构转换到存储空间。
⚪可变分区的几种存储管理方式 (★★★)
可变分区属于存储管理分类中的分区式分配方式。通过用户程序的需要将用户区存储空间划分成若干个大小不一的区块。此种方式适应于多道程序系统并极大提高内存空间资源的利用率。
【最先适应算法】
【循环最先适应算法】
【最佳适应算法】
【最坏适应算法】
⚪可变分区中存储保护方法 (★★★)
存储保护即防止一个作业有意或无意破坏操作系统或别的作,应该对分区采取保护措施。
⚪虚拟存储管理器的理论基础 —— 局部性原理(★★★)
⚪产生时间局限性和空闲局限性的原因
局部性原理表现主要以下两个方面: 1. 时间局限性(大量循环体) 2. 空间局限性(顺序执行和过程调用)
② 程序之中存在大量的【循环体】,循环体内指令被多次执行。 —— 时间局限性
③ 程序在进行过程调用对内存模块进行访问的深度一般不超过5,故程序会在一段时间内都会存在于这些范围之中。 —— 时间局限性
⚪虚拟存储管理和实存管理的区别。
实存中要运行一个用户程序需要全部装入。
虚存中要运行一个用户程序只需要把运行所需要的内容装入到实存之中,其他部分存储于外存然后按需逐步调入。
部分装入是指一个应用程序运行只需要将启动时所需要内容装入到实存之中,其他部分按需要从外存之中逐步调入。
部分对换是指部分已经装入到实存之中的内容已经占满系统分配的存储区块,此时需要将区块中不再使用或暂时未
使用的内容与存储在外存中需要的内容进行对换。
部分装入和部分对换最大的效用是以较小的内存可运行较大的程序。
⚪分布式操作系统和网络操作系统的区别
【分布性(distributivity)】: 分布式操作系统体系结构分离,操作和处理分布在各个结点之中。网络操作系统集中性进行操作和管理。
【统一性(uniformity)】:分布式操作系统中的各个结点系统类型相同。网络操作系统中可以安装不同的系统类型通过协议进行通信。
【透明性(transparency)】:分布式系统向外部用户屏蔽底层实现细节便于用户使用。网络操作系统中用户需要明确提供服务的主机确切地址和资源路径。
【健壮性(robustness)】:分布式系统组成的各个结点相对独立,系统控制和管理权向下转移因此一旦一个结点故障对整体系统影响较小。网络操作系统将操作和管理集中于服务器上,一旦故障整个系统将难以使用。
⚪特权指令(privileged instrcution)包含内容
特权指令(privileged instruction)即在核心态(kernel state)下执行的指令。
【与I/O设备管控有关的指令】eg. 对I/O设备的启动、分配、同步以及控制等
【与访问程序状态有关的指令】eg. 对程序状态字(Program State Word)的访问。
【与访问特殊寄存器有关的指令】eg. 对中断寄存器、时钟寄存器的访问。
【其他指令】
⚪访管指令概念及其功能
访管指令(supervisor call instruction)即在用户态下执行的指令。
操作系统是系统程序,在核心态下运行,即可以使用用户态指令也可以使用特权指令。
用户要使用I/O设备就必须在核心态下完成就需要引入访管指令。
1. 完成用户态到核心态的转换。
2. 在核心态下操作系统代替用户完成其请求。
3. 用户请求完成之后由核心态转换到用户态。
⚪进程和程序之间的区别
【进程的动态性】即进程是程序动态执行的过程。程序是静态的指令集合。
【进程的暂时性】即进程具有生命周期随着系统的需要而生成,随着任务的完成而消亡。程序是用计算机语言编写的永久存储于存储介质中的指令集合。
【进程的结构性】即进程由程序、数据和进程控制块(Process Control Block)所组成。程序是由算法策略、指令集合以及执行数据所构成。
⚪进程挂起的原因
【系统的某些功能故障或某些功能受到破坏】,可以暂时挂起某些重要进程,等待故障解除之后再解除它们。
【进程运行过程中交互用户对中间结果不满意】,挂起问题进程进行检查和改正。
【系统中进程过多,负载过重】,挂起一些不太紧迫的进程以供优先级较高的进程高效稳定的运行。
【为支持进程对换,缓解内存紧张状况】,挂起一些暂时不用的进程并将它们对换到外存之中。
⚪进程调度算法
【先来先服务(Fist-In-First-Service)】: 即系统根据作业运行的顺序来执行,该算法表面公平但实际的服务质量不加,对短作业用户极不公平。
【短作业优先】:即该算法能够有效的缩短作业执行周期,提高系统的吞吐量但存在以下缺点:
- 该算法对长作业不利,当系统中短作业连续进入则长作业将无法得到及时处理。
- 该算法对作业长短的根据是用户估计该作业执行时间的长短。如果用户有意或无意修改作业执行的估计时间,将导致某些作业无法及时有效的执行。
⚪进程调度算法
- 先来先服务调度算法
- 短作业(进程)优先调度算法
- 时间片轮转调度算法
- 高优先权优先调度算法
- 最高响应比优先调度算法
- 多级队列调度算法
- 多级反馈队列调度算法
使用信号量机制,通过软件方法来实现互斥
利用信号量实现互斥的一般形式
while(1){ wait(mutex); critical section; signal(mutex); }
P1、P2进程共享一台打印机,使用信号量机制编写P1、P2并发执行的程序
struct semaphore mutex; void p1(){ while(1){ wait(mutex); // p1请求使用打印机 使用打印机; // p1进入临界区 signal(mutex); // p2释放打印机 reminder section } } void p2(){ while(1){ wait(mutex); // p2请求使用打印机 使用打印机; // p2进入临界区 signal(mutex); // p2释放打印机 reminder section } } void main(){ p1(); p2(); }
苹果、橘子问题;桌子上有一个空盘子,可放一只水果。
爸爸削好苹果后放入盘中,妈妈剥好橘子后放入盘中;女儿专等吃盘中的苹果,儿子专等吃盘中的橘子;
问题分析
只有盘子中为空的时候,爸爸或妈妈才能将苹果或橘子放入盘中
只有盘中有橘子,儿子才能从盘子中拿出橘子。
只有盘中有苹果,女儿才能从盘子中拿出苹果。
struct semaphore plate = 1, orange = apple = 0; void father(){ while(1){ prepare an apple; wait(plate); put an apple into the plate; signal(apple); } } void son(){ while(1){ wait(apple); get an apple from the plate; signal(plate); eat the apple; } } void mother(){ while(1){ prepare an orange; wait(plate); put an orange into the plate; signal(orange); } } void daughter(){ while(1){ wait(orange); get an orange from the plate; signal(plate); eat the orange; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具