参加了北京海尔集成电路的笔试后,发现自己真的有很多细节上的东西都是一知半解。这是将我不会的记录了一下,望大家参考,有什么错误还请大家告知。
1、进程的基本状态 :
(1)执行状态(Running):进程占用CPU,进程的程序正在执行。单处理器系统中只能有一个进程处于执行状态,多处理器系统中可能有多个进程处于执行状态。
(2)阻塞状态(Blocked):也叫等待或睡眠状态,是进程由于等待某种事件的发生而处于暂停执行的状态。如进程因等待I/O的完成、等待缓冲空间等。
(3)就绪状态(Ready):进程已分配到处理器以外的所有必要资源,具备了执行的所有条件。可能会有多个进程处于就绪状态,排成就绪队列。
2、嵌入式文件系统
Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。
不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM(DRAM, SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。
详细内容可以查看:嵌入式Linux文件系统简介
3、linux重定向问题
详细内容可以查看:Linux重定向问题详解
4、sed
流编辑器
5、...|more
意思是显示更多的内容,规定显示方式
6、标准输入文件、标准输出文件、标准错误文件
Unix/Linux/BSD 都有三个特别文件,分别
1)标准输入 即 STDIN , 在 /dev/stdin , 一般指键盘输入, shell里代号是 0
2) 标准输出 STDOUT, 在 /dev/stdout, 一般指终端(terminal), 就是显示器, shell里代号是 1
3) 标准错误 STDERR, 在 /dev/stderr 也是指终端(terminal), 不同的是, 错误信息送到这里 shell里代号是 2
7、bootloader种类
uboot、armboot和strongarm平台的blob、vivi、redboot(基于eCos的)、grub、linuxbios、etherboot(通过以太网卡启动Linux系统的固件)
8、RTOS实时系统
种类:
付费的:VxWorks、QNX、Lynx、uC/OS
免费的:FreeRTOS(较容易)、 RTEMS(不太好学,资料较少)、ecos、RT-Thread、RTAI(实时扩展的Linux内核)
RTOS是一个内核,用户硬件设置和资源访问都用过RTOS核心,用户不需要知道内部具体的实现过程,减少了开发前的学习量
嵌入式实时系统的特点:
时间约束性
可预测性
可靠性
与外部环境的交互作用性
多任务类型
约束的复杂性
具有短暂超载的特点
分类:
强实时系统:航空航天、军事、核工业等
弱实时系统:视频点播、信息采集和检索等
任务调度技术:调度策略、可调度型分析方法
抢占式调度和非抢占式调度
静态表驱动策略和优先级驱动策略
在是否选择RTOS之前可以问问以下几个问题:
1.系统对一些事件的响应延迟时间有要求吗?该时限在微秒级。
2.系统对一些事件的处理有时限要求? 该时限接近 CPU 全速处理该事件一次需要的时间,相差不过毫秒级别。
3.系统中这些事件的处理代码复杂吗(平均每个事件的处理代码不超过100行标准C代码,无函数调用)?这种事件超过5个以上?
4.系统有RAM、ROM的限制,使得大多数操作系统如 linux、uClinux、WinCE 无法正常工作吗?
5.系统有一定的规模,超过 2W 行标准C/C++代码吗?系统中有多个逻辑事务,逻辑事务之间有同步或数据交换吗?
6.产品或系统生命周期长,有后续升级、发展的要求吗?
7.团队对选择的 RTOS 了解吗?有 RTOS 实施方面的专家吗?
选择哪种RTOS,要考虑:
1.成本
2.可靠性
3.实时性
4.工具链
5.模块丰富
6.RTOS 内核 RAM、ROM 占用量
7.支持
9、进程和线程的区别
网上一大片解释,就不详细叙述了。
10、select函数
详细解释请看: I/O多路转接