嵌入式应用开发期末练习题.docx
- 文档编号:28049990
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:16
- 大小:77.26KB
嵌入式应用开发期末练习题.docx
《嵌入式应用开发期末练习题.docx》由会员分享,可在线阅读,更多相关《嵌入式应用开发期末练习题.docx(16页珍藏版)》请在冰豆网上搜索。
嵌入式应用开发期末练习题
一、填空题
1、中,对串口参数进行配置的数据结构名是。
2、的编译流程分为4个步骤:
预处理、编译、汇编、链接。
3、获取当前进程的方法是()。
4、对文件的打开操作有和,它们哪个是标准库函数()它的返回值是指向的指针。
5、一个由c语言占用的内存分为代码区和数据区,数据区又可以分为静态数据区和动态数据区,动态数据区分为堆、栈。
6、的管道通信可以分为匿名管道、有名管道和标准管道。
7、中的网络编程是通过套接字接口来进行的,常见的套接字有三种类型:
流式套接字、数据报套接字和原始套接字。
8、在中,用户空间的进程可以直接通过系统调用来获取操作系统内核提供的服务。
9、中,对串口进行操作的函数中,激活串口配置的函数是()。
10、中使用较多的进程间通信方式包括管道、信号、信号量、消息队列、共享内存。
11、规则是进行处理的依据,它包括了依赖文件、目标体及其之间的命令语句。
12、互斥锁和信号量为中的线程同步机制,其中信号量适合于同时可用的资源为多个的情况。
13、系统调用分为进程控制、进程间通信、文件系统管理、系统管理、存储管理、网络管理、管理、用户管理等。
14、终端分为3种模式规范模式、非规范模式和原始模式
二、选择题
1.下面关于下串口操作正确的描述是【C】
A.串口的奇偶校验必须使能B.不能通过设置串口的停止位
C.串口配置好后,其读写操作和普通文件就是一样的了
D.串口文件可以通过改变读写指针
2.下列关于说法错误的是【B】
A.创建目标体的命令必须以制表符开头B.变量名可以包含“#”字符串
C.变量对大小写敏感D.“”表示读入指定目录下的
3.下列关于多线程编程不正确的是【D】
A.不同进程的线程间不能用信号量来同步;
B.线程库符合接口;
C.必须包含头文件;
D.()作用是将参数中的指定线程挂起;
4.下列关于网络编程不正确的说法是【C】
A.()既可用在中,也可用在中;
B.()既可用在中,也可用在中;
C.不管是客户端还是服务器端必须调用;
D.每一个都用一个半相关描述{本地地址、本地端口}
5.从文件描述符中读出200个字节到首地址为的缓冲区的正确底层操作是【B】
A.(,200);B.(,200);
C.(,200);D.(200);
6.使用下面哪条命令可以查询目标文件所依赖的动态链接库。
【B】
A.;B.;
C.;D.
7.下面关于进程控制不正确的描述的是【A】
A.()调用一定会使得父进程阻塞
B.()会清理缓冲,而()不会清理缓冲
C.在执行函数后,原调用进程的内容除了进程号外,其他全部被新的进程替换了
D.()的返回值在父子进程中是不一样的
8.将生成动态链接库的正确命令是。
【B】
A.–c
B.––o
C.–o
D.––o
9.下面关于进程通信正确的是【C】
A.信号量是进程间通信机制中唯一同步机制
B.消息队列读取函数()只能读取队头的消息
C.共享内存的实现分为两个步骤:
创建或打开共享内存和映射共享内存
D.信号量既可以解决进程间的同步问题,但不能解决进程间的互斥问题。
10.网络编程中,下面哪个函数是客户端、服务端所必须调用的。
【C】
A.()
B.()
C.()
D.()
11.使用下面哪个函数返回值可知道文件操作已到文件末尾【C】
A.
三、判断题
1.主要解决了多路复用的问题。
(√)
2.嵌入式的底层函数(如())带有缓冲区,可直接对文件进行读写操作。
(X)不带缓冲区
3.嵌入式的标准函数(如())不带有缓冲区,可直接对文件进行读写操作。
(X)不可直接对文件操作
4.是操作系统直接提供的函数接口。
(X)不是直接
5.参数“”的作用是告诉与库进行静态链接。
(√)
6.上的数据在网络上是以高位字节优先的顺序在网络上传输的。
(√)
7.创建线程的实质就是确定该线程函数的入口点,通常使用的函数是。
(X)
8.当线程出现错误的时候,可以使用()终止线程。
(X)
9.()函数是中一个非常重要的函数,在子进程中其返回值等于0。
(√)
10.中不是所有的都要调用函数进行端口绑定。
(√)
11.标准函数读取成功时返回的是成功读取的记录数。
(X)记录数的数目
12.底层函数读取成功返回的的时成功读取字节数(√)
13.在中,每个都会对应一个或多个系统调用(X)可以不对应
14.上的数据在网络上是以低位字节优先的顺序在网络上传输的(X)高位字节
15.主要解决了多路复用的问题(√)也是
16.中一定要调用函数进行端口绑定(X)要,不用
17.参数“”的作用是告诉与库进行静态链接(√)“”动态链接
18.()函数是中一个非常重要的函数,如果成功,父进程中其返回值大于1(√)子进程返回0,父进程返回子进程的进程号
19.参数“”的作用是告诉生产与位置相关的目标代码(X)无关
20.普通可实现进程间的全双工通信(X)半双工
4、简答题
1.画图说明系统下用协议网络编程时客户端和服务器的步骤。
2.画图说明系统下用协议网络编程时客户端和服务器的步骤。
3.简述系统调用、及系统命令之间的关系。
系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。
而实际使用过程中,我们通常调用的用户编程接口就是;系统命令相对更高了一层,它实际上一个是可执行程序,它的内部引用了用户编程接口()来实现相应的功能。
他们的关系:
4.#简述在下实现进程通信的几种方式的各自特点?
匿名管道:
具有亲缘关系的进程间,半双工,数据在内存中
有名管道:
可用于任意进程间,双工,有文件名,数据在内存
信号:
唯一的异步通信方式
消息队列:
常用于模式中,按消息类型访问,可有优先级,无须同步机制。
共享内存:
效率最高(直接访问内存),需要同步、互斥机制
信号量:
用于解决进程间的同步与互斥问题的一种进程间通信机制
5.#共享内存是如何实现进程通信的?
它是用什么方法(函数):
创建、映射、撤销映射、删除?
。
创建/打开共享内存.()()
映射共享内存,即把指定的共享内存映射到进程的地址空间用于访问.()
撤销共享内存映射.()
删除共享内存对象.()
6.#创建守护进程的过程:
①调用创建子进程。
父进程终止,让子进程在后台继续执行。
②子进程调用产生新会话期并失去控制终端
调用()使子进程成为新会话组长和新的进程组长,同时失去控制终端
③改变当前工作目录为根目录()
一般将工作目录改变到根目录,这样进程的启动目录也可以被卸掉。
④重设文件创建掩码()
清除从父进程那里继承来的文件创建掩码,设为0。
⑤关闭打开的文件描述符()
⑥用函数建立与的连接
五、编程题
1、请使用、、、、、、和
等函数实现如下功能:
1)子进程把文件末尾的5个字符读出来;
2)再通过管道发送给父进程;
3)父进程收到后将它们输出到显示终端。
注意:
请自行定义运行过程中的提示信息,头文件可省略!
<>
<>
<>
<>
<>
<>
<>
""
()
{
[2];
;
[5]1[10];
;
();
(<0)
{
("!
\n");
(1);
}
(()<0)
{
("!
\n");
(1);
}
(,0());
(1,0
(1));
();
(0)
{
([0]);
(3);
(6);
(,5);
([1]);
([1]);
(0);
}
{
([1]);
(1);
();
([0]1
(1));
("\n"1);
([0]);
();
(0);
}
}
2、用协议实现(只须编写服务器程序)
服务器端首先建立起,然后与本地端口进行绑定,接着就开始接收从客户端的连接请求并建立与它的连接,接下来,接收客户端发送的消息并显示出来,当收到“”时退出。
<>
<>
<>
<>
<>
<>
<>
<>
4321
1024
5
()
{
;
;
;
[];
/*建立连接*/
((=(,0))-1)
{
("");
(1);
}
("=\n");
/*设置结构体中相关参数*/
=;
=();
=;
(&(),8);
i=1*允许重复使用本地地址与套接字进行绑定*/
(,,,,(i));
/*绑定函数()*/
((,(*),
())-1)
{
("");
(1);
}
("!
\n");
/*调用()函数,创建未处理请求的队列*/
((,)-1)
{
("");
(1);
}
("....\n");
();
/*调用()函数,等待客户端的连接,并创建一个新的为本次连接服务*/
((=(,
(*),))-1)
{
("");
(1);
}
/*调用()函数接收客户端的请求*/
(,0,());
((=(,,,0))-1)
{
("");
(1);
}
("a:
\n",);
();
(0);
}
2、用协议实现(只须编写服务器端程序):
服务器端首先建立起,然后与本机和端口进行绑定,接着可循环接收客户端发送的消息并显示出来,当收到“”时退出。
<>
<>
<>
<>
<>
<>
<>
()
{
;
;
=1234;
=;
;
;
[100];
[100];
;
(,0);
(1)
{
("");
(1);
}
避免出现地址已经使用的错误
(,,,,());
(());
=;
=;回送地址,指本地机,一般用来测试使用
=();
(,(*)&,());
(-1)
{
("");
(1);
}
();
(1)
{接收客户端信息
((),0,(*));
(<0)
{
("");
;
}
[]='\0';
显示客户端信息,如果客户端发来则退出循环
("\n"()());
((,"")0)
;
}
();
}
3、利用信号量实现:
主线程负责从键盘获取两个整数,子线程1负责对这两个整数完成求和运算并把结果打印出来,子线程2负责对这两个整数完成乘法运算并打印出来。
三个线程要求遵循如下同步顺序:
a)主线程获取两个数;
b)子线程1计算;
c)子线程2计算;
d)转到a。
<>
<>
<>
<>
能够进行加法计算的信号量
;
能够进行键盘输入数的信号量
;
*(*)加法线程入口函数
{
(1)
{
()申请信号量
(".3\n");
()释放信号量
}
}
*(*)乘法线程入口函数
{
(1)
{
();
("x*.3\n"*y);
();
}
}
()
{
12;
(,0,0)初始化信号量
(,0,0);
(,0,1)初始化信号量
(
(1)<0)
{
("!
\n");
(0);
}
(
(2)<0)
{
("!
\n");
(0);
}
(1)
{
()申请信号量
(":
");
("");
(00)
{
(1);
(2);
;
}
()释放信号量
}
(0);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 应用 开发 期末 练习题