传送门
由于操作系统知识太多,再加上我总结的比较细,所以一片放不下,拆分成了多篇文章。
操作系统笔记——概述、进程、并发控制
操作系统笔记——储存器管理、文件系统、设备管理
操作系统笔记——Linux系统实例分析、Windows系统实例分析
北理工操作系统实验合集 | API解读与例子
概述
操作系统性能计算
这里将CPU调度的时间忽略,三个任务的资源互不重叠,所以并行处理。
首先计算出总时间。分别是30min和15min。总时间是一切计算的基础。
然后看吞吐量。吞吐任务是3个job,除以时间得出吞吐量。所谓的吞吐量,实际上是单位时间完成任务数。
周转时间。因为任务是批量放入的,计算如下:
多 通 道 = 5 + 15 + 10 3 = 10 单 通 道 = ( 5 ) + ( 5 + 15 ) + ( 5 + 15 + 10 ) 3 = 55 3 ≈ 18 多通道=\dfrac{5+15+10}{3}=10 \\[5pt] 单通道=\dfrac{(5)+(5+15)+(5+15+10)}{3}=\dfrac{55}{3}\approx18 多通道=35+15+10=10单通道=3(5)+(5+15)+(5+15+10)=355≈18
至于利用率,就是某一资源占用时间/总时间就可以,很明显,在利用不同资源的情况下,多通道系统的资源利用率是很高的。
进程
并发控制
2022年易考知识点总结
这里只是给出比较简洁,有针对性的总结,如果要系统一些,还是建议刷一遍文章。
第1章 操作系统概论
1 早期操作系统设计的主要目标是什么?
向上易用性,本身可维护,向下高效率
2操作系统是资源管理程序,它管理系统中的什么资源?
软硬件资源。硬件比如CPU,显示器,打印机,软件比如各种进程。
3为什么要引入多道(批处理)程序系统?它有什么特点?
提高CPU的利用效率,让CPU在一个任务IO的同时,在另一个任务上保持忙碌。
多通道系统可以做到宏观上的并行,但是实际上,不同任务微观上在一个CPU上还是串行,一个CPU上不能同时有两个任务运行,仅仅是实现了CPU与IO的并行。
(实现这一系统需要很多硬件基础,比如中断技术(事件驱动),通道处理器(自动执行IO),主存技术(多程序同时运行)等等。)
4叙述操作系统的基本功能。
向上,为用户提供简洁易用的系统接口,让用户更好地操作硬件。
向下,管理计算机的软硬件资源,提高系统运行的效率。
具体有4个方面,这四个方面就是操作系统学习的几个章节目录:
处理器管理。管理进程,如何调度处理器。
储存器管理。分级管理各种储存器。寄存器,高速缓存,内存,外存。
文件管理。对大容量外存进行更有序地组织。
设备管理。如题。
其实向上和向下并不是完全分割的,比如文件管理,既可以提高效率,也给用户提供了简洁易用的接口。
5批处理系统、分时系统和实时系统各有什么特点?各适合应用于哪些方面?
批处理系统:多任务,宏观并行,微观串行
分时系统:同时性(更强的并行性),独立性,交互性,及时性
实时系统:实时性(优先级并行),确定性,可靠性
批处理系统广泛用于多任务,批量计算场景,分时系统用于多用户场景,实时系统用于要求快速响应,高可靠性的场景。
6操作系统的特性?
并发性。程序之间并发
共享性。程序之间共享资源。并发性的基础是共享资源
虚拟性。把一个实物资源变成若干个逻辑上虚拟资源,支撑了多用户的使用。比如虚拟机,虚拟打印机。
异步性(随机性)。最后的异步性其实是一个缺点,并发与资源之间的制约导致进程之间的调度不完全由管理员和用户控制。
7衡量OS的性能指标有哪些?什么是吞吐量、响应时间和周转时间?
资源利用率,吞吐量,(平均)周转时间,响应时间。
- 资源利用率。这个指标是针对某个资源计算的,比如CPU,比如打印机,比如磁盘。资源利用率就是某个资源使用的时间比例。一直在运转就是100%利用 率
- 吞吐量。完成任务的速度
- 周转时间。一个任务在系统内的总时间。
- 响应时间。计算机对用户的请求做出反应的时间,其中包含了计算机调度+周转的时间,响应时间总是比周转时间更长一些。
8 什么是嵌入式系统?
嵌入式系统是对基本操作系统进行选择性裁剪形成的简化版系统,安装在硬件较差的嵌入式设备里。
9 什么是对称多处理?它有什么好处?
在多处理器操作系统中,多个处理器是平等的。好处在于可以充分共享资源,提高效率。
10为了实现系统保护,CPU通常有哪两种工作状态?各种状态下分别执行什么程序?什么时候发生状态转换?状态转换由谁实现的?
用户态,执行用户程序,核心态,执行操作系统内核程序。
当用户程序调用系统命令的时候,切换到核心态。核心态代码执行完毕后,切换回用户态。
这些切换涉及到安全问题,肯定不能由用户实现。用户到核心通过硬件实现,核心到用户通过内核程序实现。
这个硬件指的是硬件中断,中断可以理解为消息,用户态向内核发送一个中断,内核允许用户态执行系统调用后会切换为核心态。
11 什么是系统调用?什么是特权指令?特权指令执行时,CPU处于哪种工作状态?
用户调用操作系统内核API。
特权是指令集的一部分特殊指令,关系到系统全局,必须由核心态CPU执行。
12 操作系统通常向用户提供哪几种类型的接口?其主要作用是什么?
操作接口,分为命令行接口与窗口界面。
编程接口,通过系统调用实现。
第2章 进程管理
1程序顺序执行的特点
程序独占所有资源,直到执行完毕。
封闭性。因为独占,所以不受干扰,体现出与外部干扰隔绝的封闭性
可再现性。因为不受干扰,所以总是能按照既定计划完成,可复现。
2 何谓进程,进程由哪些部分组成?试述进程的四大特性(动态性、独立性、并发性、结构性)及进程和程序的区别。
进程没有特定的概念,大致上相当于一个任务,一个正在执行的程序。进程由程序,数据,PCB组成
动态性。进程在程序执行之初创建,执行后释放。
独立性。系统以进程为单位调度资源,每个进程是一个独立单位。
并发性。多进程可以在一CPU上交叉运行
结构型。进程由PCB块进行控制
进程是动态,临时的,程序是静态的,永久的。程序相当于任务的规划,进程相当于任务的具体执行。
3 进程控制块的作用是什么?它主要包括哪几部分内容?
记录进程的元数据,控制进程的调度。
进程标识符。
进程状态,调度,储存器管理的信息。比如进程状态,优先级,程序的地址。
进程的资源信息。进程打开的设备,文件。
CPU现场保护区。比如寄存器信息。
4 进程的基本状态,试举出使进程状态发生变化的事件并描绘它的状态转换图。
三种基本状态:就绪态(有资源无CPU),运行态,阻塞态(有CPU但无资源)
两种额外状态:创建态(不会占用资源),终止态(结束但资源还没释放)
5 什么是原语?什么是进程控制?
操作系统对进程的控制操作,具有原子性,不可以被中断。
原语大致有这么几种:
- 创建/撤销原语。对应进程的创建与销毁
- 阻塞/唤醒原语。对应进程从运行态到阻塞态,以及从阻塞态到就绪态
- 挂起/解挂原语。对应进程的主动暂停,继续。
进程控制包括进程的创建,销毁,状态转换。
6 进程调度的功能、方式、时机、算法。作业调度,交换调度。作业的周转时间和作业的带权周转时间?
功能:
管理系统中各种进程的PCB块。
选择进程进行CPU占领
与CPU占领伴随的是上下文切换。
方式:
非剥夺方式。比如批处理
剥夺方式。有优先级,可以抢占。
时机:
执行完了或者卡住了。进程完成,等待IO
被调度了。比如分时系统中,时间用完了。又或者更高优先级的过来了,就会被切换到就绪态或者阻塞态。
算法:
- 先来先服务(FCFS,First come First serve)。就是曾经的单通道批处理系统,缺点很明显,所有任务都是阻塞的,如果出现耗时操作,系统会卡很久。
- 最短作业优先。就是对作业长短进行排序,对单通道批处理做出了一些优化。但是对长作业有点亏,本来就耗时,还要等,如果再有短作业不断插入进来,长作业就没法执行了,这种叫长作业饥饿状态。
- 响应比高者优先。RP=1+作业等待时间/作业估计运行时间,RP大的先执行。直观看,等的越久,越应该放前面,耗时越短,越应该放前面。总的来说,是1,2算法的结合,缺点是计算量较大。
- 优先级调度算法需要单独拿出来说。简单说就是将CPU分配给就绪队列中优先级最高的进程。
- 静态优先级:在进程创建时确定的,运行时保持不变。通常赋予系统进程较高优先级(重要的);赋予申请资源量少的进程较高优先级(不耗时的)。
- 动态优先级:原优先级可随进程的推进而改变。根据进程占用CPU或等待CPU时间的长短动态调整。 - 轮转法(RR,Round Robin)。进程地位是平等的,但是时间片长度需要考虑,太长了就失去了并行优势,太短了会增加调度开销。
- 多级反馈队列轮转法。这是优先级+轮转法的结合。说白了就是,优先级算法中,一个优先级只对应一个进程,但是在这里,一个优先级对应一整个队列的进程。
优先性体现在不同的队列上,有多个队列,对应不同优先级。高优先级的队列先轮转,清空队列后再轮转低优先级。在每一个队列内部,进程地位平等,进行轮转。
整体轮转过程中,为了防止低优先级进程饿死,分配给高优先级的时间片比较短(但是优先),低优先级的较长(虽然不容易轮到,但是一旦轮到就可以安稳执行完毕)。
当然,优先级并不是一成不变的,具体的变化比较复杂。比如刚创建的默认放在高优先级,但是如果检测到占用时间过长或者卡IO了,就会降级。
7 线程的定义,线程与进程的比较。系统对线程的支持(用户级线程、核心级线程、两级组合)。
第3章 并发控制
8 并发执行的进程在系统中通常表现为几种关系?各是在什么情况下发生的?
9 什么叫临界资源?什么叫临界区?对临界区的使用应符合的四个准则(互斥使用、让权等待、有空让进、有限等待)。
10 解决进程之间互斥的办法: 开、关中断,加锁、开锁(又叫测试与设置,通常由一条机器指令完成),软件方法,信号量与P、V操作。
11 若信号量S表示某一类资源,则对S执行P、V操作的直观含意是什么? 当进程对信号量S执行P、V操作时,S的值发生变化,当S>0、S=0、和S<0时,其物理意义是什么?
12 在用P/V操作实现进程通信时,应根据什么原则对信号量赋初值?
13 经典的IPC问题。
14 进程高级通信有哪些实现机制?
15 死锁产生的必要条件及解决死锁的方法
16 理解银行家算法的实质。能够利用银行家算法避免死锁。
第4章 存储器管理
1 存储器管理的功能。名字空间、地址空间、存储空间、逻辑地址、物理地址。
2 什么是地址重定位?分为哪两种?各是依据什么和什么时候实现的?试比较它们的优缺点。
3 内存划分为两大部分:用户空间和操作系统空间。存储器管理是针对用户空间进行管理的。
4 存储保护的目的是什么?对各种存储管理方案实现存储保护时,硬件和软件各需做什么工作?
5 试述可变式分区管理空闲区的方法及存储区的保护方式。覆盖与交换有什么特点?
6 页表的作用是什么?简述页式管理的地址变换过程。能利用页表实现逻辑地址转换成物理地址。管理内存的数据结构有哪些?
7 什么是页式存储器的内零头?它与页的大小有什么关系?可变式分区管理产生什么样的零头(碎片)?
8 段式存储器管理与页式管理的主要区别是什么?
5什么是虚拟存储器。虚拟存储器的容量能大于主存容量加辅存容量之和吗?
6实现请求页式管理,需要对页表进行修改,一般要增加状态位、修改位、访问位。试说明它们的作用。
11 产生缺页中断时,系统应做哪些工作?
12 会利用FIFO、LRU、OPT以及时钟页面置换算法描述页面置换过程,计算产生的缺页率。Belady异常。
13 什么是程序的局部性原理?什么叫系统抖动?工作集模型如何防止系统抖动?
14 多级页表的概念,多级页表中页表建立的时机。写时复制技术的概念。
15 页的共享问题。需要一个专门数据结构来记录进程间共享页。
第5章 文件系统
1 什么是文件和文件系统? 文件系统的主要功能。UNIX系统如何对文件进行分类?它有什么好处?
2 文件目录的作用是什么?文件目录项通常包含哪些内容? 文件控制块。
3 文件的逻辑结构有几种形式?文件的存取方法?
4 文件的物理结构有哪几种?对于不同的结构,文件系统是如何进行管理的?
5 DOS文件卷的结构,DOS系统的文件物理结构是什么?
6 了解记录的组块和分解。
7 文件存储空间的管理方法有几种?它们各是如何实现文件存储空间的分配和回收的?
8 建立多级目录有哪些好处?文件的重名和共享问题是如何得到解决的?
9 文件系统中,常用的文件操作命令有哪些?它们的具体功能是什么?打开和关闭文件命令的目的是什么?
10 存取控制表ACL的概念。
11 理解内存映射文件(memory mapped file)的过程。
第6章 设备管理
1 I/O设备通常大致可分为哪两大类?各自传输的信息单位有什么特点?
2 常用的四种数据传输方式。
3 根据设备的使用方式,设备被分为几种类型?何为虚拟设备?它是通过什么技术实现的?
4 按照设备管理的层次结构,I/O软件划分为几层?各层主要实现哪些功能?
5 何为设备的独立性?
(设备独立性是指用户及用户程序不受系统配置的设备类型和具体设备的台号的影响。用户只是使用逻辑设备,具体的映射由操作系统完成。)
6 什么是SPOOLING技术?以输出为例,说明它的实现原理。(SPOOLING技术是以空间换时间)
7 一个特定磁盘上的信息如何进行编址?盘面号、磁道号 和扇区号(或柱面号、磁头号和扇区号)。
8 要将磁盘上一个块的信息传输到主存需要系统花费哪些时间?(寻道时间、旋转延迟时间和读/写传输时间)
9 常用的磁盘调度算法:先来先服务、最短寻道时间优先、扫描法(SCAN, C_SCAN, LOOK, C_LOOK)。
第7章 Linux进程管理
1 进程控制块,其中与进程管理、存储器管理和文件管理有关的一些字段,线程组标识符。
2 与进程创建有关的函数:fork( )、vfork( )、clone( )。
3 理解进程切换的过程。涉及到页目录表、核心栈、硬件上下文。
4 进程调度方式。进程调度时机。
5 Linux有很多内核线程,了解0号进程和1号进程的作用。
第8章 Linux存储器管理
1 进程地址空间的划分?管理进程私有地址空间的数据结构?链接虚拟内存区域的单链表和红黑树。指向映射文件对象的指针字段?指向进程页目录表的指针字段?
2 Linux堆的管理:malloc( ),free( )。
3 管理物理内存页框的数据结构? 内存管理区zone结构,伙伴系统?了解分区页框分配器分配页框的过程。
4 理解slab分配器的原理。slab分配器的作用?
5 进程页表建立的时机?了解页目录表项或页表项所包含的字段。逻辑地址的划分,利用两级页表实现地址转换的过程。
6 请求调页。所缺的页可能存放的地方。
7 了解盘交换区空间的管理方法。
第9-10章 Linux文件系统
1 Ext2文件卷的布局?各部分的作用是什么?
2 Linux系统把一般的文件目录项分成哪两部分?这样做的好处是什么?
3 Linux文件系统的索引节点中,索引表划分成几级?文件的索引表是如何增长的?要求能够利用索引表实现将文件中的字节地址转换成文件的物理块的操作。
4 硬链接和符号链接的区别?
5 Linux文件系统如何管理空闲存储空间?
6 VFS通用文件模型中的四个主要对象?
7 Linux系统中,进程打开一个磁盘文件要涉及哪些数据结构?了解:它们各有哪些关键字段?他们的作用是什么?参考图10.2
8 一个文件在使用与不用时各占用系统哪些资源?
9 安装表的作用是什么?
第14章 Windows操作系统模型
1.Windows 采用什么样的体系结构?
2.硬件抽象层HAL的作用是什么?
3.Windows系统组件的基本机制包括:陷阱调度、执行体对象管理器、同步(自旋锁、内核调度程序对象)、本地过程调用LPC等。
4.理解:延迟过程调用DPC,异步过程调用APC
5.Windows中有哪些对象,都有什么作用?(两种类型对象:执行体对象和内核对象。执行体组件:进程和线程管理器、内存管理器、I/O管理器、对象管理器等。内核对象是由内核实现的一个初级对象集,对用户态代码不可见,仅供执行体使用。一个执行体对象可以包含一个或多个內核对象。)
6.在多处理机系统中,提供了哪些同步和互斥机制?(内核引入自旋锁实现多处理机互斥机制。内核以内核对象的形式给执行体提供其他的同步机构—“调度程序对象”,包括:进程对象、线程对象、事件对象、信号量对象、互斥体对象、可等待的定时器对象及文件对象等。每个同步对象都有“有信号”或“无信号”两种状态。)
7.线程如何实现等待一个同步对象的操作?
第15章 Windows 进程和线程管理
- 管理进程和线程的数据结构:执行体进程块EPROCESS、执行体线程块ETHREAD、内核进程块KPROCESS、内核线程块KTHREAD。
- 创建进程:CreateProcess( ); 创建线程:CreateThread( )
- 线程的7种状态,及其解释。
- 线程调度:基于优先级的抢先式的多处理机调度系统。线程调度程序的数据结构:32个就绪线程队列、32位线程就绪队列位图、32位处理机空闲位图。
- 线程优先级的提升时机。
第16章 Windows 存储器管理
1 两种数据结构:虚拟地址描述符VAD、区域对象,这两种结构各有什么作用?
2 虚拟内存区域:空闲的、保留的、提交的
3 32位逻辑地址,二级页表。页目录表项和页表项具有相同的数据结构,该数据结构包含哪些数据项?进程页表建立的时机。进程的地址转换过程。
4 管理物理内存的数据结构:页框数据库。页框的8种状态:活动、转换、备用、更改、更改不写入、空闲、零初始化、坏,页框的状态转换图16.9。
5 原型页表,区域对象的页表。虚拟页式中,采用原型页表实现多进程共享页。
6 Windows采用的页替换策略是什么?
第17章 Windows 文件系统
1 Windows所支持的文件系统类型有哪些?
2 虚拟簇号和逻辑簇号的概念。
3 NTFS卷的结构,主控文件表MFT的作用。
4 NTFS文件的物理结构:索引顺序结构。
5 对于大目录,采用B+树,使得查找一个特定文件的访盘次数减到最少。(大目录文件的索引根属性包含B+树的第一级并指向包含下一级的索引缓冲区。)