前言
大家好吖,欢迎来到 YY 滴 操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
本博客主要内容,收纳了一部门基本的操作系统题目,供yy应对期中考试复习。大家可以参考
一.单选题
1.把作业空间中使用的逻辑地址变为内存中物理地址称为()
A.加载
B.重定位
C.物理化
D.逻辑化
2.为了保证一个程序在主存中改变了存放位置之后仍能正确执行,则对主存空间应采用( )技术
A.静态重定位
B.动态重定位
C.动态分配
D.静态分配
3.把一个分区的存储管理技术用于系统时,可采用( )让多用户进程轮流进入主存储器执行
A.存储技术
B.交换技术
C.覆盖技术
D.虚拟存储技术
4.分区分配内存管理方式的主要保护措施是( )。(注:分区包括“固定分区”和“可变分区”)
A.界地址保护
B.程序代码保护
C.数据保护
D.栈保护
5.分区管理要求对每一个作业都分配( )的内存单元
A.地址连续
B.若干地址不连续
C.若干连续的块
D.若干不连续的块
6.在可变式分区存储管理中的拼接技术可以( )。(注:拼接是指通过移动将多个分散的小分区合并成一个大分区。)
A.集中空闲分区
B.增加内存容量
C.缩短访问周期
D.加速地址转换
7.下列()存储管理方式能使存储碎片尽可能少,而且使内存利用率较高
A.固定分区
B.可变分区
C.分页管理
D.段页式管理
8.采用( )不会产生内部碎片。
A.分页式存储管理
B.分段式存储管理
C.固定分区式存储管理
D.段页式存储管理
二.简答题
1.针对以下问题,比较连续内存分配、纯分段和纯分页的内存组织方案:
1)外部碎片
2)内部碎片
3)能够跨进程共享代码
- 答案:
一、外部碎片
• 连续内存分配:在这种方式下,外部碎片可能较为严重。因为一旦为某个程序分配了连续的内存空间,那么在这段空间被释放之前,即使它中间有部分空闲(比如程序实际使用的空间小于分配的空间),这部分空闲也无法被其他程序使用,从而形成外部碎片。如果多个这样的空闲区域分散存在,而每个又都无法满足新程序的内存需求时,就会导致外部碎片问题加剧。
• 纯分段:纯分段存储管理也会产生外部碎片。因为每段的大小是不固定的,由用户程序决定,所以当内存中的空闲区域无法满足某个段的大小时,即使这些空闲区域的总和足够大,也会因为不连续而无法被利用,从而形成外部碎片。
• 纯分页:纯分页系统通过固定大小的页面来划分内存和进程地址空间,这有助于减少外部碎片。因为当一个小程序只需要少量内存时,它可以只占用一个或多个页面,而剩下的页面可以被其他程序使用。这样,内存的使用就变得更加灵活和高效,外部碎片问题相对较轻。
二、内部碎片
• 连续内存分配:在连续内存分配中,内部碎片通常发生在为程序分配的空间大于程序实际需要的空间时。这部分多余的空间在程序运行期间无法被利用,从而形成内部碎片。
• 纯分段:纯分段存储管理同样存在内部碎片问题。因为每段的大小是根据用户程序来划分的,所以有可能出现段的大小大于程序实际需要的空间的情况,这时段内就会有空闲空间无法被利用,形成内部碎片。
• 纯分页:在纯分页系统中,由于页面大小是固定的,所以内部碎片问题相对较为固定和可控。当程序的实际大小不是页面大小的整数倍时,最后一个页面可能只会部分被使用,从而形成内部碎片。但这种碎片的大小是固定的,且由于页面大小通常设计得相对合理,所以内部碎片问题并不会太严重。
三、能够跨进程共享代码
• 连续内存分配:在连续内存分配中,由于内存空间是连续分配的,所以跨进程共享代码相对困难。每个进程都有自己独立的内存空间,要实现跨进程共享代码需要额外的机制(如内存映射文件等)。
• 纯分段:纯分段存储管理便于实现代码的共享。因为每段都包含了一组相对完整的逻辑信息(如程序段、数据段等),所以可以通过设置段表项来实现多个进程对同一段代码的共享。这有助于节省内存空间并提高程序的运行效率。
• 纯分页:纯分页系统虽然也可以实现跨进程共享代码,但相对于分段来说要复杂一些。因为分页是基于固定大小的页面来划分的,所以要实现跨进程共享代码需要确保多个进程都映射到相同的页面集合上,这通常需要通过操作系统提供的共享内存机制来实现。