操作系统原理面试题 操作系统 面试问题

各位好!这篇文章主要是给大家详细描述关于“操作系统 面试问题”的核心内容以及“操作系统原理面试题”的相关信息 , 希望对您有所帮助 , 请往下看 。
操作系统本质上是一个运行在计算机上的软件程序  , 管理着计算机硬件和软件资源 , 为计算机硬件和软件提供了一种中间层 , 使应用软件和硬件进行分离 , 屏蔽了硬件层的复杂性 , 让我们把关注点更多放在软件应用上 。
操作系统的组成
1、驱动程序是最底层的、直接控制和监视各类硬件的部分 , 它们的职责是隐藏硬件的具体细节 , 并向其他部分提供一个抽象的、通用的接口 。
2、内核是操作系统之最内核部分 , 通常运行在最高特权级 , 负责提供基础性、结构性的功能 。
3、支承库是一系列特殊的程序库 , 它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API) , 是最靠近应用程序的部分 。 例如 , GNU C运行期库就属于此类 , 它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式 。
4、外围是指操作系统中除以上三类以外的所有其他部分 , 通常是用于提供特定高级服务的部件 。 例如 , 在微内核结构中 , 大部分系统服务 , 以及UNIX/Linux中各种守护进程都通常被划归此列 。
操作系统中的缓存
缓存(cache) , 原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器 , 可以进行高速数据交换的存储器 , 它先于内存与CPU交换数据 。
进程和线程
定义:
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
(1)进程是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现操作系统的并发 。
(2)线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发 。
(3)一个程序至少有一个进程,一个进程至少有一个线程,线程依赖进程的存在 。
(4)进程执行过程中拥有独立的内存单元,而多个线程共享进程的内存 。
进程间的通信的几种方式
管道(pipe)及命名管道(named pipe): 管道可用于具有亲缘关系的父子进程间的通信 , 有名管道除了具有管道所具有的功能外 , 它还允许无亲缘关系进程间的通信;
信号(signal): 信号是一种比较复杂的通信方式 , 用于通知接收进程某个事件已经发生;
消息队列: 消息队列是消息的链接表 , 它克服了上两种通信方式中信号量有限的缺点 , 具有写权限得进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可以从消息队列中读取信息;
共享内存: 可以说这是最有用的进程间通信方式 。 它使得多个进程可以访问同一块内存空间 , 不同进程可以及时看到对方进程中对共享内存中数据得更新 。 这种方式需要依靠某种同步操作 , 如互斥锁和信号量等;
信号量: 主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段;


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。