简答题答案.docx
- 文档编号:9626793
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:13
- 大小:68.82KB
简答题答案.docx
《简答题答案.docx》由会员分享,可在线阅读,更多相关《简答题答案.docx(13页珍藏版)》请在冰豆网上搜索。
简答题答案
简答题
红色标记为不确定答案,请大家补充!
1、在使用GDB调试程序时,如何设置断点:
答:
在由“(gdb)”开头的命令行界面输入
“b”+对应行号例如:
b6
回车
2、在使用GDB调试程序时,如何运行程序:
答:
在由“(gdb)”开头的命令行界面输入:
r
回车
3、在使用GDB调试程序时,如何实现从指定代码位置开始单步运行:
答:
先设置断点,再运行程序至该断点,再单步运行。
具体操作:
在由“(gdb)”开头的命令行界面输入
“b”+对应行号例如:
b6
回车
输入r回车
输入step回车
4、在使用GDB调试程序时,如何查看断点处的相关变量值:
答:
在由“(gdb)”开头的命令行界面输入
“p”+变量值例如:
pn
回车
5、什么是系统调用
答:
系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。
例如用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。
6、标准I/O和低级I/O(文件I/O)的区别
答:
标准I/O默认采用了缓冲机制,低级I/O一般没有采用缓冲,需要自己创建缓冲区。
文件I/O主要针对文件操作,读写硬盘等,标准I/O,主要是打印输出到屏幕等。
因为他们设备不一样,文件I/O针对的是文件,标准I/O是对控制台,操作的是字符流。
使用的打开、关闭、读、写函数也不同。
7、什么是进程
答:
进程是Linux系统的基本调度和管理资源的单位,它是通过进程控制块来描述的。
进程控制块包含了进程的描述信息、控制信息以及资源信息,它是进程的一个静态描述。
在Linux中,进程控制块中的每一项都是一个task_struct结构。
进程是程序的执行过程,根据它的生命周期可以划分成3种状态。
执行态:
该进程正在运行,即进程正在占用CPU。
就绪态:
进程已经具备执行的一切条件,正在等待分配CPU的处理时间片。
等待态:
进程不能使用CPU,若等待事件发生(等待的资源分配到)则可将其唤醒。
7、简述创建进程的方法
答:
在Linux中创建一个新进程的方法是使用fork()函数。
fork()函数用于从已存在的进程中创建一个新进程。
新进程称为子进程,而原进程称为父进程。
使用fork()函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间,包括进程上下文、代码段、进程堆栈、内存信息、打开的文件描述符、信号控制设定、进程优先级、进程组号、当前工作目录、根目录、资源限制和控制终端等,而子进程所独有的只有它的进程号、资源使用和计时器等。
因为子进程几乎是父进程的完全复制,所以父子两个进程会运行同一个程序。
因此需要用一种方式来区分它们,并使它们照此运行,否则,这两个进程不可能做不同的事。
实际上是在父进程中执行fork()函数时,父进程会复制出一个子进程,而且父子进程的代码从fork()函数的返回开始分别在两个地址空间中同时运行。
从而两个进程分别获得其所属fork()的返回值,其中在父进程中的返回值是子进程的进程号,而在子进程中返回0。
因此,可以通过返回值来判定该进程是父进程还是子进程。
(有点多,归纳简述讲重点)
9、什么是线程
答:
线程是进程内独立的一条运行路线,处理器调度的最小单元,也可以称为轻量级进程。
线程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享。
因此,线程的上下文切换的开销比创建进程小很多。
同进程一样,线程也将相关的执行状态和存储变量放在线程控制表内。
一个进程可以有多个线程,也就是有多个线程控制表及堆栈寄存器,但却共享一个用户地址空间。
要注意的是,由于线程共享了进程的资源和地址空间,因此,任何线程对系统资源的操作都会给其他线程带来影响。
由此可知,多线程中的同步是非常重要的问题。
10、简述二进制信号量和互斥量的作用
答:
二进制信号量可以通过对共享资源上锁,实现高效的互斥访问,二进制信号量将互斥仅仅限于对与之联系的资源的访问。
互斥信号量是一种特殊的二进制信号量,用于解决具有内在的互斥问题:
优先级继承、删除安全和对资源的递归访问等情况。
11、什么是嵌入式系统?
其特点有些什么?
P94-96
答:
嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
将一套计算机控制系统嵌入到已具有某种完整的特定功能的(或者将会具备完整功能的)系统内(例如:
各种机械设备),以实现对原有系统的计算机控制,此时将这个新系统叫做嵌入式系统。
它通常由特定功能模块和计算机控制模块组成,主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。
它具有“嵌入性”、“专用性”与“计算机系统”的三个基本要素。
特点:
1、面向特定应用的特点。
2、嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。
3、嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。
4、为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中或单片机本身,而不是存储于磁盘中。
5、嵌入式开发的软件代码尤其要求高质量、高可靠性。
6、嵌入式系统本身不具备二次开发能力。
12、进程的查看和调度分别使用什么命令?
查看:
pstop
调度:
at、crontab、batch、kill
13、嵌入式系统的BooTLoader的功能是什么?
写出三种你所熟悉的引导程序BootLoader。
答:
功能:
Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。
通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。
引导程序:
U-Boot、RedBoot、blob、OpenBIOS、LinuxBIOS、FreeBIOS(选写三个)
14、什么是符号链接,什么是硬链接?
符号链接与硬链接的区别是什么?
答:
符号链接也称为软链接,它是包含在文件中的路径名。
当系统遇到符号链接时,它沿着符号链接提供的路径名前行,然后继续沿着符号链接后面的任何其余路径前行。
如果路径名以一个/开始,则系统返回到/(“根”)目录,并从该目录开始沿着路径前行。
如果路径名未以/开始,则系统返回到前一级目录,并从那个目录开始沿着符号链接中的路径名前行。
链接是指用一个i节点对应多个文件名。
硬链接是把文件的i节点号指向该i节点,且链接计数器值加1。
删除链接文件时计数器值减1,当其值为0时,i节点被释放。
符号链接是只有文件名的一个链接文件,并不指向一个真正的i节点。
在删除符号链接文件时与硬链接文件有区别。
(网络答案,再考究考究吧)
15、目前嵌入式操作系统有哪些?
(记住六种)
答:
嵌入式Linux:
CLinux
RT-Linux
Embedix
XLinux
PoketLinux
红旗嵌入式Linux
Montavistalinux
风河linux
VxWorks
QNX
WindowsCE
ucos
PalmOS
16、请写出你熟悉的适用于ARM平台的嵌入式操作系统?
(至少写五种)
17、什么是小端和大端存储器组织?
P101
答:
大端格式:
字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端格式:
与大端相反,低地址中存放字数据的低字节,高地址存放字数据的高字节。
18、将当前机器的IP地址改成192.168.0.155。
答:
ifconfigeth0192.168.0.155
19、在shell终端下挂载主机软驱中的软盘;
答:
mount[选项][类型]设备文件名挂载点目录
20、清除文件hello.c的所有权限和收回hello.c所有用户的执行权限
答:
chmod000hello.c
21、叙述进程间通信的五种方法。
答:
(1)管道(Pipe)及有名管道(namedpipe):
管道可用于具有亲缘关系进程间的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
(2)信号(Signal):
信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一样的。
(3)消息队列(MessgeQueue):
消息队列是消息的链接表,包括Posix消息队列SystemV消息队列。
它克服了前两种通信方式中信息量有限的缺点,具有写权限的进程可以按照一定的规则向消息队列中添加新消息;对消息队列有读权限的进程则可以从消息队列中读取消息。
(4)共享内存(Sharedmemory):
可以说这是最有用的进程间通信方式。
它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。
这种通信方式需要依靠某种同步机制,如互斥锁和信号量等。
(5)信号量(Semaphore):
主要作为进程之间以及同一进程的不同线程之间的同步和互斥手段。
(6)套接字(Socket):
这是一种更为一般的进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。
22、硬盘分区一般分为:
主分区,扩展分区,逻辑分区
答:
主分区:
包含操作系统启动所必需的文件和数据的硬盘分区。
扩展分区:
除主分区外的的分区,不能直接使用,必须将其划分为若干个逻辑分区才可使用。
逻辑分区:
在数量上无限制
23、BootLoader在嵌入式系统中主要起什么作用?
完成哪些主要的工作?
答:
是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。
通过BOOTLOADER,初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。
书上详细解析:
功能:
简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。
通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。
工作:
在stage1:
基本的硬件初始化,包括屏蔽所有的中断、设置CPU的速度和时钟频率、RAM初始化、初始化外围设备、关闭CPU内部指令和数据cache等。
为加载stage2准备RAM空间,通常为了获得更快的执行速度,通常把stage2加载到RAM空间中来执行,因此必须为加载Bootloader的stage2准备好一段可用的RAM空间。
拷贝stage2到RAM中,在这里要确定两点:
①stage2的可执行映像在固态存储设备的存放起始地址和终止地址;②RAM空间的起始地址。
设置堆栈指针sp,这是为执行stage2的C语言代码做好准备。
在stage2:
用汇编语言跳转到main入口函数
由于stage2的代码通常用C语言来实现,目的是实现更复杂的功能和取得更好的代码可读性和可移植性。
但是与普通C语言应用程序不同的是,在编译和链接Bootloader这样的程序时,不能使用glibc库中的任何支持函数。
初始化本阶段要使用到的硬件设备,包括初始化串口、初始化计时器等。
在初始化这些设备之前、可以输出一些打印信息。
检测系统的内存映射,所谓内存映射就是指在整个4GB物理地址空间中指出哪些地址范围被分配用来寻址系统的内存。
加载内核映像和根文件系统映像,这里包括规划内存占用的布局和从Flash上拷贝数据。
设置内核的启动参数。
24.vi编辑器有哪几种工作模式?
各工作模式之间如何进行转化?
答:
三种:
命令行模式、插入模式、底行模式
在命令模式下输入a、A、i、I、o、O等命令之一可以进入输入模式,在输入模式下按Esc键回到命令模式;在命令模式下输入:
进入底行模式,底行命令执行完后回到命令模式。
书上详细解析:
转化:
1、进入vi,即在命令行下键入“vihello”(文件名)。
此时进入的是命令行模式,光标位于屏幕的上方。
2、在命令行模式下键入i进入插入模式。
在屏幕底部显示有“插入”表示插入模式中的输入状态,在该模式下可以输入文字信息。
3、最后,在插入模式中,按“Esc”键,则当前模式转入命令行模式,并在底行行中输入“:
wq”(存盘退出)进入底行模式。
25、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?
在Windows主机上使用什么软件建立连接?
在Linux主机上使用什么软件建立连接?
答:
串口、并口、网线。
Windows:
超级终端
Linux:
minicom
26、目前使用的嵌入式操作系统主要有哪些?
请举出六种较常用的。
同T15
27、阐述程序和进程之间的区别。
答:
进程是一个程序的一次执行的过程,同时也是资源分配的最小单元。
它和程序是有本质区别的,程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。
它是程序执行和资源管理的最小单位。
27、简述在一个Makefile中通常应包含哪些内容?
并写出它的格式。
答:
在一个makefile中通常包含如下内容:
需要由make工具创建的目标体(target),通常是目标文件或可执行文件;
要创建的目标体所依赖的文件(dependency_file);
∙创建每个目标体时需要运行的命令(command),这一行必须以制表符(tab键)开头。
29、请写出你熟悉的适用于ARM平台的嵌入式操作系统?
(至少写三种)
30、请用两种方法实现将文件hello.c的所有类型用户设置为可读可写可执行的权限。
答:
1、chmod777hello.c
2、chmodu=rwx,g=rwx,o=rwxhello.c
31、请写出至少四种你熟悉的文件系统。
答:
ext2和ext3、swap文件系统、vfat文件系统、NFS文件系统、ISO9660文件系统、内存文件系统:
proc、sys、ramdisk、嵌入式文件系统:
cramfs、jffs、yaffs等
32、在shell终端下挂载主机光驱中的光盘。
同T19
33、清除文件hello.c的所有权限和收回hello.c所有用户的执行权限。
同T20
34、叙述线程和进程的区别。
答:
(a)线程是进程的一部分,一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。
(b)启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。
(c)系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),线程组只能共享资源。
对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。
而一个线程的数据可以直接为其他线程所用,这不仅快捷,而且方便。
(d)与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。
(e)进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。
书上的详细解释:
进程是系统中程序执行和资源分配的基本单位。
每个进程都拥有自己的数据段、代码段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较复杂的上下文切换等动作。
为了进一步减少处理机的空转时间,支持多处理器以及减少上下文切换开销,进程在演化中出现了另一个概念——线程。
它是进程内独立的一条运行路线,处理器调度的最小单元,也可以称为轻量级进程。
线程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享。
因此,线程的上下文切换的开销比创建进程小很多。
同进程一样,线程也将相关的执行状态和存储变量放在线程控制表内。
一个进程可以有多个线程,也就是有多个线程控制表及堆栈寄存器,但却共享一个用户地址空间。
要注意的是,由于线程共享了进程的资源和地址空间,因此,任何线程对系统资源的操作都会给其他线程带来影响。
由此可知,多线程中的同步是非常重要的问题。
35、举出进程间通信的五种方法。
同T21
36、请写出至少四种你熟悉的文件系统。
同T31
37、阐述哈佛结构和冯·诺依曼结构在存储器结构及其总线连接形式的区别。
答:
冯·诺依曼结构共用数据存储空间和程序存储空间,它们共享存储器总线。
哈佛结构具有分离的数据和程序空间及分离的访问总线。
书上的详细图示P103:
38、目前使用的嵌入式操作系统主要有哪些?
请举出六种较常用的。
同T15
39、执行命令ls–l时,某行显示如下:
-rw-r--r--1chrischris207jul2011:
58mydata
(1)用户chris对该文件具有什么权限?
(2)执行命令useraddTom后,用户Tom对该文件具有什么权限?
(3)如何使任何用户都可以读写执行该文件?
(4)如何把该文件属主改为用户root?
答:
1读写2只读3chmod777mydata4chownrootmydata
40、什么是Linux?
其创始人是谁?
Linux操作系统的诞生、发展和成长过程始终依赖着的重要支柱都有哪些?
}Linux是一套免费使用和自由传播的类UNIX操作系统。
创始人是荷兰的LinusTorvalds。
当时的他还是芬兰赫尔辛基大学的一名学生。
重要支柱:
1、UNIX操作系统;2、MINIX操作系统;3、GNU计划;4、POSIX标准;5、Internet网络
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 答题 答案