操作系统知识点总结复习归纳——题目整理

注意

1、计算逻辑地址转换的时候一定要用1024来计算不要用1k来计算,很容易出错!

计算机系统概述

1、当CPU执行操作系统代码时,称CPU处于管态(又称核心态,内核态)。
目态(又叫用户态):用户程序运行时的状态。
用户自编程序运行在用户态,OS内核程序运行在核心态。
2、当计算机提供了管态和目态时,输入/输出指令必须在管态下执行。
3、中断功能引入多道程序设计技术的前提条件之一。
4、提高处理器资源利用率的关键技术是多道程序设计技术。
5、多道程序设计是指在同一台处理机上并发运行多个程序。
6、
7、实时系统必须既要及时响应,快速处理,又要有高可靠性和安全性,且必须在规定时间内处理来自外部的事件。
8、分时系统提高了系统的交互性
9、OS的方便性对普通用户最重要。
10、在操作系统中引入多道程序设计的目的在于充分利用CPU,减少CPU等待时间。
11、I/O是输入输出的英文简写,指的是一切操作、程序或设备与计算机之间发生的数据传输过程。
12、在一般大型计算机系统中,主机对外围设备的控制可通过通道、控制器和设备三个层次来实现,通道控制控制器,设备在控制器控制下工作。
13、引入缓冲区的原因有很多,可归结为以下几点:
(1) 缓和CPU与I/O设备间速度不匹配的矛盾。
(2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
(3) 解决数据粒度不匹配的问题。
(4) 提高CPU和I/O设备之间的并行性。
14、常用的专用缓冲区形式有:(1)单缓冲区,(2)双缓冲区,(3)环形缓冲区。
15、分时系统中不可缺少的硬件支持是中断机构。
16、并发性是指两个或多个事件在同一时间间隔内发生。并行性是指两个或多个事件在同一时刻发生。
17、通道是一种特殊的处理机。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
spooling的目的是为了共享,平常我们可能也会观察到一台打印机可以同时从word、pdf、excel等软件发出打印命令。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

进程管理

1、若当前进程因时间片用完而让出处理机时,该进程应转变为就绪状态。
2、当一个进程处于等待调度时,称为就绪态。
3、当一个进程处于在内存中等待输入状态时,属于阻塞状态。
4、在单处理系统中若同时存在5个进程,则处于等待状态的进程最多可有5个。
5、系统负荷过重内存空间紧张;终端用户请求;父进程请求;这三种情况都可能导致进程被挂起。
6、OS引入线程是为了减少系统并发执行付出的时空开销,提高系统并发度。
7、用户线程和内核线程对比:

  • 用户级线程是由用户的基于线程库的运行时系统管理线程的,系统不知道用户级线程的存在;而内核支持线程由os来进行线程的管理;
  • 用户级线程调度可以是应用程序特定的,内核支持线程采用系统统一的调度算法;
  • 用户级线程可以运行在不支持线程的OS
  • 用户级线程切换不需要切换内核,减少了CPU状态转换所花的时间开销
  • 内核支持线程可以实现一个进程内的多个线程的并行执行,而用户级线程一个进程只能分配一个CPU
  • 当线程执行系统调用时,内核支持线程只会阻塞该线程,它所属进程的其他线程还可以执行,而用户级线程会阻塞整个进程。

8、进程和程序的一个本质区别是进程为动态的,程序为静态的。
9、在程序単步跟踪调试时,每走一步(每运行一行代码)的状态转换为执行->挂起
10、进程间采用间接通信方式时,在消息中必须给出信箱名。

12、请根据下表描述的作业序列到达时间以及处理时间,列表计算HRRN算法下进程的平均周转时间和平均带权周转时间(计算结果保留到小数点后2位)。

求解过程
HRRN: 高响应比优先调度算法

  • 作业的等待时间相同,服务的时间越短,优先级越高。
  • 要求服务的时间相同时,作业的优先权又取决于等待时间。
  • 对长作业的优先级,可以随等待时间的增加而提高。

周转时间=作业完成时刻—作业到达时刻;
带权周转时间=周转时间/服务时间
平均周转时间=作业周转总时间/作业个数;
平均带权周转时间=带权周转总时间/作业个数;

13、读者写者问题

semaphore wmutex,rmutex;
int readcount=0;
reader(){
while(true){
	wait(rmutex);  //判断是否用读者进程在操作readcount变量
	if(readcount == 0) wait(wmutex);//判断是否有写者在写文件
	readcount++;  //增加一个在读文件的读者
	signal(rmutex);//唤醒等待队列中要操作readcount的读者
	...
	读文件操作
	...
	wait(rmutex);  //判断是否用读者进程在操作readcount变量
	readcount--;  //减少一个在读文件的读者
	if(readcount == 0) wait(wmutex);//判断是否有写者在写文件
	signal(rmutex);//唤醒等待队列中要操作readcount的读者
	}
}
writer(){
while(true){
	wait(wmutex); // 判断是否有写者在写文件
	...
	写文件操作
	...
	signal(wmutex);
}
}
void main() {
cobegin
Reader();
Writer();
coend
}

信号量机制实现消费者和生产者问题

int in=0, out=0;
item buffer[n];
semaphore mutex=1, empty=n;full=0;
void producer(){
	do{
	produce an item nextp;
	。。。
	wait(empty);
	wait(mutex);
	buffer[in] = nextp;
	in = (in+1)%n;
	signal(mutex);
	signal(full);
	}while(TRUE);
}
void customer(){
	do{
	wait(full);
	wait(mutex);
	nextc = buffer[out];
	out=(out+1)%n;
	signal(mutex);
	signal(empty);
	
	customer the item in nextc 
	}while(TRUE)
}
void main(){
	cobegin
		producer(); customer();
	coend
}

11、请用wait和signal操作完成以下前趋图的描述,要求给出所有信号量的定义和初始化,给出对应的wait和signal操作。
前驱图

P1( ) { S1; signal(a); signal(b); }
P2( ) { wait(a); S2; signal(c); signal(d); }
P3( ) { wait(b); S3; signal(e); }
P4( ) { wait(c); S4; signal(f); }
P5( ) { wait(d); S5; signal(g); }
P6( ) { wait(e);  S6;signal(h); }
P7( ) {wait(f); wait(g);wait(h);S7;}
main( ) {
semaphore a,b,c,d,e,f,g,h; 
a.value:=0;  b.value=0; c.value=0; d.value=0; e.value=0; f.value=0; g.value=0; h.value=0;(定义初始化4分)
cobegin 
       p1( );   p2( );   p3( );   p4( );    p5( );    p6( );   P7( );
coend 
}

处理机调度与死锁

1、Signal原语对信号量做运算后,当S<=0时要唤醒一个等待进程。
2、死锁发生的四个必要条件:

  • 互斥条件
  • 请求和保持条件
  • 不可抢占条件
  • 循环等待条件

6、哲学家就餐问题的无死锁解决方案中,为限定最多4个哲学家就餐,比较好的方法是设置信号量count代表还允许就餐的哲学家数目,初始值为4,小于等于0阻塞。
7、5个哲学家进餐的同步问题解决思路中不会引发死锁的有:

  • 同时申请左右两把叉子,都拿到了即可进餐。
  • 最多允许四个哲学家进餐
  • 当左右两位哲学家都没有就餐且他饥饿。
  • 部分哲学家先申请左边的叉子,部分先申请右边的叉子。

8、在生产者消费者问题中,消费者调用wait(mutex)(mutex是互斥信号量)的阻塞条件是:

  • 有消费者进入在缓冲区读产品
  • 有生产者进入在缓冲区存放产品

9、系统处于不安全状态时可能会发生死锁。
10、银行家算法用于避免死锁。
11、资源的静态分配算法、有序资源分配算法、是用于预防死锁,可用协议预防死锁。
12、死锁避免就是确保系统永远不会进入不安全状态,可用算法避免死锁,。
13、不是所有不安全状态都能导致死锁状态。
14、若分配图有环,每类资源只有一个实例,那么必定存在死锁。
15、分配图无环,系统就没有进程死锁。

存储器管理

1、通常所说的“存储保护”的基本含义是防止程序间相互越界访问。
2、在分页存储管理中,为了减少碎片,需要小的页,页面大小总是2的幂。
3、离散内存技术:分段、段页式、分页。
4、增加TLB的条目数量、使用不同大小的页、增加页的大小都可以增加TLB的命中率。
5、在固定分区、页式、段式、段页式存储管理方式中内存利用率最高的是页式。
6、在分段管理中以段为单位分配,每段是一个连续存储区。
7、段页式管理完成一次逻辑地址寻址并实现一个内存读取,访问3次内存。
8、页表每存取一个数据时,CPU都要访问两次内存,第一次访问内存中的页表,第二次才是从第一次所得地址中获得所需数据。
9、段表放在内存中时,每访问一个数据,都需要访问两次内存。、
10、虚拟存储技术与分区管理不能配合使用。
11、固定分区内存管理方案能支持多道技术,但限定了系统的并发度。
12、在文件目录管理中,引入索引结点的目的是提高按名检索文件的速度。
13、高速缓存的位置在寄存器和主存之间
14、在内存管理中,动态分区分配会产生外部碎片。
15、虚拟存储器是以多次性和对换性为基础的。
16、段页式存储管理中不存在外碎片。分段式存储管理不会产生内部碎片,分页式存储管理不会产生外部碎片。
17、用户程序中使用的从零地址开始的地址编号是逻辑地址。
18、段表的每个表项包含起始地址(又称基址)和段的长度
19、在可变式分区管理中,采用内存移动技术的目的是合并空闲区。
20、动态分区分配可以看作可变分区分配管理中的一种实现方法
21、在内存管理中,内部碎片是已经被分配出去的的内存空间大于请求所需的内存空间。
外部碎片是指还没有分配出去,但是由于大小太小而无法分配给申请空间的新进程的内存空间空闲块。
22、固定分区存在内部碎片,页式虚拟存储系统存在内部碎片;
可变式分区分配会存在外部碎片,段式虚拟存储系统,存在外部碎片。
段页式虚拟存储系统存在内部碎片,不存在外部碎片。
23、分段式存储管理为什么不会产生内部碎片?
因为分段式是从整个内存空间分配内存,没有“内”的概念
24、为什么段页式不存在外部碎片,而段式存在外部碎片?
段页式最小分配单位是页,如果有浪费,也是在页内的浪费(碎片),而“外部碎片”是对整个存储空间说的,段式正如刚才提到的,是从整个存储空间进行分配。
25、用动态重定位装入作业的存储管理方式有:可变分区存储管理,页式存储管理,段式存储管理。

在这里插入图片描述
题目答案有误,选AD

在这里插入图片描述
为什么C不行?
虚拟存储是指:在非连续存储内存分配的基础上把一部分内容放在外存里的方法,一般是针对整个存储管理来说的,故在此题中不太合适

在这里插入图片描述
为什么不是48-13,而是32-13呢?
一方面虚拟地址要转换为物理地址,另一方面虚拟地址能表示的地址空间远远大于物理地址能表示的空间,故不可能以虚拟地址计算所需表数目
在这里插入图片描述
不认为用虚拟地址计算页面数是正确的,这种答案仅供参考。

在这里插入图片描述
1为什么错了?银行家算法不就是会限制申请资源的顺序嘛?
避免死锁不会事先采取各种限制措施,去破死锁,而是在资源的动态分配过程中,用某种方法防止系统进入不安全状态。因此S1不会限制用户申请资源的顺序。

在这里插入图片描述
题中查找本意是指访问存储
设命中率为p 则1p+(1-p)(5+1)= 2 化简: 5-5p+1 = 2;解出:p=80%
在这里插入图片描述
为什么是16KB?
分页存储管理中将内存分为若干个物理块或页框,页和块的大小相同。所以内存=物理块数
物理块大小,本题中页的大小2KB,即物理块大小2KB,有8个存储块所以内存大小是8*2=16KB

在这里插入图片描述
因为一开始内存中没有放入任何页面,因此每个不同的页面都要发生至少一次缺页中断进入内存
在这里插入图片描述
为什么不加主存
内存又称主存,是CPU能直接寻址的存储空间。
把内存与外存有机的结合起来使用,从而得到一个容量很大的“内存”,这是虚拟内存。进程不完全载入,就叫虚存。可以分成按需取页和按需取段两种方式。
所以题目里面虚拟内存的大小即为地址寄存器表示的大小2的24次方B。
在这里插入图片描述
页面大小为2KB,1500/2048= 0 所以对应2号物理块,则物理地址为2*2048+1500%2048=5596

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
注意题目中说的是动态分区!,动态分区按照资源的大小分配内存,不存在内部碎片。

在这里插入图片描述
注意题目中使用的最佳适配算法,所以在15MB释放以后,将8MB分配到后面10MB的空闲分区,而把最后申请的6MB分配到15MB的空闲分区。
在这里插入图片描述
磁盘调度的目标是使磁盘的平均寻道时间最少。
寻道时间(seek time)和访问时间(access time)是两个不同的概念,访问时间包含了寻道时间。磁盘调度涉及的是磁头移动,即寻道。

在这里插入图片描述

在这里插入图片描述
三级存储即为辅存。二级存储即为主存,一级存储即为cpu寄存器
在这里插入图片描述
在这里插入图片描述
一个磁片有两个磁面所以计算过程为22120*64/8=3840
在这里插入图片描述
一个磁片两个面。
在这里插入图片描述
注意传输速度的单位是b(位),数据大小的单位是B(字节)1B(字节)=8b(位)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意题目中问的是页面置换次数,不是缺页次数!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

文件管理

1、文件存储空间管理中,空闲盘块链表比位示图节省内存。
2、文件系统中文件的逻辑结构,索引文件结构中的索引表是用来指示逻辑记录逻辑地址的。
3、读文件次序:

  • 按文件名活动文件表找到该文件的目录项。
  • 按存取控制说明检查访问的合法性。
  • 根据目录项指出该文件的逻辑和物理组织形式,将逻辑记录号或个数转换成物理块号。
  • 向设备管理程序发出I/O请求,完成数据交换工作。

4、文件系统管理的对象不包括内存空间。
5、文件的逻辑结构按是否有结构可以把文件分为有结构(记录式文件)和无结构(流式文件)两类。按文件的组织方式可把文件分为顺序文件,索引文件,索引顺序文件。
6、常用的文件存取方法有两种:顺序存取和随机存取。
7、文件目录是文件控制块的有序集合。
8、文件的存储管理实际上是对外存的管理,因为文件通常都存储在外存,只有需要使用时,才会调入内存中。
9、用磁带作为文件存贮介质时,文件只能组织成顺序文件。
10、在文件系统中,位示图可用于磁盘空间的管理。

为什么用磁带作为文件存贮介质时,文件只能组织成顺序文件?

在这里插入图片描述
不是要找文件嘛?为什么是找到对应的目录项的过程。

在这里插入图片描述
B为什么错?D为什么对?

在这里插入图片描述
不知道如何计算。
先算出有2的26次方个簇,然后一个簇用1bit(一位)表示,转换成Bit(字节)单位就是8MB

在这里插入图片描述
为什么不适合随机存取?
可以对比数据结构中的链表,如果要访问链表中的某一项,一般只能从链表头开始依次访问到目标项,而随机存储类似数组访问,只需给出下标就可找到目标项
在这里插入图片描述
为什么是B?

在这里插入图片描述
图形目录如何实现目录共享?

在这里插入图片描述
为什么是流式文件?
流式文件用1bit接着1bit的存储方法,没有任何多余的信息,而记录式往往还需存储一些辅助信息,如文件长度等

知识点总结

1、低级调度又称为进程调度,其调度对象是进程(或内核级线程)。就绪->运行
2、高级调度又称长程调度或作业调度,调度对象是作业。从外存调入内存
3、中级调度又称为内存调度,提高内存利用率和系统吞吐量。
4、OS是与计算机硬件关系最密切的软件。
5、OS提供给程序员的接口是系统调用。
6、简述系统(带通道)进行设备分配需要使用的数据结构及设备分配过程。
答案:
数据结构有:SDT DCT COCT CHCT (2分)
进程提出设备请求,通过SDT查询是否有该设备,若有,进行安全性检测,通过后,通过SDT找到DCT,查询设备状态,通过DCT查询连接的COCT,通过COCT查询控制器状态,通过COCT查询连接的CHCT,通过CHCT查询通道的状态,若通路上的设备都空闲,则完成设备分配。(5分,具体过程酌情给分)

7、可抢占优先级进程调度算法适合紧急事件的处理
8、进程依靠“合作”进程唤醒从阻塞态过渡到就绪态。
9、当多道程序系统中发生死锁时,一组进程相互等待,并进入阻塞状态。
10、程序在并发系统内执行的特点:资源分配的动态性,程序执行的间断性,相互通信的可能性。
11、
12、某一进程运行时因缺乏资源进入阻塞状态时,系统需要进行进程调度。
13、时间片轮转进程调度算法适合多用户分时系统
14、内存动态分区管理中,最佳适应算法的空白分区是按大小递增顺序排列的,首次适应算法的空闲分区以地址递增的次数链接,最坏适应算法的空闲分区按容量递减的次序链接。
15、如果要使装入内存的程序在内存中移动后仍能正常运行,必须要有动态重定位的支持。
16、段页式管理中,地址转换表是每个进程一张段表,每个段一张页表。
17、分页管理能使内存碎片尽可能少,避免内存的整理。分段式存储管理不会产生内部碎片。
18、当程序小于固定分区大小时,也占用一个完整的内存分区空间,这样分区内部就存在空间浪费,这种现象称为内部碎片。
19、页式虚拟存储管理的主要特点是不要求将作业同时全部装入到主存的连续区域。
20、在单处理机计算机系统中,处理机的操作与通道的操作是可以并行操作的。
21、非连续分配管理方式根据分区的大小是否固定,分为分页存储管理方式和分段存储管理方式。在分页存储管理方式中,又根据运行作业时是否要把作业的所有页面都装入内存才能运行,分为基本分页存储管理方式和请求分页存储管理方式。
22、引入缓冲可以提高CPU与设备之间的并行程度。
23、OS实现按名存取的关键在于解决文件的符号名与文件具体的存储地址的转换和映射。
24、在文件系统中,采用位示图主要是实现磁盘空间的分配和回收。
25、在操作系统中,不可中断执行的操作叫原语。
26、如果系统中的所有作业是同时到达的,则使作业平均周转时间最短的作业调度是短作业优先调度算法。
27、系统中有m个进程,若出现死锁时死锁进程的个数为k,则2<=k<=m
28、不让死锁发生的策略分为静态和动态两种,死锁避免属于动态策略。

错题整理

在这里插入图片描述

在这里插入图片描述
错!
哪里错了?
操作系统一般说它是“系统软件”,不是“应用软件”

在这里插入图片描述

在这里插入图片描述
为什么A不行?
如果原来有一个进程还没执行完,即使p进程优先级最高,被唤醒了也要等待当前进程运行完了才能运行。

在这里插入图片描述
RR时间片调度算法,只有时间片使用完了才会出现进程切换。
PSA:优先级调度算法
SJF:短作业优先调度算法
在这里插入图片描述
长程调度又称作业调度,从外存的后备队列中将作业调入内存中,为他们创建进程,分配必要的资源。并将他们放入就绪队列。高级调度主要用于多道批处理系统,分时和实时系统不设置高级调度。

在这里插入图片描述
在这里插入图片描述
管态又叫特权态,系统态或核心态。CPU在管态下可以执行指令系统的全集。通常,操作系统在管态下运行。
目态又叫常态或用户态。机器处于目态时,程序只能执行非特权指令。
I/O等涉及硬件的操作都是特权操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
看清楚D里面说的是没有读者也没有写者的意思!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行第一个fork()执行时作为父进程会创建一个子进程1的时候,第二个fork()执行时,父进程创建子进程2,子进程1创建子进程3,第三个fork()执行时父进程创建子进程4,子进程1创建子进程5,子进程2创建子进程6,子进程3创建子进程7.父进程是本来就存在的,题目中问的是可再生成的进程数,应该是7个子进程,即7个进程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线程

在这里插入图片描述

在这里插入图片描述
B进程
在引入线程的OS中已把线程作为调度和分派的基本单位,,因而线程是能独立运行的基本单位。

注意区分资源分配的基本单位:进程
在引入用户级线程的OS中,调度的基本单位依然是进程!

在这里插入图片描述
C选项可以理解为电脑死机后不去管它,重启即可。
在这里插入图片描述

  • C
    因为可变分区要么不浪费空间要么浪费很大的空间,固定分区的内部碎片一般情况下都会有,段式管理的内部碎片也较大,分页管理只会在最后一页浪费内存空间。
    在这里插入图片描述
  • C

在这里插入图片描述

  • D

在这里插入图片描述

考虑缓冲区满了的时候多个消费者和生产者的情况即可。

在这里插入图片描述

死锁

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
看清楚Allocation和Available!
在这里插入图片描述
在这里插入图片描述
数据块1从外设到用户工作区的总时间为105,在这段时间中,数据块2没有进行操作。在数据块1进行分析处理时,数据块2从外设到用户工作区的总时间为105,这段时间是并行的。再加上数据块2进行处理的时间90,总共是300,

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值