文档库 最新最全的文档下载
当前位置:文档库 › 中科院操作系统高级教程_思考题_2015最新版

中科院操作系统高级教程_思考题_2015最新版

中科院操作系统高级教程_思考题_2015最新版
中科院操作系统高级教程_思考题_2015最新版

1为什么计算机启动最开始的时候执行的是BIOS代码而不是操作系统自身的代码?

计算机启动的时候,内存未初始化,CPU不能直接从外设运行操作系统,所以必须将操作系统加载至内存中。而这个工作最开始的部分,BIOS需要完成一些检测工作,和设置实模式下的中断向量表和服务程序,并将操作系统的引导扇区加载值0x7C00 处,然后将跳转至0x7C00。这些就是由bios程序来实现的。所以计算机启动最开始执行的是bios代码。

2.为什么BIOS只加载了一个扇区,后续扇区却是由bootsect代码加载?为什么BIOS没有把所有需要加载的扇区都加载?

对BIOS而言,“约定”在接到启动操作系统的命令后,“定位识别”只从启动扇区把代码加载到0x7c00这个位置。后续扇区则由bootsect代码加载,这些代码由编写系统的用户负责,与BIOS无关。这样构建的好处是站在整个体系的高度,统一设计和统一安排,简单而有效。BIOS和操作系统的开发都可以遵循这一约定,灵活地进行各自的设计。操作系统的开发也可以按照自己的意愿,内存的规划,等等都更为灵活

3.为什么BIOS把bootsect加载到0x07c00,而不是0x00000?加载后又马上挪到0x90000处,是何道理?为什么不一次加载到位?

1)因为BIOS将从0x00000开始的1KB字节构建了了中断向量表,接着的256KB字节内存空间构建了BIOS数据区,所以不能把bootsect加载到0x00000. 0X07c00是BIOS设置的内存地址,不是bootsect能够决定的。

2)首先,在启动扇区中有一些数据,将会被内核利用到。

其次,依据系统对内存的规划,内核终会占用0x0000其实的空间,因此0x7c00可能会被覆盖。将该扇区挪到0x90000,在setup.s中,获取一些硬件数据保存在0x90000~0x901ff处,可以对一些后面内核将要利用的数据,集中保存和管理。

4.bootsect、setup、head程序之间是怎么衔接的?给出代码证据。

1)bootsect跳转到setup程序:jmpi 0,SETUPSEG;

这条语句跳转到0x90200处,即setup程序加载的位子,CS:IP指向setup程序的第一条指令,意味着setup开始执行。

2)setup跳转到head程序:CPU工作模式首先转变为保护模式然后执行jmpi 0,8

0指的是段内偏移,8是保护模式下的段选择符:01000,其中后两位表示内核特权级,第三位0代表GDT,1则表示GDT表中的第一项,即内核代码段,段基质为0x0000000,而head 程序地址就在这里,意味着head程序开始执行。

5.setup程序里的cli是为了什么?

cli为关中断,以为着程序在接下来的执行过程中,无论是否发生中断,系统都不再对此中断进行响应。

因为在setup中,需要将位于0x10000 的内核程序复制到0x0000 处,bios中断向量表覆盖掉了,若此时如果产生中断,这将破坏原有的中断机制会发生不可预知的错误,所以要禁示中断。

6.setup程序的最后是jmpi 0,8 为什么这个8不能简单的当作阿拉伯数字8看待?

这里8要看成二进制1000,最后两位00表示内核特权级,第三位0表示GDT表,第四位1表示所选的表(在此就是GDT表)的1项来确定代码段的段基址和段限长等信息。这样,我们可以得到代码是从段基址0x00000000、偏移为0处开始执行的,即head的开始位置。

注意到已经开启了保护模式的机制,所以这里的8不能简单的当成阿拉伯数字8来看待。

7.打开A20和打开pe究竟是什么关系,保护模式不就是32位的吗?为什么还要打开A20?有必要吗?

1、打开A20仅仅意味着CPU可以进行32位寻址,且最大寻址空间是4GB。打开PE是进入保护模式。A20是cpu的第21位地址线,A20未打开的时候,实模式中cs:ip最大寻址为1MB+64KB,而第21根地址线被强制为0,所以相当于cpu“回滚”到内存地址起始处寻址。当打开A20的时候,实模式下cpu可以寻址到1MB以上的高端内存区。A20未打开时,如果打开pe,则cpu进入保护模式,但是可以访问的内存只能是奇数1M段,即0-1M,2M-3M,4-5M等。A20被打开后,如果打开pe,则可以访问的内存是连续的。打开A20是打开PE的必要条件;而打开A20不一定非得打开PE。

2、有必要。打开PE只是说明系统处于保护模式下,但若真正在保护模式下工作,必须打开A20,实现32位寻址。

8.Linux是用C语言写的,为什么没有从main还是开始,而是先运行3个汇编程序,道理何在?

main 函数运行在32 位的保护模式下,但系统启动时默认为16 位的实模式,开机时的16 位实模式与main 函数执行需要的32 位保护模式之间有很大的差距,这个差距需要由3 个汇编程序来填补。其中bootsect 负责加载,setup 与head 则负责获取硬件参数,准备idt,gdt,开启A20,PE,PG,废弃旧的16 位中断响应机制,建立新的32 为IDT,设置分页机制等。这些工作做完后,计算机处在了32位的保护模式状态了,调用main的条件就算准备完毕。

9.为什么不用call,而是用ret“调用”main函数?画出调用路线图,给出代码证据。(图在P42)

call指令会将EIP的值自动压栈,保护返回现场,然后执行被调函数的程序,等到执行被调函数的ret指令时,自动出栈给EIP并还原现场,继续执行call的下一条指令。然而对操作系统的main函数来说,如果用call调用main函数,那么ret时返回给谁呢?因为没有更底层的函数程序接收操作系统的返回。用ret实现的调用操作当然就不需要返回了,call做的压栈和跳转动作需要手工编写代码。

after_page_tables:

pushl $__main; //将main的地址压入栈,即EIP

setup_paging:

ret; //弹出EIP,针对EIP指向的值继续执行,即main函数的入口地址。

10.保护模式的“保护”体现在哪里?

1)在GDT、LDT 及IDT 中,均有自己界限,特权级等属性,这是对描述符所描述的对象的保护

2)在不同特权级间访问时,系统会对CPL、RPL、DPL、IOPL 等进行检验,对不同层级的程序进行保护,同还限制某些特殊指令的使用,如lgdt, lidt,cli 等

3)分页机制中PDE 和PTE 中的R/W 和U/S 等,提供了页级保护。分页机制将线性地址与物理地址加以映射,提供了对物理地址的保护。

P438

11.特权级的目的和意义是什么?为什么特权级是基于段的?

目的:在于保护高特权级的段,其中操作系统的内核处于最高的特权级。

意义:保护模式中的特权级,对操作系统的“主奴机制”影响深远。

在操作系统设计中,一个段一般实现的功能相对完整,可以把代码放在一个段,数据放在一个段,并通过段选择符(包括CS、SS、DS、ES、FS和GS)获取段的基址和特权级等信息。特权级基于段,这样当段选择子具有不匹配的特权级时,按照特权级规则评判是否可以访问。特权级基于段,是结合了程序的特点和硬件实现的一种考虑。

12.在setup程序里曾经设置过一次gdt,为什么在head程序中将其废弃,又重新设置了一个?为什么折腾两次,而不是一次搞好?

原来的GDT 位于setup 中,将来此段内存会被缓冲区覆盖,所以必须将GDT 设置head.s 所在位置。

如果先将GDT 设置在head 所在区域,然后移动system 模块,则GDT 会被覆盖掉,如果先移动system 再复制GDT,则head.s 对应的程序会被覆盖掉,所以必须重建GDT。若先移动system 至0x0000 再将GDT 复制到0x5cb8~0x64b8 处,虽可以实现,但由于setup.s 与head.s 连接时不在同一文件,setup 无法直接获取head 中的gdt 的偏移量,需事先写入,这会使设计失去一般性,给程序编写带来很大不便。

13.在head程序执行结束的时候,在idt的前面有184个字节的head程序的剩余代码,剩余了什么?为什么要剩余?

剩余的内容:0x5400~0x54b7 处包含了after_page_tables、ignore_int 中断服务程序和setup_paging 设置分页的代码。

原因:after_page_tables中压入了一些参数,为内核进入main函数的跳转做准备。为了谨慎起见,设计者在栈中压入了L6,以使得系统可能出错时,返回到L6处执行。ignore_int: 使用ignore_int将idt全部初始化,因此如果中断开启后,可能使用了未设置的中断向量,那么将默认跳转到ignore_int处执行。这样做的好处是使得系统不会跳转到随机的地方执行错误的代码,所以ignore_int不能被覆盖。setup_paging:为设置分页机制的代码,它在分页完成前不能被覆盖

14.进程0的task_struct在哪?具体内容是什么?给出代码证据。

进程0的task_struct位于内核数据区,即task结构的第0项init_task。

struct task_struct * task[NR_TASKS] = {&(init_task.task), };

具体内容:包含了进程0的进程状态、进程0的LDT、进程0的TSS等等。其中ldt设置了代码段和堆栈段的基址和限长(640KB),而TSS则保存了各种寄存器的值,包括各个段选择符。具体值如下:(课本P68)

15.进程0创建进程1时,为进程1建立了自己的task_struct、内核栈,第一个页表,分别位于物理内存16MB的顶端倒数第一页、第二页。请问,这个了页究竟占用的是谁的线性地址空间,内核、进程0、进程1、还是没有占用任何线性地址空间(直接从物理地址分配)?说明理由并给出代码证据。

这两个页占用的是内核的线性地址空间,依据在setup_paging(文件head.s)中,movl $pg3+4092,%edi

movl $0xfff007,%eax /* 16Mb -4096 + 7 (r/w user,p) */

std

1: stosl/* fill pages backwards -more efficient :-) */

subl $0x1000,%eax

上面的代码,指明了内核的线性地址空间为0x000000 ~ 0xffffff(即前16M),且线性地址与物理地址呈现一一对应的关系。为进程1分配的这两个页,在16MB的顶端倒数第一页、第二页,因此占用内核的线性地址空间。

进程0的线性地址空间是内存前640KB,因为进程0的LDT中的limit属性限制了进程0能够访问的地址空间。进程1拷贝了进程0的页表(160项),而这160个页表项即为内核

第一个页表的前160项,指向的是物理内存前640KB,因此无法访问到16MB的顶端倒数的两个页。

16.假设:经过一段时间的运行,操作系统中已经有5个进程在运行,且内核分别为进程4、进程5分别创建了第一个页表,这两个页表在谁的线性地址空间?用图表示这两个页表在线性地址空间和物理地址空间的映射关系。

这两个页面均占用内核的线性空间。

17.进程0开始创建进程1,调用了fork(),跟踪代码时我们发现,fork代码执行了两次,第一次,跳过init()直接执行了for(;;) pause(),第二次执行fork代码后,执行了init()。奇怪的是,我们在代码中并没有看见向后的goto语句,也没有看到循环语句,是什么原因导致反复执行?请说明理由,并给出代码证据。

首先在copy_process()函数中,对进程1 做个性化调整设置,调整tss的数据。

Int copy_process(int nr, long ebp,…)

P92

然后再执行到如下代码:

#define switch_to()……

ljmp….

p196

程序在执行到“ljmp %0/n/t”这一行,ljmp通过cpu任务们机制自动将进程1 的tss值恢复给cpu,自然也将其中tss.eip恢复给cpu,现在cpu指向fork的if(_res >=0)这一行。

而此时的_res值就是进程1中tss的eax的值,这个值在前面被写死为0,即p->tss.eax=0;所以直行到return (type) _res这一行返回值为0.

V oidmain(void)

if(!fork())

init();

返回后,执行到main函数中if(!fork())这一行,!0值为真,调用init()函数。

18.copy_process函数的参数最后五项是:long eip,long cs,long eflags,long esp,long ss。查看栈结构确实有这五个参数,奇怪的是其他参数的压栈代码都能找得到,确找不到这五个参数的压栈代码,反汇编代码中也查不到,请解释原因。

copy_process执行时因为进程调用了fork函数,会导致中断,中断使CPU硬件自动将SS、ESP、EFLAGS、CS、EIP这几个寄存器的值按照顺序压入进程0内核栈,又因为函数专递参数是使用栈的,所以刚好可以做为copy_process的最后五项参数。

19.为什么static inline _syscall0(type,name)中需要加上关键字inline?

因为_syscall0(int,fork)展开是一个真函数,普通真函数调用事需要将eip入栈,返回时需要讲eip出栈。inline是内联函数,它将标明为inline的函数代码放在符号表中,而此处的fork 函数需要调用两次,加上inline后先进行词法分析、语法分析正确后就地展开函数,不需要有普通函数的call\ret等指令,也不需要保持栈的eip,效率很高。若不加上inline,第一次调用fork结束时将eip 出栈,第二次调用返回的eip出栈值将是一个错误值。

20.根据代码详细说明copy_process函数的所有参数是如何形成的?

long eip, long cs, long eflags, long esp, long ss;这五个参数是中断使CPU自动压栈的。

long ebx, long ecx, long edx, long fs, long es, long ds为__system_call压进栈的参数。

long none 为__system_call调用__sys_fork压进栈EIP的值。

Int nr, long ebp, long edi, long esi, long gs,为__system_call压进栈的值。

21.根据代码详细分析,进程0如何根据调度第一次切换到进程1的。(P103-107)

1.进程0通过fork函数创建进程1,使其处在就绪态。

2.进程0调用pause函数。pause函数通过int 0x80中断,映射到sys_pause函数,将自身设为可中断等待状态,调用schedule函数。

3.schedule函数分析到当前有必要进行进程调度,第一次遍历进程,只要地址指针不为为空,就要针对处理。第二次遍历所有进程,比较进程的状态和时间骗,找出处在就绪态且counter 最大的进程,此时只有进程0和1,且进程0是可中断等待状态,只有进程1是就绪态,所以切换到进程1去执行。

22.内核的线性地址空间是如何分页的?画出从0x000000开始的7个页(包括页目录表、页表所在页)的挂接关系图,就是页目录表的前四个页目录项、第一个个页表的前7个页表项指向什么位置?给出代码证据。

head.s再setup_paging开始创建分页机制。将页目录表和4个页表放到物理内存的起始位置,从内存起始位置开始的5个页空间内容全部清零(每页4kb),然后设置页目录表的前4项,使之分别指向4个页表。然后开始从高地址向低地址方向填写4个页表,依次指向内存从高地址向低地址方向的各个页面。即将第4个页表的最后一项(pg3+4092指向的位置)指向寻址范围的最后一个页面。即从0xFFF000开始的4kb 大小的内存空间。将第4个页表的倒数第二个页表项(pg3-4+4092)指向倒数第二个页面,即0xFFF000-0x1000开始的4KB字节的内存空间,依此类推。

Head.s中:(P39)

setup_paging:

movl $1024*5,%ecx /* 5 pages - pg_dir+4 page tables */

xorl %eax,%eax

xorl %edi,%edi /* pg_dir is at 0x000 */

cld;rep;stosl

movl $pg0+7,pg_dir /* set present bit/user r/w */

movl $pg1+7,pg_dir+4 /* --------- " " --------- */

movl $pg2+7,pg_dir+8 /* --------- " " --------- */

movl $pg3+7,pg_dir+12 /* --------- " " --------- */

_pg_dir用于表示内核分页机制完成后的内核起始位置,也就是物理内存的起始位置0x000000,以上四句完成页目录表的前四项与页表1,2,3,4的挂接

movl $pg3+4092,%edi

movl $0xfff007,%eax /* 16Mb - 4096 + 7 (r/w user,p) */

std

1: stosl /* fill pages backwards - more efficient :-) */

subl $0x1000,%eax

jge 1b

完成页表项与页面的挂接,是从高地址向低地址方向完成挂接的,16M内存全部完成挂接(注意页表从0开始,页表0-页表3)

图见P39

23.用文字和图说明中断描述符表是如何初始化的,可以举例说明(比如:set_trap_gate(0,÷_error)),并给出代码证据。

对中断描述符表的初始化,就是将异常处理一类的中断服务程序与中断描述符表进行挂接。以set_trap_gate(0,÷_error)为例,0就表示该中断函数的地址挂接在中断描述符表的第0项位置处,而&devide_error就是该异常处理函数的地址,对set_trap_gate(0,÷_error)进行宏展开后得到

%0=0x8f00,%1指向idt[0]的起始地址,%2指向四个字节之后的地址处。

#1、将地址&devide_error放在EAX的低两个字节,EAX的高两字节不变。#2把0x8f00放入EDX的低两字节,高两字节保持不变。#3、把EAX放在%1所指的地址处,占四字节。#4、将EDX放在%2所指的地址处,占四字节。

24.进程0 fork进程1之前,为什么先要调用move_to_user_mode()?用的是什么方法?解释其中的道理。(P78-79)

因为在Linux-0.11中,除进程0之外,所有进程都是由一个已有进程在用户态下完成创建的。但是此时进程0还处于内核态,因此要调用move_to_user_mode()函数,模仿中断返回的方式,实现进程0的特权级从内核态转化为用户态。又因为在Linux-0.11中,转换特权级时采用中断和中断返回的方式,调用系统中断实现从3到0的特权级转换,中断返回时转换为3特权级。因此,进程0从0特权级到3特权级转换时采用的是模仿中断返回。

25.进程0创建进程1时调用copy_process函数,在其中直接、间接调用了两次get_free_page 函数,在物理内存中获得了两个页,分别用作什么?是怎么设置的?给出代码证据。(P89 91 92P97-98 )

第一个设置进程1的tasks_truct,另外设置了进程1的堆栈段

sched.c

struct task_struct *current = &(init_task.task);

fork.c

p = (struct task_struct *) get_free_page();

*p = *current;

p->tss.esp0 = PAGE_SIZE + (long) p;

其中*current 即为进程0的task结构,在copy_process中,先复制进程0的task_struct,然后再对其中的值进行修改。esp0 的设置,意味着设置该页末尾为进程1的堆栈的起始地址。第二个为进程1的页表,在创建进程1执行copy_process中,执行copy_mem(nr,p)时,内核为进程1 拷贝了进程0 的页表(160 项)。

copy_mem

if (copy_page_tables(old_data_base,new_data_base,data_limit)){

其中,copy_page_tables 内部

from_page_table = (unsigned long *) (0xfffff000 & *from_dir);

if (!(to_page_table = (unsigned long *) get_free_page()))

for ( ; nr-- > 0 ; from_page_table++,to_page_table++) {

… }

获取了新的页,且从from_page_table 将页表值拷贝到to_page_table 处。

26.在IA-32中,有大约20多个指令是只能在0特权级下使用,其他的指令,比如cli,并没有这个约定。奇怪的是,在Linux0.11中,在3特权级的进程代码并不能使用cli指令,会报特权级错误,这是为什么?请解释并给出代码证据。

根据Intel Manual,cli和sti指令与CPL和EFLAGS[IOPL]有关。

CLI:如果CPL 的权限高于等于eflags中的IOPL的权限,即数值上:cpl <= IOPL,则IF 位清

除为0;否则它不受影响。EFLAGS 寄存器中的其他标志不受影响。

#GP(0) –如果CPL大于(特权更小)当前程序或过程的IOPL,产生保护模式异常。

由于在内核IOPL的值初始时为0,且未经改变。进程0在move_to_user_mode中,继承了内核的eflags。

move_to_user_mode()

"pushfl\n\t" \

"iret\n" \

而进程1再copy_process中,在进程的TSS中,设置了eflags中的IOPL位为0。总之,通

设置IOPL,可以限制3 特权级的进程代码使用cli。

27.根据代码详细分析操作系统是如何获得一个空闲页的。(P89-90)

通过逆向扫描页表位图mem_map,并由第一空页的下标左移12位加LOW_MEM得到该页的物理地址,位于16M 内存末端。代码如下(get_free_page)

unsigned long get_free_page(void)

64 {

65 register unsigned long __res asm("ax");

66

67 __asm__("std ; repne ; scasb\n\t" //反向扫描串,al(0)与di不等则重复

68 "jne 1f\n\t" //找不到空闲页跳转1

69 "movb $1,1(%%edi)\n\t" //将1付给edi+1的位置,在mem_map中将找到0的项引用计------------------------------------------数置为1

70 "sall $12,%%ecx\n\t" //ecx算数左移12位,页的相对地址

71 "addl %2,%%ecx\n\t" //LOW MEN +ecx页物理地址

72 "movl %%ecx,%%edx\n\t"

73 "movl $1024,%%ecx\n\t"

74 "leal 4092(%%edx),%%edi\n\t" //将edx+4kb的有效地址赋给edi

75 "rep ; stosl\n\t" //将eax赋给edi指向的地址,目的是页面清零。

76 " movl %%edx,%%eax\n"

77 "1: cld"

78 :"=a" (__res)

79 :"0" (0),"i" (LOW_MEM),"c" (PAGING_PAGES),

80 "D" (mem_map+PAGING_PAGES-1) //edx,mem_map[]的嘴鸥一个元素

81 );

82 return __res;

83 }

28、用户进程自己设计一套LDT表,并与GDT挂接,是否可行,为什么?(P259)

不可行。首先,用户进程不可以设置GDT、LDT,因为Linux0.11将GDT、LDT这两个数据结构设置在内核数据区,是0特权级的,只有0特权级的额代码才能修改设置GDT、LDT;而且,用户也不可以在自己的数据段按照自己的意愿重新做一套GDT、LDT,如果仅仅是形式上做一套和GDT、LDT一样的数据结构是可以的,但是真正起作用的GDT、LDT是CPU硬件认定的,这两个数据结构的首地址必须挂载在CPU中的GDTR、LDTR上,运行时CPU只认GDTR和LDTR指向的数据结构,其他数据结构就算起名字叫GDT、LDT,CPU也一概不认;另外,用户进程也不能将自己制作的GDT、LDT挂接到GDRT、LDRT 上,因为对GDTR和LDTR的设置只能在0特权级别下执行,3特权级别下无法把这套结构挂接在CR3上。

29、保护模式下,线性地址到物理地址的转化过程是什么?(P260-261)

在保护模式下,先行地址到物理地址的转化是通过内存分页管理机制实现的。其基本原理是将整个线性和物理内存区域划分为4K大小的内存页面,系统以页为单位进行分配和回收。每个线性地址为32位,MMU按照10-10-12的长度来识别线性地址的值。CR3中存储着页目录表的基址,线性地址的前十位表示也目录表中的页目录项,由此得到所在的页表地址。21~12位记录了页表中的页表项位置,由此得到页的位置,最后12位表示页内偏移。

30、为什么get_free_page()将新分配的页面清0?(P265)

因为无法预知这页内存的用途,如果用作页表,不清零就有垃圾值,就是隐患。

31、内核和普通用户进程并不在一个线性地址空间内,为什么仍然能够访问普通用户进程的页面?(P272)

内核的线性地址空间和用户进程不一样,内核是不能通过跨越线性地址访问进程的,但由于早就占有了所有的页面,而且特权级是0,所以内核执行时,可以对所有的内容进行改动,“等价于”可以操作所有进程所在的页面。

32、详细分析一个进程从创建、加载程序、执行、退出的全过程。

1.创建进程,调用fork函数。

a)准备阶段,为进程在task[64]找到空闲位置,即find_empty_process();

b)为进程管理结构找到储存空间:task_struct和内核栈。

c)父进程为子进程复制task_struct结构

d)复制新进程的页表并设置其对应的页目录项

e)分段和分页以及文件继承。

f)建立新进程与全局描述符表(GDT)的关联

g)将新进程设为就绪态

2.加载进程

a)检查参数和外部环境变量和可执行文件

b)释放进程的页表

c)重新设置进程的程序代码段和数据段

d)调整进程的task_struct

3.进程运行

a)产生缺页中断并由操作系统响应

b)为进程申请一个内存页面

c)将程序代码加载到新分配的页面中

d)将物理内存地址与线性地址空间对应起来

e)不断通过缺页中断加载进程的全部内容

f)运行时如果进程内存不足继续产生缺页中断,

4.进程退出

a)进程先处理退出事务

b)释放进程所占页面

c)解除进程与文件有关的内容并给父进程发信号

d)进程退出后执行进程调度

33、详细分析多个进程(无父子关系)共享一个可执行程序的完整过程。

假设有三个进程A、B、C,进程A先执行,之后是B最后是C,它们没有父子关系。A进程启动后会调用open函数打开该可执行文件,然后调用sys_read()函数读取文件内容,该函数最终会调用bread函数,该函数会分配缓冲块,进行设备到缓冲块的数据交换,因为此时为设备读入,时间较长,所以会给该缓冲块加锁,调用sleep_on函数,A进程被挂起,调用schedule()函数B进程开始执行。

B进程也首先执行open()函数,虽然A和B打开的是相同的文件,但是彼此操作没有关系,所以B继承需要另外一套文件管理信息,通过open_namei()函数。B进程调用read函数,同样会调用bread(),由于此时内核检测到B进程需要读的数据已经进入缓冲区中,则直接返回,但是由于此时设备读没有完成,缓冲块以备加锁,所以B将因为等待而被系统挂起,之后调用schedule()函数。

C进程开始执行,但是同B一样,被系统挂起,调用schedule()函数,假设此时无其它进程,则系统0进程开始执行。

假设此时读操作完成,外设产生中断,中断服务程序开始工作。它给读取的文件缓冲区解锁并调用wake_up()函数,传递的参数是&bh->b_wait,该函数首先将C唤醒,此后中断服务程序结束,开始进程调度,此时C就绪,C程序开始执行,首先将B进程设为就绪态。C执行结束或者C的时间片削减为0时,切换到B进程执行。进程B也在sleep_on()函数中,调用schedule函数进程进程切换,B最终回到sleep_on函数,进程B开始执行,首先将进程A 设为就绪态,同理当B执行完或者时间片削减为0时,切换到A执行,此时A的内核栈中tmp对应NULL,不会再唤醒进程了。

34、缺页中断是如何产生的,页写保护中断是如何产生的,操作系统是如何处理的?

每一个页目录项或页表项的最后3位,标志着所管理的页面的属性,分别是U/S,R/W,P.如果和一个页面建立了映射关系,P标志就设置为1,如果没有建立映射关系,则就是0.进程执行时,线性地址被MMU即系,如果解析出某个表项的P位为0,就说明没有对应页面,此时就会产生缺页中断。

当两个进程共享了一个页面,即R/w为1,导致该页面设为“只读”属性,当其中一个进程需要压栈时就会引发页写保护中断。当页写保护中断产生时,系统会为进程申请新页面,并把原页面内容复制到新页面里。

35、为什么要设计缓冲区,有什么好处?(P310)

缓冲区是内存与外设(块设备,如硬盘等)进行数据交互的媒介。内存与外设最大的区别在于:外设(如硬盘)的作用仅仅就是对数据信息以逻辑块的形式进行断电保存,并不参与运算(因为CPU无法到硬盘上进行寻址);而内存除了需要对数据进行保存以外,还要通过与CPU和总线的配合,进行数据运算(有代码和数据之分);缓冲区则介于两者之间,有了缓冲区这个媒介以后,对外设而言,它仅需要考虑与缓冲区进行数据交互是否符合要求,而不需要考虑内存中内核、进程如何使用这些数据;对内存的内核、进程而言,它也仅需要考虑与缓冲区交互的条件是否成熟,而并不需要关心此时外设对缓冲区的交互情况。它们两者的组织、管理和协调将由操作系统统一操作,这样就大大降低了数据处理的维护成本。缓冲区的好处主要有两点:①形成所有块设备数据的统一集散地,操作系统的设计更方便、更灵活;②对块设备的文件操作运行效率更高。

36、操作系统如何利用buffer_head中的b_data,b_blocknr,b_dev,b_uptodate,b_dirt,b_count,b_lock,b_wait管理缓冲块的?

buffer_head负责进程与缓冲块的数据交互,让数据在缓冲区中停留的时间尽可能长。

b_data 是缓冲块的数据内容。

b_dev和b_blocknr两个字段把缓冲块和硬盘数据块的关系绑定,同时根据b_count决定是否废除旧缓冲块而新建缓冲块以保证数据在缓冲区停留时间尽量长。

b_dev为设备标示,b_blocknr标示block块好。b_count用于记录缓冲块被多少个进程共享了。

b_uptodate和b_dirt用以保证缓冲块和数据块的正确性。b_uptodate为1说明缓冲块的数据就是数据块中最新的,进程可以共享缓冲块中的数据。b_dirt为1时说明缓冲块数据已被进程修改,需要同步到硬盘上。

b_lock为1时说明缓冲块与数据块在同步数据,此时内核会拦截进程对该缓冲块的操作,直到交互结束才置0。b_wait用于记录因为b_lock=1而挂起等待缓冲块的进程数。

+1. 用图表示下面的几种情况,并从代码中找到证据:

A当进程获得第一个缓冲块的时候,hash表的状态

B经过一段时间的运行。已经有2000多个buffer_head挂到hash_table上时,hash表(包括所有的buffer_head)的整体运行状态。

C经过一段时间的运行,有的缓冲块已经没有进程使用了(空闲),这样的空闲缓冲块是否会从hash_table上脱钩?

D经过一段时间的运行,所有的buffer_head都挂到hash_table上了,这时,又有进程申请空闲缓冲块,将会发生什么?

A

getblk(int dev, int block) get_hash_table(dev,block) -> find_buffer(dev,block) -> hash(dev, block)

哈希策略为:

#define _hashfn(dev,block)(((unsigned)(dev block))%NR_HASH)

#define hash(dev,block) hash_table[_hashfn(dev, block)]

此时,dev为0x300,block为0,NR_HASH为307,哈希结果为154,将此块插入哈希表中次位置后

B

//代码路径:fs/buffer.c:

static inline void insert_into_queues(struct buffer_head * bh)

{

/*put at end of free list */

bh->b_next_free= free_list;

bh->b_prev_free= free_list->b_prev_free;

free_list->b_prev_free->b_next_free= bh;

free_list->b_prev_free= bh;

/*put the buffer in new hash-queue if it has a device */

bh->b_prev= NULL;

bh->b_next= NULL;

if (!bh->b_dev)

return;

bh->b_next= hash(bh->b_dev,bh->b_blocknr);

hash(bh->b_dev,bh->b_blocknr)= bh;

bh->b_next->b_prev= bh

}

C

不会脱钩,会调用brelse()函数,其中if(!(buf->b_count--)),计数器减一。没有对该缓冲块执行remove操作。由于硬盘读写开销一般比内存大几个数量级,因此该空闲缓冲块若是能够再次被访问到,对提升性能是有益的。

D

进程顺着freelist找到没被占用的,未被上锁的干净的缓冲块后,将其引用计数置为1,然后从哈西队列和空闲块链表中移除该bh,然后根据此新的设备号和块号重新插入空闲表和哈西队列新位置处,最终返回缓冲头指针。

Bh->b_count=1;

Bh->b_dirt=0;

Bh->b_uptodate=0;

Remove_from_queues(bh);

Bh->b_dev=dev;

Bh->b_blocknr=block;

Insert_into_queues(bh);

+2. Rd_load()执行完之后,虚拟盘已经成为可用的块设备,并成为根设备。在向虚拟盘中copy 任何数据之前,虚拟盘中是否有引导快、超级快、i节点位图、逻辑块位图、i节点、逻辑块?

虚拟盘中没有引导快、超级快、i节点位图、逻辑块位图、i节点、逻辑块。在rd_load()函数中的memcpy(cp, bh->b_data,BLOCK_SIZE)执行以前,对虚拟盘的操作仅限于为虚拟盘分配2M的内存空间,并将虚拟盘的所有内存区域初始化为0.所以虚拟盘中并没有数据,仅是一段被’\0’填充的内存空间。

(代码路径:kernel/blk_dev/ramdisk.c rd_load:)

Rd_start = (char *)mem_start;

Rd_length = length;

Cp = rd_start;

For (i=0; i

*cp++=’\0\;

+3. 在虚拟盘被设置为根设备之前,操作系统的根设备是软盘,请说明设置软盘为根设备的技术路线。

首先,将软盘的第一个山区设置为可引导扇区:

(代码路径:boot/bootsect.s)boot_flag: .word 0xAA55

在主Makefile文件中设置ROOT_DEV=/dev/hd6。并且在bootsect.s中的508和509处设置ROOT_DEV=0x306;在tools/build中根据Makefile中的ROOT_DEV设置MAJOR_TOOT 和MINOR_ROOT,并将其填充在偏移量为508和509处:

(代码路径:Makefile) tools/build boot/bootsect boot/setup tools/system

$(ROOT_DEV) > Image

随后被移至0x90000+508(即0x901FC)处,最终在main.c中设置为ORIG_ROOT_DEV并将其赋给ROOT_DEV变量:

(代码路径:init/main.c)

62 #define ORIG_ROOT_DEV (*(unsigned short *)0x901FC)

113 ROOT_DEV = ORIG_ROOT_DEV;

+4. Linux0.11是怎么将根设备从软盘更换为虚拟盘,并加载了根文件系统?

rd_load函数从软盘读取文件系统并将其复制到虚拟盘中并通过设置ROOT_DEV为0x0101将根设备从软盘更换为虚拟盘,然后调用mount_root函数加载跟文件系统,过程如下:初始化file_table和super_block,初始化super_block并读取根i节点,然后统计空闲逻辑块数及空闲i节点数:

(代码路径:kernel/blk_drv/ramdisk.c:rd_load) ROOT_DEV=0x0101;

主设备好是1,代表内存,即将内存虚拟盘设置为根目录。

+5在Linux操作系统中大量的使用了中断、异常类的处理,为什么,有什么好处?

CPU是主机中关键的组成部分,进程在主机中的运算肯定离不开CPU,而CPU在参与运算过程中免不了进行“异常处理”,这些异常处理都需要具体的服务程序来执行。这种32位中断服务体系是为适应一种被动响应中断信号而建立的。这样CPU就可以把全部精力都放在为用户程序服务上,对于随时可能产生而又不可能时时都产生的中断信号,不用刻意去考虑,这就提高了操作系统的综合效率。以“被动模式”代替“主动轮询”模式来处理终端问题是现在操作系统之所以称之为“现代”的一个重要标志。

夏考操作系统原理离线作业

2013年夏考操作系统原理离线作业 浙江大学远程教育学院 《操作系统原理》课程作业 第一次(第1、2章) 应用题 1.桌上有一个空盒,盒内只允许放一个水果。妈妈轮流向盒内放桔子和苹果,儿子专等吃盒中的桔子,女儿专等吃盒中的苹果。若盒内已有水果,放者必须等待,若盒内没有自己吃的水果,吃者必需等待。试在下述类PASCAL程序中虚线位置分别填上信号量、信号量初值和P、V操作实现三个进程正确的并发执行。 var (信号量)﹎﹎﹎﹎﹎﹎S , S1 , S2﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎:semaphore:= (信号量初值) ﹎﹎﹎﹎﹎﹎1 , 0 , 0﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎; begin parbegin 妈:begin repeat 準備 ﹎﹎P (S )﹎﹎ 向盒内放桔子 ﹎﹎V (S1 )﹎﹎﹎ 準備 ﹎﹎﹎﹎﹎﹎﹎﹎ 向盒内放苹果 ﹎﹎V (S2)﹎﹎ until false end 儿:begin repeat ﹎﹎﹎P (S1 )﹎﹎ 拿盒中的桔子 ﹎﹎﹎V (S)﹎﹎ 吃桔子 until false end 女:begin repeat ﹎﹎P (S2 )﹎﹎ 拿盒中的苹果

﹎﹎V (S)﹎﹎﹎ 吃苹果 until false 9 / 1 2013年夏考操作系统原理离线作业 end parend end 2.桌上有一个空盒,盒内只允许放一个水果。爸爸争向盒内放苹果,妈妈争向盒内放桔子。儿子等吃盒中的水果(苹果或桔子),若盒内已有水果,放者必须等待,若盒内没有水果,吃者必需等待。试在下述类PASCAL程序中虚线位置分别填上信号量、信号量初值和P、V操作实现三个进程正确的并发执行。 var (信号量)﹎﹎﹎﹎S1 , S2﹎﹎﹎﹎﹎﹎﹎﹎﹎:semaphore:= (信号量初值) ﹎﹎﹎﹎1 , 0﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎; begin parbegin 爸:begin repeat 準備 ﹎﹎P(S1)﹎﹎﹎﹎﹎﹎ 向盒内放苹果 ﹎﹎V (S2)﹎﹎﹎﹎﹎ until false end 妈: begin repeat 準備 ﹎﹎﹎P (S1 )﹎﹎﹎﹎﹎ 向盒内放桔子 ﹎﹎V (S2)﹎﹎﹎﹎ until false end 儿:begin repeat ﹎﹎﹎P (S2 )﹎﹎﹎ 拿盒中的水果(苹果或桔子) ﹎﹎﹎V (S1)﹎﹎﹎ 吃水果(苹果或桔子) until false end

操作系统期末试卷(含答案)

操作系统复习题1 一、判断题 1.分时系统中,时间片设置得越小,则平均响应时间越短。() 2.多个进程可以对应于同一个程序,且一个进程也可能会执行多个程序。() 3.一个进程的状态发生变化总会引起其他一些进程的状态发生变化。() 4.在引入线程的OS中,线程是资源分配和调度的基本单位。() 5.信号量的初值不能为负数。() 6.最佳适应算法比首次适应算法具有更好的内存利用率。() 7.为提高对换空间的利用率,一般对其使用离散的分配方式。() 8.设备独立性是指系统具有使用不同设备的能力。() 9.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随即存取。() 10.访问控制矩阵比访问控制表更节约空间。() 二、选择题 1.在设计分时操作系统时,首先要考虑的是(A);在设计实时操作系统时,首先要考虑的是(B);在设计批处理系统时,首先要考虑的是(C)。 A,B,C :(1)灵活性和适应性;(2)交互性和响应时间;(3)周转时间和系统吞吐量;(4)实时性和可靠性。 2.对一个正在执行的进程:如果因时间片完而被暂停执行,此时它应从执行状态转变为(D)状态;如果由于终端用户的请求而暂停下来,则它的状态应转变为(E)状态;如果由于得不到所申请的资源而暂停时下来,则它的状态应转变为(F)状态。D,E,F:(1);静止阻塞(2);活动阻塞(3);静止就绪(4);活动就绪(5)执行。 3.我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用(G);为照顾紧急作业用户,应采用(H);为能实现人机交互,应采用(I);而能使短作业、长作业和交互作业用户满意时,应采用(J)。 G,H,I,J:(1);FCFS调度算法(2);短作业优先调度算法;(3)时间片轮转算法;(4)多级反馈队列调度算法;(5)基于优先权的剥夺调度算法。 4.由固定分区发展为分页存储管理方式的主要推动力是(K);由分页系统发展为分段系统,进而发展为段页式系统的主要动力分别是(L)和(M)。 K,L,M:(1)提高内存利用率;(2)提高系统吞吐量;(3)满足用户需要;(4)更好地满足多道程序进行的需要;(5)既满足用户需求,又提高内存利用率。 5.在存储管理中,不会产生内部碎片的存储管理方式是(N);支持虚拟存储器,但不能以自然的方式提供存储器的共享和存取保护机制的存储管理方式是(O)。 N:(1)分页式存储管理;(2)分段式存储管理;(3)固定分区式存储管理;(4)段页式存储管理。 O:(1)段页式存储管理;(2)请求分区页式存储管理;(3)请求分段式存储管理;(4)可变分区存储管理;(5)固定分区存储管理;(6)单一连续分区式存储管理。 6.磁盘调度主要是为了优化(P),下列算法中能避免磁盘粘着的现象的是(Q)。P:(1)寻道时间;(2)旋转延迟时间;(3)传输时间。 Q:(1)SSTF;(2)FCFS;(3)SCAN;(4)CSCAN;(5)FSCAN。 7.文件系统中,目录管理最基本的功能是(R),位示图的主要功能是(S),FAT表的主要功能是(T)。 R,S,T:(1)实现按名存取;(2)提高文件存储空间利用率;(3)管理文件存储器的空闲空间;(4)指出分配给文件的盘块(首个盘块除外)的地址;(5)管理文件存储器的空闲空间,并指出分配给文件的盘块(首个盘块除外)的地址。8.文件系统采用多级目录结构,可以(U)和(V)。 U,V:(1)缩短访问文件存储器时间;(2)节省主存空间;(3)解决不同用户文件的命名冲突;(4)方便用户读写文件;(5)提高检索目录的速度。 9.计算机系统中信息资源的安全包括(W)、(X)和(Y)三个方面,其中程序被删除属于(W)方面的威胁,数据被非法截取属于(X)方面的威胁,消息被更改属于(Y)方面的威胁。W,X,Y:(1)保密性;(2)完整性;(3)可用性;(4)方便性。 三、填空题 1.操作系统最基本的特征是(1)和(2),最主要的任务是(3)。 2.引入进程的主要目的是(4),进程存在的唯一标志是(5)。 3.(6)是指通过破坏死锁产生的必要条件来防止死锁的发生。引起死锁的四个必要条件中,(7)是不应该被破坏的,但对某些特殊的资源(如打印机),该条可通过(8)来破坏;而其他能被破坏的三个必要条件分别是(9)、(10)和(11)。 4.虚拟存储器管理的基础是(12)原理,在请求分页管理方式中,页表中的状态位用来只是对应页(13)修改位用来只是对应页(14),引用位则是供(15)使用;而在请求分段系统还增加了增补位,它用来指示(16)。 5.设备驱动程序是(17)与(18)之间的通信程序如果系统中有3台相同的单显和2台相同的彩显则必须为它们配置(19)种设备驱动程序 6.廉价磁盘冗余阵列可组成一个大容量磁盘系统,它利用(20)技术来提高磁盘系统的存取进度,而利用(21)技术来增加磁盘系统的可靠性 7.包过滤防火墙工作在(22)层,采用代理服务技术的防火墙则工作在(23)层 文件系统对文件存储空间采用(23)分配方式,它通过(24)来管理空闲的文件存储空间。 四、问答题 1.假设某多道程序设计系统中有供用户使用的内存100k,打印机1台。系统采用可变分区管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计:采用最短剩余时间优先的进程调度算法,进程剩余执行时间相同时采用先来先服务算法;进程调度时机在执行进程结束时或有新进程到达时。现有一进程序列如下: 假设系统优先分配内存的低地址区域,且不需移动已在主存中的进程,请: (1)给出进度调度算法选中进程的次序,并说明理由。 (2)全部进程执行结束所用的时间是多少 2.请用信号量解决以下的过独木桥问题:同一方向的行人可连续过桥,当某一方向的行人必须等待:另一方向的行人必须等待:当某一方向无人过桥是,另一方向的行人可以过桥。 3.提高内存利用率的途径有哪些 4.何谓脱机输入/输出技术 5. 将目录文件当作一般数据文件来处理有什么优缺点 操作系统复习题1答案 一、判断题 1、错 2、对 3、错 4、对 5、对 6、错 7、错 8、错 9、对10、错 二、选择题 1、A :(2);B:(4);C:(3)。 2、D:(4);E:(3);F:(2)。 3、G:(2);H:(5);I:(3);J:(4)。 4、K:(1);L:(3);M:(5)。 5、N:(2);O:(2)。 6、P:(1)寻道时间;Q:(5)。 7、R:(1);S:(3);T:(5)。8、U:(3);V:(5)。9、W:(3);X:(1);Y:(2)。 三、填空题 (1)并发;(2)资源共享;(3)管理资源;(4)使程序能够正确地并发执行;(5)进程控制快PCB;(6)预防死锁;(7)互斥条件;(8)SPOOLing技术;(9)

部分操作系统复习试题与答案[2015]

第一章 3 填空题 1.计算机系统是由______和______两部分组成的。 2.采用多道程序设计技术能够充分发挥______和______并行工作的能力。 3.多道程序环境下的各道程序,宏观上它们是在______运行,微观上它们是在______运行。 4._____和共享是操作系统两个最基本的特征,两者之间互为存在条件。 5.顺序执行的程序,具有_____性、_____性和可再观性。 6.操作系统的功能包括______管理、______管理、______管理、_____管理,除此之外,操作系统还为用户使用计算机提供了用户接口。 7.批处理系统按内存中同时存放的运行程序的数目可分为______和_____。 答案: 3、填空题 (1)硬件、软件 (2)CPU、外设 (3)并行、串行 (4)并发 (5)顺序性、封闭性

(6)进程、内存、设备、文件 (7)单道批处理系统、多道批处理系统 2进程与线程自测题 1 选择题 1.并发执行的程序具有_____特征。 A.顺序性 B.封闭性 C.可再现性 D.间断性 2.在操作系统中,要想读取文件中的数据,通过什么来实现? A.系统调用 B.原语 C.文件共享 D.中断 3.在进程状态转换图中,_____是不可能的。 A.运行态->就绪态 B.运行态->等待态 C.等待态->运行态 D.等待态->就绪态 4.操作系统对进程进行管理与控制的基本数据结构是_____。 A.JCB B.PCB C.PMT D.DCT 5.一个进程当前处于等待状态,则_____。 A.它可以被调度而获得处理机 B.当I/O完成后,它将变成就绪状态 C.它永远不会被执行 D.它可能变成就绪状态,也可能直接获得处理机 6.进程和程序的本质区别是_____。 A.动态或静态 B.分时使用或独占计算机资源

2020东北农业大学操作系统原理离线作业答案

东北农业大学网络教育学院 操作系统及windows基础网上作业题 第一章操作系统引论 一、选择题 1.(D)不是基本的操作系统 A.批处理操作系统B.分时操作系统C.实时操作系统D.网络操作系统2.(C)不是分时系统的基本特征: A.同时性B.独立性C.实时性D.交互性 3.在计算机系统中,操作系统是( B) A. 一般应用软件 B.核心系统软件 C. 用户应用软件 D.系统支撑软件 4.以下哪一个不是设计操作系统的主要目标(C) A.方便性 B. 有效性 C. 成本低D. 可扩充性 5.最早出现的操作系统是( B) A.分时系统B.单道批处理系统C.多道批处理系统D.实时系统 6. 允许多个用户以交互使用计算机的操作系统是( B) A.分时系统B.单道批处理系统C.多道批处理系统D.实时系统 7. 操作系统是一组( C) A.文件管理程序B.中断处理程序C.资源管理程序D.设备管理程序 8. 现代操作系统的两个基本特征是( C)和资源共享. A.多道程序设计B.中断处理C.程序的并发执行D.实现分时与实时处理 9. ( D)不是操作系统关心的主要问题 A.管理计算机裸机B.设计,提供用户程序与计算机硬件系统的界面 C, 管理计算机系统资源D.高级程序设计语言的编译器 10.引入多道程序的目的是(D) A.为了充分利用主存储器B.增强系统的交互能力 B.提高实时响应速度D.充分利用CPU,减少CPU的等待时间 11.多道程序设计是指( A) A.有多个程序同时进入CPU运行 B.有多个程序同时进入主存并行运行 C.程序段执行不是顺序的 D.同一个程序可以对应多个不同的进程 12.从总体上说,采用多道程序设计技术可以( C)单位时间的算题量,但对每一个算题,从算题开始到全部完成所需的时间比单道执行所需的时间可能要( ). A.增加,减少B.增加,延长C.减少,延长D.减少,减少 13.在分时系统中,时间片一定,( B),响应时间越长。 A.内存越多B.用户数越多C.后备队列D.用户数越少

N套_操作系统期末试卷(含答案)

一、选择题 1、在现代操作系统中引入了(),从而使并发和共享成为可能。 A.单道程序 B. 磁盘 C. 对象 D.多道程序 2、( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A.网络 B.分布式 C.分时 D.实时 3、从用户的观点看,操作系统是()。 A. 用户与计算机硬件之间的接口 B.控制和管理计算机资源的软件 C. 合理组织计算机工作流程的软件 D.计算机资源的的管理者 4、当CPU处于管态时,它可以执行的指令是()。 A. 计算机系统中的全部指令 B. 仅限于非特权指令 C. 仅限于访管指令 D. 仅限于特权指令 5、用户在程序中试图读取某文件的第100个逻辑块时,使用操作系统提供的()接口。 A. 系统调用 B.图形用户接口 C.原语 D.键盘命令 6、下列几种关于进程的叙述,()最不符合操作系统对进程的理解 A.进程是在多程序并行环境中的完整的程序。 B.进程可以由程序、数据和进程控制块描述。 C.线程是一种特殊的进程。 D.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 7、当一个进程处于()状态时,称其为等待(或阻塞)状态。 A. 它正等待中央处理机 B. 它正等待合作进程的一个消息 C. 它正等待分给它一个时间片 D. 它正等待进入内存 8、一个进程释放一种资源将有可能导致一个或几个进程()。 A.由就绪变运行 B.由运行变就绪 C.由阻塞变运行 D.由阻塞变就绪 9、下面关于线程的叙述中,正确的是()。 A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。 B.线程是资源的分配单位,进程是调度和分配的单位。 C.不管系统中是否有线程,进程都是拥有资源的独立单位。 D.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。 10、设有3个作业,它们同时到达,运行时间分别为T1、T2和T3,且T1≤T2≤T3,若它们在单处理机系统中按单道运行,采用短作业优先调度算法,则平均周转时间为()。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. T1+T2/3+2*T3/3 3+2*T2/3+T1 11、在下面的I/O控制方式中,需要CPU干预最少的方式是()。 A.程序I/O方式 B.中断驱动I/O控制方式 C.直接存储器访问DMA控制方式D.I/O通道控制方式 12、有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变

操作系统复习题含答案

一、什么是操作系统?你都用过什么操作系统?各有什么特点? 操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。DOS系统都是以命令的方式运行指令,有的也支持鼠标,甚至也可以做成菜单方式,但跟windows的亲和性相比是无法相比的。windos系列的操作系统主要特点就是简单,图形操作,不需要死记命令,适合非专业人士使用。unix系列由于是开源的,所以操作复杂,功能强大,可以按自己的需求设计与改造,适合专业人士,不适合初学者。 二、试说明操作系统系统的主要功能模块及其主要任务? 处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度; 进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。 进程同步:为多个进程(含线程)的运行进行协调。 进程通信:用来实现在相互合作的进程之间的信息交换。 处理机调度: (1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需 的资源(首选是分配内存)。 (2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给 它,并设置运行现场,使进程投入执行。 内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充。 内存分配:为每道程序分配内存。 内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰。 地址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址。 内存扩充:用于实现请求调用功能,置换功能等。 设备管理主要功能有: 缓冲管理、设备分配和设备处理以及虚拟设备等。 主要任务: 完成用户提出的I/O 请求,为用户分配I/O 设备;提高CPU 和I/O 设 备的利用率;提高I/O速度;以及方便用户使用I/O设备. 文件管理的主要功能是文件存储空间的管理,目录管理,文件的读写管理和文件的共享与保护。主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。 三、什么是多道程序设计技术?试叙述多道程序运行的特征。 所谓多道程序设计指的是允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。也就是说,计算机内存中可以同时存放多道(两个以上相互独立的)程序,它们都处于开始和结束之间。从宏观上看是并行的,多道程序都处于运行中,并且都没有运行结束;从微观上看是串行的,各道程序轮流使用CPU,交替执行。多道程序技术运行的特征:多道、宏观上并行、微观上串行。 四、在一个分时操作系统中,用户提交了一个作业,作业的内容包括:①请求内存(memory);

2016操作系统原理在线作业

窗体顶端 您的本次作业分数为:100分单选题 1.【第01~04章】以下描述中,()并不是多线程系统的特长。 A 利用线程并行地执行矩阵乘法运算。 B web服务器利用线程请求http服务 C 键盘驱动程序为每一个正在运行的应用配备一个线程,用来响应相应的键盘输入。 D 基于GUI的debugger用不同线程处理用户的输入、计算、跟踪等操作。 正确答案:C 单选题 2.【第01~04章】现代操作系统的基本特征是()、资源共享和异步性。 A 多道程序设计 B 中断处理 C 实现分时与实时处理 D 程序的并发执行 正确答案:D 单选题 3.【第01~04章】操作系统的进程管理模块并不负责()。 A 进程的创建和删除 B 提供进程通信机制 C 实现I/O设备的调度 D 通过共享内存实现进程间调度。 正确答案:C 单选题 4.【第01~04章】下列选择中,()不是操作系统必须要解决的问题。 A 提供保护和安全机制 B 管理目录和文件 C 提供应用程序接口

D 提供C++语言编译器 正确答案:D 单选题 5.【第01~04章】用户在程序中试图读存放在硬盘中某文件的第10逻辑块,使用操作系统提供的接口是()。 A 进程 B 系统调用 C 库函数 D 图形用户接口 正确答案:B 单选题 6.【第01~04章】操作系统的管理部分负责对进程进行调度。 A 主存储器 B 控制器 C 运算器 D 处理机 正确答案:D 单选题 7.【第01~04章】下面关于进程的叙述不正确的是()。 A 进程申请CPU得不到满足时,其状态变为就绪状态。 B 在单CPU系统中,任一时刻有一个进程处于运行状态。 C 优先级是进行进程调度的重要依据,一旦确定不能改变。 D 进程获得处理机而运行是通过调度而实现的。 正确答案:C 单选题 8.【第01~04章】下列选项中,操作系统提供给应用程序的接口是()。 A 系统调用 B 中断 C 库函数

操作系统期末考试试题及答案精选

四、解答题(共20分) 1.什么是操作系统它的主要功能是什么(共8分) 操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口 操作系统的主要功能包括:存储器管理、处理机管理、设备管理、文件管理以及用户接口管理。 2.操作系统中存储器管理的主要功能是什么什么叫虚拟存储器(共8分) 存储器管理的主要功能是:内存分配,地址映射,内存保护,内存扩充。(4分) 虚拟存储器是用户能作为可编址内存对待的存储空间,在这种计算机系统中虚地址被映象成实地址。或者:简单地说,虚拟存储器是由操作系统提供的一个假想的特大存储器。(4分) 3.什么是文件的逻辑组织和物理组织(共4分) 文件的逻辑组织——用户对文件的观察和使用是从自身处理文件中数据时 采用的组织方式来看待文件组织形式。这种从用户观点出发所见到的文件组织形式称为文件的逻辑组织。 文件的物理组织——文件在存储设备上的存储组织形式称为文件的物理组织。 三、填空题(每空2分,共30分) 1.通常,进程实体是由程序段,相关的数据段和PCB 这三部分组成,其中PCB 是进程存在的惟一标志。 2.从用户的源程序进入系统到相应程序在机器上运行,所经历的主要处理阶段有编辑阶段,编译阶段,连接阶段,装入阶段和运行阶段。 3.在UNIX系统中,文件的类型主要包括普通文件,目录文件,特别文件。 4.虚拟设备是通过 SPOOLing 技术把独占设备变成能为若干用户共享的设备。 5. Windows NT是采用微内核结构的操作系统,它的进程的功能发

生了变化,它只是资源分配的单位,不是调度运行的单位,后者的功能由线程完成。 五、应用题(共20分) 5.进程所请求的一次打印输出结束后,将使进程状态从( D) A、运行态变为就绪态 B、运行态变为等待态 C、就绪态变为运行态 D、等待态变为就绪态 6.采用动态重定位方式装入的作业,在执行中允许(C )将其移动。 A、用户有条件地 B、用户无条件地 C、操作系统有条件地 D、操作系统无条件地 7.分页式存储管理中,地址转换工作是由(A )完成的。 A、硬件 B、地址转换程序 C、用户程序 D、装入程序 9.对记录式文件,操作系统为用户存取文件信息的最小单位是(C )。 、文件 D 、记录 C 、数据项 B 、字符A. 10.为了提高设备分配的灵活性,用户申请设备时应指定(A )号。 A、设备类相对 B、设备类绝对 C、相对 D、绝对 11.通常把通道程序的执行情况记录在(D )中。 A、PSW B、PCB C、CAW D、CSW 14.共享变量是指(D )访问的变量。 A、只能被系统进程 B、只能被多个进程互斥 C、只能被用户进程 D、可被多个进程 15.临界区是指并发进程中访问共享变量的( D)段。 A、管理信息 B、信息存储 C、数据 D、程序 16.若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许( D)个进程参于竞争,而不会发生死锁。 A、5 B、2 C、3 D、4 17.产生系统死锁的原因可能是由于(C )。 A、进程释放资源 B、一个进程进入死循环 C、多个进程竞争,资源出现了循环等待 D、多个进程竞争共享型设备 21.引入多道程序设计的主要目的在于(BD ) A、提高实时响应速度 B、充分利用处理机,减少处理机空闲时间 、有利于代码共享C.

操作系统复习题(答案)

第二章:操作系统复习题 单项选择 1.对操作系统的说法中错误的是______ A.按运行环境将操作系统分为实时操作系统和分时操作系统和批处理操作系统 B.分时操作系统具有多个终端 C.实时操作系统是对外来信号及时做出反应的操作系统 D.批处理操作系统指利用CPU的空余时间处理成批的作业 2.MS-DOS是基于____的操作系统. A.多用户多任务B.单用户多任务 C.单用户单任务D.多用户单任务 3.以下配置中,_____不是安装Windows 98硬件的最低要求。 A.Intel 80486DX、或PentiumCPU的计算机 B.至少16M以上的RAM C.至少150M的硬盘空间 D.标准VGA(或更高)显示卡 4.通常情况下,Windows 98用户可以通过______,从弹出的菜单中选取相应命令来创建快捷方式。 A.单击鼠标左键B.单击鼠标右键 C.双击鼠标左键D.双击鼠标右键 5.下列有关在Windows 98下查找文件或文件夹的说法,不正确的是______。 A.可以根据文件的位置进行查找 B.可以根据文件的只读属性进行查找 C.可以根据文件的内容进行查找 D.可以根据文件的修改日期进行查找 6.Windows 98提供了各种系统工具来帮助用户管理系统,其中的__可以检查、诊断和修复各种类型的磁盘损坏的错误。A.磁盘扫描程序B.磁盘空间管理C.磁盘碎片整理程序D.备份程序 7.在Windows 98资源管理器中,要查看磁盘的总容量、已用空间和可用空间等磁盘信息,通常可选择__菜单下属性功能。A.文件B.编辑C.查看D.工具 8.在Windows98中,当桌面上有多个窗口时,__________是当前窗口。 A.可以有多个窗口 B.只有一个固定窗口 C.被其它窗口盖住的窗口 D.一个标题栏的颜色与众不同的窗口 9.双击扩展名为.A VI的文件(音视频文件)后,Windows98将打开__________窗口。 A.CD播放器 B.媒体播放器 C.声音-录象机 D.附件

操作系统原理作业

操作系统原理作业 第1章 1-2 批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快? 答:在批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。 1-4什么是多道程序设计技术?试述多道程序运行的特征。 答:多道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因(如 I/O 请求)而暂停执行时,CPU 立即转去执行另一道程序。多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。 1-6操作系统的主要特性是什么?为什么会有这样的特性? 答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。 1-7 (1)工作情况如图。 (2)CPU有空闲等待,它发生在100 ms 150 ms时间段内,此时间段内程序A与程序B 都在进行I/O操作。 (3)程序A无等待现象,程序B在0 ms 50 ms时间段与180 ms 200 ms时间段内有等待现象。 第2章 2-1 什么是操作系统虚拟机? 答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机 2-3 什么是处理机的态?为什么要区分处理机的态? 答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。为了保护操作系统,至少需要区分两种状态:管态和用户态。 2-5 什么是中断?在计算机系统中为什么要引用中断?

计算机操作系统期末考试题及答案(模拟卷一)

2012计算机操作系统期末考试试题及答案 操作系统试卷A 一、简答题(每题5分,共30分) 1.什么是虚拟设备? 2.What’s the differrence between a process and a program? 3.What’s Hyper-Treading technology? 4.死锁的必要条件是什么? 5.为什么将文件控制块分成主部和次部两部分? 6.若系统有同类资源m个,被n个进程共享,问:当m>n和m<=n时每个进程最多可以请求多少个这类资源,使系统一定不会发生死锁?为什么? 二、填空题(每空1分,共10分) 1.操作系统的两个重要特性是:(1) 和(2) 。 2.只能在管态下执行的指令称为(3) 。处理机状态由目态转换为管态的唯一途径是(4) ,管态到目态的转换可以通过修改(5) 来实现。 3.进程在其生存期内可以处于如下三种基本状态之一:运行态、就绪态和等待态。当一个就绪进程(6) 时,其状态由就绪变为运行,当一个运行进程被抢占处理机时,其状态由运行变为(7) ,当一个运行进程因某事件受阻时,其状态由运行变为(8) ,当进程所等待的事件已经发生时,该进程状态由(9) 变为就绪。 4.线程是进程内的一个相对独立的(10)。 三、计算题(每题10分,共40分) 1.设某计算机系统采用虚拟页式存储管理方法,进程的虚拟地址空间为64KB,页面尺寸为4KB。假设当前进程的页表如右图所示(页表以二进制形式表示),请将虚拟地址8196和2050转换为物理地址。 2.设某计算机系统采用虚拟页式存储管理方法,内存中为该进程分配4个物理页架, 开始时内存页架为空,假设进程在一段时间内的页面访问序列如下:6,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1,请画图表示采用以下页面淘汰算法时的缺页中断次数:(1)最佳页面淘汰算法(OPT);(2)先进先出页面淘汰算法(FIFO);(3)使用过最久的先淘汰(LRU)。 3.在UNIX系统中,设磁盘物理块大小为1KB,每个索引块可以保存256个索引项,请画出UNIX文件的物理结构。假设某文件大小为1028KB,请计算访问以下逻辑块时需要多少次I/O传输:(1)8;(2)300;(3)16。 4.设有周期性实时任务集如下表所示,用最早截止期优先算法(EDF算法)和速率单调算法(RMS算法)是否可以调度?画出相应的Gantt图。 四、算法设计(每题10分,共20分) 1.设有一个可以装A、B两种物品的仓库,其容量无限大,但要求仓库中A、

操作系统期末复习2015

一、选择题 1.引入多道程序的目的在于()。 A.有利于代码共享,减少主、辅存信息交换量B.充分利用存储器 C.充分利用CPU,减少CPU等待时间D.提高实时响应速度 2. 在单处理机计算机系统中,()是并行操作的。 A.程序与程序 B.处理机的操作与通道的操作 C.主程序与子程序 D.用户程序与操作系统程序 3.下面哪一个不是程序在并发系统内执行的特点()。 A.产生死锁的必然性 B.资源分配的动态性 C.程序执行的间断性 D.相互通信的可能性 4.进程和程序的一个本质区别是( )。 A. 进程分时使用CPU,程序独占CPU B.进程存储在内存,程序存储在外存 C. 进程在一个文件中,程序在多个文件中 D.进程为动态的,程序为静态的 5.在下列情况( ),系统需要进行进程调度。 A. 某一进程正访问一临界资源 B.某一进程运行时因缺乏资源进入阻塞状态 C.某一进程处于运行状态,而另一进程处于自由状态 D.某一进程正在访问打印机,而另一进程处于就绪状态 6.与设备控制器关系最密切的软件是()。 A.编译程序 B.设备驱动程序 C.存储管理程序 D.处理机管理 7. 若进程P一旦被唤醒就能够投入运行,系统可能()。 A.在抢占调度方式中,P的优先级高于当前运行的进程 B.进程P的优先级最高 C.就绪队列为空队列 D.在抢占调度方式中,P的优先级高于就绪队列中所有的进程 8. 在下列选项中,属于预防死锁的方法是()。 A.剥夺资源法 B.资源分配图法 C.资源随意分配 D.银行家算法 9. 如果要使装入内存的程序,在内存中移动后仍能正常运行,必须要有( )的支持。 A. 静态重定位 B.动态重定位 C. 动态链接 D.静态链接 10. 段页式管理中,地址转换表是( )。 A. 每个进程一张段表,一张页表 B.每个进程的每个段一张段表,一张页表 C.每个进程一张段表,每个段一张页表 D.每个进程一张页表,每个段一张段表 11.下列( )存储管理方式能使内存碎片尽可能少,避免内存的整理。 A.固定分区 B.可变分区 C.分页管理 D.段式管理 12.为了提高系统的交互性,人们设计了( )。

操作系统原理离线作业

浙江大学远程教育学院 《操作系统原理》课程作业 姓名:学号: 年级:学习中心:————————————————————————————— 一、单选题 6.采用段式存储管理的系统中,若地址用32位表示,其中20位表示段号,则允许每段的最大长度是 A. 224 B. 212 C. 210 D. 232 7.在一段式存储管理系统中,某段表的内容如下: 段号段首址段长 0 100K 35K 1 560K 20K 2 260K 15K 3 670K 32K 若逻辑地址为(2, 158),则它对应的物理地址为_____。 A. 100K+158 B. 260K+158 C. 560K+158 D. 670K+158 8.一个分段存储管理系统中,地址长度为32位,其中段长占8位,则最大段长是 A. 28字节 B. 216字节 C. 224字节 D. 232字节 9.有一请求分页式存储管理系统,页面大小为每页100字节,有一个50×50的整型数组按行为主序连续存放,每个整数占两个字节,将数组初始化为0的程序描述如下:int A[50][50]; for (int i = 0; i < 50; i++) for (int j = 0; j < 50; j++) A[i,j] = 0; 若在程执行时内存只有一个存储块用来存放数组信息,试问该程序执行时产生次缺页中断。 A.1 B. 50 C. 100 D. 2500

10.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示: 页装入时间上次引用时间 R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 采用FIFO算法将淘汰页; A. 0 B. 1 C. 2 D. 3 11.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示: 页装入时间上次引用时间 R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 采用NRU算法将淘汰页; A. 0 B. 1 C. 2 D. 3 12.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示: 页装入时间上次引用时间 R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 采用LRU算法将淘汰页; A. 0 B. 1 C. 2 D. 3 13.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示: 页装入时间上次引用时间 R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 采用第二次机会算法将淘汰______页; A. 0 B. 1 C. 2 D. 3 二、综合题

西安交大网络教育秋操作系统原理在线作业习题答案100分

《操作系统原理》习题答案 一、单项选择题 1、(信号量)是一种只能进行P、V操作的特殊变量。 2、一个进程是(PCB结构与程序和数据的组合)。 3、操作系统中,当(时间片完),进程从执行状态转变为就绪状态。 4,设有三个作业J1,J2,J3同时到达,运行时间分别为T1,T2,T3,且T1≤T2 ≤ T3。若它们在一台处理机上按单道运行,采用短作业优先算法,则平均周转时间为(T1+ 2/3T2 + 1/3T3)。 5、在操作系统中,死锁出现是指(若干进程因竞争资源而无限等待其他进程释放已占有的资源) 6.若系统有三个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是( 10 ) 。 7、预防死锁的论述中,(可以通过破坏产生死锁的四个必要条件之一或其中几个的方法,来预防发生死锁)条是正确的论述。 8、关于死锁与不安全状态的关系,下列描述正确的有(死锁是一种不安全状态): 9、银行家算法是一种(死锁避免)算法。 10、以下哪种算法不属于多个分区的可变分区存储管理方式的主存分配算法(最后适应分配算法) 11、在固定分区管理方式中,处理器执行作业时,对每条指令中的地址要求满足(下限地址≤绝对地址≤上限地址) 12、以下叙述中,不正确的是(采用动态和静态重定位的系统都支持“程序浮动”) 13、在页式存储管理中,假定地址用m个二进制位表示,其中页内地址部分占用了n个二进制位,那么最大的作业允许有(2(m-n) )个页面。 14、关于一个分区的存储管理,以下叙述不正确的是(一个分区的存储管理中,必须采用动态重定位的方式进行地址转换) 15、下面哪种算法不属于页式虚拟存储管理中的页面调度算法(优先数调度算法) 16、缺页中断率与哪个因素无关(作业的逻辑地址) 17、很好地解决了“零头”问题的存储管理方法是(页式存储管理) 18、在存储管理中,(可变分区管理)可与覆盖技术配合. 19、虚拟存储器的最大容量(由计算机的地址结构决定) 20、下述(先进先出)页面淘汰算法会产生BELADY现象. 21、计算机系统的二级存储包括(主存储器和辅助存储器) 22、以下关于主存空间的说法中正确的是(操作系统与硬件的接口信息、操作系统的管理信息和程序等存放在主存储器的系统区) 23、联想存储器在计算机系统中是用于(地址变换) 24、以下有关可变分区管理中采用的主存分配算法说法中错误的是(最佳适应算法是最好的算法,但后过的较大作业很难得到满足)

操作系统期末考试试题

一、单项选择 1、在存储管理方案中,__D_____ 可与覆盖技术配合. A、页式管理 B、段式管理 C、段页式管理 D、可变分区管理 2、在存储管理中,采用覆盖与交换技术的目的是___A______。 A、节省主存空间 B、物理上扩充准存容量 C、提高CPU效率 D、实现主存共享 3、动态重定位技术依赖于___B______。 A、重定位装入程序 B、重定位寄存器 C、地址机构 D、目标程序 4、虚拟存储器的最大容量____A______。 A、为内外存容量之和 B、由计算机的地址结构决定 C、是任意的 D、有作业的地址空间决定 5、在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,但执行访问页号序列为1、2、3、4、1、2、5、1、、2、3、4、5、6时,将产生___D___次缺页中断。 A、7 B、8 C、9 D、10 6、设内存的分配情况如下图所示。若要申请一块40K字节的内存空间,若采用最佳适应算法,则所得到的分区首址为____C___。 A、100K B、190K C、330K D、410K 7、很好地解决了“零头”问题的存储管理方法是____A____。 A、页式存储管理 B、段式存储管理 C、多重分区管理 D、可变分区管理 8、系统“抖动”现象的发生是由___A___引起的。 A、置换算法选择不当 B、交换的信息量过大 C、内存容量不足 D、请求页式管理方案 9、在可变式分区存储管理中的拼接技术可以_____A___。 A、集中空闲区 B、增加主存容量 C、缩短访问周期 D、加速地址转换 10、分区管理中采用“最佳适应”分配算法时,宜把空闲区按____A__次序等记在空闲区表中。 A、长度递增 B、长度递减 C、地址递增 D、地址递减 11、在固定分区分配中,每个分区的大小是_C__。 A、相同 B、可以不同但根据作业长度固定 C、可以不同但预先固定 D、所作业长度变化

2015操作系统考试题(带答案)

1并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。 2进程同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。 3重定位:把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,是实现多道程序在内存中同时运行的基础。重定位有动态重定位与静态重定位两种。4虚拟存储器即虚拟内存,是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的"虚拟内存";Linux的"交换空间"等。 Windows 8/8.1 操作系统如出现开机时卡在Windows徽标页面,无法进入系统,必须强制关机再重启才能打开时,可适当调整虚拟内存设置解决。 5死锁:操作系统或软件运行的一种状态:在多任务系统下,一个或多个进程等待系统资源,而资源又被进程本身或其它进程占用。 "磁盘镜像"一词一般有两种不同含义。一种是指复制到相同功能的存储装置中以起到增强数据整合度,增强容错功能,增加吞吐量等作用(如RAID)。这时对应英文一般为Disk Mirror,以下称为磁盘镜。另一种含义是指复制到不同的装置或数据格式,主要用于数据备份。这时对应英文一般为Disk Image,以下称为磁盘映像。通常在使用中这两者都称为"镜像"或"磁盘镜像"。 二/选择填空 1.在设计分时操作系统时,首先要考虑的是交互性和响应时间 2.在OS中采用多道程序设计技术,能有效地提高CPU、内存和IO设备的利用率 3.已分配到除CPU外的所有资源的进程处于就绪状态 4.为使进程由活动就绪转变为静止就绪,应利用suspend原语 5.。。 6. 2 7.线程是CPU调度的基本单位是。 8.在面向用户的调度准则中,截止时间的保证是选择实时调度算法的重要准则 9.下列算法中,FCFS调度算法只能采用非抢占调度方式 10.解决死锁的方法中,,属于死锁避免策略的是银行家算法) 11.在动态分区式内存管理中,每次分配时,把既能满足要求,又是最小的空闲区分配给进 程的算法是最佳适应算法。 12.00 13.0000 14.在请求调页系统选择自上次访问以来所经历时间最长的页面予以淘汰的算法称为LRU 算法。 15.22 三/填空 1、从资源管理的角度看,操作系统具有四大功能:处理机管理、存储器管理、设备管理、 和文件管理。为了方便用户,操作系统还必须提供友好的用户接口。 2、现代操作系统的两个最基本的特征是并发性和资源共享,除此之外,它还具有虚拟性和

相关文档
相关文档 最新文档