当前位置:文档之家› 中北大学嵌入式习题答案第4章

中北大学嵌入式习题答案第4章

第四章嵌入式操作系统
一、填空*
1、一般来说,嵌入式操作系统中的任务具有等待、执行和就绪三种基
本状态。

2、Linux下设备文件所在路径为 /dev ,存放内部命令的所在路径为 /
bin 。

挂载的文件路径为 /mnt 。

3、LINUX的文件系统采用的是多级目录,最上层是根目录。

4、在Linux操作系统中,设备都是通过特殊的文件来访问。

5、超级用户的用户名为 root 。

二、选择题
1、使用Host-Target联合开发嵌入式应用,( B )不是必须的。

A、宿主机
B、银河麒麟操作系统
C、目标机
D、交叉编译器
2、某文件的所有者拥有全部权限;组内的权限为可执行可写;组外成员的权限为只执行,则该文件的权限为( D )
A、467
B、674
C、476
D、764
3、linux下删除文件命令为( D )
A、mkdir
B、rmdir
C、mv
D、rm
4、为了查找出当前用户运行的所有进程的信息,我们可以使用()命令:
A、ps -a
B、ps -u
C、ls -a
D、ls –l
5、LINUX支持网络文件系统NFS,下列哪个命令实现了将位于 192.168.1.4机器上的/opt/sirnfs 目录挂载到本机/mnt/sirnfs下:( A )
A、mount -t nfs 192.168.1.4:/opt/sirnfs /mnt/sirnfs
B、mount -t nfs /mnt/sirnfs 192.168.1.4:/opt/sirnfs
C、mount nfs –t 192.168.1.4:/opt/sirnfs /mnt/sirnfs
D、mount nfs –t /mnt/sirnfs 192.168.1.4:/opt/sirnfs
6、当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出
现了问题,满足该目的的命令是(B )。

A、ping
B、ifconfig
C、traceroute
D、netstat
7、使用命令chmod的数字设置,可以改变( C )
A、文件的访问特权
B、目录的访问特权
C、文件/目录的访问特权
8、显示当前目录中的全部文件,相应命令为(B )
A、ls
B、ls –a
C、ls -l
9、删除文件命令为( D )
A、mkdir
B、rmdir
C、mv
D、rm
10、对于tar.gz结尾的文件,采用下面哪个命令进行解压缩操作( A )
A、tar xvzf
B、tar jxvf
C、tar czvf
D、tar jcvf
11、对于ln命令,下列哪项说法是不正确的()
A、ln命令会保持每一处链接文件的同步性
B、软链接在用户选定的位置上生成一个文件的镜像
C、ln命令的链接文件不会重复占用磁盘空间
D、硬链接会在用户选定的位置上生成一个和源文件大小相同的文件
三、命令题
1、试写出对应的Linux命令,实现在根目录下创建目录my123,转到该路径下,利用VI编辑器创建文件welcome.txt,保存退出后,查看该文件内容,将其搬移到/usr下,然后删除此路径。

cd /
mkdir my123
cd /my123
vi welcome.txt
cat welcome.txt
mv /root/my123/welcome
cd /usr
rm my123
2、试写出对应的Linux命令,实现查看U盘是否已出现在设备文件中,假如设备名为SDB1,则在/mnt下创建路径myusb,将U盘挂载在此路径下。

查看U盘内容,最后将其卸载。

fdisle /dev
mkdir /mnt/myusb
mount /dev/sdb/ /mnt/myusb
ls /mnt/myusb -l
vmount /mnt/myusb
四、读程序,写出程序运行结果
/* thread.c */
….
#define THREAD_NUMBER 3
#define REPEAT_NUMBER 3
#define DELAY_TIME_LEVELS 10.0
void * thrd_func(void *arg){
int thrd_num = (int)arg;
int delay_time = 0;
int count = 0;
printf("Thread %d is starting\n", thrd_num);
for (count = 0; count < REPEAT_NUMBER; count++)
{
delay_time = count + 1;
sleep(delay_time);
printf("\tThread %d: job %d delay = %d\n", thrd_num, count,
delay_time);
}
printf("Thread %d finished\n", thrd_num);
pthread_exit(NULL);
int main(void)
{
pthread_t thread[THREAD_NUMBER];
int no = 0, res;
void * thrd_ret;
srand(time(NULL));
for (no = 0; no < THREAD_NUMBER; no++)
{
res = pthread_create(&thread[no], NULL, thrd_func, (void*)no);
if (res != 0)
{
printf("Create thread %d failed\n", no);
exit(res);
}
}
printf("Create treads success\n Waiting for threads to finish...\n");
for (no = 0; no < THREAD_NUMBER; no++)
{
res = pthread_join(thread[no], &thrd_ret);
if (!res)
{
printf("Thread %d joined\n", no);
}
else
{
printf("Thread %d join failed\n", no);
}
}
return 0;
}
五、main.c mytool1.c mytool2.c mytool1.h mytool2.h 位于同一目录下,源代码如下所示。

要求编写Makefile 文件实现对这两个文件的编译,Makefile 文件如下所示。

请填写在空白处的选项。

/*Makefile*/
main:main.o mytool1.o mytool2.o
/* main.c */
#include "mytool1.h"
#include "mytool2.h"
int main(int argc,char **argv)
{
mytool1_print("hello");
mytool2_print("hello");
} /* mytool2.h */ #ifndef _MYTOOL_2_H #define _MYTOOL_2_H void mytool2_print(char *print_str); #endif /* mytool2.c */
#include "mytool2.h"
void mytool2_print(char *print_str)
{
printf("This is mytool2
print %s\n",print_str);
}
/* mytool1.h */
#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str);
#endif
/* mytool1.c */
#include "mytool1.h"
void mytool1_print(char *print_str)
{
printf("This is mytool1 print %s\n",print_str);
}
main.o:main.c mytool1.h mytool2.h mytool1.o:mytool1.c mytool1.h mytool2.o:mytool2.c mytool2.h。

相关主题