欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    嵌入式操作系统应用开发复习题及复习资料.docx

    • 资源ID:35460862       资源大小:45.13KB        全文页数:19页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式操作系统应用开发复习题及复习资料.docx

    1、 简述Linux操作系统具有的特点。答:开放的源代码,良好的兼容性,完备的扶植手册页,优秀的网络支持支持多用户多任务多处理器支持多种文件系统,独特的挂载方式确保数据的平安性将应用程序的核心实现为库,可重用性良好采纳模块化分层的程序设计方法,牢靠易维护将设备等一切都看做是文件,供应统一的文件操作接口对设备等进展操作2、 说明POSIX。答:POSIX表示可移植操作系统接口,可以进步UNIX环境下应用程序的可移植性。POSIX标准定义了标准的API,只要是符合这一标准的应用程序,就可以在多种操作系统中运行。3、 说明通用公共答应证GPL。答:GPL保证软件对全部用户来说是自由的。遵循GPL的软件供应应用户时必需供应源码,一旦用户得到遵循GPL的软件,就可以对其随意地改写,修改之后假设要供应应其别人也必需遵循GPL,并开放源码,允许被修改。4、 Linux系统下,常用的在线扶植文件有哪些?答:1、man手册 2、info手册 3、How-To文件 。5、 Linux系统下进展C程序开发的主要两个标准。答:1 、ANSI C标准 2、POSIX标准。6、 一般Linux系统调用函数,假设执行胜利将返回什么值?假设执行失败将返回什么值?并对哪个系统全局变量进展赋值,以指示详细的错误状况。答:胜利时返回为0,不胜利时一般返回-1,也可能返回一些非0值。失败时将会在全局变量errno中赋值指示错误类型7、 画出Linux函数库调用和系统调用的示意图,简洁说明系统调用(API)函数的作用。应用程序答:库函数系统调用硬件设备内核API是操作系统和用户程序之间的接口,应用程序通过API及操作系统进展通信,运用操作系统供应的效劳。API同时保证了操作系统数据和程序的平安性。因此,API供应应用户平安地运用操作系统供应的效劳。8、 简洁说明在Linux程序开发过程中,利用GCC工具将C语言程序编译成一个可执行程序文件的四个步骤。答:1、预处理 2、编译 3、汇编 4、连接9、 说明gcc工具的o、c、I、L、l等5个参数的功能作用。答:o:把文件输出到output_, c:只编译,不连接 I: L:在库文件的搜寻途径列表中添加dirname书目 l:-o file指定输出文件为 预处理,编译,汇编源文件,但是不做连接,产生.o(OBJ)文件-Idirname在头文件的搜寻途径列表中添加dirname书目-Ldirname 在“-I”的搜寻书目中添加dirname书目,在连接库文件时候运用-lname 假设一个库文件的名称为“libname.a”,程序执行时若要连接这个库文件,就要运用该选项进展连接,省略库名中的前缀“lib”和后缀“.a”10、 可执行程序文件在存储时(没有调入到内存)分为几部分,说明各段的主要内容。答:1、可执行代码区(text):存放CPU执行的机器指令。2、已初始化数据区(data):包含了在程序中已经被初始化的全局变量和静态变量。3、未初始化数据区(bss):未初始化的全局变量和静态变量,在程序开场执行之前被内核初始化为0或空指针。11、 可执行程序文件调入到内存产生进程后,分为几个存储区域,说明各区域的主要内容及作用。答:前三个及10中内容一样 4、堆区:用于动态内存安排5、栈区(heap):由编译器自动安排释放,存放函数的参数值、返回值、部分变量等。12、 Linux系统下,用C语言编程,进展文件管理,有哪两类函数可用?试比拟两类函数的优缺点。答:ANSI C优点:1.具有丰富的函数可供运用。2.干脆对内存缓冲区进展操作,可以高效的写随意长度的数据块,在数据长度满意要求时支配底层系统调用,降低的系统的开销且没有数据块大小的限制,整体的效率要比干脆对硬件操作的系统调用高3.具有更好的兼容性缺点:对系统调用进展封装,因此运用时会在库函数中再调用系统调用,就一次读写一样的数据来说,效率比系统调用要低POSIX优点:在类UNIX等系统中有很好的可移植性,可以干脆设置对硬件的限制缺点:1.运用时会影响系统性能,假设一次只存取很少的内容,效率会很低 2.硬件会限制对底层系统调用一次能读写的数据块大小,假设数据很小,会留下空隙。3.兼容性不是很好13、 Linux系统中,系统默认为每个进程翻开了几个个文件?即每个进程可以干脆操作哪几个流?答:3个,STDIN_FILENO标准输入文件,STDOUT_FILENO标准输出文件,STDOUT_FILENO标准错误文件。每个进程可以干脆操作STDIN:标准输入流,STDOUT标准输出流,STDERR:标准错误输出流。14、 标准输入输出设备的文件描绘符和文件流指针分别是什么?文件流指针及文件描绘符有什么区分?答:运用系统调用open()胜利返回一个文件描绘符,文件描绘符是任何翻开的文件都被安排一个唯一非负整数用于表示该翻开的文件,内核通过文件描绘符对文件进展操作。文件流指针:在操作一个文件时要翻开该文件运用ANSIC库函数fopen翻开一个文件后返回一个文件流指针及该文件关联,全部对该文件的读写操作都可以通过该指针流完成。在Linux中,文件流指针中封装了文件描绘符,才能使通过文件流指针对文件操作成为可能。15、 Linux文件类型,在shell应用层面用ls -l查看吩咐不同类型的文件分别显示什么内容?答:文件的类型,文件权限,应连接个数,拥有者,拥有者所在组,文件大小,最终一次修改时间。文件类型标识:书目文件d,一般文件f,字符设备文件c,块设备文件b,管道文件p,链接文件l,socket文件s16、 在Linux某个文件系统下,文件属性中惟一标识某个文件的是什么?惟一标识一个翻开的文件是什么?答:索引节点,文件描绘符。17、 ls lc,-lu,-lt分别列出的是什么时间?答:lc:最终一次修改i结点时间.-lu:最终一次访问时间.-lt:最终一次修改内容时间18、 一个文件设置了setuid位,该可执行文件在执行时有什么主要的影响。答:会使得拥有执行该文件权限的用户执行该文件时,即使不是文件全部者也会运用文件全部者的权限。19、 一个常规文件的大小可以为0(st_size字段定义),那么书目和符号连接的长度是否可以为0?答:不为0.因为每当书目文件创立时,会自动产生两个“.”开头的隐含文件,符号链接,文件包含着另一个文件的途径名。20、 Linux系统下,进程完毕的方法有哪几种?答:1.在本进程或者其它进程中运用kill()调用发送SIGKILL信号。 2.进程运行过程中遇到内存段冲突,非法指令等错误,由操作系统发送相应的信号终止进程。 3.进程执行到return或者调用exit()或者运行到最终自然完毕。 4.执行exec类函数执行新的进程21、 Linux系统下,线程完毕的方法有哪几种?答:1、调用pthread_exit()退出。2、调用pthread_cancel函数取消该线程。3、创立线程的进程退出或者整个函数完毕。4、其中的一个线程执行了exec类函数执行新的进程。 5.线程调用pthread_exit()或者执行到return或者执行完毕自然终止。 6.线程执行中出错由系统终止22、 线程间通信的机制有哪几种?答:1.信号量 2.互斥量 3.共享全局变量23、 进程间通信的机制有哪几种?答: 本地主机通信:1.信号 2.信号量,消息队列,共享内存 3.管道(包括出名管道和无名管道) 4.共享内存网络通信:1.socket 2.rpc24、 画出面对连接的(TCP)socket通信模型,并说明说明其中主要的socket函数。答:read/recvwrite/sendwrite/sendread/recvsocket():创立一个socket,作为通信的一个端点 bind():为socket命名,若是创立的AF_INET套接字将其关联到一个IP端口号,若是AF_UNIX套接字将其关联到一个文件系统的途径名 listen():创立一个队列用来保存等待处理的连接 accept():堵塞等待连接恳求,在有连接恳求时创立一个新的socket来及客户进展通信 recv()/read():接收数据send()/write():发送数据connect():用户通过在一个命名的或者未命名的socket和效劳器的socket建立连接25、 画出面对非连接的(UDP)socket通信模型,并说明说明其中主要的socket函数。sendtorecvfromsendtorecvfromsocket,bind26、 Linux系统IO操作有哪几种方式?答:1、堵塞I/O2、非堵塞I/O3、多路选择I/O4、信号驱动I/O27、 字节排列依次有几种方式?答:大端方式,小端方式采纳大端方式将高位存放在低地址,小端方式将低位存放在低地址。采纳大端方式进展数据存放符合人类的正常思维,而采纳小端方式进展数据存放利于计算机处理。28、 POSIX标准下,文件管理的根本操作函数有哪些?答:open 翻开文件close关闭文件read()从文件或设备中读读数据 write()向文件或者设备中写数据 fcntl():传递限制信息到设备驱动程序编程29、 如何运用ANSI C标准库,实现文件拷贝操作。答:假设要从文件中拷贝数据到中#include <stdio.h>#include <stdlib.h>int main()int c;FILE *in, *out; /定义两个文件流指针in = fopen("", "r"); /in及文件关联,运用只读方式翻开out = fopen("", "w"); /out及文件关联,用只写方式翻开while(c = fgetc(in) != EOF)fputc(c, out); /每次循环从中用fgetc()读出一个字符放到c中,再从c中写入到。假设没有读到文件尾(EOF),就接着下一次循环exit(0);30、 如何运用POSIX IO库,实现文件拷贝操作。答:#include <unistd.h>#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>#include <stdlib.h>int main()int c50; /暂存从中读出的字符int in, out;int nread; /存放read()返回值,即胜利读取的字符数in = open("", O_RDONLY); /以只读方式翻开out = open("", O_CREAT | O_WRONLY, S_IRUSR | S_IWRUSR); /以只写方式翻开,假设该文件不存在,就运用全部者可读可写的方式创立它while(nread = read(in, c, 50) )> 0) /恳求从中读取50个字符放入c中,并返回实际读取的字符数放入nread中write(out, c, nread); /将c中的有效字符写入,假设还有字符未读出,循环,假设返回值为0(即已经读完了全部字符),退出循环if(nread < 0) /假设返回值为-1,出现错误,在终端输出“read() error!”write(2, "read() error!", 13);exit(0);31、 如何编程实现文件夹的拷贝。答:/*输入格式如 ./cp file2 */#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>#include <sys/types.h>#include <ftw.h>#include <fcntl.h>#include <unistd.h>#include <limits.h>#include <string.h>#include <dirent.h>#define BUFSIZE 1024#define PERMS 0666#define DUMMY 0int cp *source_ *target_file) int source,target,num; char iobufferBUFSIZE; if(source=open(source_)=-1) printf("Source error!n"); return 1; if(target=open(target_)=-1) printf("Target error!n"); return 2; while(num=read(source,iobuffer,BUFSIZE)>0) if(write(target,iobuffer,num)!=num) printf("Target error!n"); return 3; close(source); close(target); return 0;int cpdir(char *source_dir,char *target_dir) DIR *source=NULL; DIR *target=NULL; struct dirent *ent=NULL; char name1100,name2100; source=opendir(source_dir); mkdir(target_dir,S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH); target=opendir(target_dir); if(source!=NULL&&target!=NULL) while(ent=readdir(source)!= NULL) if( strcmp(ent->d_name,".")!=0 && strcmp(ent->d_name,".")!=0) strcpy(name1,"0"); strcat(name1,source_dir); strcat(name1,"/"); strcat(name1,ent->d_name); strcpy(name2,"0"); strcat(name2,target_dir); strcat(name2,"/"); strcat(name2,ent->d_name); if(ent->d_type=4) cpdir(name1,name2); if(ent->d_type=8) cp); closedir(source); closedir(target); return 0;int main(int argc,char *argv) cpdir(*(argv+1),*(argv+2); return 0;写一创立(fork)新进程的程序,利用管道机制,实如今子进程中写入数据,在父进程中读出数据。答:#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>int main() int data_processed; int 2; /管道的描绘符 const char some_data = "123" /存放将要传输的数据 char bufferBUFSIZ + 1; /stdio.h中已经定义的BUFSIZ大小为8K pid_t fork_result; memset(buffer, '0', sizeof(buffer); /buffer空间初始化0 if (pipe() = 0) fork_result = fork(); if (fork_result = -1) fprintf(stderr, "Fork failure"); exit(EXIT_FAILURE);/子进程从管道中读出数据放到bufferr中 if (fork_result = 0) data_processed = read(0, buffer, BUFSIZ); printf("Read %d bytes: %sn", data_processed, buffer); exit(EXIT_SUCCESS);/父进程往管道中写入数据 else data_processed = write(1, some_data, strlen(some_data); printf("Wrote %d bytesn", data_processed); exit(EXIT_SUCCESS);32、 编程实现who|sort答:#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <fcntl.h>#include <sys/wait.h>#include <stdlib.h>int main(int argc,char *argv)int fds2;if(pipe(fds)=-1)perror("pipe");exit(EXIT_FAILURE);if (fork()= 0) char buf128;dup2(fds0, 0);close(fds1);/must include ,or blockexeclp("sort", "sort", (char *)0);/execlp("cat", "cat", (char *)0);else if(fork() = 0) dup2(fds1, 1);close(fds0);execlp("who", "who", (char *)0);else close(fds0);close(fds1); wait(NULL); wait(NULL);return 0;33、 利用信号机制,定时在屏幕上输出一些信息。答:34、 利用信号量机制,实现消费消费问题的根本程序框架。答:35、 线程互斥锁的运用。答:1、初始化和销毁互斥锁 2、申请互斥锁3、释放互斥锁36.静态库和共享库各有什么特点? 静态库特点是当你同时运行很多应用程序并且他们都是用来自同一个函数库的函数时,内存中就会有同一函数的很多副本,而且程序文件本身中也有很多同样的副本,这将消耗大量珍贵的内存和磁盘空间,而共享库的保存位置和静态库是一样的,但是共享库有不同的文件名后缀,当一个程序运用共享库时,程序本身不在包含函数代码,而是引用运行时可访问的共享代码,当编译好的程序在执行时,函数引用被解析并产生对共享库的调用,这样,系统只保存共享库的一份副本工序多应用程序同时运用,并在磁盘上也保存一份,另一好处是,共享库的更新可以独立及依靠它的应用程序, 37.什么是文件,文件的种类?文件操作的两种方法?文件的定位,文件状态的设置?38.什么是环境变量,如何设置,获得环境变量?39,用户信息的概念,还有getuid getpid这些函数。40.linux系统时间起点,标准时间,本地时间 时间起点是格林尼治时间1970年1月1日午夜0点41,如何从吩咐行获得系统参数(环境变量)42,makefile文件的根本组成,目的?43,什么是进程?进程和程序的区分是什么?44,创立进程的方法?45,什么是线程,他和进程相比有那些优缺点?线程创立的方法?46,线程之间的同步以及互斥数据的共享有那些常用方法?47,什么是管道?根本的操作?通过管道如何让两个进程传递信息?48,什么是信号量?49,什么是套接字?里面根本的函数?50进程信号量的3个根本函数?51,共享内存的4个根本函数? 52,消息队列的4个根本函数?

    注意事项

    本文(嵌入式操作系统应用开发复习题及复习资料.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开