10-31操作系统刷题

本文深入解析操作系统的多个核心概念,包括内存管理、进程与线程的区别、缓冲技术、虚拟内存管理、页面置换策略、临界资源与临界区管理、Windows界面特性、内存分配算法、地址转换机制及原语特性,帮助读者全面理解操作系统的基础知识。
摘要由CSDN通过智能技术生成

1、能直接与CPU交换信息的存储器是内存储器。
CPU只能访问存储在内存中的数据。
2、进程:是资源分配的单位,一个进程死掉,如果设置了保护不会影响其他进程
线程:cpu独立运行和独立调度的基本单位,有自己的堆栈和局部变量,一个线程死掉,整个进程死掉
所以说,一个进程可以创建多个线程,但是一个线程不可以创建多个进程
3、操作系统采用缓冲技术主要是通过软件实现,硬件成本高。
在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。缓冲区是一个存储区域,它可以由专门的硬件寄存器组成,但由于硬件的成本较高,容量较小,一般仅用于在对速度要求非常高的场合,如存储器管理中所用的联想寄存器;设备控制器中用的数据缓冲区等。在一般情况才更多的利用内存作为缓冲区,如单缓冲区、双缓冲区、环形缓冲区和缓冲池。
4、在请求分页式存储管理中,页面的调入调出只能在内存和对换区之间进行。是错的,如果交换区没有内存需要的页,只能从文件磁盘里调度。内存中没有被写过的页需要调出时直接覆盖掉就行,下次从文件调入。而对于某些被修改过的页不需要调出时不能直接写入文件中(比如中间结果),因此放在交换区,下次调入从交换区调入
5、在页式存储管理中,块内位移量等于页内位移量是因为页和块的大小相等。
用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应的,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现离散分离。
6、一个临界资源可以对应多个临界区。
临界资源是指每次仅允许一个进程访问的资源。 属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。 诸进程间应采取互斥方式,实现对这种资源的共享。 每个进程中访问临界资源的那段代码称为临界区。显然,若能保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问。为此,每个进程在进入临界区之前,应先对欲访问的临界资源进行检查,看它是否正被访问。如果此刻该临界资源未被访问,进程便可进入临界区对该资源进行访问,并设置它正被访问的标志;如果此刻该临界资源正被某进程访问,则本进程不能进入临界区。
7、Windows7中,窗口与对话框在外观上最大的区别在于是否能改变大小。
“窗口”是屏幕上显示出来的,与一个应用程序相对应的矩形区域。屏幕中显示出窗口,表示该窗口对应的应用程序正在运行中。 “对话框”是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。从某种意义上来讲,对话框可以理解为“次一级的窗口”。 两者简便的区分方法是: 1、通过最大化与最小化按钮来区分“对话框”与“窗口”。框中有最小化、最大化、关闭按钮的是“窗口”;框中没有最小化和最大化按钮的是“对话框”,即窗口能改变大小,而对话框则不能。 2、“对话框”的标题栏中通常(不是全部)有“?”帮助按钮。见到标题栏中有帮助按钮,那就基本上可以断定此框是“对话框”而不是“窗口”。
8、首次适应算方法的空闲区是按地址递增顺序链在一起。
首次适应算法(First Fit) 从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲分区分配给作业,这种方法目的在于减少查找时间,为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低地址部分空闲区,在低地址空间造成许多小的空闲区,在高地址空间保留大的空闲区。
最自然的过程,只是按照空闲分区表(空闲区链)中的空闲分区的地址从低到高找到第一个可以满足需要的空闲分区即可。
9、在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址时,形成该逻辑地址的阶段是链接。
编译后的模块需要经过链接才能装载,而链接后形成的地址才是整个程序的完整逻辑地址空间。以C语言为例:C语言经过预处理(cpp)→编译(ccl)→汇编(as)→链接(ld)产生可执行文件。其中链接的前一步,产生了可重定位的二进制的目标文件。C语言采用源文件独立编译的方法,如程序main.c, file1.c, file2.c, file1.h, file2.h,在链接的前一步生成了main.o, file1.o, file2.o,这些目标模块采用的逻辑地址都从0开始,但只是相对于该模块的逻辑地址。链接器将这三个文件,libc和其他的库文件链接成一个可执行文件。链接阶段主要完成了重定位,形成整个程序的完整逻辑地址空间。
例如,file1.o的逻辑地址为0~1023,main.o的逻辑地址为0~1023,假设链接时将file1.o链接在main.o之后,则重定位之后file1.o对应的逻辑地址就应为1024~2047。
这一题有不少同学会对C选项有疑问,认为产生逻辑地址的阶段是链接,下面引入一个线性地址的概念来解释为什么链接是不对的。为了区分各种不同的地址,下面也把逻辑地址和物理地址一并介绍。
逻辑地址(Logical Address)是指在程序各个模块中的偏移地址。它是相对于当前模块首址的地址。
线性地址(Linear Address)是指在分页式存储管理中单个程序所有模块集合在一起构成的地址,即可以理解为《操作系统联考复习指导》一书中的全局的逻辑地址。
物理地址(Physical Address)是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。它实际上就是物理内存真正的地址。线性地址的概念在很多操作系统书中并不涉及,在这里引入只是为了把这题解释清楚。选择C选项的同学应该是把题目所说的逻辑地址当成了线性地址。实际上,很多书中也不会把这线性地址和逻辑地址区分得那么清楚,而统一的称为逻辑地址,这就导致了这题的错误选择。
总之,在这题中,逻辑地址指的就是段内的偏移量而不是链接后生成的整个程序全局的逻辑地址空间,所以逻辑地址是编译时产生的。编者在查相关资料的过程中看到了关于这个问题的很多不一样的说法,这也是操作系统这门课的一个“特色”
10、原语是一种特殊的系统调用命令,它的特点是执行中不可中断。
原语是由若干个 机器指令 构成的完成某种特定功能的一段程序,具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断。
原语通常由若干条指令组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。原语是操作系统的核心,它不是由进程而是由一组程序模块所组成,是操作系统的一个组成部分,它必须在管态(一种机器状态,管态下执行的程序可以执行特权和非特权两类指令,通常把它定义为操作系统的状态)下执行,并且常驻内存,而个别系统有一部分不在管态下运行。原语和广义指令都可以被进程所调用,两者的差别在于原语有不可中断性,它是通过在执行过程中关闭中断实现的,且一般由系统进程调用。许多广义指令的功能都可用目态(一种机器状态,通常把它作为用户程序执行时的状态)下运行的系统进程完成,而不一定要在管态下完成,例如文件的建立、打开、关闭、删除等广义指令,都是借助中断进入管态程序,然后转交给相应的进程,最终由进程实现其功能。引进原语的主要目的是为了实现进程的通信和控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值