interview

面试题

PE文件

PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)。


什么是活锁?与死锁有和区别?

活锁指的是 任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败。 活锁和死锁的区别在于,处于活锁的实体是在不断的改变状态,所谓的“活”, 而处于死锁的实体表现为等待;活锁有可能自行解开,死锁则不能

活锁应该是一系列进程在轮询地等待某个不可能为真的条件为真。活锁的时候进程是不会blocked,这会导致耗尽CPU资源。

为解决活锁可以引入一些随机性,例如如果检测到冲突,那么就暂停随机的一定时间进行重试。这回大大减少碰撞的可能性。典型的例子是以太网的CSMA/CD检测机制。


直接寻址与间接寻址?

寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。在操作系统中分为指令寻址和操作数寻址。

指令寻址:在内存中查找指令的方式。

操作数寻址:形成操作数的有效地址的方法称为操作数的寻址方式。


如何从用户态切换到内核态?

  1. 程序请求系统服务,执行系统调用
  2. 程序运行期间产生中断事件,运行程序被中断,转向中断处理程序处理
  3. 程序运行时产生异常事件,运行程序被打断,转向异常处理程序。

这三种情况都是通过中断机制发生,可以说 中断和异常是用户态到内核态转换的仅有途径


实时操作系统和分时操作系统的区别?

下面还要补充一个批处理操作系统:批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。这种采用批量处理作业技术的操作系统称为批处理操作系统。批处理操作系统分为单道批处理系统和多道批处理系统。批处理操作系统不具有交互性,它是为了提高CPU的利用率而提出的一种操作系统。

如果某个操作系统兼有批处理、分时和实时处理的全部或两种功能,我们称为通用操作系统。