2012年408真题操作系统篇

您所在的位置:网站首页 操作系统安全序列 2012年408真题操作系统篇

2012年408真题操作系统篇

2024-04-19 08:38| 来源: 网络整理| 查看: 265

一、单项选择题

第01~40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。

23.

下列选项中,不可能在用户态发生的事件是( )。

A. 系统调用

B. 外部中断

C. 进程切换

D. 缺页

解答:

本题考察“在用户态发生”,而非“在用户态执行”。

A错误。系统调用是由用户态程序主动发起的请求,用于请求操作系统提供特权操作或资源访问权限。用户态程序可以通过系统调用接口向操作系统发起请求并执行相应的内核函数。

B错误。外部中断是由外部设备或事件触发的中断请求,可能发生在用户态。外部中断通常在内核态进行处理。

C正确。进程切换是操作系统调度器根据调度策略从一个运行的进程切换到另一个进程的操作。用户态程序是无法直接调用进程切换的,程序只能通过系统调用接口向操作系统发送某些请求,如fork、exec、yield等,然后由操作系统内核在内核态中处理这些请求,处理请求的过程中可能需要进行进程切换。进程切换涉及到修改和管理进程的上下文信息,包括保存和恢复寄存器状态、切换页表、更新进程控制块等操作。

D错误。缺页指的是程序访问的内存页不在物理内存中,需要通过页表映射和磁盘交换等机制从磁盘加载到内存中才能继续执行。当用户态程序访问一个缺页时,处理器会触发缺页异常,并由操作系统在内核态进行缺页处理。

本题选C。

24.

中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存而子程序调用不需要保存其内容的是( )。

A. 程序计数器

B. 程序状态字寄存器

C. 通用数据寄存器

D. 通用地址寄存器

解答:

中断处理需要保存的内容通常包括程序计数器(保存当前指令的地址)、程序状态字寄存器(保存标志位和其他与程序状态相关的信息)和所需保留的通用寄存器(包括一些通用数据寄存器和通用地址寄存器),以保护现场并确保在中断处理完成后能够正确地恢复原来的执行状态。

子程序调用需要保存的内容通常包括程序计数器(保存当前指令的地址)、栈指针(保存当前栈的位置)以及所需保留的通用寄存器(包括一些通用数据寄存器和通用地址寄存器),以确保在子程序执行完毕后能够正确返回到调用者,并保护调用者的数据。

综上,中断处理一定会保存而子程序调用不需要保存其内容的是程序状态字寄存器。

本题选B。

25.

下列关于虚拟存储器的叙述中,正确的是( )。

A. 虚拟存储只能基于连续分配技术

B. 虚拟存储只能基于非连续分配技术

C. 虚拟存储容量只受外存容量的限制

D. 虚拟存储容量只受内存容量的限制

解答:

A错误,B正确。非连续分配技术则可以将虚拟地址空间中的不同部分映射到内存或外存的任意位置。根据所用的存储器映像算法,虚拟存储器管理方式主要有段式、页式、和段页式三种。

C和D错误。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。

本题选B。

26.

用户程序发出磁盘I/O请求后,系统的正确处理流程是操作系统的I/O子系统通常由四个层次组成,每一层明确定义了与邻近层次的接口。其合理的层次组织排列顺序是( )。

A. 用户级I/O软件、设备无关软件、设备驱动程序、中断处理程序

B. 用户级I/O软件、设备无关软件、中断处理程序、设备驱动程序

C. 用户级I/O软件、设备驱动程序、设备无关软件、中断处理程序

D. 用户级I/O软件、中断处理程序、设备无关软件、设备驱动程序

解答:

用户程序发出磁盘 I/O 请求后,系统的处理流程是用户程序→系统调用处理程序→设备驱动程序→中断处理程序。四个步骤分别对应用户级I/O软件、设备无关软件、设备驱动程序、中断处理程序。

本题选A。

27.

假设5个进程P0、P1、P2、P3、P4共享三类资源R1、R2、R3,这些资源总数分别为18、6、22。T0时刻的资源分配情况如下表所示,此时存在的一个安全序列是( )。

A. P0, P2, P4, P1, P3

B. P1, P0, P3, P4, P2

C. P2, P1, P0, P3, P4

D. P3, P4, P2, P1, P0

解答:

先将表格转化为已分配资源、尚需资源、可用资源三栏的形式。进程Pi尚需资源=进程Pi资源最大需求-进程Pi已分配资源,可用资源=资源总数-所有进程已分配资源之和。

使用银行家算法,保证可用资源大于或等于某进行尚需资源,该进程可以输出到序列,并回收该进程已分配资源。若所有进程均可被输出到序列,则存在安全序列,该输出序列为安全序列,否则不存在安全序列。

这道题安全序列比较多。

方法一:直接推导

根据第一步能够输出到序列的进程分情况讨论。

总共有3×3!+4!+4!=66种安全序列。

将选项逐一和安全序列进行比对,只有D正确。

本题选D。

方法二:用选项模拟

只有D能够模拟成功。

本题选D。

28.

若一个用户进程通过read系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )。

Ⅰ. 若该文件的数据不在内存中,则该进程进入睡眠等待状态

Ⅱ. 请求read系统调用会导致CPU从用户态切换到核心态

Ⅲ. read系统调用的参数应包含文件的名称

A. 仅Ⅰ、Ⅱ

B. 仅Ⅰ、Ⅲ

C. 仅Ⅱ、Ⅲ

D. Ⅰ、Ⅱ和Ⅲ

解答:

Ⅰ正确。若该文件的数据不在内存中,产生中断,该进程暂时进入睡眠等待状态(阻塞态)。这是因为操作系统需要将磁盘中的数据加载到内存中,这个过程可能需要一定的时间。当数据准备好后,操作系统会通知进程,使其从睡眠状态转变为可执行状态(就绪态),并继续执行读取操作。

Ⅱ正确。请求read系统调用会导致CPU从用户态切换到核心态。

Ⅲ错误。read系统调用的参数应包含文件的描述符 (file descriptor),而不是文件的名称。read系统调用是用于从文件描述符 (file descriptor) 读取数据的操作。其参数包括:

文件描述符 (file descriptor) :read系统调用的第一个参数是标识要读取的文件的文件描述符。文件描述符是一个非负整数,由操作系统分配给打开的文件。通常,0表示标准输入 (stdin),1表示标准输出 (stdout),2表示标准错误 (stderr),而其他大于2的整数表示其他打开的文件。缓冲区 (buffer):read系统调用的第二个参数是指向用于存储读取数据的缓冲区的指针。读取的数据将被复制到该缓冲区中。缓冲区可以是一个字符数组或者任意类型的指针。大小 (size):read系统调用的第三个参数是指定要读取的字节数。它表示缓冲区的大小,read系统调用将尝试从文件中读取指定数量的字节,并将其存储到缓冲区中。

读取操作的返回值是一个整数,表示实际读取的字节数。如果读取成功,返回值将是大于等于0的值;如果达到文件末尾,返回值将是0;而如果发生错误,返回值将是-1,并且错误码会被设置以指示特定的错误类型。

综上,仅Ⅰ、Ⅱ正确。

本题选A。

29.

一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下:

P1:计算60ms,I/O80ms,计算20ms

P2:计算120ms,I/O40ms,计算40ms

若不考虑调度和切换时间,则完成两个作业需要的时间最少是( )。

A. 240ms

B. 260ms

C. 340ms

D. 360ms

解答:

P2比P1晚5ms到达,P1先占用CPU。设P1到达时刻为0,画出作业运行的甘特图(也称横道图)如下:

采用图(a)或图(b)的画法都可以。

本题选B。

30.

若某单处理器多进程系统中有多个就绪态进程,则下列关于处理机调度的叙述中,错误的是( )。

A. 在进程结束时能进行处理机调度

B. 创建新进程后能进行处理机调度

C. 在进程处于临界区时不能进行处理机调度

D. 在系统调用完成并返回用户态时能进行处理机调度

解答:

由于单处理器同一时刻只能处理一个进程。所以没有进程占用处理机的情况下进行处理机调度是没有任何问题的,A、B、D正确。

在很多情况下,进程访问临界区并非原子操作,如果要在进程处于临界区时进行处理机调度,执行中断处理即可,C错误。

本题选C。

31.

下列关于进程和线程的叙述中,正确的是( )。

A. 不管系统是否支持线程,进程都是资源分配的基本单位

B. 线程是资源分配的基本单位,进程是调度的基本单位

C. 系统级线程和用户级线程的切换都需要内核的支持

D. 同一进程中的各个线程拥有各自不同的地址空间

解答:

A正确。不管系统是否支持线程,进程都是资源分配的基本单位。

B错误。线程是操作系统中调度的基本单位,它是进程内的执行流。线程共享进程的资源,包括内存空间、文件句柄和其他系统资源。正确表述应该是“进程是资源分配的基本单位,线程是调度的基本单位”。

C错误。不同类型的线程切换方式不同。系统级线程是由操作系统内核创建和管理的线程,其切换需要内核的支持。而用户级线程(也称为轻量级线程)是在用户空间实现的线程,其切换由用户级线程库负责,不需要内核的干预。

D错误。同一进程中的各个线程共享相同的地址空间,即它们在同一进程的上下文中执行,并访问相同的内存和其他资源。

本题选A。

32.

下列选项中,不能改善磁盘设备I/O性能的是( )。

A. 重排I/O请求次序

B. 在一个磁盘上设置多个分区

C. 预读和滞后写

D. 优化文件物理块的分布

解答:

A错误。通过对 I/O 请求进行重新排序,可以减少磁盘寻道时间和旋转延迟,以提高磁盘设备的 I/O 性能。

B正确。将磁盘分成多个分区可以在逻辑上组织和管理文件,但并不能直接改善磁盘设备的 I/O 性能。

C错误。预读是指在读取一个块时,预先读取相邻的块到缓存中,以供之后的读取请求使用,从而减少磁盘访问延迟。滞后写是指将写操作先缓存起来,并在合适的时机一次性批量执行,以减少频繁的磁盘写入操作。这些技术可以优化磁盘设备的 I/O 性能。

D错误。通过合理地安排文件的物理块分布,例如将频繁访问的文件块放置在磁盘上相邻的区域,可以减少寻道时间,提高磁盘设备的 I/O 性能。

本题选B。

二、综合应用题

第41~47小题,共70分。

45.

(7分)

某请求分页系统的局部页面置换策略如下:系统从0时刻开始扫描,每隔5个时间单位扫描一轮驻留集(扫描时间忽略不计),本轮没有被访问过的页框将被系统回收,并放入到空闲页框链尾,其中内容在下一次被分配之前不被清空。当发生缺页时,如果该页曾被使用过且还在空闲页框链表中,则重新放回进程的驻留集中;否则,从空闲页框链表头部取出一个页框。

假设不考虑其他进程的影响和系统开销,初始时进程驻留集为空。目前系统空闲页框链表中页框号依次为32、15、21、41。进程P依次访问的是:

、、、、、、。请回答下列问题。

(1) 访问时,对应的页框号是什么?

(2) 访问时,对应的页框号是什么?说明理由。

(3) 访问时,对应的页框号是什么?说明理由。

(4) 该策略是否适合于时间局部性好的程序?说明理由。

解答:

方法一:增加标记位

为了方便讨论,驻留集的页表中每个记录增加标记位,表示本轮该页面是否被访问,若该页面被访问,则标记位为1,否则标记位为0。这样每次访问某页只需要将该页的页表项中的访问位设为1,每次扫描将访问位为1的页表项的访问位修改为0,将访问位为0的页表项的页框回收。

初始时系统空闲页框链表中页框号依次为32、15、21、41。进程P依次访问的是:、、、、、、。模拟完整过程如下:

题45 图(a)

方法二:仿照LRU算法

仿照LRU算法(LRU算法的具体实现可参考力扣 146. LRU 缓存),通过移动链表结点调整结点访问优先级。用蓝色标记页框链表中本轮被访问过的页框,黄色标记页框链表中本轮未被访问过的页框,所有黄色结点构成空闲页框链表,所有蓝色结点构成驻留集。这样每次访问某页只需要将该页被分配的页框号移动到链表尾,并标记为蓝色,每次扫描将页框链表中所有结点恢复成黄色。

初始时系统空闲页框链表中页框号依次为32、15、21、41。进程P依次访问的是:、、、、、、。模拟完整过程如下:

题45 图(b)

注:题45图(a)和题45图(b)中空闲页框链表中结点的括号内数字表示最近一次页框号被分配的页号。

(1) 访问时,对应的页框号是21。

初始时进程驻留集为空,系统空闲页框链表中页框号依次为32、15、21、41,时刻4是第一轮的第三次访问,且访问的页号与前两次均不同。而0页对应的页框为空闲链表中的第三个空闲页框号是21。

(2) 访问时,对应的页框号是32。

第三轮初始时系统空闲页框链表中页框号依次为41、32(1)、15(3),括号内数字表示最近一次页框号被分配的页号,时刻11是第三轮的第一次访问,而且访问页面1之前被分配的页框号为32,将页框32重新放入驻留集中。

(3) 访问时,对应的页框号是41。

第三轮初始时系统空闲页框链表中页框号依次为41、32(1)、15(3),括号内表示最近一次页框号分配的页号,时刻14是第三轮的第三次访问,页面2从来没有被访问过,因此从空闲页框链表中取出链表头的页框41,页框号为41。

(4) 该策略适合于时间局部性好的程序。

如果程序的时间局部性越好,从空闲页框链表中重新取回的机会越大,该策略的优势越明显。

46.

(8分)

某文件系统空间的最大容量为4TB(1TB= 2^{40} B),以磁盘块为基本分配单位。磁盘块大小为1KB。文件控制块 (FCB) 包含一个512B的索引表区。请回答下列问题。

(1) 假设索引表区仅采用直接索引结构,索引表区存放文件占用的磁盘块号,索引表项中块号最少占多少字节?可支持的单个文件最大长度是多少字节?

(2) 假设索引表区采用如下结构:第0~7字节采用格式表示文件创建时预分配的连续存储空间,其中起始块号占6B,块数占2B;剩余504字节采用直接索引结构,一个索引项占6B,那么可支持的单个文件最大长度是多少字节?为了使单个文件的长度达到最大,请指出起始块号和块数分别所占字节数的合理值并说明理由。

解答:

(1) 第一问。因为该文件系统空间的最大容量为4TB,磁盘块大小为1KB,所以该文件系统中所能容纳的磁盘块总数为4TB/1KB= 2^{32} 。要完全表示所有磁盘块,索引项中的块号最少要占32bit=4B。

第二问。因为文件控制块 (FCB) 包含一个512B的索引表区,根据第一问结果,索引表项中块号最少占4字节,索引表区仅采用直接索引结构,所以索引表区最多能容纳512B/4B=128个索引项。又因为每个索引项对应一个磁盘块,磁盘块大小为1KB,所以该系统可支持的单个文件最大长度是128×1KB=128KB。

(2) 第一问。因为块数占2B=16bit,共可以表示 2^{16} 个磁盘块,磁盘块大小为1KB,所以预分配的连续存储空间大小为 2^{16} ×1KB= 2^{16} KB。又因为块号占6B,剩余504字节采用直接索引结构,直接索引区共504B/6B=84个索引项,磁盘块大小为1KB,所以直接索引区存储空间大小为84×1KB=84KB。综上,该系统可支持的单个文件最大长度=预分配的连续存储空间大小+直接索引区存储空间大小= 2^{16} KB+84KB=65620KB。

第二问。根据(1)中第一问的结果,块数最少要占4B,才可表示4TB大小的文件长度,此时达到文件系统的空间上限,第0~7字节采用格式表示文件创建时预分配的连续存储空间,总共8B,所以合理的起始块号和块数所占字节数分别为4、4,或3、5,或2、6,或1、7。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3