嵌入式软件助理工程师认证考试复习题新

上传人:wuy****ng 文档编号:124130959 上传时间:2022-07-24 格式:DOC 页数:17 大小:112.51KB
返回 下载 相关 举报
嵌入式软件助理工程师认证考试复习题新_第1页
第1页 / 共17页
嵌入式软件助理工程师认证考试复习题新_第2页
第2页 / 共17页
嵌入式软件助理工程师认证考试复习题新_第3页
第3页 / 共17页
点击查看更多>>
资源描述
嵌入式软件助理工程师认证考试复习题 2012.08.一、单项选择题1、如下哪一个命令可以帮助你知道shell命令的用法( A )A. man B. pwd C. help D. more2、在大多数Linux发行版本中,以下哪个属于块设备 ( B )A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机3、下面哪个命令行可用来马上重新启动正在运行的Linux系统?( D )A. restart -delay=0 B. reboot -w C. halt -p D. shutdown -r now 4、在Linux系统,默认的shell是什么( A ) A.bash B.ash C.csh D.gnush5、下面哪条命令可用来确保文件“myfile”存在( B ) A. cp myfile /dev/null B. touch myfile C. create myfile D. mkfile myfile 6、 LILO的配置文件是:( B )A. /etc/conf B. /etc/lilo.conf C. /proc/kcore D. /usr/local/7、用“useradd jerry”命令添加一个用户,这个用户的主目录是什么( A )A./home/jerry B./bin/jerry C./var/jerry D./etc/jerry8、Linux文件权限一共10位长度,分成四段,第三段表示的内容是( D )A.文件类型 B.文件所有者的权限C.文件所有者所在组的权限 D.其他用户的权限9、在ARM系统结构中,MMU映射最小的单元空间是_D_A、64KBB、16KBC、4KBD、1KB10、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为( D )A.467 B.674 C.476 D.76411、不是shell具有的功能和特点的是 ( A )A.管道 B.输入输出重定向 C.执行后台进程 D.处理程序命令12、在ARM处理器的各种工作模式中,( A )模式无法访问一些被保护的系统资源。20100626年徐远超A. 用户模式(user) B.系统模式(system) C. 中断模式(IRQ) D.终止模式(Abort)13、如何从当前系统中卸载一个已装载的文件系统( A )A. umountB. dismountC. mount uD. 从 /etc/fstab 中删除这个文件系统项14、你用vi编辑器编写了一个脚本文件shell.sh,你想将改文件名称修改为shell2.sh,下列命令( B )可以实现。 A. cp shell.sh shell2.sh B. mv shell.sh shell2.sh C. ls shell.sh shell2.sh D. ll shell.sh shell2.sh15、在/home/stud1/wang目录下有一文件file,使用 ( D )可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。A. cat file file.copy B. cat file file.copyC. &cat file file.copy D. &cat file file.copy 16、字符设备文件类型的标志是 ( B )A. p B. c C. s D. l17、删除文件命令为( D )A. mkdir B. rmdir C. mv D. rm18、( B )命令可更改一个文件的权限设置? A. attribB. chmod C. change D. file19、用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为( A )。-rwxr-xr- 1 root root 599 Cec 10 17:12 ffA. 普通文件 B. 硬链接 C. 目录 D. 符号链接20、系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有( B )权限。 A. 744 B. 664 C. 646 D. 74621、在指令系统的各种寻址方式中,获取操作数最快的方式是( 1 -B );若操作数的地址包含在指令中,则属于( 2-A )方式。(1)A、直接寻址 B、立即寻址 C、寄存器寻址 D、间接寻址(2)A、直接寻址 B、立即寻址 C、寄存器寻址 D、间接寻址22、在CPU和物理内存之间进行地址转换时,( B )将地址从虚拟(逻辑)地址空间映射到物理地址空间。A、TCB B、MMU C、CACHED、DMA23、Linux将存储设备和输入/输出设备均看做文件来操作,(C)不是以文件的形式出现。A. 目录 B. 软链接 C. i节点表 D. 网络适配器 24、关于文件系统的安装和卸载,下面描述正确的是(A)。 A. 如果光盘未经卸载,光驱是打不开的 B. 安装文件系统的安装点只能是/mnt下 C. 不管光驱中是否有光盘,系统都可以安装CD-ROM设备 D. mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的25、为了查看Linux启动信息,可以用(B)命令A. cat /etc/lilo.confB.dmesg C. cat/proc/cpuinfo D.lilo26、用下列(A)命令查看Linux使用了多少内存A.cat /proc/meminfoB. cat /bin/meminfo C.vi /proc/meminfoD.vi /user/local/meminfo27、下列(D)设备是字符设备。A. hdc B. fd0 C. hda1 D. tty129、有如下的命令:$dd if=f1 of=f2。其中if=f1表示(A) A. 以f1作为源文件,代替标准输入 B. 以f1作为目标文件,代替标准输出 C. 当条件满足f1的时候,执行真正的拷贝 D. 拷贝的过程中,不转化文件30、为了查找出当前用户运行的所有进程的信息,我们可以使用(B)命令: A. ps -a B. ps -u C. ls -a D. ls l31、为保证在启动服务器时自动启动DHCP进程,应对( B )文件进行编辑。A、 /etc/rc.d/rc.inet2 B、/etc/rc.d/rc.inet1C、/etc/dhcpd.conf D、/etc/rc.d/rc.S32、文件exer1的访问权限为rw-r-r-,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是( A )。 A 、chmod a+x g+w exer1 B 、chmod 765 exer1 C 、chmod o+x exer1 D 、chmod g+w exer133、删除当前目录abc以及下面的所有子目录和文件,并不要求提示任何确认信息的命令是(B)A. del abc*.* B. rm rf abc C. rmdir abc D. rm r abc *.* 34、如果忘记了ls命令的用法,可以采用( C )命令获得帮助 a. ?ls b.help ls c.man ls d.get ls35、在安装开始前,用光盘启动系统,想要进入字符界面安装,需要输入的命令是( C ) a.linux doc b.linux c.linux text d.linux note36、要给文件file1加上其他人可执行属性的命令是( C ) a.chmod a+x b.chown a+x c.chmod o+x d.chown o+x37、怎样新建一个新文件:( A ) a.touch hello.c b.mk hello.c c.rm hello.c d.new hello.c38、在bash命令中,当用( B )参数时,表示bash是交互的。A、c B、i C、s D、d39、重定向的符号“表示:( C )A、输出追加 B、输入追加 C、输出重定向,原来的文件会被改写 D、管道A、为变量赋值:$FRUIT=apple 示变量的值:fruit=apple C、显示变量的值:echo$FRUIT D、判断变量是否有值:-f“$FRUIT”43、一般可以用( C )实现自动编译。A、gcc B、gdb* C、make D、vi44、处理机主要由处理器、存储器和总线组成,总线包括( D )。A、数据总线、串行总线、逻辑总线、物理总线 B、并行总线、地址总线、逻辑总线、物理总线 C、并行总线、串行总线、全双工总线D、数据总线、地址总线、控制总线 45、假设当前目录下有文件Makefile,下面是其内容:pr1: prog.o subr.ogcc o pr1 prog.o subr.oprog.o: prog.c prog.hgcc c l prog.o prog.csubr.o: subr.cgcc c o subr.o subr.cclear:rm f pr1*.o现在执行命令make clear,实际执行的命令是( A ): A. rm f pr1*.o B. gcc c l prog.o prog.c C. gcc c o subr.o subr.c D. 都执行 55. 下列哪种文件系统的写入是LINUX所不能完全支持的:DA. FAT B. UFS C. JFS D. NTFS57、同CISC相比,下面哪一项不属于RISC处理器的特征_ D A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有23种。B、减少指令数和寻址方式,使控制部件简化,加快执行速度。C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。D、RISC处理器都采用哈佛结构58、在下列ARM处理器的各种模式中,_D_模式有自己独立的R8-R14寄存器。A、系统模式(System)、B、终止模式(Abort)C、中断模式(IRQ)D、快中断模式(FIQ)59、按照ARM过程调用标准(APCS),栈指针使用_B_寄存器,A、R0B、R13C、R14D、R1560、在ARM体系结构中,_C_寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;_C_寄存器作为处理器的程序计数器指针。A、R0,R14 B、R13,R15 C、R14,R15 D、R14,R061、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?CA、直接修改CPU状态寄存器(CPSR)对应的模式B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态C、使用软件中断指令(SWI)D、让处理器执行未定义指令62、下面关于MMU和Linux描述错误的是:CA、MMU是内存管理单元Memory Management Unit的缩写B、uClinux可以运行在有MMU的处理器上C、Linux内核功能强大,内存管理功能丰富,即使在没有MMU的处理器上,也可以通过软件实现地址映射。D、Linux系统正是利用MMU,才能使得各个进程有独立的寻址空间63、DNS域名系统主要负责主机名和( A )之间的解析。A、IP地址 B、MAC地址C、网络地址 D、主机别名64、在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用( C )命令。A、上箭头B、下箭头 C、 D、65、进程有三种状态:( C )。 A 、准备态、执行态和退出态B 、精确态、模糊态和随机态C 、运行态、就绪态和等待态D 、手工态、自动态和自由态66、下列变量名中有效的shell变量名是( C )。A、-1-time B、_2$3 C、bo_chuang_1 D、2009file67、文件系统的主要功能是( A )。A、实现对文件的按名存取 B、实现虚拟存储 C、 提高外存的读写速度 D、用于保存系统文档68、在ARM Linux体系中,用来处理外设中断的异常模式是_C_A、软件中断(SWI)B、未定义的指令异常C、中断请求(IRQ)D、快速中断请求(FIQ)69、在Linux系统中,驱动程序注册中断处理程序的函数是_B_A、trap_initB、request_irqC、enable_irqD、register_irq70、在ARM Linux系统中,中断处理程序进入C代码以后,ARM的处于_A_工作模式A、超级用户(SVC)B、中断(IRQ)C、快速中断(IRQ)D、和进入中断之前的状态有关系71、在ARM体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在何时被清除?AA、当中断处理程序结束以后,才可以清除B、进入相应的中断处理程序,即可以清除C、产生IRQ中断的时候,处理器自动清除D、任何时候都可以清除85、下列软件中,不属于BootLoader的是( B )。A、vivi B、busybox C、uboot D、blob86、某文件的组外成员的权限为只写;所有者有读写权限;组内的权限为只读,则该文件的权限为( B )A 467 B 642 C 476 D 76487、关闭linux系统(不重新启动)可使用命令 B 。A) Ctrl+Alt+Del B) halt C) shutdown -r now D) reboot88、在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。A) “a” B) “o” C) “I” D) A89、重定向的符号“表示:( A )A、输出追加 B、输入追加 C、输出重定向,原来的文件被改写 D、管道90、WWW服务器是在Internet上使用最为广泛,它采用的是 B 结构。A) 服务器/工作站 B) B/S C) 集中式 D )分布式91、NFS是 C 系统。A) 文件 B) 磁盘 C) 网络文件 D) 操作92、在日常管理中,通常CPU会影响系统性能的情况是: A 。A) CPU已满负荷地运转 B) CPU的运行效率为30%C) CPU的运行效率为50% D) CPU的运行效率为80%93、在使用GCC编译器的过程中,以下(B)选项可用来指定生成的目标文件名A-c B-o C-S D-E98.ARM嵌入式系统中,PC指向的是正在(C )的指令地址。 A 执行B 译码C 取指D 都不是99.ARM系统处理16-bit数据时,对应的数据类型是( B )。 A ByteB HalfwordC Word D 三者都不是100.实时系统是指( B )A 响应快的系统 B 时间约束的系统 C 单任务系统 D 内核小的系统101. 下面属于blob运行过程第一阶段的是(C) A 外围的硬件初始化(串口,USB等);B 根据用户选择,进入命令行模块或启动kernel。C 寄存器的初始化D 堆栈的初始化答案:C第一阶段的代码在start.s中定义,大小为1KB,它包括从系统上电后在0x00000000地址开始执行的部分。这部分代码运行在Flash中,它包括对S3C44B0的一些寄存器的初始化和将Blob第二阶段代码从Flash拷贝到SDRAM中。102.下列几种流行的嵌入式GUI中,没有采用分层设计的一种是: BA.MiniGUI B. Qt/Embedded C. Nano-X Window D. OpenGUI103. Qt/Embedded的底层图形引擎基于一下哪种接口技术: AAframebuffer BGAL CIAL DGFX104.在Linux使用GCC编译器时有如下命令:Gccg test.c o test,其中参数-g的作用是(D)A .生成目标文件test.o B.生成汇编文件test.s C .进行预编译 D .包含调试信息105、下列提法中,不属于ifconfig命令作用范围的是 D 。A) 配置本地回环地址 B) 配置网卡的IP地址C) 激活网络适配器 D) 加载网卡到内核中160、下面对于Bootloader的描述不正确的是(C)A、是上电后运行的第一个程序B、改变系统时钟C、Bootloader的两种模式对开发人员没有意义D、向内核传递启动参数161、符号“|在shell命令中表示:( D )A、输出追加 B、输入追加 C、输出重定向,原来的文件被改写 D、管道162、通常所说的32位微处理器是指 C 。A) 地址总线的宽度为32位B) 处理的数据长度只能为32位C) CPU 字长为32位 D) 通用寄存器数目为32个163、在32位处理器上,假设栈顶指针寄存器的当前值为0x00FFFFE8,那么在执行完指令“push eax”(eax为32位寄存器)后,栈指针的当前值应为AA) 0x00FFFFE4 B) 0x00FFFFE6 C) 0x00FFFFEA D) 0x00FFFFEC164、有若干并发进程均将一个共享变量count 中的值加1 一次,那么有关count 中的值说法正确的是:_ 。(C )A、肯定有不正确的结果B、肯定有正确的结果C、若控制这些并发进程互斥执行count 加1 操作,count 中的值正确D、A,B,C 均不对165、使用Vim作为文本编辑器,在指令模式下要将光标移动到文档的最后一行的命令是(C)。A、0 B、$ C、G D、GG169、 Boot Loader 的stage2通常使用C语言实现,以完成复杂的功能,并增加可读性和可移植性,以下哪一步骤属于stage2的内容:_D_ A . 为加载BootLoader的stage2准备RAM空间 B . 设置好堆栈 C . 硬件设备初始化 D . 将kernel映像和根文件系统映像从flash上读到RAM空间中170、执行以下程序段MOV SP, #3AHMOV A, #20HMOV B, #30HPUSHACCPUSHBPOP ACCPOPB后,A和B的内容是(B )A、20H,30HB、30H,20HC、3AH,30HD、3AH,3AH二、多项选择题1.嵌入式操作系统不同于通用操作系统的功能是( B C )A、任务调度 B、可裁减性 C、 强实时 D、设备管理 E、存储器管理2.linux操作系统支持的文件系统有( A B C D E )A、EXT2 B、VFAT C、NFS D、ISO9660 E、JFFS3.Linux系统中的设备文件通常有如下分类(B C D )A、虚拟设备 B、字符设备 C、网络设备 D、块设备 E、存储设备4.片内总线是大规模集成电路(Large Scale Integrated Circuit:LSI)和超大规模集成电路(VLSI)内部各寄存器或功能单元之间的信息交换通道,它由生产厂家决定,下列属于片内总线的有(A B D )。A、AHB总线 B、APB总线 C、USB总线 D、ASB 总线 E、1394总线5.下列能改变ARM处理器工作状态的指令有( C D)A、B指令 B、SUB指令 C、BX指令 D、BLX指令 E、BL指令6.常用的软件开发模型有(B C D )A、结构型 B、 原型模型 C、 迭代型 D、瀑布型 E、综合型7.ARM处理器的工作模式中属于异常模式的有( C D E )A、用户模式usr B、系统模式sys C、 外部中断模式irq D、中止模式abt E、快速中断模式fiq8.芯片总线又称元件级总线,它是指系统内或插件板内各元件之间所使用的总线,下列属于芯片总线的有( A C D )A、I2C总线 B、ISA总线 C、SPI总线 D、SCI总线 E、PCI总线9.在ARM汇编语言程序设计中主程序和子程序参数的传递需要满足ATPCS规则,ATPCS规则中用来传递参数的寄存器是(A B C D )A、R0 B、R1 C、R2 D、R3 E、R4四、判断题 1、 在gdb调试过程中,不退出gdb也可以执行UNIX shell命令。(对)2、 退出交互模式的shell,应键入quit。(错)3、 Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在/etc目录中。(错)4、 命令fdisk /mbr的作用是安装系统引导程序到主分区。(错)5、 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup 。(对)6、 命令mount /dev/hdc /mnt/cdrom是将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下。(对)7、 /home/src目录存放着Linux的源代码。( 错)8、 Linux 文件名的长度不得超256个字符。(对 )9、 在vi编辑器中的命令模式下,删除当前光标处的字符使用d命令。( 错 )10、 基于ARM架构的指令都是32位的。(错)11、 文件系统的主要功能是实现虚拟存储。(错)12、 进程有三种状态是准备态、执行态和退出态。(错)13、 Samba服务器的进程由smbd和nmbd两部分组成 。(对)14、 shell命令的第一个按键必须是字符、数字或者空格(错)15、 Linux 文件名的长度不得超256个字符。(对)16、 在gdb调试过程中,用make命令可以不用退出gdb就可以重新产生可执行文件。(对)17、 若一台计算机的内存为128MB,则交换分区的大小通常是64M。(错)18、 在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用shutdown r now命令实现。(对)19、 在vi编辑器中的命令模式下,删除当前光标处的字符使用d命令。(错)20、 Samba服务器的进程由smbd和nmbd两部分组成 。(对)21、 从后台启动进程,应在命令的结尾加上符号。(错)22、 网络管理的重要任务是:控制和监控。(对)23、 函数的标量参数通过传值的方式进行传递,而数组名参数则具有传址调用的语义。( )24、 Linux系统是一个多用户多任务的分时操作系统,允许多个用户在相同的机器上一次运行很多程序。( )25、 Linux 中的 ls 命令的功能是变换工作目录到目标指定目录。( )26、 ARM包含32个通用寄存器。( )27、 Qt Embedded的API同Qt/X11和Qt/Windows的相同,但它并不是基于X11库。( )28、 kmalloc和vmalloc的区别在于,前者申请到的是物理地址连续的内存空间,而后者则是虚拟地址连续的内存空间,不能用在中断时间。( )29、 LINUX是一个真正的多任务和分时操作系统,允许多个用户在相同的机器上一次运行很多程序。( )30、 (X)Linux采用线程调度程序选择线程占用CPU运行。31、 (V)在单机系统中可采用关中断的方式保证操作的原子性。32、 (X)根文件系统是系统启动时首先加载的文件系统,因此需要快速加载的内容应放置于其中,以加快系统的运行速度。33、 (X)线程切换成本小于进程,因此Linux系统中的多线程程序的调度开销要小于多进程程序。五、简答题1、简述嵌入式系统中非占先式与占先式调度法的区别有哪些。答:非占先式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。(1分)但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。(2分)当系统响应时间很重要时,要使用占先式(preemptive)内核。(1分)最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。(2分)2、什么是硬实时操作系统、软实时操作系统以及二者的区别?答:在实时系统中,如果系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,这样的系统被称为强实时系统或硬实时系统。(1分)强实时系统响应时间一般在毫秒或微秒级。(1分)在弱实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。(1分)其系统响应时间在毫秒至秒的数量级上,(1分)其实时性的要求比强实时系统要差一些。(2分) 3、介绍一下嵌入式系统的设计步骤有哪些?各部分主要工作是什么?答:(1)需求分析阶段,罗列出用户的需求;(1分)(2)体系结构设计阶段,描述系统的功能如何实现;(1分)(3)详细设计阶段,进行硬件系统与软件系统的分类划分,以决定哪些功能用硬件实现,哪些用软件实现;(1分)(4)系统集成,把系统的软件、硬件和执行装置集成在一起,(1分)进行调试,发现并改进在设计过程中的错误;(1分)(5)系统测试,对设计好的系统进行测试,看其是否满足给定的要求。(1分) 4、ARM支持哪两种数据存储格式,简单描述各自特点。答:分为大端格式和小端格式。(2分)大端格式:被存放字数据的高字节存储在存储系统的低地址中,而被存放的字数据的低字节则存放在存储系统的高地址中。(2分)小端格式:与大端存储格式相反,在小端存储格式中,存储系统的低地址中存放的是被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。 (2分)5、什么是BootLoader?主要有几种工作模式及主要功能是什么?答:简单说来,Bootloader就是操作系统内核运行的一段小程序,完成进行初始化系统硬件设置的任务,包括CPU、SDRRAM、Flash、串口等初始化,时钟的设置、存储器的映射。(2分)分为启动加载模式和下载模式。(1) 启动加载模式启动加载(Boot laoding)模式又称为“自主”(Autonomous)模式,是指 Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。(2分)(2) 下载模式在下载模式下,目标机上的 Bootloader 将先通过串口连接或网络连接等通信手段从宿主机下载文件。(2分) 6、Linux作为嵌入式操作系统的优势?答:Linux作为嵌入式操作系统的优势主要有以下几点: 1. 可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到 具体的硬件上,加快了软件与硬件的开发过程。Linux采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。(1分)2. Linux的高度模块化使添加部件非常容易。本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。(1分)3. Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等现有的大 部分芯片)等特性的一种通用操作系统。(1分)4. Linux可以随意地配置,不需要任何的许可证或商家的合作关系。其程序源码全部公开,任何人可以修改并在GUN通用公共许可证(GNU General Public License)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。(1分)5. Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。其强大的语言编译器GCC,C+等也可以很容易得到,不但成熟完善,而且使用方便。(分) 六、阅读程序题 1. 管道是Linux中进程通信的一种方式,以下程序在父进程和子进程之间创建了一个管道,然后建立它们之间的通信,实现父进程向子进程写数据的功能。说明标号所在行代码的功能。#include #include #include #include #include int main()int pipe_fd2;pid_t pid;char buf_r100;char* p_wbuf;int r_num;memset(buf_r,0,sizeof(buf_r); (1) if(pipe(pipe_fd)0) (5) printf( %d numbers read from the pipe is %sn,r_num,buf_r);close(pipe_fd0); (6) exit(0); else if(pid0) (7) close(pipe_fd0); (8) if(write(pipe_fd1,Hello,5)!=-1) (9) printf(parent write1 success!n);if(write(pipe_fd1, Pipe,5)!=-1)printf(parent write2 success!n);close(pipe_fd1); (10) sleep(3);waitpid(pid,NULL,0);exit(0);答案要点:(1) 将数据缓冲区清0 (2) 创建管道 (3) 创建子进程 (4) 关闭子进程写描述符 (5) 子进程读取管道内容 (6) 关闭子进程读描述符 (7) 父进程运行控制语句 (8) 关闭父进程的读描述符 (9) 将数据写入缓冲区 (10) 关闭父进程写描述符 2. 阅读下面shell程序,写出执行结果: #!/bin/sh for name in Tom Jack Harry do echo $name is my friend done1、答:Tom is my friendJack is my friendHarry is my friend3. 用变量a给出下面的定义a) 一个指向整型数的指针(A pointer to an integer)b) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)c) 一个有10个整型数的数组(An array of 10 integers)d) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)e) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)2、答:a)int *a; / A pointer to an integerb)int *a; / A pointer to a pointer to an integerc)int a10; / An array of 10 integersd)int *a10; / An array of 10 pointers to integerse)int (*a)10; / A pointer to an array of 10 integers4. 根据下面给出的声明和数据,对每个表达式进行求值并写出他的值。在每个表达式进行求值是使用原来给出的值(也就是说,某个表达式的结果不影响后面的表达式)。假定ints数组在内存中的起始位置是100,整型值和指针的长度都是4字节。in tints20=10, 20, 30, 40, 50, 60, 70, 80, 90, 100,110, 120, 130, 140, 150, 160, 170, 180, 190, 200;(Other declarations)int *ip=ints+3;表达式值ints_ _ints4_ _ip_ _ip4_ _*(ip+4)_ _答:(每项1分)表达式值ints_ 100 _Ints4_ 50 _ip_ 112 _ip4_ 80 _*(ip+4)_ 80_七、应用实践题 1、管道是Linux中进程通信的一种方式,以下程序在父进程和子进程之间创建了一个管道,然后建立它们之间的通信,实现父进程向子进程写数据的功能。说明标号所在行代码的功能。#include #include #include #include #include int main()int pipe_fd2;pid_t pid;char buf_r100;char* p_wbuf;int r_num;memset(buf_r,0,sizeof(buf_r); (1) if(pipe(pipe_fd)0) (5) printf( %d numbers read from the pipe is %sn,r_num,buf_r);close(pipe_fd0); (6) exit(0); else if(pid0) (7) close(pipe_fd0); (8) if(write(pipe_fd1,Hello,5)!=-1) (9) printf(parent write1 success!n);if(write(pipe_fd1, Pipe,5)!=-1)printf(parent write2 success!n);close(pipe_fd1); (10) sleep(3);waitpid(pid,NULL,0);exit(0);答案要点:(1) 将数据缓冲区清0 (2) 创建管道 (3) 创建子进程 (4) 关闭子进程写描述符 (5) 子进程读取管道内容 (6) 关闭子进程读描述符 (7) 父进程运行控制语句 (8) 关闭父进程的读描述符 (9) 将数据写入缓冲区 (10) 关闭父进程写描述符 2、用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。答:#!/bin/shFILENAME=echo “Input file name:” read FILENAME if -c $FILENAME thencp $FILENAME /devfi 3、设计一个Shell程序,在/userdata目录下建立50个目录,即user1user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。答:#!/bin/shi=1while i -le 50 doif -d /userdata ;thenmkdir -p /userdata/user$ichmod 754 /userdata/user$iecho user$ilet i = i + 1 (或i=$($i1)elsemkdir /userdatamkdir -p /userdata/user$ichmod 754 /userdata/user$iecho user$ilet i = i + 1 (或i=$($i1)fidone4、用变量a给出下面的定义f) 一个指向整型数的指针(A pointer to an integer)g) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)h) 一个有10个整型数的数组(An array of 10 integers)i) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)j) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)2、答:a)int *a; / A pointer to an integerb)int *a; / A pointer to a pointer to an integerc)int a10; / An array of 10 integersd)int *a10; / An array of 10 pointers to integerse)int (*a)10; / A pointer to an array of 10 integers5.根据下面给出的声明和数据,对每个表达式进行求值并写出他的值。在每个表达式进行求值是使用原来给出的值(也就是说,某个表达式的结果不影响后面的表达式)。假定ints数组在内存中的起始位置是100,整型值和指针的长度都是4字节。in tints20=10, 20, 30, 40, 50, 60, 70, 80, 90, 100,110, 120, 130, 140, 150, 160, 170, 180, 190, 200;(Other declarations)int *ip=ints+3;表达式值ints_ _ints4_ _ip_ _ip4_ _*(ip+4)_ _答:(每项1分)表达式值ints_ 100 _Ints4_ 50 _ip_ 112 _ip4_ 80 _*(ip+4)_ 80_6、由于Boot Loader的实现依赖于 CPU 的体系结构,因此大多数Boot Loader都分为 stage1 和 stage2 两大部分。依赖于 CPU 体系结构的代码,比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。请根据你对嵌入式系统中bootloader的理解,简要设计一下stage1和stage2需要完成的功能。参考答案:BootLoader 的 stage1 通常包括以下步骤(以执行的先后顺序):(3分)基本硬件设备初始化。为加载 Boot Loader 的 stage2 准备 RAM 空间。拷贝 Boot Loader 的 stage2 到 RAM 空间中。 设置好堆栈。 跳转到 stage2 的C入口点。 BootLoader 的 stage2 通常包括以下步骤(以执行的先后顺序): (3分)初始化本阶段要使用到的硬件设备。检测系统内存映射(memory map)。 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。为内核设置启动参数。调用内核。7、 假定你在目录/home/arm下有一个C程序,他由几个单独的文件组成,而这几个文件又分为包含了其他文件,如下图所示:文件包含文件main.cstdio.h, table.hlist.clist.hsymbol.csymbol.htable.ctable.htable.hsymbol.h, list.h完成下列任务:1. 编写makefile文件,最终的目标文件为hello(交叉编译器为arm-linux-gcc)2. 在目标机上通过网络文件系统挂载/mnt 到宿主机上的/home/arm目录1、答:hello: main.o list.o symbol.o table.o gcc -o prog main.o list.o symbol.o table.omain.o: main.c table.h symbol.h list.h gcc -c -o main.o main.clist.o: list.c list.h gcc -c -o list.o list.csymbol.o
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!