操作系统高级教程-思考题-最新版

操作系统高级教程-思考题-最新版
操作系统高级教程-思考题-最新版

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

答:两次都是通过调用get_free_page()在物理内存里申请一个物理页,由于在head.s中决定内核的物理地址和线性地址是一一对应的。因此这两个页都在内核的线性地址空间内。

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 /* --------- " " --------- */

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

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

答:大师兄!!

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

答:大师兄!!

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

答:在执行int n这条中断指令时(在此即为int 0x80),系统会自动把ssesprflagscseip这五个寄存器的值压入栈中。

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

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

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

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

d、经过一段时间的运行,所有的buffer_head都挂到hash_table上了,这时,又有进程申请空闲缓冲块,将会发生什么?解释原因并找到代码证据。

答:

见书上P100-P01.

6.rd_load()执行完之后,虚拟盘已经成为可用的块设备,并成为根设备。在向虚拟盘中copy任何数据之前,虚拟盘中是否有引导块、超级块、i节点位图、逻辑块位图、i节点、逻辑块?请解释其中的道理,并给出代码证据。

答:在rd_load()执行之前,虚拟盘经初始化后中存放的全是0。

rd_init()中的代码段:---P46

cp = rd_start;

for (i=0; i< length; i++)

*cp++ = '\0';

且拷贝数据也是从虚拟盘开始处进行存放的。

rd_load()中的代码:---P121

cp = rd_start;

while (nblocks) {

if (nblocks> 2)

bh = breada(ROOT_DEV, block, block+1, block+2, -1);

else

bh = bread(ROOT_DEV, block);

}

(void) memcpy(cp, bh->b_data, BLOCK_SIZE);

}

7.在虚拟盘被设置为根设备之前,操作系统的根设备是软盘(包括软驱),请说明设置软盘为根设备的技术路线,并给出代码证据。

(提示:注意bootsect.s的249行,508这个数值。

.org 508

root_dev:

.word ROOT_DEV

答:在bootsect.s程序的开始处有一条语句对ROOT_DEV进行赋值。之后执行如下代码,确定所使用的根设备:

segcs

mov ax,root_dev

cmp ax,#0

jne root_defined

segcs

mov bx,sectors

mov ax,#0x0208 ! /dev/ps0 - 1.2Mb

cmp bx,#15

je root_defined

mov ax,#0x021c ! /dev/PS0 - 1.44Mb

cmp bx,#18

je root_defined

undef_root:

jmpundef_root

root_defined:

segcs

mov root_dev,ax

#1、首先会判断根设备是否已经设置,如果设置(如ROOT_DEV=0x306)则直接跳过。否则执行判定。#2、通过每磁道的扇区数判别是1.2Mb还是1.44Mb的软盘,判定完成后跳到末尾处。通过代码调试,发现该段代码执行完之后,存在地址0x901fc处的ROOT_DEV的值为0x021c,即为 1.44Mb的软盘。#3、在main函数开始时,执行====ROOT_DEV = ORIG_ROOT_DEV;======把存放于0x901fc处的值赋给ROOT_DEV。++++#define ORIG_ROOT_DEV (*(unsigned short *)0x901FC)

8.Linux0.11是怎么将根设备从软盘更换为虚拟盘,并加载了根文件系统?用文字、图示表示,并给出代码证据。

答:大师兄!!

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

答:

Head.s中:

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内存全部完成挂接

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

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

#define set_trap_gate(0,&devide_error)\

_set_gate(&idt[0],15,0,&devide_error)

之后执行如下代码:

#define _set_gate(&idt[0],15,0,&devide_error)(gate_addr,type,dpl,addr) \

__asm__ ("movw %%dx,%%ax\n\t" \

"movw %0,%%dx\n\t" \

"movl %%eax,%1\n\t" \

"movl %%edx,%2" \

: \

: "i" ((short) (0x8000+(0<<13)+(15<<8))), \

"o" (*((char *) (&idt[0]))), \

"o" (*(4+(char *) (&idt[0]))), \

"d" ((char *) (&devide_error)),"a" (0x00080000))

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

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

大师兄!!

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

答:因为在计算机上电启动的时候,内存里没有任何代码,需要借助于BIOS代码进行加载引导扇区以及系统代码,在进行一系列的配置(如加载中断向量表和中断服务程序等)后才能够执行操作系统自身的代码。

大师兄和P1.

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

答:这是因为BIOS默认在计算机启动的时候通过BIOS中断只从启动扇区(对Linux-0.11而言指软盘的第一个扇区)加载代码。而后续代码的加载则是通过系统中断完成的。因为如果要使用BIOS进行加载,而且加载完成之后再执行,则需要很长的时间;因此Linux采用的是边执行边加载的方法。

P6

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

答:因为BIOS首先会把中断向量表加载到0x00000-0x003ff的1KB的内存空间,在加载bootsect时约定加载到0x07c00处。挪到0x90000处是操作系统自身的代码完成的,是为加载后续代码做准备;而加载到0x07c00是BIOS约定好了的,操作系统也没办法。

P9

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

答:bootsect在完成自身复制之后,将setup加载到自己的后面(0x90200处),将system模块加载到0x10000处。在完成加载之后,通过指令jmpi 0,SETUPSEG 跳转到setup程序处执行。setup首先关中断将system移动到内存地址起始位置0x0处。完成从16位模式向32位模式转变之后,执行jmpi 0,8 跳到head程序处执行。

P14和P24

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

答:cli是关中断指令。因为此时需要由16位实模式向32位保护模式转变,在新的中断机制未建好之前不允许响应中断(即使有,在操作系统看来跟没有一样),因此使用cli指令关闭所有的中断(当然不包括NMI)。

P16

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

答:因为此时已经工作于32位保护模式下,此时“0”是段内偏移地址;而“8”是段选择符,用以选择段描述符表和描述符表项以及所要求的特权级。

P24

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

答:1、打开A20仅仅意味着CPU可以进行32位寻址,且最大寻址空间是4GB。打开PE 是使能保护模式。打开A20是打开PE的必要条件;而打开A20不一定非得打开PE。2、有必要。打开PE只是说明系统处于保护模式下,但若真正在保护模式下工作,必须打开A20,实现32位寻址。

P20和P22

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

答:从main函数开始执行是一般应用程序的惯例,其实现需要编译器和操作系统为其完成一系列的支撑工作;而Linux是操作系统程序,是最底层的管理和支撑程序,没有其他程序为其执行做支撑,上电时只能在实模式下通过执行3个汇编程序完成向32位模式的转变,之后才可能执行main函数。

P40

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

答:因为在由head程序向main函数跳转时,是不需要main函数返回的;这是由于main函数已经是最底层的函数了,没有更底层的支撑函数支持其返回。所以Linux采用ret指令,模拟函数返回,跳转到main函数去执行。

P38

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

答:#1、保护模式下,对寄存器和内存空间的访问有等级限制,这样防止了用户程序任意串改系统代码。例如,只有在0特权级下才能对控制寄存器进行读写,而在其他特权级下,这种操作是不允许的。#2、采用分页机制,用户进程对内存的读写使用的是线性地址,即基址+偏移。

P402

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

答:特权级是操作系统为了更好的管理内存空间而设的,提高了系统的安全性。通过段,系统划分了内核代码段、内核数据段、用户代码段和用户数据段等不同的数据段,有些段是系统专享的,有些是和用户程序共享的,因此就有特权级的概念。

P398和P405

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

答:参考书上P30的点评。

P30

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

答:通过运行Linux-0.11代码,可以看到剩余的代码是标号after_page_tables之后head程序中的代码。因为head程序共占用25KB+184B的内存空间,系统在建立好分页机制和GDT、IDT之后,在内存空间0x05400-0x54b8处留有184B的空间未使用,因此产生了剩余。

after_page_tables:

pushl $0 # These are the parameters to main :-)

pushl $0

pushl $0

pushl $L6 # return address for main, if it decides to.

pushl $_main

jmpsetup_paging

L6:

jmp L6 # main should never return here, but

# just in case, we know what happens.

int_msg:

.asciz "Unknown interrupt\n\r"

.align 2

ignore_int:

pushl %eax

pushl %ecx

pushl %edx

push %ds

push %es

push %fs

movl $0x10,%eax

mov %ax,%ds

mov %ax,%es

mov %ax,%fs

pushl $int_msg

call _printk

popl %eax

pop %fs

pop %es

pop %ds

popl %edx

popl %ecx

popl %eax

iret

.align 2

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 /* --------- " " --------- */

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

xorl %eax,%eax /* pg_dir is at 0x0000 */

movl %eax,%cr3 /* cr3 - page directory start */

movl %cr0,%eax

orl $0x80000000,%eax

movl %eax,%cr0 /* set paging (PG) bit */

ret /* this also flushes prefetch-queue */

.align 2

.word 0

idt_descr:

.word 256*8-1 # idt contains 256 entries

.long _idt

.align 2

.word 0

gdt_descr:

.word 256*8-1 # so does gdt (note that that's any

.long _gdt # magic number, but it works for me :^)

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

答:在内核数据段。进程0的管理结构task_struct的母本在代码设计阶段就视线设计好了,直接编译加载进内核数据段。内容有状态、信号、pid、alarm、ldt、tss等管理该进程所需的数据。代码证据:

Sched.c:

uniontask_union {

structtask_struct task;

char stack[PAGE_SIZE];

};

static union task_unioninit_task = {INIT_TASK,};

Sched.h:

#define INIT_TASK \

/* state etc */ { 0,15,15, \

/* signals */ 0,{{},},0, \

/* ec,brk... */ 0,0,0,0,0,0, \

/* pid etc.. */ 0,-1,0,0,0, \

/* uidetc */ 0,0,0,0,0,0, \

/* alarm */ 0,0,0,0,0,0, \

/* math */ 0, \

/* fs info */ -1,0022,NULL,NULL,NULL,0, \

/* filp */ {NULL,}, \

{ \

{0,0}, \

/* ldt */ {0x9f,0xc0fa00}, \

{0x9f,0xc0f200}, \

}, \

/*tss*/ {0,PAGE_SIZE+(long)&init_task,0x10,0,0,0,0,(long)&pg_dir,\ 0,0,0,0,0,0,0,0, \

0,0,0x17,0x17,0x17,0x17,0x17,0x17, \

_LDT(0),0x80000000, \

{} \

}, \

}

25.在system.h里

#define _set_gate(gate_addr,type,dpl,addr) \

__asm__ ("movw %%dx,%%ax\n\t" \

"movw %0,%%dx\n\t" \

"movl %%eax,%1\n\t" \

"movl %%edx,%2" \

: \

: "i" ((short) (0x8000+(dpl<<13)+(type<<8))), \

"o" (*((char *) (gate_addr))), \

"o" (*(4+(char *) (gate_addr))), \

"d" ((char *) (addr)),"a" (0x00080000))

#define set_intr_gate(n,addr) \

_set_gate(&idt[n],14,0,addr)

#define set_trap_gate(n,addr) \

_set_gate(&idt[n],15,0,addr)

#define set_system_gate(n,addr) \

_set_gate(&idt[n],15,3,addr)

这里中断门、陷阱门、系统调用都是通过_set_gate设置的,用的是同一个嵌入汇编代码,比较明显的差别是dpl一个是3,另外两个是0,这是为什么?说明理由。

答:dpl表示的是特权级,0和3分别表示0特权级和3特权级。异常处理是由内核来完成的,Linux出于对内核的保护,不允许用户进程直接访问内核。但是有些情况下,用户进程又需要内核代码的支持,因此就需要系统调用,它是用户进程与内核打交道的接口,是由用户进程直接调用的。因此其在3特权级下。

P61

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

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

P67-68

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

答:1、申请的第一个页面用于存放进程1的管理结构和进程1工作于内核态时的栈,设置分为两部分,一部分直接拷贝于进程0,另一部分在copy_process()函数中配置。具体代码参考P80。2、第二个页面存放的是进程1的页表,同样是拷贝于进程0的页表,为160个页表项。

P74和P83

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

答:

====cli指令用于复位IF标志位。在IA-32体系结构中规定,只有当CPL小于或等于IOPL 时才可以执行该指令。如果在CPL大于IOPL的情况下执行,将会产生一个一般保护异常(#GP)。保护异常(#GP)是interrupt 0x13,

在trap_init()中设置--set_trap_gate(13,&general_protection);

=====IA32硬件规定,在执行CLI指令的时候,当前代码的特权级数值上必须不高于当前EFLAGS寄存器中IOPL字段的值。进程0的EFLAGS值设置为0,后续进程如果没有改动也是0,IOPL=0。因此特权级3的代码不能用cli。

30.在Linux操作系统中大量的使用了中断、异常类的处理,为什么?究竟有什么好处?答:

=====CPU在参与运算的时候,可能会发生外设读写、时钟中断以及一些其他的异常情况,这就要求CPU停下来去处理这些异常。最原始的设计CPU不断地对这些端口进行轮询,查看是否发生了异常。显然这种方法效率很低。因此就采用了这种中断方式,变主动轮询为被动响应,只有在发生异常的时候CPU才停下正在进行的运算进行处理,其他时候都在做自己的事情。这大大提高了操作系统的综合效率。

=====中断:变主动轮训为被动相应,提高系统的效率。某些软中断还有特殊作用,如提供系统调用接口等。

异常:程序中出现异常会被硬件捕获,交给操作系统处理。这提供给操作系统一些挽回错误和从错误中恢复的能力,保证操作系统的强壮性。这样操作系统就不会轻易因为某些小异常,如浮点异常、内存访问越界而崩溃。

31.分析get_free_page()函数的代码,叙述在主内存中获取一个空闲页的技术路线。

32.分析copy_page_tables()函数的代码,叙述父进程如何为子进程复制页表。

33.论证进程1(3特权级)的代码在线性地址、物理地址的什么地方?是0-64MB?还是64-128MB?给出代码证据。

34.#define switch_to(n) {\

struct {long a,b;} __tmp; \

__asm__("cmpl %%ecx,_current\n\t" \

"je 1f\n\t" \

"movw %%dx,%1\n\t" \

"xchgl %%ecx,_current\n\t" \

"ljmp %0\n\t" \

"cmpl %%ecx,_last_task_used_math\n\t" \

"jne 1f\n\t" \

"clts\n" \

"1:" \

::"m" (*&__tmp.a),"m" (*&__tmp.b), \

"d" (_TSS(n)),"c" ((long) task[n])); \

}

代码中的"ljmp %0\n\t" 很奇怪,按理说jmp指令跳转到得位置应该是一条指令的地址,可是这行代码却跳到了"m" (*&__tmp.a),这明明是一个数据的地址,更奇怪的,这行代码竟然能正确执行。请论述其中的道理。

35.进程0的作用是什么?给出代码证据。

操作系统课程设计

课程设计报告 2015~2016学年第一学期 操作系统综合实践课程设计 实习类别课程设计 学生姓名李旋 专业软件工程 学号130521105 指导教师崔广才、祝勇 学院计算机科学技术学院 二〇一六年一月

- 1 -

- 2 -

一、概述 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: 本次课程设计是要实现一个简单的模拟Linux文件系统。我们在内存中开辟一个虚拟磁盘空间(20MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。 二、设计的基本概念和原理 2.1 设计任务 多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录 logout 退出当前用户 dir 列文件目录 creat 创建文件 delete 删除文件 open 打开文件 close 关闭文件 - 3 -

read 读文件 write 写文件 mkdir 创建目录 ch 改变文件目录 rd 删除目录树 format 格式化文件系统 Exit 退出文件系统 2.2设计要求 1) 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户) 2) 多级目录:可有多级子目录; 3) 具有login (用户登录)4) 系统初始化(建文件卷、提供登录模块) 5) 文件的创建:create (用命令行来实现)6) 文件的打开:open 7) 文件的读:read8) 文件的写:write 9) 文件关闭:close10) 删除文件:delete 11) 创建目录(建立子目录):mkdir12) 改变当前目录:cd 13) 列出文件目录:dir14) 退出:logout 新增加的功能: 15) 删除目录树:rd 16) 格式化文件系统:format 2.3算法的总体思想 - 4 -

操作系统习题答案

内存1通常情况下,在下列存储管理方式中,()支持多道程序设计、管理最简单,但存储碎片多;()使内存碎片尽可能少,而且使内存利用率最高。 Ⅰ.段式;Ⅱ.页式;Ⅲ.段页式;Ⅳ.固定分区;Ⅴ.可变分区 正确答案:Ⅳ;Ⅰ 2为使虚存系统有效地发挥其预期的作用,所运行的程序应具有的特性是()。正确答案:该程序应具有较好的局部性(Locality) 3提高内存利用率主要是通过内存分配功能实现的,内存分配的基本任务是为每道程序()。使每道程序能在不受干扰的环境下运行,主要是通过()功能实现的。Ⅰ.分配内存;Ⅱ.内存保护;Ⅲ.地址映射;Ⅳ.对换;Ⅴ.内存扩充;Ⅵ.逻辑地址到物理地址的变换;Ⅶ.内存到外存间交换;Ⅷ.允许用户程序的地址空间大于内存空间。 正确答案:Ⅰ;Ⅱ 4适合多道程序运行的存储管理中,存储保护是 正确答案:为了防止各道作业相互干扰 5下面哪种内存管理方法有利于程序的动态链接()? 正确答案:分段存储管理 6在请求分页系统的页表增加了若干项,其中状态位供()参考。 正确答案:程序访问 7从下面关于请求分段存储管理的叙述中,选出一条正确的叙述()。 正确答案:分段的尺寸受内存空间的限制,但作业总的尺寸不受内存空间的限制

8虚拟存储器的特征是基于()。 正确答案:局部性原理 9实现虚拟存储器最关键的技术是()。 正确答案:请求调页(段) 10“抖动”现象的发生是由()引起的。 正确答案:置换算法选择不当 11 在请求分页系统的页表增加了若干项,其中修改位供()参考。 正确答案:换出页面 12 虚拟存储器是正确答案:程序访问比内存更大的地址空间 13测得某个请求调页的计算机系统部分状态数据为:CPU利用率20%,用于对换空间的硬盘的利用率97.7%,其他设备的利用率5%。由此断定系统出现异常。此种情况下()能提高CPU的利用率。 正确答案:减少运行的进程数 14在请求调页系统中,若逻辑地址中的页号超过页表控制寄存器中的页表长度,则会引起()。 正确答案:越界中断 15 测得某个请求调页的计算机系统部分状态数据为:CPU利用率20%,用于对换空间的硬盘的利用率97.7%,其他设备的利用率5%。由此断定系统出现异常。此种情况下()能提高CPU的利用率。 正确答案:加内存条,增加物理空间容量 16 对外存对换区的管理应以()为主要目标,对外存文件区的管理应以()

操作系统教程_孙钟秀(第四版)课后习题答案

首页入门学 习 程序 员 计算机考 研 计算机电子书 下载 硬件知 识 网络知 识 专业课程答案 下载 视频教程下载 第一章 作者:佚名来源:网络 1、有一台计算机,具有IMB 内存,操作系统占用200KB ,每个用户进程各占200KB 。如果用户进程等待I/O 的时间为80 % ,若增加1MB 内存,则CPU 的利用率提高多少? 答:设每个进程等待I/O 的百分比为P ,则n 个进程同时等待刀O 的概率是Pn ,当n 个进程同时等待I/O 期间CPU 是空闲的,故CPU 的利用率为1-Pn。由题意可知,除去操作系统,内存还能容纳4 个用户进程,由于每个用户进程等待I/O的时间为80 % , 故: CPU利用率=l-(80%)4 = 0.59 若再增加1MB 内存,系统中可同时运行9 个用户进程,此时:cPu 利用率=l-(1-80%)9 = 0.87 故增加IMB 内存使CPU 的利用率提高了47 % : 87 %/59 %=147 % 147 %-100 % = 47 % 2 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A 先开始做,程序B 后开始运行。程序A 的运行轨迹为:计算50ms 、打印100ms 、再计算50ms 、打印100ms ,结束。程序B 的运行轨迹为:计算50ms 、输入80ms 、再计算100ms ,结束。试说明(1 )两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?( 2 )程序A 、B 有无等待CPU 的情况?若有,指出发生等待的时刻。 答:画出两道程序并发执行图如下: (1)两道程序运行期间,CPU存在空闲等待,时间为100 至150ms 之间(见图

操作系统第四版-课后习题答案

操作系统第四版-课后习题答案

第一章 作者:佚名来源:网络 1、有一台计算机,具有IMB 内存,操作系统占用200KB ,每个用户进程各占200KB 。如果用户进程等待I/O 的时间为80 % ,若增加1MB 内存,则CPU 的利用率提高多少? 答:设每个进程等待I/O 的百分比为P ,则n 个进程同时等待刀O 的概率是Pn ,当n 个进程同时等待I/O 期间CPU 是空闲的,故CPU 的利用率为1-Pn。由题意可知,除去操作系统,内存还能容纳4 个用户进程,由于每个用户进程等待I/O的时间为80 % , 故: CPU利用率=l-(80%)4 = 0.59 若再增加1MB 内存,系统中可同时运行9 个用户进程,此时:cPu 利用率=l-(1-80%)9 = 0.87 故增加IMB 内存使CPU 的利用率提高了47 % : 87 %/59 %=147 % 147 %-100 % = 47 % 2 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A 先开始做,程序B 后开始运行。程序A 的运行轨迹为:计算50ms 、打印100ms 、再计算50ms 、打印100ms ,结束。程序B 的运行轨迹为:计算50ms 、输入80ms 、再计算100ms ,结束。试说明(1 )两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?( 2 )程序A 、B 有无等待CPU 的情况?若有,指出发生等待的时刻。 答:画出两道程序并发执行图如下: (1)两道程序运行期间,CPU存在空闲等待,时间为100 至150ms 之间(见图中有色部分) (2)程序A 无等待现象,但程序B 有等待。程序B 有等待时间段为180rns 至200ms 间(见图中有色部分) 3 设有三道程序,按A 、B 、C优先次序运行,其内部计算和UO操作时间由图给出。

操作系统》第章教材习题解答

第4章存储管理 “练习与思考”解答 1.基本概念和术语 逻辑地址、物理地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、碎片紧缩、虚拟存储器、快表、页面抖动 用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为相对地址或逻辑地址。 内存中各物理存储单元的地址是从统一的基地址开始顺序编址的,这种地址称为绝对地址或物理地址。 由程序中逻辑地址组成的地址范围叫做逻辑地址空间,或简称为地址空间。 由内存中一系列存储单元所限定的地址范围称作内存空间,也称物理空间或绝对空间。 程序和数据装入内存时,需对目标程序中的地址进行修改。这种把逻辑地址转变为内存物理地址的过程称作重定位。 静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。 动态重定位是在程序执行期间,每次访问内存之前进行重定位。这种变换是靠硬件地址转换机构实现的。 内存中这种容量太小、无法被利用的小分区称作“碎片”或“零头”。 为解决碎片问题,移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。这种技术称为紧缩(或叫拼凑)。 虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。 为了解决在内存中放置页表带来存取速度下降的矛盾,可以使用专用的、高速小容量的联想存储器,也称作快表。 若采用的置换算法不合适,可能出现这样的现象:刚被换出的页,很快又被访问,为把它调入而换出另一页,之后又访问刚被换出的页,……如此频繁地更换页面,以致系统的大部分时间花费在页面的调度和传输上。此时,系统好像很忙,但实际效率却很低。这种现象称为“抖动”。 2.基本原理和技术 (1)存储器一般分为哪些层次?各有何特性? 存储器一般分为寄存器、高速缓存、内存、磁盘和磁带。 CPU内部寄存器,其速度与CPU一样快,但它的成本高,容量小。 高速缓存(Cache),它们大多由硬件控制。Cache的速度很快,它们放在CPU内部或非常靠近CPU的地方。但Cache的成本很高,容量较小。 内存(或称主存),它是存储器系统的主力,也称作RAM(随机存取存储器)。CPU可以直接存取内存及寄存器和Cache中的信息。然而,内存中存放的信息是易变的,当机器电源被关闭后,内存中的信息就全部丢失了。 磁盘(即硬盘),称作辅助存储器(简称辅存或外存),它是对内存的扩展,但是CPU不能直接存取磁盘上的数据。磁盘上可以永久保留数据,而且容量特别大。磁盘上数据的存取速度低于内存存取速度。 磁带保存的数据更持久,容量更大,但它的存取速度很慢,而且不适宜进行随机存取。所以,磁带设备一般不能用做辅存。它的主要用途是作为文件系统的后备,存放不常用的信息或用做系统间传送信息的介质。 (2)装入程序的功能是什么?常用的装入方式有哪几种? 装入程序的功能是根据内存的使用情况和分配策略,将装入模块放入分配到的内存区中。 程序装入内存的方式有三种,分别是绝对装入方式、可重定位装入方式和动态运行时装入方式。

操作系统课程试验

第3章处理机管理 7.1实验内容 处理机管理是操作系统中非常重要的部分。为深入理解进程管理部分的功能,设计几个调度算法,模拟实现处理机的调度。 7.2实验目的 在多道程序或多任务系统中,系统同时处于就绪状态的进程有若干个。也就是说能运行的进程数远远大于处理机个数。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占用处理机。要求学生设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。 7.3实验题目 7.3.1设计一个按先来先服务调度的算法 提示 (1)假设系统中有5个进程,每个进程由一个进程控制块(PCB)来标识。进程控制块内容如图7-1所示。 进程名即进程标识。 链接指针:按照进程到达系统的时间将处于就绪状态的进程连接成一个就绪队列。指针指出下一个到达进程的进程控制块首地址。最后一个进程的链指针为NULL。 估计运行时间:可由设计者指定一个时间值。 达到时间:进程创建时的系统时间或由用户指定。调度时,总是选择到达时间最早的进程。 进程状态:为简单起见,这里假定进程有两种状态:就绪和完成。并假定进程一创建就处于就绪状态,用R表示。当一个进程运行结束时,就将其置成完成状态,用C表示。 (2)设置一个队首指针head,用来指出最先进入系统的进程。各就绪进程通过链接指针连在一起。 (3)处理机调度时总是选择队首指针指向的进程投入运行。由于本实验是模拟实验,所以对被选中进程并不实际启动运行,而只是执行: 估计运行时间减1 用这个操作来模拟进程的一次运行,而且省去进程的现场保护和现场恢复工作。 (4)在所设计的程序中应有显示或打印语句,能显示或打印正运行进程的进程名,已运行是、还剩时间,就绪队列中的进程等。所有进程运行完成是,给出各进程的周转时间和平均周转时间。 先来先服务(FCFS)调度算法 /*源程序1.cpp,采用先来先无法法在Visual C++ 6.0下调试运行*/ /*数据结构定义及符号说明*/ #include #include

(完整版)操作系统课后题答案

2.OS的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机硬件系统之间的接口;(2)OS作为计算机系统资源的管理者; (3)OS实现了对计算机资源的抽象。 5.何谓脱机I/O和联机I/O? 答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。 11.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 20.试描述什么是微内核OS。 答:(1)足够小的内核;(2)基于客户/服务器模式;(3)应用机制与策略分离原理;(4)采用面向对象技术。 25.何谓微内核技术?在微内核中通常提供了哪些功能? 答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。 第二章进程管理 2. 画出下面四条语句的前趋图: S1=a:=x+y; S2=b:=z+1; S3=c:=a – b;S4=w:=c+1; 答:其前趋图为: 7.试说明PCB 的作用,为什么说PCB 是进程存在的惟一标志? 答:PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的。 11.试说明进程在三个基本状态之间转换的典型原因。 答:(1)就绪状态→执行状态:进程分配到CPU资源;(2)执行状态→就绪状态:时间片用完;(3)执行状态→阻塞状态:I/O请求;(4)阻塞状态→就绪状态:I/O完成. 19.为什么要在OS 中引入线程?

计算机操作系统教程课后答案

第一章绪论 1.什么是操作系统的基本功能? 答:操作系统的职能是管理和控制汁算机系统中的所有硬、软件资源,合理地组织计算 机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包括: 处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。 2.什么是批处理、分时和实时系统?各有什么特征? 答:批处理系统(batchprocessingsystem):操作员把用户提交的作业分类,把一批作业编成一个作业执行序列,由专门编制的监督程序(monitor)自动依次处理。其主要特征是:用户脱机使用计算机、成批处理、多道程序运行。 分时系统(timesharingoperationsystem):把处理机的运行时间分成很短的时间片,按时间片轮转的方式,把处理机分配给各进程使用。其主要特征是:交互性、多用户同时性、独立性。 实时系统(realtimesystem):在被控对象允许时间范围内作出响应。其主要特征是:对实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。 3.多道程序(multiprogramming)和多重处理(multiprocessing)有何区别? 答;多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真正地同时执行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统的支持。 4.讨论操作系统可以从哪些角度出发,如何把它们统一起来? 答:讨论操作系统可以从以下角度出发: (1)操作系统是计算机资源的管理者; (2)操作系统为用户提供使用计算机的界面; (3)用进程管理观点研究操作系统,即围绕进程运行过程来讨论操作系统。

操作系统课程教学大纲

GDOU-B-11-213 《操作系统》课程教学大纲 课程简介 课程简介: 本课程主要讲述操作系统的原理,使学生不仅能够从系统内部了解操作系统的工作原理,而且可以学到软件设计的思想方法和技术方法。主要内容 包括:操作系统的概论;操作系统的作业管理;操作系统的文件管理原理; 操作系统的进程概念、进程调度和控制、进程互斥和同步等;操作系统的各 种存储管理方式以及存储保护和共享;操作系统的设备管理一般原理。其次 在实验环节介绍实例操作系统的若干实现技术,如:Windows操作系统、Linux 操作系统等。 课程大纲 一、课程的性质与任务: 本课程计算机学科的软件工程专业中是一门专业方向课,也可以面向计算机类的其它专业。其任务是讲授操作系统的原理,从系统内部了解操作系统的工作原理以级软件设计的思想方法和技术方法;同时介绍实例操作系统的若干实现技术。 二、课程的目的与基本要求: 通过本课程的教学使学生能够从操作系统内部获知操作系统的工作原理,理解操作系统几大管理模块的分工和管理思想,学习设计系统软件的思想方法,通过实验环节掌握操作系统实例的若干实现技术,如:Windows操作系统、Linux操作系统等。 三、面向专业: 软件工程、计算机类 四、先修课程: 计算系统基础,C/C++语言程序设计,计算机组成结构,数据结构。 五、本课程与其它课程的联系:

本课程以计算系统基础,C/C++语言程序设计,计算机组成结构,数据结构等为先修课程,在学习本课程之前要求学生掌握先修课程的知识,在学习本课程的过程中能将数据结构、计算机组成结构等课程的知识融入到本课程之中。 六、教学内容安排、要求、学时分配及作业: 第一章:操作系统概论(2学时) 第一节:操作系统的地位及作用 操作系统的地位(A);操作系统的作用(A)。 第二节:操作系统的功能 单道系统与多道系统(B);操作系统的功能(A)。 第三节:操作系统的分类 批处理操作系统(B);分时操作系统(B);实时操作系统(B)。 第二章:作业管理(2学时) 第一节:作业的组织 作业与作业步(B);作业的分类(B);作业的状态(B);作业控制块(B)。 第二节:操作系统的用户接口 程序级接口(A);作业控制级接口(A)。 第三节:作业调度 作业调度程序的功能(B);作业调度策略(B);作业调度算法(B)。 第四节:作业控制 脱机控制方式(A);联机控制方式(A)。 第三章:文件管理(8学时) 第一节:文件与文件系统(1学时) 文件(B);文件的种类(B);文件系统及其功能(A)。 第二节:文件的组织结构(1学时) 文件的逻辑结构(A);文件的物理结构(A)。 第三节:文件目录结构(1学时) 文件说明(B);文件目录的结构(A);当前目录和目录文件(B)。 第四节:文件存取与操作(1学时) 文件的存取方法(A);文件存储设备(C);活动文件(B);文件操作(A)。 第五节:文件存储空间的管理(2学时) 空闲块表(A);空闲区表(A);空闲块链(A);位示图(A)。 第六节:文件的共享和保护(2学时)

操作系统课后习题答案

第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 4.试说明推劢多道批处理系统形成和収展的主要劢力是什么? 答:主要动力来源于四个方面的社会需求与技术发展: (1)不断提高计算机资源的利用率; (2)方便用户; (3)器件的不断更新换代; (4)计算机体系结构的不断发展。 12.试从交互性、及时性以及可靠性方面,将分时系统不实时系统迚行比较。答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。 (2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。 (3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 13.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 第二章 2. 画出下面四条诧句的前趋图: S1=a:=x+y; S2=b:=z+1; S3=c:=a –b;S4=w:=c+1; 8.试说明迚程在三个基本状态之间转换的典型原因。 答:(1)就绪状态→执行状态:进程分配到CPU资源 (2)执行状态→就绪状态:时间片用完 (3)执行状态→阻塞状态:I/O请求 (4)阻塞状态→就绪状态:I/O完成

操作系统教程习题答案

《操作系统教程》习题答案

习题1 1.单项选择题 (1)大中小型计算机是以为中心的计算机系统。 A、CPU 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、并发性是指进程,并行性是指程序 (1)B (2)B (3)A (4)B (5)D (6)B 2.填空题 (1)微机是以总线为纽带构成的计算机系统。 (2)在批处理兼分时系统中,往往把由分时系统控制的作业称为前台作业,把由批处理系统控制的作业称为后台作业。 (3)在分时系统中,若时间片长度一定,则用户数越多,系统响应时间越慢。 (4)分布式操作系统能使系统中若干台计算机协同完成一个共同的任务,分解问题成为子计算并使之在系统中各台计算机上并行执行,以充分利用各计算机的优势。 (5)用户通过网络操作系统可以网络通信、资源共享,从而大大扩展了计算机的应用范围。 3.简答题 (1)什么是操作系统?现代操作系统的基本特征是什么?并发性 (2)什么是批处理系统,衡量批处理系统好坏的主要指标是什么?及时性 (3)试述分时系统的原理及其特性。时间片原则交互性同时性独立性及时性

《操作系统》课程教案

《操作系统》课程教案 一、课程定位 操作系统课程是计算机应用技术专业基础课程,属于必修课程。在课程设置上起着承上启下的作用,其特点是概念多、抽象和涉及面广。主要任务是:使学生掌握计算机操作系统的基本原理及组成;计算机操作系统的概念和相关新概念、名词及术语;了解计算机操作系统的发展特点、设计技巧和方法;对常用计算机操作系统会进行基本的操作使用。 按照新专业人才培养方案,该课程开设在第三学期。本课程的先导课程为《计算机组成原理》,《微机原理》,《数据结构》和《高级语言程序设计》;后续课程为《数据库系统原理》、《计算机网络》。 二、课程总目标 通过本课程的学习,使学生理解操作系统基本原理,并在此基础上培养学生实际动手编程能力。 (一)知识目标 1.理解操作系统的概念、操作系统的发展历史、类型、特征以及结构设计。 2.掌握进程和线程。 3.掌握死锁的预防、避免、检测和恢复。 4.掌握作业调度、进程调度、调度准则、调度算法、线程调度等。 5.掌握存储管理中的分区法、分页技术、分段技术、段页式技术等。 6. 掌握文件系统的功能和结构、目录结构和目录查询、文件和目录操作。 7. 掌握输入/输出管理、用户接口服务、嵌入式操作系统、分布式操作系统。

(二)素质目标 1.熟练使用计算机操作系统。 2.能够解决一些简单的应用问题。 3.了解计算机操作系统设计技巧。 (三)职业能力培养目标 1.初步具备辩证思维的能力。 2.具有热爱科学,实事求是的学风和创新意识,创新精神。 三、课程设计 (一)设计理念 以职业能力培养为导向,进行课程开发与设计。按照人才培养目标要求来确定课程的内容、教学组织、教学方法和手段,注重培养学生分析问题、解决问题的能力、计算机思维能力、自学能力和从业能力。 (二)设计思路 1.以“够用、适用、实用”为目标设计课程教学内容。 2.考虑后序课程需要,突出重点,强化专业应用。 3.注重课堂教学互动,教师为主导,学生为主体,引导学生积极思维,培养学生的学习能力。 4.注重培养学生分析问题、解决问题的能力和自学能力。

《计算机操作系统(第3版)》教学大纲

操作系统 课程名称(英文):Operating System 适用专业:信息管理与信息系统、电子商务、信息安全 课程性质:专业基础课,必修 学时:56学时,其中讲课:48学时,上机:8学时,实验:0学时 先修课程:C语言程序设计、数据结构、信息系统基础 一、本课程的地位、作用与任务 通过本课程的学习,使学生掌握现代操作系统的基本原理及设计技术,了解操作系统的运行环境及实现方法,并运用操作系统的理论和方法分析现有的操作系统。使学生在操作系统应用领域具有较强的分析问题和解决问题的能力,为将来系统研究和软件开发打下坚实的基础。 二、内容、学时及基本要求

三、说明 1.本大纲意在掌握了操作系统基本原理的基础上,加强对现代操作系统新技术和新方法的介绍,以使课程适应社会的需要。本课程课内实验8学时,并另开设操作系统课程设计1周。 2.课程的教学要求层次: 教学内容按熟练掌握、掌握、理解、了解几个层次要求。在教学过程中,应注意理论联系实际、注重与本专业的其他学科知识的衔接与配合。加强对学生分析问题和解决问题能力的培养。 3.本大纲的适用范围: 本大纲适用信息管理与信息系统、电子商务、信息安全专业的课程。 4.教学中应注意的问题: 该课程教学中应注意吸收新知识、新观念,尤其要密切注意操作系统发展的新动向。 5.教学方法: 该课程的教学方法应以讲授法为主,案例教学、研究讨论教学为辅。 6.考核方式:期末采取闭卷考试方式,期末考试成绩占总评成绩70%、平时成绩占总评成绩20%、实验成绩占总评成绩10%。 7.上机学时分配:本实验Linux环境下进行,皆在培养学生理论联系实际能力和操作

操作系统教程第5版部分习题标准答案

第一章: 一、3、10、15、23、27、35 3.什么是操作系统?操作系统在计算机系统中的主要作用是什么? 操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户有效地使用计算机提供良好运行环境的一种系统软件. 主要作用 (1)服务用户—操作系统作为用户接口和公共服务程序 (2)进程交互—操作系统作为进程执行的控制者和协调者 (3)系统实现—操作系统作为扩展机或虚拟机 (4)资源管理—操作系统作为资源的管理者和控制者 10.试述系统调用与函数(过程)调用之间的区别。 (1)调用形式和实现方式不同; (2)被调用的代码位置不同; (3)提供方式不同 15.什么是多道程序设计?多道程序设计有什么特点? 多道程序设计是指允许多个作业(程序)同时进入计算机系统内存并执行交替计算的方法。从宏观上看是并行的,从微观上看是串行的。 (1)可以提高CPU、内存和设备的利用率; (2)可以提高系统的吞吐率,使单位时间内完成的作业数目增加; (3)可以充分发挥系统的并行性,使设备和设备之间,设备和CPU之间均可并行工作。 23.现代操作系统具有哪些基本功能?请简单叙述之。 (1)处理器管理; (2)存储管理; (3)设备管理; (4)文件管理; (5)联网与通信管理。 27.什么是操作系统的内核? 内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于内核态,具有直接访问计算机系统硬件设备和所有内存空间的权限,是仅有的能够执行特权指令的程序。 35.简述操作系统资源管理的资源复用技术。

系统中相应地有多个进程竞争使用资源,由于计算机系统的物理资源是宝贵和稀有的,操作系统让众多进程共享物理资源,这种共享称为资源复用。 (1)时分复用共享资源从时间上分割成更小的单位供进程使用; (2)空分复用共享资源从空间上分割成更小的单位供进程使用。 . 二、2、5 2、答:画出两道程序并发执行图如下: (1) (见图中有色部分)。 (2)程序A无等待现象,但程序B有等待。程序B有等待时间段为180ms至200ms间(见 图中有色部分)。 5、答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):

操作系统课程设计

操作系统课程设计 Prepared on 22 November 2020

湖南科技大学计算机科学与工程学院 操作系统课程设计报告 学号: ******** 姓名:* * 班级: *** 指导老师: *** 完成时间: ****.**.** 目录 实验一 Windows进程管理 实验二 Linux进程管理 实验三互斥与同步 实验四银行家算法的模拟与实现 实验五内存管理 实验六磁盘调度 实验七进程间通信 实验一 Windows进程管理 一、实验目的 1)学会使用 VC 编写基本的 Win32 Consol Application(控制台应用程序)。 2)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解 Windows 进程的“一生”。

3)通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。 二、实验内容和步骤 (1)编写基本的 Win32 Consol Application 步骤1:登录进入 Windows 系统,启动 VC++ 。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择 “Win32 ConsolApplication”,然后在“Project name”处输入工程名,在“Location” 处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”,然后在“File” 处输入 C/C++源程序的文件名。 步骤4:将清单 1-1 所示的程序清单复制到新创建的 C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的 debug 子目录,执行编译好的可 (2)创建进程 本实验显示了创建子进程的基本框架。该程序只是再一次地启动自身,显示它的系统进程 ID和它在进程列表中的位置。 步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单 1-2 中的程序编译成可执行文件。 步骤2:在“命令提示符”窗口运行步骤 1 中生成的可执行文件,列出运行结果。按下ctrl+alt+del,调用 windows 的任务管理器,记录进程相关的行为属性。 步骤3:在“命令提示符”窗口加入参数重新运行生成的可执行文件,列出运行结果。按下ctrl+alt+del,调用 windows 的任务管理器,记录进程相关的行为属性。 (3)父子进程的简单通信及终止进程

计算机操作系统教程(第3版)知识点

名词解释 第一章内容: 1、操作系统的概念(名词解释): 操作系统是位于硬件层之上,所有其他系统软件层之下的一个系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方便用户使用计算机系统。 第二章的内容: 1.作业的定义(名词解释) 在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。 第三章的内容: 1、程序的并发执行定义: 一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。 增强计算机系统的处理能力和提高资源利用率所采取的一种同时操作技术。 5、死锁的概念: 指各并发进程互相等待对方所拥有的资源,且这些并发进程在得到对方资源之前不会释放自己所拥有的资源。 8.线程:线程又被称为轻权进程或轻量级进程。线程是进程的一部分。线程是CPU调度的一个基本单位。 第五章内容: 1、存储器是由内存和外存组成的,在存储管理系统把进程中那些不经常被访问的程序段和 数据放入外存中,待需要访问它们时再将它们调入内存。 2、虚拟存储器:进程中的目标代码、数据等的虚拟地址组成的虚拟空间。 5、用户程序自己控制内外存之间的数据交换的例子是覆盖。覆盖技术要求用户清楚地了解程序的结构,并指定各程序段调入内存的先后次序。 6、操作系统控制方式又可进一步分为两种,一种呈交换方式,另一种是请求调入方式和预调入方式。 3、覆盖技术与交换技术是在多道环境下用来扩充内存的2钟方法。 第九章内容: 2、中断的基本概念:计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。 3、根据中断源产生的条件,可把中断分为外中断和内中断。

操作系统课后题答案

2.1 一类操作系统服务提供对用户很有用的函数,主要包括用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测等。 另一类操作系统函数不是帮助用户而是确保系统本身高效运行,包括资源分配、统计、保护和安全等。 这两类服务的区别在于服务的对象不同,一类是针对用户,另一类是针对系统本身。 2.6 优点:采用同样的系统调用界面,可以使用户的程序代码用相同的方式被写入设备和文件,利于用户程序的开发。还利于设备驱动程序代码,可以支持规范定义的API。 缺点:系统调用为所需要的服务提供最小的系统接口来实现所需要的功能,由于设备和文件读写速度不同,若是同一接口的话可能会处理不过来。 2.9 策略决定做什么,机制决定如何做。他们两个的区分对于灵活性来说很重要。策略可能会随时间或位置而有所改变。在最坏的情况下,每次策略改变都可能需要底层机制的改变。系统更需要通用机制,这样策略的改变只需要重定义一些系统参数,而不需要改变机制,提高了系统灵活性。 3.1、短期调度:从准备执行的进程中选择进程,并为之分配CPU; 中期调度:在分时系统中使用,进程能从内存中移出,之后,进程能被重新调入内存,并从中断处继续执行,采用了交换的方案。 长期调度:从缓冲池中选择进程,并装入内存以准备执行。 它们的主要区别是它们执行的频率。短期调度必须频繁地为CPU选择新进程,而长期调度程序执行地并不频繁,只有当进程离开系统后,才可能需要调度长期调度程序。 3.4、当控制返回到父进程时,value值不变,A行将输出:PARENT:value=5。 4.1、对于顺序结构的程序来说,单线程要比多线程的功能好,比如(1)输入三角形的三边长,求三角形面积;(2)从键盘输入一个大写字母,将它改为小写字母输出。

《操作系统》课程简介.doc

《操作系统》课程简介 一、课程简介 操作系统(Operating System)是当代计算机软件系统的核心,是计算机系统的基础和支撑,它管理和控制着计算机系统中的所有软、硬件资源,可以说操作系统是计算机系统的灵魂。操作系统课程是计算机专业学生必须学习和掌握的基础课程,是进行系统软件开发的理论基础,也是计算机专业的一门理论性和实践性并重的核心主干课程。 二、课程性质 本课程是一门技术性、实践性很强的课程,又是理论与实践紧密结合的课程,既注重操作系统基础理论,又着眼培养学生解决实际问题能力。本课程将学习操作系统的基本原理、基本方法及其实现技术,包括处理器管理、存储管理、文件管理、设备管理以及进程的互斥、同步、通信与死锁等内容。使学生了解当今几个主流操作系统,了解操作系统的设计方法和并发程序的设计,具备较强的软件设计能力和较严密的思维能力。 三、教学目的 1、使学生全面地了解和掌握现代计算机操作系统的基本原理,从资源管理的角度领会操作系统的功能和实现技术。 2、使学生建立起以操作系统为中心的对计算机系统整体性和系统级的认识。 3、使学生系统科学地受到分析问题和解决问题的训练,提高运用理论知识开发实际操作系统的基本能力。

《操作系统》教学大纲第1章:引论 (一)知识要点 1、计算机硬件结构 2、操作系统介绍 3、操作系统的发展历程 4、操作系统的类型 5、操作系统的特征 6、操作系统结构设计 (二)能力重点 1、操作系统的定义、分类 2、操作系统的主要功能 3、操作系统的基本特征 第2章:进程和线程 (一)知识要点 1、进程的概念 2、进程的状态和组成 3、进程管理 4、线程的概念 5、进程的同步和通信 6、经典进程同步问题 7、进程通信 (二)能力重点 1、进程的定义、进程的状态 2、进程的创建、撤销、阻塞、唤醒等原语 3、线程和进程的区别,线程的特征 4、经典进程同步问题的解决方法

操作系统课后题答案

精品文档 课本课后题部分答案 第一章 的主要目标是什么?OS1.设计现代答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2.OS的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机硬件系统之间的接口 (2)OS作为计算机系统资源的管理者 (3)OS实现了对计算机资源的抽象 13.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 14.处理机管理有哪些主要功能?它们的主要任务是什么? 答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度; 进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。 进程同步:为多个进程(含线程)的运行______________进行协调。 通信:用来实现在相互合作的进程之间的信息交换。 处理机调度: (1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需 的资源(首选是分配内存)。 (2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给 它,并设置运行现场,使进程投入执行。 15.内存管理有哪些主要功能?他们的主要任务是什么? 北京石油化工学院信息工程学院计算机系3/48 《计算机操作系统》习题参考答案余有明与计07和计G09的同学们编著 3/48 答:内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充。 内存分配:为每道程序分配内存。 内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰。 地址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址。 内存扩充:用于实现请求调用功能,置换功能等。 16.设备管理有哪些主要功能?其主要任务是什么? 答:主要功能有: 缓冲管理、设备分配和设备处理以及虚拟设备等。 主要任务: 完成用户提出的I/O 请求,为用户分配I/O 设备;提高CPU 和I/O 设 备的利用率;提高I/O速度;以及方便用户使用I/O设备. 17.文件管理有哪些主要功能?其主要任务是什么? 答:文件管理主要功能:文件存储空间的管理、目录管理、文件的读/写管理和保护。 文件管理的主要任务:管理用户文件和系统文件,方便用户使用,保证文件安全性。 第二章

计算机操作系统教程-第三版清华大学出版社-课后答案

第一章绪论 I.什么是操作系统的幕本功能? 答:操作系统的职能是管理和控制汁算机系统中的所有硬、软们资源,合理地组织计算 机工作流程,并为用户提供一个良好的工作环境和友好的接u.操作系统的基本功能包括: 处理机管理、存储管理、设备管理、信息管理(文们骡统管理)和用户接Ii等. 2.什么是批处理、分时和实时系统?各有什么特征? 答:批处理系统(batchprocess ingsystem) :操作员把用户提交的作收分类.把一批作收编成一 个作业执行序列,由专门编制的监督程序(monitor)自动依次处理.其主要特征是:用户脱机 使用计算机、成批处理、多道程序运行. 分时系统(timcsharingopcrationsystcm ):把处理机的运行时(fnJ分成很短的时fFIJ片,按I<"t fnJ 片轮 转的方式,把处理机分配给各进程使用.其主要特征是:交互性、多用户同时性、独立性。实时系统(rcaltimcsystcm):在被控对象允许时间范围内作出响应.其主要特征是:对实时信 息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。 3.多道程序(multiprogramming)和多爪处理(multiprocessing)有何区别? 答:多道程序(multiprogramming)是作收之间自动调度执行、共享系统资源.并不是真正地 同时俏行多个作业:而多熏处W.. (multiprocessing)系统配置多个CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统的支持. 第二章作业管理和用户接口 1.什么是作业?.作业步? 答:把在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务的处理的全部工作称为一个作业。作业由不同的顺序相连的作业步组成。作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。如.编辑愉入是一个作业步.它产生源程序文件:编译也是一个作业步.它产生目标代码文件. 2.作业山几部分组成?各有什么功能? 荞:作业山三部分组成:程序、数据和作业说明书.程序和数据完成用户所要求的业务处理工作.作业说明书则体现用户的控制愈图. 3.作业的愉入方式有哪JL种?各有何特点 谷:作业的输入方式有5种:联机输入方式、脱机袖入方式、直接棍合方式、SPOOLING (Simultancous Peripheral OperationsOnlinc)系统和网络愉入方式.各有如卜特点: (1)联机输入方式:用户和系统通过交互式会话来怕入作业. (2)脱机输入方式,又称预输入方式,利用低档个人计甘机作为外幽处理极进行钧入处理,存储在后备存储器I:.然后将此后援存储器连接到高速外围设备1二和上机相连。从而在较短 的时间内完成作业的愉入工作。 (3)直接祸合方式:把上机和外围低档机通过一个公用的人容量外存六接祸合起来,从而省去了在脱机愉入中那种依靠人工干预末传递后援存储雄的过程. (4)SPOOLING系统nl译为外田设备同时联机摊作。在SPOOLING系统中.多台外团设备通好道或DMA 器件和主机与外存连接起来作业的愉入愉出过程由土机中的掩作系统控 翻。 (5)网络怕入方式:网络愉入方式以上述几仲泊入方式为赞拙.当用户需要把在计算机网络中

相关文档
最新文档