说明
- 博客作为笔记备份,不定时更新
- 参考内容为《计算机操作系统(第四版)》汤小丹 西安电子科技大学出版社;王道考研《计算机操作系统考研复习指导2023》
- 文中的例题摘自王道考研《计算机操作系统考研复习指导2023》,大多是我个人认为较为典型的题目以及错题的部分整理
操作系统的基本概念
1. 操作系统的概念
- 计算机系统自下而上可分为4部分:硬件、操作系统、应用程序、用户
- 硬件:提供最基本的计算资源。如CPU、内存、I/O设备等
- 应用程序:规定按何种方式使用这些资源来解决用户的计算问题。如字处理程序、编译器、网络浏览器等
- 操作系统:控制和协调各用户应用程序对硬件的分配和使用
- 操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源分配,进而为用户和其他软件提供方便接口与环境的程序集合
- 操作系统是计算机系统中最基本的系统软件
2. 操作系统的特征
- 操作系统的基本特征是:并发、共享、虚拟、异步
2.1 并发
并发的概念
- 并发是指两个或多个事件在同一时间段内发生
- 操作系统的并发性是指:计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。(在操作系统中引入进程的目的就是使程序能并发执行)
并发 VS 并行
- 并发:同一时间段;并行:同一时刻
- 在多道程序环境下,一段时间内,宏观上有多道程序在执行,而在某一时刻,单处理机环境下实际只有一道程序在执行,因此微观上这些程序仍然是分时交替执行的
- 操作系统的并发性是通过分时实现的
- 并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。并行性需要相关硬件的支持,如多流水线或多处理机硬件环境
2.2 共享
- 共享是指系统中的资源可供内存中多个并发执行的进程共同使用
- 这里在宏观上既限定了时间(进程在内存期间),又限定了地点(内存)
互斥共享方式
- 在一段时间内只允许一个进程访问该资源:仅当进程A(当前进程)访问完并释放该资源后,才允许另一个进程对该资源进行访问
- 把一段时间内仅允许一个进程访问的资源称为临界资源。例如:栈、变量、打印机、磁带机等都属于临界资源
同时访问方式
- 系统中还有一类资源,允许在一段时间内由多个进程“同时”访问。“同时”通常是指宏观上的同时,在微观上,这些进程可能是交替的对该资源进行访问——分时共享。同时访问共享通常要求一个请求分几个时间片段间隔地完成,其完成效果与连续完成的效果相同
- 这类资源的典型是:磁盘设备
并发和共享
- 并发和共享是操作系统最基本的特征,两者之间互为存在的条件:
- 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题
- 若系统不能对资源共享实施有效的管理,则必将影响程序的并发执行,甚至无法并发执行
2.3 虚拟
虚拟的概念
- 虚拟是指把一个物理上的实体变为若干逻辑上的对应物
虚拟技术
- 时分复用技术
- 如处理器的分时共享:虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方式,来分时的使用一个处理器
- 空分复用技术
- 如虚拟存储器技术、虚拟设备技术等
2.4 异步
- 多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行不是一气呵成的,而是走走停停的,进程以不可预知的速度向前推进,这就是进程的异步性
- 异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误。然而只要运行环境相同,操作系统就必须保证多次运行进程后都能得到相同的结果
3. 操作系统的目标和功能
- 为了给多道程序提供良好的运行环境,OS应具备的功能(3.1)
- 处理机管理
- 存储器管理
- 文件管理
- 为了方便用户使用,OS应具备的功能(3.2)
- 向用户提供接口
- 操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率(3.3)
3.1 操作系统作为计算机系统资源的管理者
处理机管理
- 对处理机的管理可归结为对进程的管理
- 进程管理的任务主要有:进程的创建、撤销、合理共享等
- 进程管理的功能主要有:进程控制、进程同步、进程通信、死锁处理、处理机调度等
存储器管理
- 主要功能:内存分配与回收、地址映射、内存保护与共享、内存扩充等
文件管理
- 计算机中信息都是以文件的形式存在的,文件系统负责管理文件
- 主要功能:文件存储空间的管理、目录管理、文件读写管理和保护等
3.2 操作系统作为用户与计算机硬件系统之间的接口
- 接口是为了让用户方便、快捷、可靠的操作计算机硬件并运行自己的程序
命令接口
- 用户利用操作命令来组织和控制作业的执行
- 按作业控制方式的不同,分为:
- 联机命令接口
- 又称为交互式命令接口,适用于分时或实时系统的接口
- 由一组键盘操作命令组成
- 用户通过控制台或终端输入操作命令,用户每输入一条命令,控制权就转给操作系统的命令解释程序,命令解释程序解释并执行命令,之后控制权转回控制台或终端,此时用户可以继续输入下一条命令
- 脱机命令接口
- 又称批处理命令接口,适用于批处理系统
- 由一组作业控制命令组成
- 脱机用户不能直接干预作业的运行,需事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起交给操作系统
- 联机命令接口
程序接口
- 程序接口由一组系统调用(也称广义指令)组成
- 用户通过在程序中使用这些系统调用来请求操作系统为其提供服务
- 当前最流行的是图形用户界面GUI,GUI最终是通过调用程序接口实现的
3.3 操作系统实现了对计算机资源的扩充
-
裸机:没有任何软件支持的计算机,它仅构成计算机系统的物质基础
-
扩充机器/虚拟机:覆盖了软件的机器
-
操作系统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成了功能更强、使用更方便的机器
4. 例题
系统调用
(
P
5
8
P_{5}\ 8
P5 8)系统调用是由操作系统提供给用户的,它()
A. 直接通过键盘交互方式使用
B. 只能通过用户程序间接使用
C. 是命令接口中的命令
D. 与系统的命令一样
解答:系统调用是OS提供给用户使用内核功能的接口,选B
错误原因:错选C。对系统调用没理解,它是接口!是接口!是接口!不要被它名字迷惑了,它就是个接口!它又叫广义指令
操作系统的加载
(
2013
2013
2013)计算机开机后,操作系统最终被加载到()
A. BIOS B. ROM C. EPROM D. RAM
解答:选D
错误原因:错选A。对BIOS不了解:BIOS名为基本输入输出系统,是个人电脑启动时加载的第一个软件,它是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出程序,开启后自己按程序和系统自启动程序。
可参考:操作系统加载过程__星星之火_的博客-CSDN博客
库函数和系统调用的区别与联系
- 库函数是语言或应用程序的一部分,可以运行在用户空间中
- 系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能
- 没有使用系统调用的库函数,其执行效率通常要比系统调用的高,因为使用系统调用时,需要上下文切换及状态的转换,从用户态转到核心态
操作系统的发展历程
1. 人工操作阶段(无操作系统阶段)
- 计算机上算题的所有工作都需要人工干预
- 突出的缺点
- 用户独占全机,即一台计算机的全部资源由上机用户独占
- CPU等待用户操作,CPU的利用不充分。
- 人工操作方式严重降低了计算机资源的利用率,即所谓的人机矛盾
2. 批处理阶段(操作系统开始出现)
2.1 单道批处理系统
- 单道批处理系统是在解决人机矛盾,以及CPU和I/O设备速率不匹配的矛盾中发展起来的
- 先把一批作业以脱机方式输入到磁带上
主要特征
- 自动性:在顺利的情况下,磁带上的一批作业能自动逐个执行,无需人工干预(监督程序控制)
- 顺序性:磁带上的各道作业顺序的进入内存,在正常情况下,各道作业的完成顺序与它们进入内存的顺序相同
- 单道性:内存中仅有一道程序运行,即监督程序每次只从磁带上调入一道程序进入内存运行,仅当该程序完成或出现异常时,才换入其后继程序进入内存执行
主要问题
- 系统中的资源得不到充分的利用。每次主机内存中仅存放一道作业,每当它在运行期间发出输入/输出请求时,高速的CPU要等低速的I/O设备完成,此时CPU就处于等待状态
2.2 多道批处理系统
基本概念
- 多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替运行,这些程序共享系统中的各种软硬件资源
- 该技术让系统中的各个部件都尽量“忙起来”,因此切换任务所花时间很少,可实现系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍
特点
- 多道:计算机内存中同时存放多道相互独立的程序
- 宏观上并行:同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都没有运行完毕
- 微观上串行:内存中的多道程序轮流占用CPU,交替执行
优缺点
- 资源利用率高:CPU处于忙碌状态;内存中装入多道程序提高了内存的利用率;还可提高I/O设备的利用率
- 系统吞吐量大:①CPU和其他资源保持忙碌状态;②仅当作业完成或运行不下去时才进行切换,系统开销小
- 平均周转时间长(周转时间:从作业进入系统到其完成并退出系统所经历的时间):由于作业要排队依次进行处理,因此作业的周转时间较长
- 无交互能力:用户一旦提交作业,便不能与作业交互,修改和调试程序极不方便
需解决的问题
- 如何分配处理器
- 多道程序的内存分配问题
- I/O设备如何分配
- 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性
3. 分时操作系统
3.1 基本概念
- 分时技术
- 把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各个联机作业使用
- 若某个作业无法在分给它的时间片内完成,则该作业暂时停止运行,把处理器让给其他作业,等待下一轮再继续运行
- 分时操作系统
- 多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰
3.2 分时系统主要特征
- 同时性:也称多路性,指允许多个终端用户同时使用一台计算机
- 交互性:用户能够方便的与系统进行人机交互
- 独立性:系统中的多个用户可以彼此独立的进行操作,互不干扰,单个用户感觉不到其他用户也在使用这台计算机,好像只有自己单独使用这台计算机
- 及时性:用户请求能在很短的时间内响应。分时系统采用时间片轮转的方式使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意
4. 实时操作系统
- 能在某个时间限制内完成某些紧急任务*而无需时间片排队
- 硬实时系统:某个动作必须绝对的在规定的时刻(或规定的时间范围内)发生
- 软实时系统:能够接受偶尔违反时间规定且不会引起任何永久性的损害
- 主要特点:及时性和可靠性
5. 网络操作系统和分布式计算机系统
5.1 网络操作系统
- 网络操作系统把计算机网络中的各台计算机有机的结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的相互传送
- 主要特点:网络中各种资源共享以及各台计算机之间的通信
5.2 分布式计算机系统
- 分布式计算机系统
- 由多台计算机组成
- 系统中任意两台计算机通过通信方式交换信息
- 系统中的每台计算机都具有同等的地位,没有主机和从机
- 每台计算机上的资源为所有用户共享
- 系统中的任意台计算机都可以构成一个子系统,并可以重构
- 任何工作都可以分布在几台计算机上,由它们并行工作、协同完成
- 主要特点:分布性和并行性
5.3 网络OS V S VS VS 分布式OS
- 本质区别:分布式操作系统中的若干计算机相互协同完成同一任务
6. 个人计算机操作系统
- 个人计算机操作系统是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格、游戏中,常见的有Windows、Linux等
7. OS发展历程总结
8. 例题
分时系统
(
P
11
10
P_{11}\ 10
P11 10)分时系统追求的目标是()
A. 充分利用I/O设备
B. 比较快速响应用户
C. 提高系统吞吐率
D. 充分利用内存
解答:要求快速响应用户是导致分时系统出现的重要原因
错误原因:错选C,注意分时系统的一个特征是及时性
批处理系统
- 下面这几道题,我都不明白写的时候为啥会选错😶
(
2016
2016
2016)下列关于批处理系统的叙述,正确的是()
I. 批处理系统允许多个用户与计算机直接及交互
II. 批处理系统分为单道批处理系统和多道批处理系统
III. 中断技术使得多道批处理系统的I/O设备可与CPU并行工作
A. 仅II、III B. 仅II C. 仅I、II D. 仅I、III
解答:批处理系统缺乏交互能力;II明显是正确的;III:多道程序设计技术允许同时将多个程序放入内存,并允许它们交替在CPU运行,它们共享系统中的各种硬件和软件资源,当一道程序因I/O请求而暂停运行时,CPU立即转去执行另一道程序,即多道批处理系统的I/O设备可与CPU并行工作,这都是借助中断技术实现的。选A
错误原因:错选B,都不好意思说自己做错了,当时咋想的,咋就觉得III不对了,我不理解当时的我
(
2017
2017
2017)与单道程序系统相比,多道程序系统的优点是()
I. CPU利用率高
II. 系统开销小
III. 系统吞吐量大
IV. I/O设备利用率高
A. 仅I、III B. 仅I、IV C. 仅II、III D. 仅I、III、IV
解答:
- 首先I明显是正确的
- 多道程序系统,需要在不同的程序之间来回转,系统的开销变大了
- 单位时间内处理的程序变多了,系统吞吐量变大了
- I/O设备使用时间相同时,对于多道程序系统来说,总耗时变少了,因此I/O设备利用率变高了
- 选D
错误原因:错选A
(
2018
2018
2018)下列关于多任务操作系统的叙述中,正确的是()
I. 具有并发和并行的特点
II. 需要实现对共享资源的保护
III. 需要运行在多CPU的硬件平台上
A. 仅I B. 仅II C. 仅I、II D. I、II、III
解答:多任务操作系统可在同一时间内运行多个程序,具有并发和并行的特点,I对;多个任务必须互斥的访问共享资源,因此要对共享资源进行保护;并不一定要在多个CPU上运行,单个CPU也可满足要求。选C
错误原因:错选B
操作系统运行环境
1. 处理器运行模式
1.1 基本概念
- 计算机系统中,CPU通常执行两种不同性质的程序:操作系统内核程序;用户自编程序。对于操作系统而言,前者是后者的管理者
- 特权指令:不允许用户直接使用的指令,如I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令
- 非特权指令:允许用户直接使用的指令,它不能直接访问系统的软硬件资源,仅限于访问用户的地址空间
1.2 核心态和用户态
- 核心态又称管态、内核态
- CPU处于核心态时,可以执行特权指令(切换到用户态的指令也是特权指令)
- 操作系统内核程序运行在核心态
- 一些与硬件关联较为紧密的模块,如时钟管理、中断处理、设备驱动等
- 运行频率较高的程序,如进程管理、存储器管理、设备管理等
- 以上两部分的指令操作工作在内核态
1.3 内核
- 内核是计算机上配置的底层软件,它管理着系统中的各种资源,可看做是连接应用程序和硬件的一座桥梁,大多数操作系统的内核包括4部分内容:时钟管理、中断机制、原语、系统控制的数据结构及处理
时钟管理
- 时钟是最关键的设备,其功能有:
- 计时:操作系统需要通过时钟管理,向用户提供标准的系统时间
- 时钟中断:通过时钟中断的管理,可实现进程的切换
- 举例
- 在分时OS中采用时间片轮转调度
- 在实时系统中按截止时间控制运行
- 在批处理系统中通过时钟管理来衡量一个作业的运行程度
中断机制
- 计算机的很多功能都要依赖于中断机制,可以说,现代操作系统是靠中断驱动的软件
- 中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力
原语
- 把具有以下特点的程序称为原语:
- 处于操作系统的最低层,是最接近硬件的部分
- 这些程序的运行具有原子性,其操作只能一气呵成
- 这些程序的运行时间都较短,而且调用频繁
- 定义原语的直接方法是关中断,让其所有的动作不可分割的完成后再打开中断
- 系统中设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语,使其成为内核的组成部分
系统控制的数据结构及处理
- 系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块PCB、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等
- 系统对这些数据结构常见的操作
- 进程管理:进程状态管理、进程调度和分派、创建与撤销进程控制块等
- 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等
- 设备管理:缓冲区管理、设备分配和回收等
2. 中断和异常
- 参考中断系统
- 实际使用时,需在核心态建立一些“门”,以便实现从用户态进入核心态。在实际操作系统中,CPU运行上层程序时唯一能进入这些“门”的途径就是通过中断或异常
- 发生中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的
- 中断对OS是十分重要的,因为OS的发展过程大体上是一个想方设法提高资源利用率的过程,而要提高资源利用率就需要在程序并未使用某种资源时,把它对该种资源的占有权释放,这一行为就需要通过中断实现
3. 系统调用
3.1 基本概念
- 系统调用:是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序
- 作用:系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中与资源有关的操作(例如存储分配、进行I/O传输、管理文件等)都必须通过系统调用的方式,向操作系统提出服务请求,并由操作系统代为完成
3.2 系统调用的分类(按功能)
- 设备管理:完成设备的请求或释放,以及设备启动等功能
- 文件管理:完成文件的读、写、创建、删除等功能
- 进程控制:完成进程的创建、撤销、阻塞、唤醒等功能
- 进程通信:完成进程之间的消息传递或信号传递等功能
- 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能
3.3 系统调用的处理
- 系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态
- 用户程序可以执行陷入指令(又称访管指令或trap指令) 来发起系统调用,请求操作系统提供服务
- 用户程序执行陷入指令,就相当于把CPU的使用权主动交给操作系统内核程序(CPU状态会从用户态进入核心态),之后操作系统内核程序再对系统调用请求做出相应处理
- 处理完成后,操作系统内核程序又会把CPU的使用权还给用户程序(CPU从核心态进入用户态)
- 使用系统调用的目的
- 用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行,以保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行
4. 小结
操作系统的运行环境的理解
- 用户通过查询台运行上层程序,这个程序的运行依赖于操作系统的底层管理程序提供服务支持
- 当需要管理程序服务时(主动请求),系统则通过硬件中断机制进入核心态,运行管理程序
- 程序出现异常情况,被动的需要管理程序的服务,此时通过异常处理来进入核心态
- 管理程序运行结束后,用户程序需要继续运行,此时通过相应的保存的程序现场退出中断处理程序或异常处理程序,返回到断点处继续执行
用户态转为核心态
- 计算机通过硬件中断机制完成由用户态到核心态的转换。发生中断事件时(有可能是用户程序发出的系统调用),触发中断,硬件中断机制将计算机状态置为核心态
- 举例
- 用户程序要求操作系统的服务,也就是系统调用
- 发生一次中断
- 用户程序中产生了一个错误状态
- 用户程序中企图执行一条特权指令
- 从核心态转向用户态由一条指令实现,这条指令也是特权指令,一般是中断返回指令
- 注:从用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的
- 访管指令不是特权指令,因为访管指令是在用户态使用的
5. 例题
5.1 批处理的特点
(
P
19
2
P_{19}\ 2
P19 2)下列说法中,正确的是()
I. 批处理的主要缺点是需要大量内存
II. 当计算机提供了核心态和用户态时,输入/输出指令必须在核心态下执行
III. 操作系统中采用多道程序设计技术的最主要原因是提高CPU和外部设备的可靠性
IV. 操作系统中,通道技术是一种硬件技术
A. I、II B. I、III C. II、IV D. II、III、IV
解答:
- I:错误,批处理的主要缺点是缺乏交互性(批处理系统的主要缺点是常考点!!!)
- II:正确,I/O指令需要中断操作,中断必须在核心态下运行
- III:多道程序是为了提高系统利用率和吞吐量而提出的
- IV:I/O通道实际上是一种特殊的处理器,它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作
- 选C
错误原因:错选A,没掌握的知识点:批处理的主要缺点、通道技术(通道技术可参考[[输入输出系统|计算机组成原理-输入输出系统]])
5.2 处于核心态CPU可执行的指令
(
P
20
15
P_{20} \ 15
P20 15)CPU处于核心态时,可执行的指令是()
A. 只有特权指令
B. 只有非特权指令
C. 只有“访管”指令
D. 除了“访管”指令以外的全部指令
解答:选D
错误原因:错选A,核心态下,除了访管指令CPU可以指令指令系统中的任何指令
5.3 关于中断
- 关于中断这部分的知识掌握的很不好,要再复习复习[[中断系统]]
中断处理程序
(
P
20
8
P_{20}\ 8
P20 8)在中断发生后,进入中断处理的程序属于()
A. 用户程序
B. 可能是用户程序,也可能是OS程序
C. 操作系统程序
D. 单独的程序,既不是用户程序也不是OS程序
解答:
- 当中断或异常发生时,通过硬件实现将运行在用户态的CPU立即转入核心态
- 中断发生时,若被中断的是用户程序,则系统从目态转入管态,在管态下进行中断的处理;若被中断的是低级中断,则仍保持在管态,而用户程序只能在目态下运行,因此进入中断处理的程序只能是操作系统程序
- 中断程序本身可能是用户程序(emmm这句话不太理解),但是进入中断的处理程序一定是OS程序
- 选C
错误原因:错选A,混淆了概念
中断 VS 子程序调用
(
2012
2012
2012)中断处理和子程序调用都要压栈以保护现场,中断处理一定会保存而子程序不需要保存其内容的是()
A. 程序计数器
B. 程序状态字寄存器
C. 通用数据寄存器
D. 通用地址寄存器
解答:
- 子程序调用只需保存程序断点,即该指令的下一条指令地址
- 中断处理不仅要保存断点PC的内容,还要保存程序状态字寄存器PSW的内容。(在中断处理中,最重要的两个寄存器是PC和PSW)
- 选B
错误原因:错选A,子程序调用也要保存PC啊,不然咋返回继续执行呢
OS和中断
(
2015
2015
2015)处理外部中断时,应该由操作系统保存的是()
A. 程序计数器的内容
B. 通用寄存器的内容
C. 快表(TLB)的内容
D. Cache中的内容
解答:
- 处理外部中断时,PC的值由中断隐指令自动保存(由硬件自动完成);通用寄存器的内容由操作系统保存(即中断服务程序中的现场保护,)
- 补充:中断服务程序具体负责处理中断(异常)的代码是由软件,也就是操作系统实现的,这部分代码属于操作系统内核代码。也就是说从CPU检测中断信号到加载中断服务程序以及从中断服务程序中恢复执行被暂停的程序,这个流程基本上是硬件确定下来的,而具体的中断向量和服务程序的对应关系设置和中断服务程序的内容是由操作系统确定的。来自:中断和中断处理流程 - aaronGao - 博客园 (cnblogs.com)
- 选B
错误原因:错选A
(
2020
2020
2020)下列与中断相关的操作中,由操作系统完成的是()
I. 保存被中断程序的中断点
II. 提供中断服务
III. 初始化中断向量表
IV. 保存中断屏蔽字
A. 仅I、II B. 仅I、II、IV C. 仅III、IV D. 仅II、III、IV
解答:
- 这个题和上面的题一样,考察操作系统在中断过程中完成的任务。
- I:错误,程序的断点是由硬件自动保存的
- II:操作系统提供与中断信号对应的中断服务
- III:中断向量表由操作系统初始化
- IV:保存PSW、保存中断屏蔽字、保存通用寄存器的值都是由OS完成的
- 选D
错误原因:错选B
时钟中断
(
2018
2018
2018)定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是()
I. 内核中时钟变量的值
II. 当前进程占用CPU的时间
III. 当前进程在时间片内的剩余执行时间
A. 仅I、II B. 仅II、III C. 仅I、III D. I、II、III
解答:
- 时钟管理的主要工作是处理和时间有关的信息,以及决定是否执行调度程序。和时间有关的所有信息包括系统时间、进程的时间片、延时、使用CPU的时间、各种定时器
- 补充:“置时钟指令”必须在核心态下运行;“读时钟指令”可在汇编语言编程涉及,即可以在用户态下执行
- 选D
错误原因:错选C
5.4 用户态到核心态的转换
(
2015
2015
2015)假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为核心态的是()
A. DIV R0,R1 ;(R0)/(R1)
→
\rightarrow
→R0
B. INT n ; 产生软中断
C. NOT R0 ;寄存器R0的内容取非
D. MOV R0,addr ;将地址addr处的内存数据放入寄存器R0
解答:
- A. 可能会有除以零的异常
- B. 该指令为中断指令
- C. 不会发生异常,选C
- D. 可能会有缺页异常
错误原因:错选D,没有考虑到缺页异常
5.5 系统调用
(
2019
2019
2019)下列关于系统调用的叙述,正确的是()
I. 在执行系统调用服务程序的过程中,CPU处于内核态
II. 操作系统通过提供系统调用避免用户程序直接访问外设
III. 不同的操作系统为应用程序提供了统一的系统调用接口
IV. 系统调用是操作系统内核为应用程序提供服务的接口
A. 仅I、IV B. 仅II、III C. 仅I、II、IV D. 仅I、III、IV
解答:
- I:正确。用户可在用户态调用操作系统的服务,但执行具体的系统调用服务程序是处于内核态的
- II:设备管理属于OS的职能之一,包括对I/O设备的分配、初始化、维护等,用户程序需要通过系统调用使用操作系统的设备管理服务,因此II正确
- III:操作系统不同,底层逻辑、实现方式均不同,为应用程序提供的系统调用接口也不同
- IV:正确,系统调用时用户在程序中调用操作系统提供的子功能
- 选C
错误原因:错选A,当时没有选II,是因为觉得“是为了避免用户程序直接访问系统程序”而非外设,但是正是由于系统调用的存在,用户程序想使用外设时,要执行运行在核心态的I/O指令,通过OS的控制来访问外设,从而避免了用户程序直接访问外设
5.6 中断和通道技术与多道程序的关系
题目:为什么说直到出现中断和通道技术后,多道程序概念才变得有用?
解答:
- 首先,多道程序并发执行是指有的程序正在CPU上运行,而另一些程序在I/O设备上进行传输,
- 通过CPU操作与外设传输在时间上的重叠必须有中断和通道技术的支持,原因如下:
- 通道是一种控制一台或多台外设的硬件机构,它一旦被启动,就独立于CPU运行,因而做到了I/O操作和CPU并行工作。但早期CPU与通道的联络方法是由CPU向通道发出询问指令来了解通道工作是否完成的:若未完成,则主机就循环询问直至通道工作结束。因此这种询问方式是无法真正做到CPU和I/O设备并行工作的
- 在硬件上引入了中断技术,中断就是在I/O结束时,或硬件发生某种故障时,由相应的硬件(即中断机构)向CPU发出信号,这时CPU立即停下当前的工作转去处理中断请求,待处理完中断后再继续原来的工作
- 因此,通道技术和中断技术结合起来就可以实现CPU与I/O设备并行工作,即CPU启动通道传输数据后便去执行其他程序的计算工作,而通道则进行I/O操作
- 当通道工作结束时,再通过中断机构向CPU发出中断请求,CPU暂停手头的工作,来处理出现的中断,处理完后再继续原来的工作。这样就做到了CPU与I/O设备并行工作,此时,多道程序的概念才变为现实
操作系统结构
1. 分层法
1.1 基本思想
- 将操作系统分为若干层,第0层是硬件,第n层是用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖)
1.2 优点
- 便于系统的调试和验证,简化了系统的设计和实现。在调试某层时发现错误,那么错误应出现在这层上,因为其低层都已调试好
- 易扩充和易维护。在系统中增加、修改或替换一层中的模块或整层时,只要不改变相应层间的接口,就不会影响其他层
1.3 存在问题
- 合理定义各层比较困难。因为依赖关系固定后,往往就显得不够灵活
- 效率较差。操作系统每执行一个功能,往往要自上而下穿越多层,各层之间都有相应的层间通信机制,这会增加额外的开销,导致系统效率降低
2. 模块化
2.1 基本思想
- 将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好个模块间的接口,使各模块之间能够通过接口进行通信
2.2 模块划分
- 若将模块划分得太小,虽能降低模块本身的复杂性,但会使得模块之间的联系过多,造成系统较为混乱
- 若将模块划分得太大,会增加模块内部的复杂性
- 划分模块还应考虑模块的独立性
- 内聚性:模块内部各部分之间联系的紧密程度。内聚性越高,模块独立性越高
- 耦合度:模块之间相互联系相互影响的程度。耦合度越低,模块独立性越高
2.3 优缺点
- 优点
- 提高了操作系统设计的正确性、可理解性、可维护性
- 增强了操作系统的可适应性
- 加速了操作系统的开发过程
- 缺点
- 模块间的接口规定很难满足对接口的实际需求
- 各模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定顺序
3. 宏内核
- 宏内核是指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务
- Windows、Android、iOS、Linux等都是基于宏内核的架构
4. 微内核
4.1 基本概念
基本思想
- 微内核架构,是指将内核中最基本的功能保留在内核,将那些不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性
- 移出内核的操作系统代码根据分层的原则被划分为若干服务程序,它们的执行相互独立,交互则借助于微内核进行通信
结构
- 微内核结构将OS划分为两大部分:微内核和多个服务器
- 微内核:指精心设计的、能实现操作系统最基本核心功能的小型内核。通常包括:
- 与硬件处理紧密相关的部分
- 一些较基本的功能
- 客户和服务器之间的通信
- 服务器:操作系统中绝大部分功能都放在微内核外的一组服务器(进程)中实现:
- 提供对进程(线程)进行管理的进程(线程)服务器
- 提供虚拟存储器管理功能的虚拟存储器服务器等
- 它们都作为进程来实现,运行在用户态,客户和服务器之间是借助于微内核提供的消息传递机制来实现交互的
- 说明:在微内核结构中,为了实现高可靠性,只有微内核运行在核心态,其余模块运行在用户态,一个模块中的错误只会导致这个模块崩溃,而不会使整个系统崩溃
4.2 基本功能
- 微内核结构通常利用机制与策略分离的原理构造OS结构,将机制部分以及与硬件紧密相关的部分放入微内核
进程(线程)管理
- 进程(线程)之间通信、进程切换、进程调度、以及多处理机之间的同步等功能,都应放入微内核中
- 例如,为实现进程调度功能,需在进程管理中设置一个或多个进程优先级队列,这部分属于调度功能的机制部分,应放在微内核中。而对用户进程如何分类,以及优先级的确认方式,这属于策略问题,可将其放入微内核外的进程管理服务器中
低级存储器管理
- 在微内核中,只配置最基本的低级存储器管理机制,如依赖硬件的地址变换机制、页表机制等
- 实现虚拟存储器管理的策略(如采取何种页面置换算法、采取何种内存分配和回收策略等)则放在微内核之外的存储器管理服务器中
中断和陷入处理
- 微内核捕获发生的中断和陷入事件,并进行中断响应处理,在识别中断或陷入的事件后,再发送给相关的服务器来处理
4.3 特点
- 扩展性和灵活性:许多功能从内核中分离出来,当要修改某些功能或增加功能时,仅需在响应的服务器中操作,或再新增一个专用的服务器,而无需改动内核代码
- 可靠性和安全性
- 可移植性:与CPU和I/O硬件有关的代码均放在内核中,而其他各种服务器均与硬件平台无关,因而将操作系统移植到另一个平台上所需做的修改较少
- 分布式计算:客户和服务器之间、服务器与服务器之间的通信采用消息传递机制,使得微内核系统能很好地支持分布式系统和网络系统
4.3 相对于宏内核
- 微内核相对于宏内核,它们的优缺点是对立的。微内核OS的主要缺点就是性能问题,因为需要频繁的在核心态和用户态之间进行切换,因而切换开销大
5. 外核
5.1 基本思想
- 对机器进行分区,给每个用户整个资源的一个子集。例如某个虚拟机得到磁盘的01023号盘块,另一台虚拟机得到磁盘的10242047号盘块等等
- 在底层中,一种称为外核的程序在内核态运行。它的任务是为虚拟机分配资源,并检查使用这些资源的企图,以确保没有机器会使用别人的资源。每个用户层的虚拟机可运行自己的操作系统,但限制只能使用已经申请并获得分配的那部分资源
5.2 优点
- 减少了映射层。外核只需记录已经分配给各个虚拟机的有关资源即可
- 将多道程序(在外核内)与用户操作系统代码(在用户空间内)分离,而且相应的负载并不重,因为外核所做的只是保持多个虚拟机彼此不发生冲突
操作系统引导
1. 基本概念
- 操作系统引导,是指计算机利用CPU运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统
2. 引导过程
2.1 引导过程概述
2.2 具体引导过程
- 激活CPU。
- 激活的CPU读取ROM中的boot程序,将指令寄存器置为BIOS(基本输入/输出系统)的第一条指令,即开始执行BIOS指令
- BIOS严格来算是软件,是一组固化到计算机内主板上一个ROM芯片上的程序。它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制(来自:操作系统引导详细过程_冰清-小魔鱼的博客-CSDN博客_操作系统引导过程)
- 硬件自检。启动BIOS程序后,先进行硬件自检,检查硬件是否出现故障。
- 若有故障,主板会发出不同含义的蜂鸣,启动中止
- 若无故障,屏幕会显示CPU、内存、硬盘等信息
- 加载带有操作系统的硬盘。(加载引导扇区)
- 硬件自检后,BIOS开始读取Boot Sequence(通过CMOS里保存的启动顺序,或通过与用户交互的方式),把控制权交给启动顺序排在第一位的存储设备,然后CPU将该存储设备引导扇区的内容加载到内存中
- 加载主引导记录MBR。
- 硬盘以特定的标识符区分引导硬盘和非引导硬盘
- 若发现一个存储设备不是可引导盘,就检查下一个存储设备
- 如无其他启动设备,就会死机。
- 主引导记录MBR的作用是告诉CPU去硬盘的哪个主分区去找操作系统
- 硬盘以特定的标识符区分引导硬盘和非引导硬盘
- 扫描硬盘分区表,并加载硬盘活动分区。
- MBR包含硬盘分区表(Disk Partition Table, DPT),硬盘分区表以特定的标识符区分活动分区和非活动分区。
- 主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)
- 找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区
- 加载分区引导记录PBR
- 读取活动分区的第一个扇区,这个扇区称为分区引导记录PBR,其作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)
- 加载启动管理器
- 分区引导记录搜索活动分区中的启动管理器,加载启动管理器
- 加载操作系统
虚拟机
1. 第一类虚拟机管理程序
- 第一类虚拟机管理程序就像一个操作系统,因为它是唯一一个运行在最高特权级的程序,它在裸机上运行并具备多道程序功能
- 虚拟机管理程序向上层提供若干台虚拟机,这些虚拟机是裸机硬件的精确复制品,在不同的虚拟机上可以运行任何不同的操作系统
- 虚拟机作为用户态的一个进程运行,不允许执行敏感指令。然而虚拟机上的OS认为自己运行在内核态,称为虚拟内核态
- 当虚拟机操作系统执行了一条CPU处于内核态才允许执行的指令时,会陷入虚拟机管理程序。在支持虚拟化的CPU上,虚拟机管理程序检查这条指令是由虚拟机中的操作系统执行的,还是由用户程序执行的
- 若是虚拟机中的OS执行的,虚拟机管理程序将安排这条指令功能的正确执行
- 若是用户程序执行的,虚拟机管理程序将模拟真实硬件面对用户态执行敏感指令时的行为
2. 第二类虚拟机管理程序
- 第二类虚拟机管理程序,是一个依赖于Windows、Linux等操作系统分配和调度资源的程序,很像一个普通的进程。例如VMware Workstation
- 第二类虚拟机管理程序仍然伪装成具有CPU和各种设备的完整计算机
3. 习题
- 是“操作系统结构”、“操作系统引导”、“虚拟机”三部分的习题
(
P
32
8
P_{32}\ 8
P32 8)对于计算机操作系统引导,描述不正确的是()
A. 计算机的引导程序驻留在ROM中,开机后自动执行
B. 引导程序先做关键部位的自检,并识别已连接的外设
C. 引导程序会将硬盘中存储的操作系统全部加载到内存中
D. 若计算机中安装了双系统,引导程序会与用户交互加载有关系统
解答:选C。常驻内存的只是操作系统的内核,其他部分仅在需要的时候被调入
(
P
32
9
P_{32}\ 9
P32 9)计算机操作系统的引导程序位于()
A. 主板BIOS
B. 片外Cache
C. 主存ROM区
D. 硬盘
解答:
- 操作系统的引导程序位于磁盘活动分区的引导扇区中
- 引导程序分为两种:
- 一种是位于ROM中的自举程序(BIOS的组成部分),用于启动具体的设备
- 另一种是位于装有操作系统硬盘的活动分区的 引导扇区中的 引导程序(称为启动管理器),用于引导操作系统
- 选D
错误原因:错选C
(
P
32
12
P_{32}\ 12
P32 12)下列关于虚拟机的说法中,正确的是()
I. 虚拟机可以用软件实现
II. 虚拟机可以用硬件实现
III. 多台虚拟机可同时运行在同一物理设备上,它实现了真正的并行
A. I、II B. I、III C. I D. I、II、III
解答:
- 软件能实现的功能也能由硬件实现,因为虚拟机软件能实现的功能也能由硬件实现,软件和硬件的分界面是系统结构设计者的任务。I和II正确
- 实现真正并行的是多核处理机,多台虚拟机同时运行在同一物理机器上,类似于多个程序运行在同一个系统中
- 选A
错误原因:错选C。参考软硬件逻辑功能等价性 - 软件和硬件的逻辑功能等价性
- 对某一功能来说,既可以由硬件实现,又可以由软件实现,就称它们在功能上是等价的,这一等价性被称为软、硬件逻辑功能的等价性
- 软件和硬件的逻辑功能等价性是计算机系统设计的重要依据,软件和硬件的功能分配及其界面的确定是计算机系统结构研究的重要内容
更新文档
更新日期 | 更新内容 |
---|---|
2022/8/7 | 整理例题 |