嵌入式面试常见问题

1、什么是嵌入式

以应用为中心,以计算机技术为基础,软硬件可裁剪,
适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

2、字符设备和块设备的区别?

Linux里设备类型分:字符设备、块设备和网络设备;
(PCI和ISA为一类的总线结构,属于网络驱动设备)
字符设备按字符流的方式有序访问(串口和键盘等),直接读取;
字符设备实现的比较简单,内核例程和用户态API一一对应,用户层的read函数直接对应了内核中的read例程,这种映射关系由字符设备的file_operations维护。
块设备能够随机(不按顺序)访问固定大小数据片(硬盘、软驱、闪存等),从系统缓存读取。
块设备接口相对于字符设备复杂,read、write API没有直接到块设备层, 而是通过IO请求的方式通过OS的IO请求队列实现。
P.S 内核需要专门的子系统管理块设备

3、进程与程序,进程与线程的区别

程序是一组指令的集合,它是静态的实体,没有执行的含义。
进程程序的执行过程,是一个动态的实体,有自己的生命周期,包括产生、运行、消亡的过程。
进程还有并发性和交往性。
简单地说,进程是程序的一部分,程序运行的时候会产生进程。
介质不同:程序保存在存储介质,比如FLASH,硬盘等中,进程运行在RAM中
内容不完全相同:程序有数据段,代码段,调试信息等
进程有代码段,数据段,以及堆栈

进程定义:执行中一段程序,即一旦程序被载入到内存中并准备执行,就是一个进程。
它表示资源分配的基本概念,调度运行的基本单位,系统并发的执行单位。
线程定义:单个进程执行中每个任务就是一个线程。线程是进程执行运算的最小单位。

线程属于进程,一个进程可以有多个线程;
线程是轻量级的进程,线程没有地址空间,线程包含在进程的地址空间中,线程上下文只包含一个堆栈、一个寄存器、一个优先权。进程拥有的所有资源都属于线程。
线程运行时共享进程的内存和资源(代码段、数据段、扩展段),每个线程有自己的栈段(存放临时变量、局部变量)

进程有几种状态?进程间通信都有些什么?

状态:就绪、运行、阻塞
IPC通信:

  • 管道:由内核管理的一个缓存区;半双工
  • 信号:用于一个或几个进程之间传递异步信号
  • 消息队列:消息队列是内核地址空间中的内部链表
  • 共享内存:共享内存是在多个进程之间共享内存区域的一种进程间的通信方式
  • 信号量:信号量是一种计数器,用于控制对多个进程共享的资源进行的访问
  • 套接字:套接字机制不但可以单机的不同进程通信,而且使得跨网机器间进程可以通信
</
IPC 优点 缺点
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

toctor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值