操作系统 - 总结 - 重点知识点

更新时间:2024-04-11 18:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

注意:大题必看否则很难及格!

1、 什么是操作系统: 操作系统是配置在计算机硬件上带第一层软件,是对硬件系统的首

次扩充。

2、 操作系统的作用: OS作为用户与计算机硬件系统之间带接口、OS作为计算机系统资源带管理者、OS实现啦对计算机资源带抽象

3、 操作系统的目标: 有效性、方便性、可扩充性、开放性

4、 操作系统基本特征(并发性 共享性 虚拟性 异步性)其中最重要的特征是 并发性 5、 操作系统带主要功能:处理机管理 存储器管理 设备管理 文件管理 用户接口 6、进程的三种基本状态:就绪---(进程调度)---执行---(I/O请求)---阻塞---(I/O完成)---就绪 执行---(时间片用完)---就绪 (P38页) 7、进程的特征:动态性 并发性 独立性 异步性 8、批处理系统带特征:脱机 多道 成批处理

9、分时系统带特征:多路性 独立性 及时性 交互性

10、常用I/O控制方式有:程序直接控制方式、中断控制方式、DMA方式、通道方式。 11、为什么要引入缓冲区?(1)缓和CPU与I/O设备间速度不匹配的矛盾。(2) 减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。(3) 提高CPU和I/O设备之间的并行性 12、SPOOLing系统由哪几部分组成?以打印机为例说明如何利用该技术实现多个进程对打印机的共享?

组成:输人井和输出井 输入缓冲区和输出缓冲区 输入进程和输出进程

对所有提出输出请求的用户进程,系统接受它们的请求时,并不真正把打印机分配给它们,而是由输出进程在输出井中为它申请一空闲缓冲区,并将要打印的数据卷入其中,输出进程再为用户进程申请一张空白的用户打印请求表,并将用户的打印请求填入表中,再将该表挂到打印机队列上。

这时,用户进程觉得它的打印过程已经完成,而不必等待真正的慢速的打印过程的完成。当打印机空闲时,输出进程将从请求队列队首取出一张打印请求表,根据表中的要求将要打印的数据从输出井传到内存输出缓冲区,再由打印机进行输出打印。打印完后,再处理打印队列中的一个打印请求表,实现了对打印机的共享。

13、什么是死锁?产生死锁的必要条件有哪些?处理死锁的方法? 所谓死锁是指多个进程在运行过程中因争夺资源而造成带一种僵局,当进程处于这种僵持状态时,若无外力作用,他们都将无法再向前推进。必要条件:互斥条件 请求和保持条件 不剥夺条件 环路等待条件 处理方法:预防死锁 避免死锁 检验死锁 解除死锁

以上为简答题可能出带部分 以下全为计算题 做题时照猫画虎就差不多 计算过程比较简单 有不懂得同学赶快在考试之前问一下懂的同学保证你考试能打60分以上。 呵呵 应用题

1、 调度算法(FCFS/SPF 高度优先权 时间片轮转)

有5个进程P1、P2、P3、P4、P5,它们的创建时刻、运行时间和优先数见下表。规定进程的优先数越小其优先级越高。试描述在采用下述调度算法时,各进程的运行过程,并计算平均周转时间(假设忽略进程的调度时间,时间单位为ms)。 (1)先来先服务算法。 (2)剥夺式优先级调度算法。(此问可去掉。增加非剥夺式) 进程 创建时刻 运行时间 优先数 P1 P2 0 2 3 6 3 5 P3 P4 P5 4 6 8 4 5 2 1 2 4 答:

1)先来先服务调度算法:程序的运行过程如下图:

可知:每个进程的周转时间为:T1=3ms; T2=9-2=7ms; T3=13-4=9ms;

T4=18-6=12ms; T5=20-8=12ms。

系统平均周转时间为:T=(3+7+9+12+12)/5=8.6ms

2)剥夺式优先级调度算法:程序的运行过程如下图:

时间(ms)

可知:每个进程的周转时间为:T1=3-0=3ms; T2=20-2=18ms; T3=8-4=4ms;

T4=13-6=7ms; T5=15-8=7ms

系统平均周转时间为:T=(3+18+4+7+7)/5=7.8ms 2、 银行家算法

在银行家算法中,T时刻的状态如下表,试问: (1)T时刻是否安全?

(2)若P2提出请求(1,2,2,2)后,系统能否分配资源? 要求:写出判断的过程。

进程 P0 P1 P2 P3 P4 Allocation Need 0032 1000 1354 0332 0014 0012 1750 2356 0652 0656 1622 Available 答:(1)利用安全性算法对上面的状态进行分析: P0 P3 P1 P2 P4

找到一个安全序列{P0,P3,P1, P2,P4},所以T 时刻系统是安全的。 (2)P2发出请求向量Request(1,2,2,2)后,系统按银行家算法进行检查: ①Request(1,2,2,2)≤Need(2,3,5,6) ②Request(1,2,2,2) ≤Available(1,6,2,2)

③系统进行资源的试分配,并修改相应变量的值

Available=(0,4,0,0) Allocation=(2,5,7,6) Need=(1,1,3,4) ④进行安全性检查:此时对所有进程Need≤ Available=(0,4,0,0)都不成立,系统进入不安全状态。 系统不能将资源分配给P2。

3、 动态分区

.对下图所示的内存分配情况(空白部分表示空闲块)若要申请一块40K的内存,按照最先适应算法、最佳适应算法、最差适应算法分配的首地址分别为什么?能使首地址最大的分配策略是什么?

答: 最先适应算法分配的首地址为:100KB 最佳适应算法分配的首地址为:330KB 空闲区大小80K 最差适应算法分配的首地址为:410KB 空闲区大小 90K 空闲区大小60K 空闲区大小102K

4、 基本分页/段储存管理

1.某分页系统的用户空间共有32个页面,每页1KB,主存空间为16KB,试问: 1) 逻辑地址的有效位是多少?格式如何?物理地址需多少二进制位表示?.

work 1 6 2 2 1 6 5 4 1 9 8 6 2 9 8 6 Need 0 0 1 2 06 5 2 1 7 5 0 2 3 5 6 Allocation 0 0 3 2 0 3 3 2 1 0 0 0 1 3 5 4 0 0 1 4 Work+ Allocation 1 6 5 4 1 9 8 6 2 9 8 6 3 12 13 10 3 12 14 14 finish T T T T T 3 12 13 10 0 6 5 6 能使首地址最大的分配策略是最差适应算法 2) 假定某时刻系统为用户的第0、1、2、3页分别分配的物理块号为2、10、4、7,

试将逻辑地址1023(十进制)转换为对应的物理地址?并以逻辑地址1023(十进制)为例画出地址变换过程。

答:1)法一:用户空间共有32个页面,故逻辑地址中的页号须用5位来描述。(页号范围:0~31);每页1KB,故页内地址须用10位描述。(页内地址范围:0~1023)

所以逻辑地址共有:5+10=15位。 法二:用户空间大小为32页*1KB/页=32 KB,32 KB=215 B,所以逻辑地址共有 15

位。

其格式为:14 10 9

0 页号P 页内地址W 14 内存空间大小为16KB,16 KB=2B,所以物理地址共有 14位。 2)●逻辑地址(1023)D 页号=int(1023/1024)=0

页内地址=102324=1023,由页表得,P=0对应的P’=2 其物理地址=1024*2+1023=3071

(注:若求出的页号超过页表长度,则可以直接判断是非法的逻辑地址)

越界中页表寄存器 页表始址 页表> 页号 内存0 1 2 3 2 10 4 7 逻辑地址1023 0 2 + 物理地址3071 以逻辑地址1023为例的地址变换过程如图:

2、在一段式存储管理系统中,段表如下,试求出下列逻辑地址对应的物理地址?

段号 0 1 2 3 4 内存始址 210 2350 100 1350 1938 段长 500 20 90 590 95 (0,430) (1,10) (2,500) (3,400) (4,122) (5,132) 答:逻辑地址(0,430)或写成[0,430]的物理地址=210+430=640

逻辑地址(1,10)的物理地址=2350+10=2360

逻辑地址(2,500)的物理地址=100+500=600 ╳

因为500>90,所以属于段内地址越界引起的非法地址访问 √ 逻辑地址(3,400)的物理地址=1350+400=1750

逻辑地址(4,122),因为122>95,所以属于段内地址越界引起的非法地址访问

逻辑地址(5,132),因为5>4,所以属于段号越界引起的非法地址访问

5、 页面置换算法(OPT/FIFO/LUR 最佳置换/先进先出/最近最久未使用)

在一个请求分页中若一个作业的页面访问顺序为:432143543215,当系统分配给该作业的物理块数M分别为3和4(且初始均为空)时,分别采用FIFO置换法和OPT置换法求

缺页中断率,并比较得到的结果。(此类题要注意初始时,内存块是否为空?还是预先调入若干页。) 答案:(1)FIFO法(M=3):

序列而定)

(2)OPT法:(M=3)

注意:若初始时,预先调入4,3,2页,则前3次不缺页。(视具体调入的页号与访问

(3)OPT法:m=3时,缺页中断7次,m=4时,缺页中断6次,可见,增加分配给作业

的内存块数,可降低缺页率。 FIFO法:m=3时,缺页中断9次,m=4时,缺页中断10次,可见,增加分配给作

业的内存块数,反而提高了缺页率。

FIFO页面淘汰算法会产生异常现象,对特定的访问序列,当分配给进程的物理页面数增加时,缺页次数反而也增加。称为Belady异常。

注:如何判断一个页是否在内存---根据扩充页表的状态位P。

可以计算每种算法下调页耗费的时间:次数*每页调入的时间。

6、 磁盘调度算法(FCFS/SSTF/SCAN/CSCAN 先来先服务/最短寻道时间优先/扫描算法/循环

扫描)

某一磁盘先后有4个进程提出了磁盘访问请求,按申请到达的先后顺序依次为:43,66,

26,88。系统中磁头停留在磁道号为68的磁道上,且移动臂正沿磁道号递减的方

向移动。求出分别采用FCFS、SSTF和SCAN磁盘调度算法时,磁道的访问顺序及其所需寻道长度(走过多少柱面)。(会描述对应的算法思想) 答:1)FCFS磁盘调度算法:

顺序:43,66,26,88 寻道长度:(68-43)+(66-43)+(66-26)+(88-26)=150 2)SSTF算法:

顺序:66,88,43,26 寻道长度:(68-66)+(88-66)+(88-43)+(43-26)=86 3)SCAN算法:

顺序:66,43,26,88 寻道长度:(68-66)+(66-43)+(43-26)+(88-26)=104

7、 外存分配(显示连接 FAT/NTFS 索引分配)

(a)索引分配:存放在某个磁盘上的文件系统,采用混合索引分配方式(13个地址项,同UNIX系统的i结点结构),若每个盘块大小为512字节,磁盘块需用3个字节描述,则: 1)该文件系统允许文件的最大长度是多少?

析:512/3=170余2,每个盘块最多存放170个盘块地址,所以索引表中表项最多170个。文件限制最大长度(10+170+170^2+170^3)块*512字节=2471040KB 2)将文件的字节偏移量5000,15000,150000转换为物理块号和块内偏移量。 析:5000/512=9余392,所以字节偏移量5000对应逻辑块号为9(从0开始算的),

块内偏移量为392,由于9<10,故可以直接从文件的FCB 的第9个地址项处得到

物理盘块号,块内偏移量为392。

15000/512=29余152,所以字节偏移量15000对应逻辑块号为29(从0开始算的),块内偏移量为1592,由于10<=29<10+170,而29-10=19,故可以直接从文件的FCB 的第10个地址项处得到一次间址块的地址,并从次间址块的第19项(即该块的第57~59这3个字节处)中获得对应得物理盘块号,块内偏移量为152。 (有关150000,略)

3)假定某文件的FCB已在内存,但其它信息均在外存,试分析:为访问该文件中某个位置的内容,最少需要几次启动磁盘?最多需要几次启动磁盘?

析:由于文件的FCB已在内存,为访问文件中的某个位置,最少需要1次启动磁盘(直接地址);最多需要4次启动磁盘(三次间址)。

注:若文件所有信息均在外存?则查找FCB操作也要算一次启盘。故最少需要2次启动磁盘(直接地址);最多需要5次启动磁盘(三次间址)。

(b)某文件系统中,如果磁盘容量为12GB,盘块大小为4KB,采用显式链接分配方式时,问:

(1)每个FAT表项需占几个字节(FAT表项的长度取字节的整数倍)? 答:盘块数=12G/4KB=3M=3KKB每个FAT表项需占3个字节 (2)其FAT需占用多少存储空间? 答:FAT需占用3B*3M=9MB

(3)如果文件A依次占用3、5、7号三个盘块,画出A中各盘块间的链接情况及FAT的情况。

P217页图(超简单必看)

8、 位示图法

某计算机系统采用位示图法(行号、列号和盘块号都从1开始编号)来管理文件存储空

间,且0表示盘块空闲。对于32MB的磁盘,每个盘块的大小为1KB,试具体说明如何为某文件分配一个盘块?(回收?)该系统的位示图容量有多大?(注意:行号、列号也可以从0开始)

答:为某文件分配一个盘块的过程如下:

1)顺序检索位示图,从中找到一个值为0的二进制位。 2)设行号i列号j,计算出相应的盘块号b为:b=n×(i-1)+j 3)修改位示图,令Map[i,j]=1,并将对应块分配给该文件。 位示图容量为:32MB/(1KB*8)=4KB

注:对具体的盘块号b,要会计算出具体的i和j

由于寝室马上要熄灯 今天的资料先写到这里 明天看看有改动带崽改 感谢辛苦带2418工作室 呵呵!

四、综合题(12分)

、操作系统在键盘管理中引入了键盘缓冲区,键盘缓冲区采用循环队列,键盘输入进程pin负责将用户键入的字符存入缓冲区,键盘输出进程pout负责从缓冲区取出字符。假设循环队列的长度为16,请给出利用信号量机制实现进程pin、pout同步及互斥使用键盘缓冲区的算法。要求:

(1)定义所使用的信号量,给出信号量的初值、含义。

(2)给出进程pin、pout的算法(用伪代码给出,不必给出循环队列操作代码)。 答:semaphore mutex=1 //互斥使用键盘缓冲区

semaphore empty=16 // 开始时键盘缓冲区为空的信号量为16 semaphore full=0 // 开始时键盘缓冲区为满的信号量为0 char buffer[16] // 键盘缓冲区 pin()

{while(1)

{从键盘得到一个输入字符 wait(empty) wait(mutex) 将该字符存入buffer signal(mutex) signal(full) }}

pout() {while(1)

{wait(full) wait(mutex) 从buffer中取出一个字符 signal(mutex) signal(empty) }}

本文来源:https://www.bwwdw.com/article/uocp.html

Top