1. 64位的计算机有哪些优点?
(1)可以进行更大范围的整数计算。
(2)可以支持更大的内存,虚拟内存空间大小一般为2^48(256TB)。64位的Linux一般使用48位表示虚拟内存空间地址,40位表示物理内存地址。
2. 中断分为哪两种?
(1)异步中断:也叫外部中断,由CPU外设产生的电信号,其发生时间不可预估。其引入是为了支持CPU和设备之间的并行操作。
(2)同步中断:也叫内部中断、异常,由CPU内部产生的电信号,其特点是当前指令执行完才产生中断。其引入是为了表示CPU执行时本身出现的问题。
3. Linux系统的挂起、待机、休眠
(1)挂起:CPU、内存工作,而硬盘、显示器等外部设备停止工作。
(2)待机:只对内存供电,CPU、外设停止工作。
(3)休眠:CPU、内存停止工作,内存中的数据保存在硬盘中,外部设备也停止工作。
4. Linux关机、重启的命令有哪些?
(1)关机命令:halt、shutdown -h 时间、init0、poweroff。
(2)重启命令:reboot、shutdown -r 时间、init6。
注意:shutdown可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上所有登录用户提示一条警告信息,还允许用户设置一个缓冲时间。
5. Linux目录结构,/usr、/tmp、/etc目录的作用?
(1)Linux目录结构:
(2)/usr:是Unix Software Resource的缩写,也就是Unix操作系统软件资源所放置的目录,而不是用户数据。
(3)/tmp:让一般使用者或者是正在执行的程序暂时放置档案的地方。
(4)/etc:系统主要的设定档案几乎都放置于这个目录,例如人员的账号密码档案、各种服务器的起始档案。一般是供给使用者查阅的,只有root用户有权限修改。FHS建议不要放置可执行档案在这个目录中。
6. 简述实时操作系统和非实时操作系统的区别?
(1)实时操作系统:是可抢占式内核,响应外部事件尽可能快且响应时间具有确定性。有硬实时操作系统和软实时操作系统,硬实时操作系统的抖动(时间偏差)比软实时操作系统小。
(2)非实时操作系统:非可抢占式内核,响应外部事的时间没有保证。
7. 常用的实时操作系统有哪些?非实时呢?
(1)实时:Vxworks、μCOS、eCOS、QNX、MQX、Nucleus、FREERTOS、RTLinux、RTEMS、RT-Thread。
(2)软实时或非实时:WinCE、Linux。
7 Linux内核的调度策略有哪些?
(1)SCHED_OTHER分时调度策略;
(2)SCHED_FIFO实时调度策略,先到先服务。
(3)SCHED_RR实时调度策略,时间片轮转。
8. 块与页有什么关系?
操作系统经常与硬盘和内存这两种存储设备进行通信,块是操作系统读写硬盘的最小单位,页是操作系统读写内存的最小单位。
9. 简述处理器在读内存过程中,CPU、MMU、cache、内存如何协同工作?
(1)CPU内核发出VA向TLB请求页表项,它缓存最近查找过的VA对应的页表项,如果TLB中刚好缓存了该VA对应的页表项则直接返回给CPU;否则就由MMU去物理内存中读出页表项保存在TLB中,同时返回给CPU内核。(TLB可以减少访问物理内存的次数)
(2)MMU首先检查页表项中的权限位,如果没有访问权限,就引发一个异常给CPU内核;有权限则检查是否允许缓存(页表项中不仅保存着物理页面的基地址,还保存着权限和是否允许cache的标志)。
(3)如果不允许cache,则MMU直接发出PA从物理内存中读取数据到CPU内核。
(4)如果允许cache,则MMU以VA为索引到cache中查找是否缓存了要读取的数据,如果是则直接返回给CPU内核;如果不是则MMU发出PA从物理内存中读取数据并缓存到cache中,同时返回给CPU内核。
10. ARM CPU上的地址转换涉及哪三个概念?
(1)虚拟地址(VA):CPU内核对外发出VA。
(2)变换后的虚拟地址(MVA, Modified Virtual Address):VA被变换为MVA供cache和MMU使用,由硬件自动完成。如果VA < 32M,则需要使用PID来转换为MVA(VA | (PID << 25)),目的是当两个进程的虚拟地址空间有重叠时,把重叠的VA映射到不同的PA上去,减少切换进程的代价,
(3)物理地址(PA):最后使用PA读写实际设备。
11. MMU的和不用MMU的操作系统有哪些?带MMU的和不带MMU的CPU有哪些?
(1)用MMU的操作系统有:Windows、MacOS、Linux、Android;不用MMU的操作系统有:FreeRTOS、VxWorks、UCOS。
(2)带MMU的CPU有:Cortex-A系列、ARM9、ARM11系列;不带MMU的CPU有:Cortex-M系列(STM32就是使用M系列内核)。
12. 为什么uboot要关掉cache?
cache主要用来加快CPU读取内存中指令的速度,但在CPU初始化时,内存并未准备就绪,直接进行数据读取,势必导致指令取址异常。
13. 内核函数mmap的实现原理?
mmap函数能够实现把一个文件映射到一个内存区域,使得我们可以像读写内存一样读写文件,比单纯地调用read/write函数要快上许多。我们可以把内存中的内容拷贝到一个文件中实现内存备份,也可以把文件映射到内存来恢复某些服务。
解读:实现共享内存是mmap函数的主要应用之一,mmap系统调用使得进程之间通过映射同一个普通文件实现共享内存,是一种进程间通信方式。
- 缺省的Linux系统中,从后台启动进程,应在命令的结尾加上**&**。
15. ps跟top有什么区别?
(1)ps看到的是命令执行瞬间的进程信息;而top可以实时地持续监视,不断更新进程状态。
(2)ps只是查看进程信息,而top还可以监视系统性能,如CPU负载、内存消耗。
(3)另外top还可以操作进程,如改变优先级(命令r)和关闭进程(命令k)。
- 写出下列常用命令:
Linux查看线程ID: ①ps -T -p 进程号; ②top -H -p 进程号; ③pstree -Aup -h 进程号
Linux设置文件目录权限: chmod
uboot查看环境变量:printenv