文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式操作系统复习题

嵌入式操作系统复习题

嵌入式操作系统复习题

内核和BusyBOX

一.填空

1. Linux最重要的特点是____,Linux内核遵循GNU____条款,意味着Linux是自由软件。

2. Shell是操作系统中运行的程序,位于操作系统_____与_____之间,充当了一个“命令解释器”的角色。

3. LINUX支持_____线程以及_____内核模块。

4. ______是系统的用户界面,______是文件存放在磁盘等存储设备上的组织方法。

5. Linux让所有任务都运行在_____,直接调用函数,无须消息传递,避免了_____机制的开销。

6. 由于内核支持异步终端、抢占和SMP,因此必须时刻注意_____和_____。

7. 命令提示符分为普通用户和管理员用户两种,普通用户的命令提示符使用_____,管理员用户的命令提示符是_____。

8. ls命令使用“-l”选项时,可以查看文件和目录的详细信息,文件(目录)列表的第一

列字段信息是权限属性信息,此信息中的第一位(左数)标志位是“d”表示____,“-”表示____。

9. 在内核里不能访问非法的_____地址,也不要引用____指针。

10. 挂载设备到文件系统的命令是_____,从文件系统中卸载设备命令是_____。

二.选择

1. 下面选项中哪个不是Linux系统的主要部分()

A.内核

B.Shell

C.文件系统

D.Bash

2. 以下关于Linux系统描述错误的是()

A.支持动态加载内核模块

B.内核区分线程和其他进程

C.内核可以抢占

D.支持对称多处理机制

3. 以下内核开发特点描述错误的是()

A.内核编程时不能访问C库

B.必须使用GNU C

C.内核有一个较大的定长堆栈

D.很难使用浮点数

4. touch命令的作用是()

A.新建文件

B.新建目录

C.查看文件类型

D.文件移动或文件重命名

5. 下面的命令中哪个不是显示文件内容的命令( )

A.cat

B.less

C.more

D.file

6. 删除文件命令rm 与()选项配合使用可以完整的删除整个目录,无需事先删除目录中的内容。

A.-l

B.-t

C.-r

D.-a

7. 用户口令保存在()文件中。

A.passwd

B.shadow

C.group

D.skel

8. 列目录命令ls与“-c”选项搭配使用表示()

A.显示所有文件及目录

B.按列输出,纵向排序

C.按列输出,横向排序

D.根据文件建立时间的先后次序列出

三.名词解释

1. 单内核

2. 微内核

3. 内核

4. Shell

GCC Vi编辑器Makefile

一.填空

1. 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面,进入vi之后,是处于_______模式,要切换到______模式才能够输入文字。

2. 在vi编辑中,可以使用键盘移动光标,按数字___,移到文章的开头,按___则移动到文章的最后。

3. 使用vi编辑器的末行命令_____可以在编辑器中显示行号,同样在末行模式下使用_____ 命令可以取消行号的显示。

4. GCC的编译流程分为4个步骤,分别为:____ ,编译,____ ,链接。

5. 一个简单的Makefile文件包含一系列的“规则”,其中____通常是要产生的文件的名称_ ___是用来输入从而产生目标的文件。

6. ____是Make执行的动作,每个命令行前面必须是一个____字符。

7. shell变量类型,只有_____,变量可以被赋值,被修改,_____。

8. 变量引用中,在变量名前加$号,代表_____,引用一个未定义的变量,变量值为_____ 。

二.选择

1. 在vi编辑环境中有3种模式状态,下面不属于这3种模式状态的是()。

A. 命令行模式

B. 插入模式

C. 底行模式

D.编辑模式

2. 在下面退出vi环境的命令中,()是退出的同时不对当前文件的修改进行任何保存。

A. :q!

B. :wq

C. :q

D. :w

3. 下面()选项不是从命令行模式切换到插入模式。

A. i

B. o

C. ESC

D. a

4. vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母进行移动,其中h表示()

A. 向左移动光标

B. 向右移动光标

C. 向上移动光标

D.向下移动光标

5. 在GCC的常用选项中,()表示编译为汇编代码。

A. –c

B. –S

C. –E

D.-g

6. gdb基本命令中,()命令表示执行一行源代码但不进入函数内部。

A. run

B. next

C. file

D. step

7. Makefile中目标的例子不会是()。

A. 可执行文件

B. OBJ文件

C. 伪目标

D. 链接

8. 创建的shell变量,默认为()。

A. 环境变量

B. 全局变量

C. 局部变量

D. 静态变量

三.简答题

1. Linux文本编辑器有哪几类,不同分类之间的区别是什么?

2. 简述GCC的编译流程。

3. Gdb有哪些功能,并列举常用的Gdb基本命令。

4. 一个简单的Makefile文件包含一系列的“规则”,请描述“规则”的样式。

四.应用题

1. 有如下含有3个目标体的makefile文件:

test: kang.o yul.o

gcc kang .o yul.o -o test

kang.o: kang.c kang.h

gcc -Wall -O -g -c kang.c -o kang.o

yul.o: yul.c yul.h

gcc -Wall -O -g -c yul.c -o yul.o

为了简化编写,请将上述文件使用自动变量替换实现。并且根据makefile的隐含规则,将其在简化。

2. 用vi在同一目录下已经编辑了两个简单的hello程序,分别为hello.c和hello.h,请先在同一目录下用vi编辑makefile,用一个目标体实现;然后再将其使用变量替换实现。

3. 用vi在同一目录下已经编辑了两个简单的test程序,分别为test.c和test.h,请先在同

一目录下用vi编辑makefile,用两个目标体实现;然后再将其使用变量替换实现。

BOOTLOADER 内核初始化

一.填空

1. 为桌面计算机加电后,_____软件系统会立即接管对系统处理器的控制,该软件系统都是保存在_____里面的,以便对该软件系统进行必要的升级工作。

2. 在嵌入式系统中,当系统加电后,_____所带的引导装入程序将立即接管_____的控制权

3. Linux需要一个文件系统,文件系统包含了预先定义的一组______以及文件,它们都保存到硬盘驱动器或者其他媒介之中,Linux内核将其挂载为______。

4. 当Linux内核完成所有内部初始化工作并且挂载了根文件系统之后,默认将启动名为____ _的应用程序,这就意味着系统将运行在_____或者用户空间上下文中。

5. 第二阶段引导装入程序的主要作用是充当开发板级的_____和_____之间的纽带。

6. Linux内核的所有启动任务都由内核C源程序_____完成,通过初始化,内核的第一个线程将挂载一个_____,同时会执行用户空间下的第一个应用程序。

7. 引导装入程序或第二阶段引导装入程序通过一系列被称为______的参数实现对Linux的引导,尽管在实际中并不是通过shell命令提示来调用内核,但是引导装入程序常常采用将参数传递给_______这种模式。

8. 在引导过程中运行着两个截然不同的线程:一个是_____;另一个就是_____。

二.选择

1. 引导装入程序在系统加电之后需要完成几项比较重要的任务,下面选项中错误的是()

A.初始化关键硬件组件B. 初始系统化内存

C. 分配系统资源

D. 将必要的启动信息传递到硬盘

2. 在Linux中,根据指定线程的运行环境,我们可以把它分为两个独立的运行上下文,当线程完全运行在内核空间时,我们称之为()。

A. 内核上下文

B.用户空间上下文

C.进程上下文

D.特殊的上下文

3. ()对处理器和必要的内存区域进行初始化,解压缩二进制内核映像并且在转交对系统的控制权之前把它加载到系统内存的合适位置。

A. 引导装入程序

B. 第二阶段引导装入程序

C. 操作系统

D. Linux内核

4. 第二阶段引导装入程序具有一些功能,下列选项中不属于其功能的是()。

A. 处理器底层的初始化

B. 解压缩和重定位代码

C. 其他特定于处理器的初始化

D. 加载操作系统

5. 在已经创建了init()线程并且对所有不同的初始化调用完成之后,内核开始执行引导过

程最后阶段的内容,这些内容不包括()。

A. 释放由初始化函数和数据所用的内存资源

B. 打开系统的控制台设备

C. 启动用户空间下的第一个进程

D. 解压缩和重定位代码

6. Linux内核的所有启动任务都由( )完成,通过初始化,内核的第一个线程将挂载一个根文件系统,同时会执行用户空间下的第一个应用程序。

A. main.c

B. start_kernel()

C. init()

D. initcall

7. ( )是用户空间中所有Linux进程的父进程

A. init()

B. start_kernel()

C. idle

D. initcall

8. 在本质上,二进制内核映像Image要依附于一个执行底层硬件初始化任务的工具()。

A.引导装入程序 B. 第二阶段引导装入程序

C.Linux内核 D. BIOS

三.简答题

1. 简述引导装入程序和第二阶段引导装入程序的区别。

2. 简述内核初始化过程。

3. 引导装入程序在系统加电之后需要完成哪些任务?

嵌入式交叉编译环境的搭建

一.填空

1. _____是指在某个主机平台上(比如PC上)用____编译器编译出可在其他平台上(比如ARM上)运行的代码的过程。

2. 宿主机(Host)是一台通用计算机,它通过____或者_____与目标机通信。

3. 交叉编译环境的搭建中minicom是用于Linux 下的_______工具,DNW是用于串口下载_______的工具。

4. 内核映像分为压缩的内核映像和未压缩的内核映像。其中,压缩的内核映像通常名为___ __ ,而未压缩的内核映像通常名为_____。

5. Cramfs文件系统是一种经过压缩的、极为简单的_____文件系统,因此非常适合_____系统。

6 被称为嵌入式Linux系统中的“瑞士军刀”的构造文件系统最常用的软件工具包是______ ,它将许多常用的________结合到了一个单独的可执行程序中。

7. TFTP协议是简单的______协议,适合目标板______的使用。

8. ______就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的______程序。

二.选择

1. 嵌入式Linux下常用的文件系统不包括以下哪一项()

A.nfs

B.romfs

C.yaffs

D.jffs

2. 被称为嵌入式Linux系统中的“瑞士军刀”的构造文件系统最常用软件工具包是()

A.GDB

B.SHELL

C.GNU

D.BusyBox

3. 用GCC编译一个名为“HelloWorld.c”的C程序文件,编译后执行执行文件为“Hello”, 则相应的编译命令是以下哪一项()

A.gcc –i HelloWorld.c Hello

B.gcc –o Hello helloWorld.c

C.gcc –o HelloWorld.c Hello

D.gcc –i Hello HelloWorld.c

4. 对Linux内核选用默认的配置方式进行编译,需要执行()

A.make config

B.make menuconfig

C.make oldconfig

D.make defcofing

5. 将本机/home/myworkspace下的NFS文件系统挂载到/mnt/remote 下的命令为以下哪一项()

A.mount –t nfs /mnt/remote /home/myworkspace

B.mount –f nfs /home/myworkspace /mnt/remote

C.umount –t nfs /mnt/remote /home/myworkspace

D.umount –f nfs /home/myworkspace /mnt/remote

6. 在使用bushbox 工具时Linux启动之后第一个被访问的脚本文件是()

A.init.d

B.inittab

C.fstab

D.boottab

7. 下列哪一项不属于U-Boot的功能()

A.系统引导

B.上电自检功能

C.镜像自检

D.设备驱动

8. 下列那一项不属于U-Boot移植的步骤()

A.动态链接glibc库

B.建立自己开发版类型

C.修改中断静止部分

D.修改内存配置

三.简答题

1. 简述U-Boot的特点。

2. 试简述内核启动init进程的过程。

3. 请简述Linux内核编译的步骤。

四.应用题

1. 试安装配置busybox并创建一个简单的文件系统。(安装包为busybox-1.00.tar.bz2)

2. 试配置S3C2410的开发板的U-boot,并分析U-boot配置过程。

设备驱动

一.填空

1. Linux系统中常见的驱动程序是作为_____动态加载的,而Linux最基础的驱动,如CPU、P CI总线等驱动程序则直接编译在_____中。

2. Linux命令_____和______用于加载当前模块。

3. Linux系统的设备分为三类:_____ 、_____和网络设备。

4. 使用设备驱动程序有两个重要的原因:一是避免用户在______________编写代码,二是为与______________通信提供统一的方法。

5. 系统调用通过设备文件的_______找到相应的设备驱动程序,然后读取这个数据结构相应的______,接着把控制权交给该函数。

6. Linux抽象了对硬件的处理,所有的硬件设备都可以作为_______一样来看待,字符设备和块设备是通过______访问的。

7. Linux运转在两种模式下,一种是_____,另一种是_____。

二.选择

1. 下列关于字符设备说法不正确的是( )

A. 以字节为单位逐个进行I/O操作

B. 字符设备中的缓存是可有可无的

C. 支持随机访问

D.字符设备可以通过设备文件节点访问

2. 获取内存函数malloc()和kmalloc(),下面说法正确的是()

A.kmalloc()函数返回的是线性虚拟地址,而malloc()等返回的是物理地址。

B.kmalloc()函数返回的是物理地址,而malloc()等返回的是线性虚拟地址。

C.kmalloc()和malloc()函数返回的都是物理地址。

D.kmalloc()和malloc()函数返回的都是线性虚拟地址。

3. 不需要编译内核的情况是()

A.删除系统不用的设备驱动程序时

B.升级内核时

C.添加新硬件时

D.将网卡激活

4. 以下()设备是字符设备。

A.hdc

B.fd0

C.hda1

D.tty1

5. 以下是运行$ls -l /dev后的查询结果crw-rw---- 1 root uucp 4, 64 08-30 22:58 tty

S0则此设备的设备号是多少( )

A.1

B.4

C.64

D.0

6. 以下哪一项是是硬盘设备文件()

A.fd0

B.hda

C.eth1

D.ht0

三简答题

1. 请简述Linux系统的设备分类。

2. 请列举设备驱动程序主要组成。

文件系统

一.填空

1. _______是特殊的数据分层存储结构,它包含文件,目录和相关的________。

2. Linux中目录只是将__________和它的_________结合在一起的一张表。

3. 通常,一个进程启动时,都会打开3个文件:_________,___________,标准出错处理

4. Linux下的主要文件类型:常规文件、_________、_________、管道文件、符号文件。

5. Linux使用标准的目录结构-_________,无论操作系统管理几个磁盘分区,这样的_____ _____只有一个。

6. Linux对文件的访问设定了三级权限:___________,_____________,其他用户。

7. 在嵌入式Linux下,MTD(Memory Technology Device,存储技术设备)为_________和_____ _____之间提供一个统一的抽象接口。

8. 每个进程用一个___________结构来记录文件描述符的使用情况,该结构称为用户打开文件表,它是进程的____________数据。

二.选择

1. 下列哪一项不是Linux的文件系统()。

A.ext3

B.NTFS

C.JFS

D.ReiserFS

2 以下文件属性-rwxr-xr-x root root 111928 2010-09-24 20:25 udevadm

的读写权限中,文件所有人所属的组是哪一项()。

A.第一项

B.第二项

C.第三项

D.以上都不是

3. 对file1 改变权限,若对文件所有者,文件所有者所在的组可以写,对其他用户可读,

则正确的命令如下()。

A.chmod a+x file1

B.chmod 766 file1

C.chmod uo+w g+r file1

D.chmod 224 file1

4. Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在()目录中。

A. /bin

B. /etc

C. /dev

D. /lib

5. 通过文件名存取文件时,文件系统内部的操作过程是通过()。

A.文件在目录中查找文件数据存取位置。

B.文件名直接找到文件的数据,进行存取操作。

C.文件名在目录中查找对应的I节点,通过I节点存取文件数据。

D.文件名在中查找对应的超级块,在超级块查找对应i节点,通过i节点存取文件数据。

6. 关于文件系统的安装和卸载,下面描述正确的是()。

A.如果光盘未经卸载,光驱是打不开的。

B.安装文件系统的安装点只能是/mnt下。

C.不管光驱中是否有光盘,系统都可以安装CD-ROM设备。

D.mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的。

7. Linux将存储设备和输入/输出设备均看做文件来操作,()不是以文件的形式出现。

A.目录

B.软链接

C. i节点表

D.网络适配器

三.名词解释

1. VFS

2. 符号链接

3. 管道

4. JFFS

四.应用题

1. 试用BusyBox创建一个cramfs文件镜像系统。(BusyBox采用静态链接方式)

2. 试用BusyBox创建一个jffs2文件镜像系统。(BusyBox采用静态链接方式,镜像的擦除块大小为0x4000 节点页的大小为0x200)

3 构建一个简单的ext2文件系统,要求系统大小为512k。

进程控制

一.填空

1. Linux提供了两种实时调度策略:一种是基于先来先出的__________和一种是基于时间片

的____________。

2. 进程的执行模式划分为___________和___________。

3. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为:运行态、________和_________。

4. 进程调度方式通常有_________和__________。

5. Linux内核提供两组独立的优先级,一种是__________,另一种是__________。

6. Linux 中的进程包含3个段,分别为代码段、___________和___________组成。

7. Linux实现了一种基于___________的调度方法,它允许调度程序根据需要来___________

8. __________函数用于创建一个子进程,而___________函数提供了一个在进程中启动另一个进程执行的方法。

9. Linux下,发生用户抢占的原因是_____________和_____________。

二.选择

1. 以下()的优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。

A.先来先服务

B.静态

C.动态

D.短作业

2. 进程所请求的一次打印输入结束后,将使进程状态从()

A.运行态变为就绪态

B.运行态变为等待态

C.就绪态变为运行态

D.等待态变为就绪态

3. 临界区是指并发进程中访问共享变量的()段。

A.管理信息

B.信息存储

C.数据

D.程序

4. 产生系统死锁的原因可能是由于()

A.进程释放资源

B.进程进入死循环

C.进程竞争,资源出现了循环等待

D.进程竞争共享设备

5. Linux下实现访问内核的手段不包括以下哪一项()

A.系统调用

B.异常

C.陷入

D.内核模块加载

6. 在内核中首先执行()函数,接着根据系统调用号在系统调用表中查找到对应的系统调用服务例程。

A. init

B. system_init

C. system_call

D. system_msg

7. 系统调用在用户空间进程和硬件设备之间添加了中间层,则下列说法错误的是()

A.为用户控件提供了硬件的抽象接口

B.实现了虚拟文件系统

C.保证了系统的稳定与安全

D.帮助实现了多任务和虚拟内存,提升进程安全运行

8. 用户进程通过调用软中断()进入内核

A. int 0x20

B. int 0x80

C. int 0x21

D.int 0xff

9. 在接受一个用户空间的指针之前,内核会做必要的参数验证,以下说法错的是()

A.必须保证指针指向的内存区域属于用户空间。

B.必须保证指针指向的内存区域在进程的地址空间里。

C.必须保证指针指向的虚拟文件系统地址。

D.如果是读,该内存应该被标记为可读,如果是写,则被标记为可写。

10. 进程调度主要负责()

A.选作业进入内存

B.选一进程占用CPU

C.建立一进程

D.撤销一进程

三.名词解释

1. 原子操作

2. 临界资源

3. 死锁

四.应用题

1. 编写一段程序,使用系统调用fork()创建两个子进程,各进程执行操作如下:父进程打

印‘a’字符,子进程分别打印‘b’、‘c’字符。分析程序执行结果。

2. 读下面程序

#include

#include

int main()

{

int pid;

int status;

pid=fork();

switch(pid)

{

case -1: printf("fork fail!\n");

exit(1);

case 0: if(excel("/bin/ps","ps","-ef",NULL)<0) {

printf("exec fail!\n");

exit(1);

}

else

{

printf("exec success!\n");

exit(0);

}

default:

wait(&status);

printf("ps completed!\n");

exit(0);

}

}

分析程序运行的过程。要求:①说明该程序的功能;②解释两个局部变量的作用;③说明switch语句中三路分支的功能。

3. 读下列程序

#include

#include

#include

#include

#include

int main()

{

pid_t child,father

pc=fork();

if(pc<0) {

printf("Error fork1!/n");

exit(1);

}

else if(pc==0) {

sleep(5);

exit(0);

}

Else

{

do

{

pr=waitpid(pc,NULL,WHOHANG);

if(pr==0) {

printf("The child process has not exited\n");

sleep(1);

}

}while(pr==0) }

if(pr==pc)

printf("Get child exit code:%d\n",pr);

else

printf("Some error occured.\n");

}

分析程序执行功能,画出该程序的流程图。

函数说明:waitpid() 使用WNOHANG选项,表示若有pid指定的子进程不立即可用,不阻塞父进程。返回值为0表示没有子进程退出

4. 编写程序,要求如下:

1、使用fork()创建一个子进程,然后让其子进程暂停5s;

2、接着对原有的父进程使用waitpid()函数,且要求该父进程不会阻塞;

3、若有子进程退出,则waitpid()返回子进程号,否则返回0,并且父进程每个1秒判断一次。

进程间通信

一.填空

1. 信号可以直接进行__________进程和___________进程之间的交互。

2. 进程可以分为大部分时间用于提交I/O请求或是等待I/O请求的__________和主要时间用于执行代码上的___________。

3. 当一个管道建立时,它会创建两个文件描述符,一个固定用于_____________,一个固定用于____________。

4. 用户进程对信号的响应可以有3种方式:___________、捕捉信号、___________。

5. 信号的处理方有两种:一种是使用_________,另一种是___________。

6. 进程之间的互斥与同步关系存在的根源在于_________,访问其的代码叫做_________。

7. Linux下实现内核访问的手段包括:__________与_______和陷入。

8. 共享内存的实现分为两个步骤:一是______共享内存,二是________共享内存。

二.选择

1. 最快的进程间通信方式是()

A.管道

B.消息队列

C.套接字

D.共享内存

2. 共享内存通信机制的缺点是()

A.需要花费额外的内存空间

B.需要使用额为的同步机制确保不出现竞态条件

C.需要额外硬件支持

D.通信过程中需要反复读取内存,时间开销大

3. 下列进程通信方式中不属于一个计算机中进程之间的通信的是()

A.管道

B.套接字

C.消息队列

D.共享内存

4. 当管道的读端不存在时,向管道写入数据进程的将()

A.收到内核传来的SIGPIPE信号

B.会向管道写入数据,但系统禁止读取管道数据

C.会写数据失败,系统也不做任何出错回应。

D.系统禁止向管道写入数据,并释放管道。

5. 下列关于共享内存说法错误的是()

A 共享内存页在使用该共享内存的进程的页表当中

B 交换机制对共享内存页和进程页表中的页的处理方式一致

C 共享内存段属于持久性资源

D共享内存区可以由需要访问的进程将其映射到自己的私有空间

三.名词解释

1. 信号量

2. FIFO

四.应用题

1. 试简述共享内存的实现步骤,并画出共享内存原理示意图。

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