面试中有关操作系统的问题,持续更新中,,,

1、内存页面置换管理算法

FIFO:置换最旧的页面

LRU:置换掉最长时间没有使用的页面

2、临界区

假设某个系统有n个进程,{P1,P2, P3,P4..}(这些进程执行的是相同的代码生成的,即相当于同一个程序有多个实例在运行)。

那么他们存在一个临界区(一段代码)问题,在临界区中的代码代码段中,会改变同一个变量或者更新同一张表,或者写同一个文件,所以有了临界区问题。(其实就相当于使用同一个资源)

这样会造成同步问题。

解决临界区问题的方法是:代码中要有判断,进入临界区时判断一下,出临界区时释放。

也就是加锁和解锁。

3、死锁:一个进程所申请的资源被占有,他进入等待并且再也无法改变这个状态,称为死锁。

资源的申请和释放为系统调用,例如request()/release()设备,open()/close()文件,allocate()/free()内存。当申请和释放不被操作系统管理的资源时,我们通过acquire()/release()信号量来完成相关操作(和加锁、解锁差不多,都是使用时,或者说进入临界区时判断一下),或者使用java中的synchronized关键字,通过对象锁来完成。

    死锁的必要条件:(1)互斥(至少一个资源处于非共享模式(一个进程会需要多个资源)),(2)占有并等待,(3)非抢占(资源不能抢占,只能通过进程自己放),     (4)循环等待(进程A 占有资源M等待资源N,进程B占有资源N等待M)

4、使用信号量同步时很好的方法。但是我们还可以使用管程,他其实就相当于java中的阻塞队列,把所有操作共享资源的指令对象放在队列中,每次原子执行队列中的头。


5、用户模式和内核模式

运行 Windows 的计算机中的处理器有两个不同模式:“用户模式”和“内核模式”。根据处理器上运行的代码的类型,处理器在两个模式之间切换。应用程序在用户模式下运行,核心操作系统组件在内核模式下运行。多个驱动程序在内核模式下运行,但某些驱动程序在用户模式下运行。

当启动用户模式的应用程序时,Windows 会为该应用程序创建“进程”。进程为应用程序提供专用的“虚拟地址空间”和专用的“句柄表格”。由于应用程序的虚拟地址空间为专用空间,一个应用程序无法更改属于其他应用程序的数据。每个应用程序都孤立运行,如果一个应用程序损坏,则损坏会限制到该应用程序。其他应用程序和操作系统不会受该损坏的影响。

用户模式应用程序的虚拟地址空间除了为专用空间以外,还会受到限制。在用户模式下运行的处理器无法访问为该操作系统保留的虚拟地址。限制用户模式应用程序的虚拟地址空间可防止应用程序更改并且可能损坏关键的操作系统数据。

在内核模式下运行的所有代码都共享单个虚拟地址空间。这表示内核模式驱动程序未从其他驱动程序和操作系统自身独立开来。如果内核模式驱动程序意外写入错误的虚拟地址,则属于操作系统或其他驱动程序的数据可能会受到损坏。如果内核模式驱动程序损坏,则整个操作系统会损坏。

此图说明了用户模式组件与内核模式组件之间的通信。

面试中有关操作系统的问题,持续更新中,,,_第1张图片

4、

通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用, 通常把这种经过虚拟的设备称为虚拟设备.

为什么在操作系统中引入呢?

 虚拟架构的优势

 在虚拟架构中,用户可以把资源看成是专属于他们的,而管理员则可在企业范围内管理和优化整个资源。VMware的虚拟架构可以通过增加效率、灵活性和响应能力来降低企业的IT花费。管理一个虚拟架构可以让IT部门更快的连接和管理资源,以满足商业所需。其优势主要包括以下几个方面:

  1)35%-75% TCO 节省

  通过将整合多个物理服务器到一个物理服务器降低40%软件硬件成本;

  整合比:生产环境10-15 : 1 ,开发测试环境15-20 : 1;

  每个服务器的平均利用率从5%-15%提高到60%-80%;

  降低70-80%运营成本, 包括数据中心空间、机柜、网线,耗电量,冷气空调和人力成本。

  2)提高运营效率

  部署时间从小时级到分钟级, 服务器重建和应用加载时间从 20-40 hrs =>15-30 min, 每年节省10,000 人/小时(300台服务器);

  以前硬件维护需要之前的数天/周的变更管理准备和1 - 3小时维护窗口,现在可以进行零宕机硬件维护和升级。

  3) 提高服务水平

  助您的企业建立业务和IT资源之间的关系,使IT和业务优先级对应;

  将所有服务器作为大的资源统一进行管理,并按需自动进行动态资源调配;

  无中断的按需扩容。

5、 描述实时系统的基本特性  在特定时间内完成特定的任务,实时性与可靠性

6、简述一个Linux驱动程序的主要流程与功能。 

驱动程序module(组件,模块)的工作流程主要分为四个部分:
1、 insmod(载入) module
2、 驱动module的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用)
3、 当操作设备时,即有系统调用时,调用驱动module提供的各个服务函数
4、 rmmod module
功能:就是使linux操作系统可以和外围设备通信,对设备进行操作等。
7、
进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), SOCKET.


你可能感兴趣的:(操作系统)