《嵌入式Linux系统编程》考试试题1上嵌《嵌入式Linux系统编程》考试试卷E一、选择题(5×1')1、(C)是操作系统中最重要、最基本的概念之一,它是系统分配资源的基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。A.程序B.作业C.进程D.线程2、(B)的主要特点是提供即时响应和高可靠性。生产过程的控制、武器系统、航空订票系统、银行业务就是这样的系统。A.分时系统B.实时系统C.批处理系统D.分布式系统3、(B)数据传送方式的作用是在外围设备和内存之间开辟直接的数据交换通道。A.程序直接控制B.DMAC.通道控制D.中断4、下面临界区概念论述正确的是(A)A.临界区是指进程中用于实现进程互斥的那段程序代码B.临界区是指进程中用于实现进程同步的那段程序代码C.临界区是指进程中用于实现进程通信的那段程序代码D.临界区是指并发进程中与共享变量有关的程序段5、多道程序设计是指(D)A.在实时系统中并发运行多个程序B.在分布式系统中同一时刻运行多个程序C.在一台处理机上同一时刻运行多个程序D.在一台处理机上并发运行多个程序二、填空题(20×1')1、在Linux系统中,以____文件__方式访问设备,每个文件用___索引节点____来标识。2、启动LinuxShell的时候,stdin,stdout,stderr三个文件描述符会自动打开,他们的值分别是_0_,1,2.3、创建新进程的系统调用是fork()、exec(),创建新线程的函数是pthread_create().4、操作系统发展的历程,从串行处理,批处理程序,多道程序分时处理,____分时系统________.5、进程控制块的三类信息:进程标识信息,_进程状态信息,_进程控制信息___________.6.进程具有的基本状态为:___运行___、____等待__、___停止___、___僵尸___。7.安装Linux系统对硬盘分区时,必须有两种分区类型:___根分区___和__交换分区____。《嵌入式Linux系统编程》考试试题28.编写的Shell程序运行前必须赋予该脚本文件___执行___权限。三、简答题(30')1、进程间通信的方法有哪些?各自有什么优缺点?那一种方法效率最高?答:管道、信号及信号量、消息队列、共享内存管道:半双工通信方式,数据只能单向流动信号及信号量:信号量是一个计数器,可以用来控制多个进程对共享资源的访问,主要作为进程间以及同一进程内不同线程之间的同步手段。消息队列:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息,队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点共享内存:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问共享内存:效率最高2、文件指针FILE*与文件描述符是一个什么样的关系?答:FILE*定义的是文件描述流,文件描述符是linux种的文件操作句柄。函数fdopen()3、解释单体内核和微内核之间的区别.答:单体内核包含了所有功能:调度,文件系统,设备驱动程序,网络,存储管理等。微核内只能有部分功能:基本调度,进程通信,地址空间。4、处理器的操作模式分为内核模式和用户模式,请问模式切换和进程切换有什么区别?答:模式切换时内核级和用户级之间的切换进程切换只是几个进程之间的切换。5、网络通信中,TCP和UDP有什么区别?答:TCP在发送数据包前都在通信双方有一个三次握手机制,确保双方准备好,在传输数据包期间,TCP会根据链路中数据流量的大小来调节传送的速率,传输时如果发现有丢包,会有严格的重传机制,从而以保证数据包可靠的传输。DUP的传输是不可靠的,发送端有数据包我就发送,不会去理会对端的承受能力和链路状况。6、尝试论述中断产生,到中断处理结束的详细过程。答:处理器检测到中断,在响应中断前,把正在运行的任务停止,处理器对中断进行确认,给发送中断的设备发送确认信息,确认信号允许该设备取消中断信号,处理器需要为控制权转移到程序中去做准备,至少把PSW及程序计数器中指向下一条指令的地址压入堆栈进行保护,所有寄存器的内容也压栈保护,处理器把响应此中断的终端处理器的开始地址装入程序计数器中,中断处理器进行中断处理,处理完后,从栈中释放寄存器的内容,从栈中恢复PSW及程序计数器《嵌入式Linux系统编程》考试试题3的值!7、试阐述何时会导致进程切换,以及进程切换的详细过程。时钟中断,进程允许执行的时间片结束导致进程切换,IO中断,内存失效发生错误或异常,进程被转换到退出状态系统调用,比如打开文件,通常导致进程为阻塞状态进程切换的详细过程可分为两部分:1承上:保存进程的上下文,更新进程的进程控制块,把进程转换到相应的状态因为不同的机制导致的进程切换后的状态时不一样的2:启下:加载要切换的进程,更新该进程的进程控制块,把加载的进程状态转换为运行态,更新内存管理的数据结构,恢复最后一次切换出去的进程的运行状态的上下文进程切换的详细过程如下:(1)保存处理器上下文环境,包括程序计数器和其他寄存器。(2)更新当前处于运行态进程的进程控制块,包括将进程的状态改变到另一个状态。还必须更新其他相关域,包括离开运行态的原因和记账信息。(3)将进程的进程控制块移到相应的队列。(4)选择另一个进程执行。(5)更新所选进程的进程控制块,包括将进程的状态变为运行态。(6)更新内存管理的数据结构。(7)回复处理器在被选择的进程最近一次切换出运行态时的上下文环境。《嵌入式Linux系统编程》考试试题4《Linux系统程序设计》机试1.实现char*myStrncpy(char*dst,char*src,size_tn);6分返回值:如果复制成功,则返回目标地址dst的值,形参分别是:(目标地址,源地址,复制字节数)注意程序的健壮,合理,简洁,高效(越简单的函数,越容易写错)2.写2个非亲属进程程序14分程序a负责在内存里找bash,并把找到的bash的PID转成int型的数据,然后传送给另一个进程,程序b,接收数据,把这个PID关闭掉数据传输用消息队列3.用UDP心跳机制实现2个程序间的通讯30分程序A使用定时器每5秒向程序B发送一个消息。程序B把收到的消息后,发一个ok给程序A.如果程序A在10秒内没有收到程序B发送的ok消息,就在屏上打印ERROR提示:心跳机制类似软件狗的功能,有一个倒计时的时间,在倒计时完成后没有收到信息,则显示失败,如果在倒计时结束前收到了信息,则重新开始计时。这个功能需要进程专门起一个线程来做这个倒计时的工作。《嵌入式Linux系统编程》考试试题5薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃