linux.docx

上传人:b****9 文档编号:25459781 上传时间:2023-06-09 格式:DOCX 页数:12 大小:21.70KB
下载 相关 举报
linux.docx_第1页
第1页 / 共12页
linux.docx_第2页
第2页 / 共12页
linux.docx_第3页
第3页 / 共12页
linux.docx_第4页
第4页 / 共12页
linux.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

linux.docx

《linux.docx》由会员分享,可在线阅读,更多相关《linux.docx(12页珍藏版)》请在冰豆网上搜索。

linux.docx

linux

一、选择题

1、Linux虚存映射中如果映射与文件无关,那么这种映射叫(D)。

A.共享的映射B.内存映像C.私有的映射D.匿名映射

2、Linux的信号量中count的值小于0表明(C)。

A.有资源可用B.无资源可用,但也没有进程申请资源

C.有进程申请资源而睡眠D.有进程释放资源

3、在linux中中断处理程序运行于(A)态下运行?

A.内核态B.用户态C.或用户态或内核态D.取决于中断类型

4、Linux操作系统中对于硬连接的描述,正确的是(D)。

A.不同文件系统之间的文件可以创建硬连接B.可以给目录创建硬连接

C.一个文件只能对应一个文件名D.同一文件系统的文件才能创建硬连接

5、LINUX系统的三级文件访问权限不包括(D)。

A.文件所有者B.同组用户C.其他用户D.特殊用户

6、Linux系统调用中用来存放系统调用号的是(B)。

A.PCB.EAXC.IDTRD.EBX

7、下面关于init进程的描述哪个是不正确的(A)。

A.init进程是所有进程的祖先B.init进程是用户态下所有进程的祖先

C.init进程的PID是1D.init进程负责管理系统中的孤儿进程

9、源代码_set_gate(idt_table+n,15,3,addr)表示在中断描述符表中插入一种门,请问这条语句插入的是哪种类型的门(C)。

A.中断门B.陷阱门C.系统门D.以上都不是

10、信号量是一种(B)。

A.自旋锁B.睡眠锁C.A和BD.以上都不对

11、请问下面哪一条命令可以实现修改文件的权限(A)。

A.chmodB.ls–lC.cdD.pwd

12、请问下面哪一条命令可以实现创建一个文件(A)。

A.viB.mountC.cdD.pwd

13、异常分为故障和陷阱两类,它们的共同特点是?

(C)

A.不用中断控制器B.不能被屏蔽C.A和B正确D.A和B不正确

14、将不同文件系统的操作统一起来进行操作的技术叫(A)。

A.VFSB.FATC.ROOTD.MOUNT

15、Linux内核包括处理器管理、存储器管理、设备管理和(A)。

A.文件管理B.中断C.异常D.以上都不对

16、(A)是指主板上的物理内存条所提供的内存空间。

A.物理内存空间B.虚拟地址空间C.线性地址空间D.都不正确

17、下面哪一个硬件是用来把虚拟地址转化为物理地址的硬件(C)。

A.CPUB.IDTRC.MMUD.DMA

18、LINUX操作系统中atomic_tv=ATOMIC_INIT(0)的含义是(A)

A.定义原子类型并给初值为0B.定义原子类型并给初值为空

C.定义信号量,并给初值为0D.定义整型变量并给初值为0

19、中断描述符表中的每一个表项叫做(B)。

A.段描述符B.门描述符C.全局描述符D.局部描述符

20、Linux系统不包括(D)。

A.符合POSIX标准的操作系统内核、shell和外围工具

B.C语言编译器和其他开发工具及函数库

C.XWindow窗口系统D.POSIX

21、进程运行结束,但未消亡的状态是(D)。

A.TASK_INTERRUPTIBLEB.TASK_UNINTERRUPTIBLE

C.TASK_STOPPEDD.TASK_ZOMBIE

22、vm_area_struct结构用来描述?

(A)。

A.虚存区B.交换区C.临界区D.进程整个用户空间

23、下面关于POSIX标准的描述正确的是(A)。

A.POSIX是可移植操作系统编程接口B.POSIX是GNU

C.POSIX是开放源代码的操作系统D.POSIX是linux

24、Linux内核由五个主要的子系统组成。

下面哪一个子系统不包含在这五个子系统之中(D)。

A.CPU管理B.内存管理C.文件管理D.中断和异常

25、用来实现虚拟地址转化为物理地址的硬件是(C)。

A.CPUB.IDTRC.MMUD.DMA

26、下面哪个地址是二维的(C)

A.物理地址B.线性地址C.虚拟地址D.以上都不正确

27、中断描述符表中的每一个表项叫(B)。

A.段描述符B.门描述符C.全局描述符D.局部描述符

28、IA32体系中下面哪个是段选择符寄存器(A)。

A.CSB.AXC.BXD.CX

29、下面哪个状态下,进程所占用的资源全部释放,只有task_struct结构体没有释放(D)。

A.TASK_INTERRUPTIBLEB.TASK_UNINTERRUPTIBLE

C.TASK_STOPPEDD.TASK_ZOMBIE

30、进程用户空间管理中mm_struct结构用来描述?

(D)。

A.虚存区B.交换区C.临界区D.进程整个用户空间

二、填空题

1、每个进程使用一个files_struct来记录文件描述符的使用情况,该结构称为(用户打开文件表)表。

2、程序出错、虚地址有效和要访问的虚地址被写保护可能引起(异常)。

3、getpid()实际上调用的服务例程(内核函数)是(sys-getpid())。

4、Linux中fork()后,当父进程或子进程试图修改某些内容时,内核才在修改之前将被修改的部分进行拷贝的技术叫做(写时复制)。

5、Linux必须为代码段和数据段分别创建一个(基地址)为0,段界限为4GB的段描述符。

6、Linux中某个时刻(进程的内容)被称为进程映像。

7、Linux的(临界区)是访问和操作共享数据,必须原子地执行的代码段。

8、kswapd线程第二部分每次都执行,目的是把已经处于(不活跃状态)的脏页面写入交换区。

9、(进程)代表程序的执行过程,是一个动态实体,随程序中指令的执行而不断地变化。

10、虚拟内存的实现机制包括地址映射机制、请页机制、内存分配和回收机制、交换机制、(缓存和刷新机制)。

11、mount–tiso9660/dev/sda/mnt/usb是将/dev/sda文件系统安装到(/mnt/usb)安装点上。

12、Linux中的虚拟映射包括(匿名映射)、共享映射、私有映射。

13、init内核线程由kflushd、kupdate、kpiod和(kswapd)四个线程构成。

14、创建设备文件的命令是()。

15、超级块是对一个(文件系统)的描述,索引节点是对一个文件处理信息的描述。

16、Linux操作系统中的系统调用的中断向量是(软中断)。

17、Linux中的常规文件分为文本文件和(二进制文件)。

18、fork()系统调用后若运行父进程,则这个系统调用的返回值是(创建的子进程的进程ID)。

19、Linux的伙伴算法把所有的空闲页面分为(10)个块链表,每个链表中的一个块含有2的幂次个页面。

20、Linux中将(就绪态)和运行态合并为一种状态叫做可运行态。

21、Linux中(task_struct)是对进程进行全面描述的数据结构。

22、LINUX将设备纳入(文件系统)的范畴来管理。

23、页表项包括物理页面基地址和(页的属性)。

24、(wait)系统调用不仅仅是阻塞自己,还准备对僵死的子进程进行善后处理。

25、(页表)是把线性地址映射到物理地址的一种数据结构。

26、中断描述符表中包括中断门、陷阱门和(系统门)。

27、Linux存放系统调用参数所用的6个寄存器为EAX、EBX、ECX、EDX以及(ESI、EDI)。

28、中断线共享的数据结构中,handler指向一个具体IO设备的中断(服务例程)。

29、LINUX中,当前进程存放在全局变量(current宏)中。

30、Linux文件包括常规文件、目录文件、设备文件、(管道文件)和连接文件。

三、判断对错

(√)1、read()系统调用使用的封装例程是syscall3宏。

(√)2、Linux中为每个中断线设置了一个中断请求队列。

(√)3、LINUX操作系统的文件系统的根目录只有一个。

(×)4、ret_from_intr()是从中断中返回的函数。

(×)5、API是内核的出口。

(√)6、LINUX操作系统的文件系统的根目录只有一个。

(√)7、Linux线程被看做是一个使用某些共享资源的进程。

(√)8、所有I/O设备发出的中断请求(IRQ)都是可屏蔽的。

(√)9、加锁的顺序应该按相同的顺序给资源加锁,这样可以避免死锁。

(×)10、Linux把PCB与用户栈放在一起,共占用1KB内存空间。

(√)11、在Linux中,将换出物理页面尽量放在相邻的页插槽中。

(×)12、为了保证进程树的完整性,Linux操作系统中的0号进程负责收养孤儿进程。

(√)13、Linux的伙伴算法中把大小相同、物理地址连续的两个页块被称为“伙伴”。

(√)14、处于僵死态的进程没有机会再被调度程序选中。

(√)15、进程一旦调用了wait系统调用就阻塞了自己。

(√)16、交换区中的页插槽的大小与物理页面的大小一样。

(×)17、Linux中进程的用户空间是0xC0000000~0xFFFFFFFF。

(×)18、Linux中浅睡态和深睡态都可被信号唤醒。

(×)19、Linux文件系统使用具有唯一编号的文件描述符来记录文件信息。

(√)20、Linux不允许为目录创建硬链接。

四、简答题

1、说明门描述符表的组成及各字段的含义

答:

门描述符表的组成有DPL、偏移量、P、段选择符、D、XXX。

其中DPL:

段描述符的特权级。

偏移量:

入口函数地址的偏移量。

P:

表示段是否在内存中的标志。

D:

标志位,1表示32位,0表示16位。

XXX:

3位门类型码。

2、说明Linux系统中的虚拟文件系统(VFS)使用的几个对象。

答:

超级块对象:

存放系统中已安装的文件系统的有关信息。

索引节点对象:

存放关于具体文件的一般信息。

目录项对象:

存放目录项与对应文件进行链接的信息。

文件对象:

存放打开的文件与进程之间进行交互的有关信息。

3、init内核线程和init进程是一回事吗?

它们有什么本质的区别?

答:

两者不是一回事。

区别如下:

内核线程执行的是内核中的函数,而普通进程只有通过系统调用才执行内核中的函数。

内核线程只运行在内核态,而普通进程既可以运行在用户态,也可以运行在内核态。

因为内核线程只运行在内核态,因此,它只能使用大于PAGE_OFFSET的地址空间。

另一方面,不管在用户态还是内核态,普通进程可以使用4GB的地址空间。

4、Linux内核的进程的状态转换。

答:

P43图3.4

5、什么是虚存映射?

有哪几种类型?

答:

随着进程的运行,被引用的程序部分会由操作系统装入到物理内存,这种将映像链接到进程用户空间的方法称为“虚存映射”。

分为共享映射、私有映射、匿名映射。

6、在保护模式下,MMU如何把一个虚拟地址转换成一个物理地址?

答:

P22图2.3

7、什么是软链接?

什么是硬链接?

二者有什么区别?

答:

软链接(符号链接)是包含了另一个文件的任意一个路径名的特殊文件。

硬链接是让一个文件对应一个或多个文件名。

由于硬链接有2个限制不允许给目录创建硬链接、只有在同一文件系统中的文件之间才能创建硬链接。

然而,软连接能克服这2个限制。

8、画图说明Linux内核栈和PCB的存放情况,并说明如何确定当前进程的PCB的起始地址。

答:

P44图3.6

因为PCB的起始地址总是开始于页大小的边界,因此只要知道堆栈指针的值,就可以很容易的求出PCB的起始地址。

9、在IA32体系结构中Linux操作系统是怎样实现分段机制的?

答:

IA32规定了分段机制是不可禁止的,因此不可能绕过它直接给出线性地址空间的地址。

Linux的设计人员让段的基地址为0,而段的界限为4GB,这时任意给出一个偏移量,则等式为“0+偏移量=线性地址”,即“偏移量=线性地址”。

另外,由于分段机制规定“偏移量<4GB”,所以偏移量的范围为0H~FFFFFFFFH,这恰好是线性地址空间范围,也就是说虚拟地址直接映射到线性地址。

Linux在没有回避分段机制的情况下巧妙的绕过了它。

11、写出可以避免死锁发生的一些规则。

答:

(1)加锁的顺序是关键。

使用嵌套的锁时必须保证以相同的顺序获取锁,这样可以防止致命拥抱类型的死锁。

最好能记录下锁的顺序,以便其他人也能照此顺序使用。

(2)防止发生饥饿。

试着自问,这个任务是否一定会结束?

如果事件A不发生,任务B一直等待下去吗?

(3)不要请求同一个锁。

(4)越复杂的加锁方案越可能造成死锁,因此设计应力求简单。

12、画图说明Linux内核的虚拟地址空间到物理地址空间的映射。

答:

P69图4.2

13、目录项结构和索引节点有何区别?

为什么不把二者合二为一?

答:

这是因为二者所描述的目标不同,目录项结构代表的是逻辑意义

上的文件,描述文件的逻辑属性,因此,目录项对象在磁盘上并没有对应的映像;而索引节点结构代表的是物理意义上的文件,记录其物理属性,对于一个具体的文件系统(如Ext2),Ext2_inode结构在磁盘上就有对应的映像。

所以说,一个索引节点对象可能对应多个目录项对象。

14、Linux系统中为什么采用分区方法管理进程的用户空间?

答:

这是因为每个虚存区可能来源不同,有的可能来自可执行映像,有的可能来自共享库,而有的可能是动态分配的内存区。

对不同的区间可能具有不同的访问权限,也可能有不同的操作。

因此Linux把进程的用户空间分割管理,并利用了虚存区处理函数(vm_ops)来抽象对不同来源的虚存区的处理方法。

15、进程调度主要时机

答:

Linux的进程调度时机主要有:

1.进程状态转换的时刻,如进程终止、进程睡眠。

2.当前进程的时间片用完时。

3.设备驱动程序运行时。

4.从内核态返回到用户态时。

16、分析schedule调度函数,回答问题。

(1)说明next取值的两种不同情况。

1.调用schedule时正在执行的程序为prev,next为下一个给予CPU的进程。

2.next与prev相同重新调用CPU已获得的进程。

(2)if(prev->policy&SCHED_YIELD)条件为真说明什么?

如何处理?

说明该进程愿意礼让(YIELD),进程主动让出处理器,并将自己等候调度队列队尾。

(3)c=-1000说明什么?

进程的权值为-1000

17、system_call()流程,系统调用进入内核时内核态堆栈的内容

答:

system_call:

sys_xyz()

ret_from_sys_call:

iret

18、举例说明封装例程的含义及思想,并说明系统调用EAX寄存器的作用?

答:

比如说系统调用getpid()就是服务例程sys_getpid()的封装例程。

通过这种封装,在用户态下调用变得简单,不用关心系统调用号,也不需提供复杂参数就让内核为自己服务。

寄存器EAX中存放系统调用的功能号,当系统调用完成后返回值可以在EAX中获得。

19、阅读下列程序

#include

main()

{

intp1,p2=0;

if(p1=fork())

{

putchar('b');

}

else

{

if(p2==fork())

putchar('c');

elseputchar('a');

}

}

#include

main()

{

intp1=0,p2;

if(p1==fork())

putchar('b');

else

{

if(p2=fork()){

wait(NULL);

putchar('c');}

elseputchar('a');

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1