本篇博客只用于总结选择,填空,判断,简答等知识点。答案解释部分参考王道和题解书,部分题目以及答案可能有错误,若有发现,请联系我修正。
关于文件管理和PV操作大题的相关答案及总结,已更新在此前的博客,需要的同学可以自行查看:
【操作系统】信号量机制及PV操作问题总结
【操作系统】文件管理大题总结
1、请求调页系统中,如下算法中,( ) 淘汰自上次访问以来经历时间最长的页面。
A. FIFO B. OPT C. NRU D. LRU
2、下列进程调度算法中,( ) 可能会出现进程长期得不到调度的情况。
A. 静态优先权法 B. 抢占式调度中采用动态优先权法
C. 分时处理中的时间片轮转调度算法 D. 非抢占式调度中采用 FIFO 算法
3、分时系统中,CPU 进程切换需要 3ms,为使得 100 个用户均能在 1 秒内得到响应,可以选择的时间片是( )
A. 2ms B. 50 ms C. 10ms D. 7 ms
( 1 s − 3 m s ∗ 100 ) / 100 = 700 m s / 100 = 7 m s (1s-3ms*100)/100=700ms/100=7ms (1s−3ms∗100)/100=700ms/100=7ms
4、磁盘的 I/O 控制主要采取( ) 方式。
A. 程序 I/O B. 中断 C. DMA D. SPOOLing
5、系统产生死锁是指( ) 。
A. 系统发生重大故障
B. 若干进程同时处于阻塞状态
C. 请求的资源数大于系统提供的资源数
D. 若干进程等待被其他进程所占用而又不可能被释放的资源
6、通道又称 I/O 处理机,它用于实现( ) 之间的信息传输。
A. CPU 与外存 B. CPU 与外设 C. 内存与外存 D. 内存与外设
7、下面叙述正确的是( ) 。
A. 程序段是进程存在的唯一标志
B. 系统通过 PCB 来控制和管理进程,用户可以从 PCB 中读出与本身运行状态相关的信息
C. 当进程有执行状态变为就绪状态时,CPU 现场信息必须被保存在 PCB 中
D. 当进程申请 CPU 得不到满足时,它将处于阻塞状态
关于B选项,用户不能读取PCB,要OS才能读取并调度。
8、在没有快表的情况下,分页系统要访问( )次内存。
A. 1 B. 2 C .3 D. 4
9、计算机操作系统中,若 WAIT、SIGNAL 操作的信号量 S 初值为 3,当前值为-4,则表示当前有( ) 个等待信号量 S 的进程。
A. 1 B. 2 C. 3 D. 4
10、有 10 个进程共享 5 个打印机,若信号量 S 的当前值是-2,则当前有( )个进程提出了打印请求?
A. 10 B. 7 C. 5 D. 2
1、使用共享文件进行通信的方式属于( )通信。
A. 共享存储 B. 实时 C. 消息缓冲 D. 管道
2、若作业采用动态重定位装入技术,该作业在内存中起始地址是 10000,作业中一条指令是“Load A,5000”,即把 5000 单元中的数据装入 A 寄存器,则该指令装入内存后,操作数 5000 ( ) 。
A. 不变 B. 变为 15000 C. 变为 10000 D. 是随机数
3、某设备的串行通信速率是 10000b/s(b:bit),为该设备接口设置一个 4 字节的缓冲寄存器,每隔( ) 需要 CPU 中断一次。
A. 2.5ms B. 3.2ms C. 8ms D. 0.1ms
10000 b / 1000 m s = 10 b / m s 10000b/1000ms=10b/ms 10000b/1000ms=10b/ms,又因为 4 B y t e = 32 b i t 4Byte=32bit 4Byte=32bit终断一次,故每隔 32 / 10 = 3.2 m s 32/10=3.2ms 32/10=3.2ms中断一次。
4、树形目录结构中,用户对文件的首次访问通常采用( )方式。
A. 文件路径名 B. 文件符号名
C. 用户文件描述符 D. 文件存储的物理位置
5、实时系统的引入是为了使计算机( )响应外部事件的请求。
A. 快速 B. 按对象要求时间
C. 按人反应速度 D. 按人动作的速度
6、分页式存储管理中,地址转换工作是由( )完成的。
A. 硬件 B. 地址转换程序 C. 用户程序 D. 装入程序
7、 计算机操作系统中,若 WAIT、SIGNAL 操作的信号量 S 初值为 3,当前值为-2,则表示当前有( ) 个等待信号量 S 的进程。
A. 1 B. 2 C. 3 D. 0
8、银行家算法是一种( )算法。
A. 死锁避免 B. 死锁预防 C. 死锁检测 D. 死锁解除
9、假设磁头当前位于第 105 道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为 35,45,12,68,110,180,170,195,采用 SCAN 调度(电梯调度)算法得到的磁道访问序列是( ) 。
A. 110,170,180,195,68,45,35,12
B. 110,68,45,35,12,170,180,195
C. 110,170,180,195,12,35,45,68
D. 12,35,45,68,110,170,180,195
10、分时系统中,CPU 进程切换需要 2ms,为使得 100 个用户均能在 1 秒内得到响应,应该选择的时间片是( )
A. 2ms B. 50 ms C. 10ms D. 8 ms
( 1 s − 100 ∗ 2 m s ) / 100 = 800 m s / 100 = 8 m s (1s-100*2ms)/100=800ms/100=8ms (1s−100∗2ms)/100=800ms/100=8ms
1、磁盘的I/O控制主要采取 ( ) 方式。
A. 程序I/O B. 中断 C. DMA D. SPOOLing
2、位示图可用于 ( ) 。
A.文件目录的查找 B.磁盘空间的管理
C.内存空间的共享 D.实现文件的保护和保密
3、UNIX文件系统对磁盘空间的管理采用 ( ) 。
A. FAT表法 B. 位示图法 C. 空闲块链接法 D. 空闲块成组链接法
4、在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是 ( ) 。
A.无上邻空闲区,也无下邻空闲区
B.有上邻空闲区,但无下邻空闲区
C.有下邻空闲区,但无上邻空闲区
D.有上邻空闲区,也有下邻空闲
王道课后原题:A 选项会造成空闲区数加 1; BC选项空闲区数不变
有上邻空闲区,也有下邻空闲区 解释:在可变式分区分配方案中,如果一个作业完成后,它的主存空间既有上邻空闲区,也有下邻空闲区,那么这三个空闲区可以合并为一个大的空闲区,因此空闲区的数量会减1
5、产生死锁的主要原因是进程运行推进的顺序不合适及 ( ) 。
A.系统资源不足和系统中的进程太多
B.资源的独占性和系统中的进程太多
C.进程调度不当和资源的独占性
D.资源分配不当和系统资源不足
6、实时系统的引入是为了使计算机 ( ) 响应外部事件的请求
A.快速 B.按对象要求时间
C.按人反应速度 D.按人动作的速度
7、信号量用于解决互斥问题时 ( ) 。
A.其初值必须为正数 B.其初值必须为正整数
C. 其初值可以为0 D. 其初值为1
8、通道在输入输出操作完成或出错时,就形成 ( ) 等候CPU来处理。
A. 硬件故障中断 B. 程序中断 C. 外部中断 D. I/0中断
9、计算机操作系统中,若WAIT. SIGNAL操作的信号量S初值为3,当前值为-2,则表示当前有 ( ) 个等待信号量S的进程。
A.1 B.2 C.3 D.0
10、银行家算法是一种 ( ) 算法
A.死锁避免 B.死锁预防 C.死锁检测 D.死锁解除
1、下列关于管道(Pipe)通信的叙述中,正确的是( )。
A.一个管道可实现双向数据传输
B.管道的容量仅受磁盘容量大小限制
C.进程对管道进行读操作和写操作都可能被阻塞
D.一个管道只能有一个读进程或一个写进程对其操作
2、避免死锁的一个著名的算法是( )。
A.先入先出法 B.银行家算法 C.优先级算法 D.资源按序分配法
3、在 9 个生产者,6 个消费者共享容量为 8 的缓冲区的生产者-消费者问题中,互斥使用缓冲区的信号量 S 的初始值为( )。
A.8 B.1 C.9 D.6
4、一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。
A.先来先服务 B.轮转 C.最高响应比优先 D.均衡调度
5、分布式操作系统与网络操作系统本质上的不同在于( )。
A.实现各台计算机之间的通信 B.共享网络中的资源
C.满足较大规模的应用 D.系统中若干台计算机相互协作完成同一任务
6、假定磁盘块的大小为 1K,对于 1.2MB 的软盘,FAT 需占用( )的存储空间
A. 1KB B. 1.5KB C. 1.8KB D. 2.4KB
1.2 M B / 1 K = 1.2 K 1.2MB/1K=1.2K 1.2MB/1K=1.2K个盘块,1K<1.2K<2K,所以每个盘块在FAT中占据 2 11 2^{11} 211,因此共11位,11位相当于 11 / 8 ≈ 1.5 B 11/8≈1.5B 11/8≈1.5B(由于常用一个字节或半个字节为单位), 1.5 B ∗ 1.2 K = 1.8 K B 1.5B*1.2K=1.8KB 1.5B∗1.2K=1.8KB
7、关于线程以下的说法正确的是( )。
A.同一进程中各线程可以共享进程的主存空间
B.同一进程中多线程不能独立执行
C.线程是资源分配的独立单位
D.线程是就是进程的另外一个称呼
8、正在运行的进程需要向外设上输出数据,此时进程状态从( )。
A.等待态变为就绪态 B.运行态变为等待态
C.就绪态变为运行态 D.运行态变为就绪态
9、有 10 个并发进程,每个进程对资源的最大需求数是 3,当这 10 个进程共享 m 个资源时,m值最小取( )时不会发生死锁。
A. 3 B. 20 C. 30 D. 10
选项不准确,正确答案应为: 10 ∗ ( 3 − 1 ) + 1 < = m , m > = 21 10*(3-1)+1<=m, m>=21 10∗(3−1)+1<=m,m>=21
10、当分时系统用户数为 200 个,对每个用户的响应时间为 1s,时间片最大值是( )。
A. 5ms B. 10ms C. 200ms D. 0.1s
1 s / 200 = 1000 m s / 200 = 5 m s 1s/200=1000ms/200=5ms 1s/200=1000ms/200=5ms
1、对于速率为 9.6KB/s 的数据通信而言,如果设置一个具有 8 位的缓冲寄存器,则 CPU 中断时间和响应时间分别大约为 0.8ms 、 0.1ms 。(OS题解6.4.1-7)
1)己知传输速率为 9.6 K B / s 9.6KB/s 9.6KB/s的数据通信,产生中断的频率为 9.6 K H Z 9.6KHZ 9.6KHZ,引用了 8 位的缓冲寄存器可使中断频率降为 1 / 8 1/8 1/8,即 9.6 ∗ 1024 / 8 9.6*1024/8 9.6∗1024/8,那么 CPU 的中断时间为: T 1 = 8 / ( 9.6 ∗ 1024 ) ≈ 0.8 m s T1=8/(9.6*1024)≈ 0.8ms T1=8/(9.6∗1024)≈0.8ms
2) CPU 的响应时间T2 为: T 2 = 1 / ( 9.6 ∗ 1024 ) ≈ 0.1 m s T2=1/(9.6*1024)≈ 0.1ms T2=1/(9.6∗1024)≈0.1ms. 注意:若再增设一个 8 位的缓冲寄存器,响应时间也可放宽到 0.8ms。
2、如果计算机连接了三个同类型的激光打印机及五个同类型的喷墨打印机,需要安装的驱动程序数目是 2 。
相同的设备无论有多少个,在一个系统中只需要一个驱动,也即一种设备需要一个驱动。
3、在具有 n 个进程的系统中,允许 m 个进程(n≥m≥1)同时进入它们的临界区,其信号量 S 的值的变化范围是 [m-n~m],处于等待状态的进程数最多有 n-m 个。
4、动态分区的 循环首次适应 算法可以使内存中的空闲分区分布得更均匀。
5、UNIX 的目录项由文件名和 索引节点编号 构成。
6、若干事件在同一时间间隔内发生称为 并发 。
7、虚拟存储器具有 多次性 、 对换性 和虚拟性三大特征。
8、进程由程序、数据集合和 PCB 组成。
9、同步机制要遵循的四条规则分别是空闲让进、忙则等待、有限等待及让权等待 等待。
10、若系统中有 n 个用户进程,且当前 CPU 在用户态下执行,最多可有 n-1 个用户进程处于就绪态。
11、分时操作系统的主要特点是:多路性、独立性、 交互性、及时性 。
12、产生死锁的根本原因是可共享资源不足,以及进程推进顺序非法 。
13、影响缺页次数的因素主要有: 分配给作业主存块数及页面本身的大小,程序的编制方法和页面调度算法 。
14、Shell 的主要功能是 命令解释 。
15、某页式存储管理系统中,地址寄存器的长度为 24 位,其中页号占 14 位,主存的块大小应是 2 10 2^{10} 210 字节,程序最多占 2 14 2^{14} 214页
地址寄存器长度为24位,其中页号占14位,则页内地址占10位,分页大小与主存块大小相同,因此, 主存的分块大小是 2 10 2^{10} 210字节。页号大小为14位则程序最多占 2 14 页 2^{14}页 214页
1、辅存空闲块的管理方法(写出三种以上)空闲表法、空闲链表法、位示图法,成组链接法 。
2、常用的存储保护技术有:界限寄存器、环保护方式 。
3、分页存储管理的置换策略有(写出三种以上):OPT、FIFO、LRU、CLOCK。
4、有两个程序:A程序按顺序使用CPU 10秒、 设备甲5秒、 CPU 5秒、 设备乙10秒、CPU 10秒;B程序按顺序使用设备甲10秒、 CPU 10秒、 设备乙5秒.、CPU 5秒、设备乙10秒。在顺序环境下,执行上述程序,CPU的利用率约为 ( 50%) ,若允许它们采用非抢占方式并发执行,若不考虑切换等开销,则CPU的利用率约为 (88.9% ) 。
5、在页式和段式存储管理中, 页式 存储管理提供的逻辑地址是连续的。
6、UNIX进程间的通信机制主要有(写出四种或以上): 管道通信、消息队列、信号量、共享内存、Socket 。
7、设备独立性概念的要点是:应用程序独立于具体使用的物理设备 。
8、设备的1/O方式主要有程序轮询方式. 中断方式和 DMA 方式。
9、覆盖技术与虚拟存储器都能扩充内存,它们之间的主要区别是: 覆盖技术中程序段最大长度受限于内存,而虚拟存储器中程序的大小则不受内存限制。
1、为实现 CPU 与外部设备的并行工作, 系统必须引入通道设备作为硬件基础。
2、在磁盘调度策略中有可能使 I/O 请求无限期等待的调度算法是SSTF最短寻道优先算法 。
3、在(高响应比优先)的作业调度算法中,当各个作业等待时间相同时,运行时间短的作业将得到优先调度;当各个作业要求运行的时间相同时,等待时间长的作业得到优先调度。
3、UNIX 的文件系统空闲空间的管理采用的是(成组链接)法。
4、同步机制要遵循的四条规则分别是空闲让进、忙则等待、 有限等待 及让权等待。
5、文件的三种物理结构是:顺序结构、链式结构 、索引结构。
6、分时系统的特点是:多路性 、交互性、独占性和及时性。
7、虚拟存储器的特征是: 离散性 、多次性、对换性和虚拟性。
8、n 个进程共享 m 个同类资源(n≥m≥1,设信号量初值 S=m),S 的值可能的变化范围是 [m-n~m] ,处于等待状态的进程数最多有n-m个
1.系统调用中的被调用程序运行在系统态。 T
2.银行家算法采用了死锁预防的方法。F
银行家算法是死锁避免算法。
3.文件系统采用树形目录结构可以节省内存空间。F
树型目录结构的优点有:
(1) 解决了文件重名问题。(2) 有利于文件的分类。
(3) 提高检索文件的速度。(4) 能进行文件存取权限的控制。
4.虚存管理允许用户程序大于主存容量,而且还可以提高系统的吞吐量。T
虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统,其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
虚拟存储器具有以下主要特征:(1)多次性。(2) 对换性。(3) 虚拟性。
5.SPOOLing
系统实现了设备的独立性。T
6.分时系统的时间片越小,用户的满意度就越高。F
响应时间的定义:从提交第一个请求到产生第一个响应所用时间。
响应时间=进程数*时间片大小,当进程数一定时,时间片越小,响应时间越短。
7.管程每次只允许一个进程进入。T
管程利用共享数据结构抽象地表示系统中的共享资源,并且将对该共享数据结构实施的特定操作定义为一组过程。
管程具有以下的特点:
(l) 管程内的局部变量只能被局部于管程内的过程所访问,反之亦然,即局部于管程内的过程只能访问管程内的变量和形式参数。
(2) 任何进程只能通过调用管程提供的过程入口进入管程。
(3) 任一时刻,最多只能有一个进程在管程中执行。
8.操作系统既可看作虚拟机,也可看作资源管理器。T
9.在作业调度时,采用最高响应比优先的作业调度算法可以得到最短的作业平均周转时间。F
短作业优先算法SJF的平均周转时间最短。
10.并行程序设计中,使用信号量比使用管程更能保证程序的正确性。F
使用信号量来处理同步问题时,同步操作 wait(s) signal(s) 分散在各个进程中,并遍布整个程序,这不仅给系统的管理和程序的维护和修改带来了麻烦,而且还会因同步操作的使用不当造成死锁。
1、设备的独立性是指 I/O 设备具有独立执行 I/O 功能的一种特性。F
设备独立性,是指应用程序与具体使用的物理设备无关。引入设备独立性,可增加设备分配的灵活性,提高设备的利用率,并且使得I/O重定向更易于实现。
2、并行程序设计中,使用信号量比使用管程更能保证程序的正确性。F
3、避免死锁的方法一般是以降低资源利用率为代价的。T ?
避免死锁的方法通常需要预先分配资源,或者限制资源的请求和分配,这都会降低资源的利用率
4、对一个具有三级索引表的文件,存储一条记录通常需要三次访问磁盘。F
需要四次访问磁盘操作,3次磁盘索引块,1次读取数据。
5、分页存储管理比分段管理更适合动态链接的存储方式。F
6、SPOOLing 系统允许用户随时将数据送入到输出井中。T
SPOOLing系统实现了对I/O 设备的虚拟,只要输入设备空闲, SPOOLing可预先将输入数据从设备传送到输入井中供用户程序随时读取。
在SPOOLing系统中,用户程序可随时将输出数据送到输出井中,待输出设备空闲时再执行数据输出操作。
7、UNIX 系统中,所有的设备、磁盘目录都被看作是文件。T
8、虚拟存储器的最大容量由计算机地址结构确定。T
虚拟存储器的最大容量由CPU的地址长度决定。
虚存的实际容量由CPU的地址长和外存的容量决定,
9、分页式存储管理中,页面越小,存储器的利用率就越高。F
在分页系统中,若选择过小的页面大小,虽然一方面可以减小内存碎片,起到减少内存碎片总空间的作用,有利于内存利用率的提高,但另一个方面却会造成每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存。可能会导致页表无法完全装入内存,从而降低存储器的利用率
10、分页存储管理比分段存储管理在内存利用率更高些。T
分页是为了提高内存的利用率,分段是为了更好的满足用户的需求,所以分页比分段的内存利用率更高
1、外存的连续组织方式比链式组织方式更能节省存储空间。F
链式组织方式中链接指针占用一定的空间。
2、分页管理比分段管理更适合动态链接的存储方式。F
分段管理比分页管理更适合动态链接的存储方式。
3、管程每次只允许一个进程进入。T
管程利用了共享数据结构抽象地表示系统的共享资源,而把对该数据结构实施的操作定义为一组过程。进程对共享资源的申请,释放等操作,都通过这个过程来实现。这个过程还可以根据资源地情况,或接受或者阻塞进程地访问,确保每次仅有一个进程使用共享资源,这样就可以统一管理对共享资源地所有访问,从而实现进程互斥。
4、进程在临界区内执行是不允许中断的。T
5、磁盘调度算法中,最短寻道时间优先(SSTF)算法会产生“饥饿”现象。T
6、操作系统提供给程序员的接口是库函数。F
操作系统提供给程序员的接口是系统调用,库函数是由程序设计语言提供的。
7、在虚存系统中,只要磁盘空间无限大,作业就能拥有任意大的地址空间。F
8、所有进程都进入等待状态时,系统陷入死锁。F
死锁产生的四个必要条件: 互斥条件、不可剥夺条件、请求和保持条件.循环等待条件。题目仅知道“所有进程都进入等待状态“,并不满足上述提到的四个条件。考虑系统中只有一个打印机的场景,且打印机被某个进程所占用,那么余下的进程若申请使用打印机,则均会进入阻塞态,进入阻塞队列,待打印机空闲,打印机资源会分配给下一个需要的进程,此场景满足“所有进程都进入等待状态”,但此时系统并无陷入死锁。
9、对于一个具有三级索引表的文件,存取一个记录需要访问三次磁盘。F
10、并发性是指若干事件在同一时刻发生。F
并行性是指若千事件在同一时刻发生:并发性是指若干事件在同一时间段内发生。
1、根据死锁定理,资源分配图中存在环路,就一定会产生死锁。F
系统状态S为死锁的条件是当且仅当S状态的资源分配图是不可完全简化的,该条件为死锁定理。
2、虚拟存储器的容量是由用户和辅存所决定的。F ?
虚拟存储器的最大容量是由计算机的地址结构决定的,虚拟存储器的实际容量是由内存容量与外存容量之和决定的。
3、阻塞队列可能包含系统进程。T
4、只要破坏产生死锁的四个必要条件中的其中一个就可以预防死锁的发生。T
产生死锁必须同时满足以下4个条件,只要其中任意一个条件不成立,死锁就不会发生。
(1)互斥条件(2) 不剥夺条件(3) 请求并保持条件(4) 循环等待条件
5、优化文件物理块的分布可显著地减少寻道时间,因此能有效地提高磁盘 I/O 的速度。T
6、字符设备指的是只能存取文本符号的设备。F
类。按信息交换的单位,可将设备分为块设备和字符设备两
类。块设备(如磁盘、磁带)的信息存取以数据块为单位,其传送速率较高,对块设备的访问可以寻址; 字符设备(如终端、打印机)的信息存取以字符为单位,其传送速率较低,对字符设备不能寻址。
7、在用于同步时,信号量的初值设为负数表示缺少的资源个数。F
信号量当前值即为当前可用该类资源的数目,若为负数表示请求该资源的被阻塞的进程数.
8、分时系统的时间片越小,响应速度越快,因此用户的满意度就越高。F
响应时间是指从提交第一个请求到产生第一个响应所用的时间;响应时间=进程数*时间片大小,当进程数一定时,时间片越小,响应速度越快。
9、在内存利用率方面,分页存储管理比分段存储管理更高些。T
10、任何手段都无法实现计算机系统资源之间的互换。F
1、什么是文件目录、目录文件,各起什么作用?
- 文件目录:为实现“按名存取”,必须建立文件名和文件物理位置之间的映射关系,这种文件的索引称为文件目录。
- 目录文件:将文件目录以文件的形式保存在外存空间,这个文件就被称为目录文件。
- 文件目录实现了“按名存取”,提高了计算机检索速度,缩短了文件访 问时间,同时解决了重名问题;目录文件实现了文件目录的管理。
2、多级树形目录的文件系统,怎样才能提高查找文件的速度?
- 路径名,可为每个进程设置一个当前目录(工作目录),进程对各文件的访问都附对于当前目录而进行。
- Hash方法,系统利用用户提供的文件名并将它转换为文件目录的索引值,再利用该索引值到目录中去查找,这将提高检索速度。
3、多线程系统与传统多进程系统相比有哪些优点?
- 引入线程之后,不仅进程之间可以并发运行,同一进程中的线程也可以并发运行,提高了系统的并发性。
- 线程是程序执行的最小单位,进程是资源分配的最小单位,线程只拥有运行必不可少的资源,因此开销小,切换速度也比进程快,提高了系统的效率。
- 由于进程是互相独立的,因此进程的通信机制相对比较复杂,而同一进程的线程之间共享资源,所以通信更方便。
4、分页存储管理和分段存储管理的主要区别有哪些?
- 页是信息的物理单位,分页完全是系统的行为,对用户是不可见的,段是信息的逻辑单位,分段的目的是更好地满足用户需要。
- 页的大小固定且由系统决定,段的大小不固定,取决于用户所编的程序。
- 分页的用户程序地址空间是一维的,是系统的行为,分段的用户地址空间是二维的,是用户的行为。
5、用伪代码或文字描述 fork()系统调用是如何创建进程的。
fork()
系统调用的主要任务是创建进程控制块 PCB 。具体操作过程是:先从 PCB 集合中申请一个空闲的 PCB, 再为新进程分配内存等资源,并根据父进程提供的参数和分配到的资源情况来对 PCB 进行初始化,最后将新进程插入就绪队列。
6、 什么是信号(Signal),有什么用途?
信号是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常,即信号用于传递消息。
7、实时操作系统与分时操作系统的本质区别是什么?
实时操作系统与分时操作系统的本质区别是在于及时性。实时系统能对控制对象做出及时反应,可靠性高,响应及时。分时系统可让多个用户同时使用计算机,每个用户的请求可以得到响应,但在及时性方面远不如实时系统。
8、多线程系统与传统多进程系统相比有哪些优点?(2次)
(1)调度开销相对较小。
(2)程序逻辑和控制方式简单,且无需跨进程边界。
(3)所有线程可以直接共享内存和变量等。
(4)线程方式消耗的总资源比进程方式好。
9、为什么说多级反馈队列调度算法能较好地满足各类用户的需求?
多级反馈队列调度算法能较好地满足各种类型用户的需要。
①对终端型作业用户而言,由于它们提交的作业大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第1级队列所规定的时间片内完成,便可使终端型作业用户感到满意;
②对于短批处理作业用户而言,它们的作业开始时像终端型作业一样,若仅在第1级队列中执行一个时间片即可完成,便可获得与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;
③对于长批处理作业用户而言,它们的长作业将依次在第级队列中运行,然后按时间片轮转方式运行,用户不必担心其作业长期得不到处理。
10、分析并给出下面程序的输出结果?
int main(void) {
printf(“1111\n”);
fork();
printf(“2222\n”);
fork();
printf(“3333\n”);
fork();
printf(“4444\n”);
// 1111
// 2222
// 2222
// 3333
// 3333
// 3333
// 3333
// 4444
// 4444
// 4444
// 4444
// 4444
// 4444
// 4444
// 4444
}
解释:fork()函数会创建一个新的进程,新的进程从fork()返回的地方开始执行,也就是说,fork()之后的代码会在父进程和子进程中都执行一次。所以,第一个fork()会产生一个子进程,这两个进程都会执行第二个fork(),产生两个新的进程,这四个进程都会执行第三个fork(),产生四个新的进程,所以最后会有8个进程执行printf(“4444\n”)。
11、使用文件前为什么要先打开文件?简述打开文件/home/user01/myfile的过程?
(1)原因:在使用文件之前,进程必须打开相应文件。打开文件的目的是把文件属性和磁盘地址表等信息装入内存,以便后续系统调用能够快速存取该文件。
(2)打开文件/home/user01/myfile 的过程:
- 根据给定的文件名查找文件目录。根据/home/user01/的路径找到文件 myfile ,把相应的文件控制块调入内存的活动文件控制区。
- 检查打开文件的合法性。若用户指定的打开文件之后的操作与文件创建时规定的存取权限不符,则不能打开文件,返回不成功标志。若权限相符,则建立文件系统内部控制结构之间的通路联系,返回相应的文件描述字 fd 。
12、页式虚拟存储管理采用位示图技术,设主存有16384块,采用32位的512个字作为位示图。若块号字号和位号(从高位到低位)分别从1. 0. 0开始。试计算:5998块对应的字号和位号:198字的20位对应于哪一块?
(1)5998块对应的字号和位号: 5998 / 32 = 187字,5998 % 32 - 1 = 13位
(2)198字20位对应的块号:应该是198 * 32 + 20 + 1 = 6357块
13、进程控制块包含哪些类型的信息?进程控制块的信息太多内存放不下应该怎样解决?
PCB 包含了进程描述信息、进程控制和管理信息、资源分配清单和处理机相关信息。当 PCB 的信息太多,内存放不下时,可利用虚拟内存机制和缺页中断机构等进行解决。
14、操作系统中为什么要引入缓冲技术,缓冲池技术有什么优点?
引入缓冲技术的主要目的:
缓和 CPU 与 I/O 设备间速度不匹配的矛盾;减少对 CPU 的中断次数,放宽 CPU 对中断响应时间的要求。提高 CPU 与 I/O 设备之间的并行性;
缓冲池技术的优点:
(1)增强系统的处理能力。(2)提高资源的利用率。
15、分析下面的程序输出多少个A和B?
int main(void) {
for (int i = 0; i < 2; i++) {
fork();
printf("A");
}
printf("B\n");
}
由上图所示,程序会输出8个A和4个B。程序中有一个循环,循环体中有一个fork()函数和一个printf(“A”),所以每次循环都会创建一个新的进程,并且每个进程都会打印一个"A"。因此,第一次循环会创建一个新的进程,打印两个"A";第二次循环会创建两个新的进程,打印四个"A"。所以总共会打印出8个"A"。另外,每个进程在结束时都会打印一个"B",所以总共会打印出4个"B"。
16、举例说明什么是实时系统中的优先级反转(或倒转)。(5 分)
优先级反转是实时系统中的一个问题,它发生在一个高优先级的任务等待一个低优先级任务释放资源的时候。例如,假设有三个任务A、B和C,它们的优先级从高到低依次是A、B、C。任务A需要一个资源,但是这个资源正在被任务C使用,因此任务A必须等待。然而,此时任务B开始运行,由于它的优先级高于任务C,所以任务C被挂起,任务B开始执行。这就导致了任务A必须等待任务B完成,然后任务C才能继续运行并释放资源,最后任务A才能获取资源并继续运行。这就是优先级反转,即高优先级的任务必须等待低优先级的任务。
17、试比较内存管理和外存管理的异同点。(5 分)
基本功能:内存管理的基本功能包含了内存空间的分配、回收、内存保护、对换、内存扩充等方面;而对外存管理的基本功能则只是对外存空间的分配和回收。
分配方式:它们都可采用连续分配或离散分配方式,且都以离散分配方式为主。
分配算法或机制:对于连续分配方式,内存与外存管理中的分配和回收算法类似,主要有最先适应算法等;在离散分配方式中,两者采用的机制不同,内存管理主要是利用页(段)表;而在外存管理中,则主要利用文件分配表FAT或NTFS
18、简述设备驱动程序的主要功能。(5 分)
设备驱动程序是I/O系统的高层与设备控制器之间的通信程序,其主要有以下功能:
1、对设备初始化和释放;
2、把数据从内核传送到硬件,从硬件读取数据;
3、读取应用程序传送给设备文件的数据和回送应用程序请求的数据;
4、检测和处理设备出现的错误。
19、采取哪些措施才能提高文件检索的速度。(2次)(5 分)
使用索引:通过为文件建立索引,可以快速定位到文件的位置,从而提高检索速度。
使用哈希表:哈希表可以将文件名映射到文件的存储位置,从而提高检索速度。
使用缓存:将经常访问的文件存储在缓存中,可以减少磁盘I/O操作,从而提高检索速度。
文件系统优化:通过优化文件系统的结构和算法,可以提高文件的检索速度。
20、fork 为创建进程的系统调用,下面的程序创建多少个子进程? 输出多少个 A 和 B? (5 分)
int main(void){
for (int i = 0; i < 3; i++) {
if (fork() == 0)
printf("A");
}
printf(“B\n”);
}
答案:12个A,8个B
例1:
int main() {
fork();
fork();
printf("hello world\n");
exit(0);
}
int main() {
for(int i = 0;i < 2;i++) {
fork();
printf("A\n");//遇到\n会自动刷新缓冲区
}
exit(0);
}
int main() {
for(int i = 0; i < 2; i++) {
fork();
printf("A");//不会刷新缓冲区
}
exit(0);
}
int main() {
fork() || fork();
printf("A\n");
exit(0);
}
例5:
int main() {
fork() && fork();
printf("A\n");
exit(0);
}
int main() {
fork();//fork1
fork() && fork() || fork();//fork2 fork3 fork4
fork();//fork5
printf("A\n");
}
fork1执行后,新建一个子进程,因为进程过多,且这两个父子进程完全相同,所以只分析一边。
fork2执行后,分为两种情况,父进程>0继续执行fork3,子进程返回0不执行第fork3执行fork4。
fork3执行后,又分为两种情况,父进程>0,&&运算符后依旧为真,不执行fork4,子进程返回0,&&运算符后为假,执行fork4。
fork4,fork5均无特殊情况出现。
最后统计一下父进程下共10个进程,子进程同样也有10个,总计20个进程。