嵌入式面经试题收集二

1、ARM中的大端格式和小端格式分别是什么意思

当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后的问题,于是的问题应运而生,对于不同的存储方法,就有大端和小端两个描述
大端 : 低地址存放高有效字节
小端: 低字节存放低有效字节

2、什么是同步,异步,阻塞,非阻塞,并发

阻塞与非阻塞
如果一个进程要访问一个临界区变量,但此时这个临界区是属于这么一个封闭状态,那么,如果这个进程一直请求访问不去干其他事,要当于堵塞在这里,这个过程就是堵塞。如果它转而去干其他的事情,隔一段时间在过来请求访问,这个过程就是非阻塞

同步与异步
同步:线程间的关系并不是相互排斥临界资源的关系,而是相互依赖的关系。即前一个线程作为后一个线程的输入,当前一个线程还未输出时,后一个线程必须等待。
异步:而异步就是彼此间是独立的,在等待某事件的过程中继续做自己的事,不需要等待一个事件完成后在工作

3、进程和线程的区别

进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。
根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位
进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据,使用相同的地址空间,因此,CPU切换一个线程的花费远比进程小很多,同时创建一个线程的开销也比进程小很多

4、什么是孤儿进程,僵尸进程,守护进程

一旦一个进程要结束,先进入的是 EXIT_ZOMBIE 状态,但是这个时候它的父进程还没有使用wait() 等系统调用来获知它的终止信息,此时进程就成了僵尸进程。EXIT_DEAD 是进程的最终状态。

在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程……

一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, 而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是 使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)

总结下来可以分为一下三种情况:
1.子进程终止时,父进程并不正在执行 wait()调用。(这样会产生僵尸进程。且产生危害
2.当子进程尚未终止时,父进程却终止了。(产生了孤儿进程,但不会有危害,该进程最终会被init进程所接管
3、如果父进程等待子进程结束,将增加父进程的负担,影响服务器进程的并发性能。在 Linux 下可以简单地将 SIGCHLD 信号的操作设为 SIG_IGN ,SIGCHLD信号可以异步的通知父进程有子进程退出

孤儿进程:一个父进程退出后,而它的某一个子进程还在运行,那么这个进程就被称为孤儿进程,这个进程将会被init进程所负责。
僵尸进程:一个子进程的进程描述符在子进程退出时不会释放,只有当父进程通过 wait() 或 waitpid() 获取了子进程信息后才会释放。如果子进程退出,而父进程并没有调用 wait() 或 waitpid(),那么子进程的进程描述符仍然保存在系统中,这种进程称之为僵尸进程。
正常情况下我们可以用 SIGKILL 信号来杀死进程,但是僵尸进程已经死了, 你不能杀死已经死掉的东西。 因此你需要输入的命令应该是
kill -s SIGCHLD pid

守护进程守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机都保持运行。守护进程经常以超级用户(root)权限运行。独立于终端,不会收到用户型进程的影响。

5、linux中cache的一致性

寄存器是CPU与外设交流的接口,有些状态寄存器是由外设根据自身状态进行改变,这个操作对CPU是不透明的。可能这次CPU读入该状态寄存器,下次再读时,该状态寄存器已经变了,但是CPU还是读取的cache中缓存的值。但是寄存器操作在kernel中是必须保证一致的,这是kernel控制外设的基础,IO空间通过ioremap进行映射到内核空间。ioremap在映射寄存器地址时页表是配置为uncached的。数据不走cache,直接由地址空间中读取。保证了数据一致性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值