中国科学技术大学软件学院2005-2006第二学期
《嵌入式操作系统》试题

学号:           姓名:          成绩:         

一、填空(20分)

1、  嵌入式处理器一般可以分为嵌入式微处理器、                         以及             。其中典型的嵌入式微处理器包括                      

2、  一个嵌入式Linux系统从软件的角度看通常可以分成      个层次,包括:                                                                            

3、  根据设备驱动程序的基本特性,设备文件可以分为                   两大类。

4、  Unix系统提供的基本的IPC包括:                                                                                  

5、  Linux中把紧随中断要执行的操作分为三类:                                           

二、名词解释(20分)

1、  嵌入式Linux

2、  SkyEye

3、  BootLoader

4、  用户态和内核态

三、问答题(45分)

1、  简述一个典型的嵌入式Linux设备驱动应当实现哪些功能部件。

2、  假设内核给一个正在运行的进程p1分配的线性地址空间是0x200000000x2003ffff。(假设32位地址空间,采用2级页表,页和页框大小都是4KB)。请问:

1)  第一级页表和第二级页表中分别保存了哪些内容?

2)  画出p1的页表。

3)  假设进程需要读取0x20021406中的字节,给出寻址过程。

4)  假设3)的最后一步出现缺页异常,给出缺页异常的处理过程。

3、  Linux中,进程的状态有哪些?请使用状态转换图说明它们之间的关系。

4、  下面一个宏定义摘自Linux2.4.18的内核源代码,是进程切换的关键代码:

1)  3分)上述代码切换了进程的哪部分内容?

2)  3分)prev再次被调度执行的时候,将会上述代码中的哪里开始运行?(3分)这个值将保存在什么地方?

3)  3分)next中保存的指令计数器(程序指针)中的内容将在何时执行?

四、编程题(15分)

1、  假设一个编辑器edit的源程序及其对头文件的依赖关系如下表所示:

 

defs.h

command.h

buffer.h

main.c

 

 

keyboard.c

 

command.c

 

display.c

 

insert.c

 

search.c

 

files.c

utils.c

 

 

写出这个编辑器的Makefile文件。假设使用的gcc/usr/bin/arm-elf-gcc,编译出的可执行文件名为edit。要求gcc使用变量CC来表示;使用变量OBJ表示上述C文件所对应的目标文件列表;建立clean规则清除所有的目标文件和可执行文件。