操作系统面试题(汇编两篇)
哪些面试题涉及到操作系统的呢?下面是百文网小编为大家带来的操作系统面试题,相信对你会有帮助的。
操作系统面试题(1)
1、进程和线程有什么区别?
进程间是独立,这体现在内存空间,上下文环境上,线程运行在进程空间内;
一般而言(不使用特殊技术),进程无法突破进程边界存取其他进程内的存储空间,而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间;
同一进程中的两段代码不能够同时执行,除非引入线程;
线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。进程和线程都可以有优先级。
2、AND信号量集机制的基本思想是什么,它能解决什么问题?
AND同步机制的基本思想是,将进程在整个运行过程中所需要的所有临界资源一次性全部分配给进程,待该进程使用完后在一起释放。只要尚有一个资源未能分配 给该进程,其他所有可能为之分配的资源也不分配给它。亦即,对若干个临界资源的分配采取原子操作方式,要么全部分配到进程,要么一个也不分配。它能解决的 问题:避免死锁的发生。
3、进程间的通信方式?
信号量、信号、socket、管道、共享内存、消息队列
4、在网络编程中设计并发服务器,使用多进程与多线程有什么区别?
用多进程时每个进程有自己的地址空间,线程则共享地址空间。所有其他区别都是由此而来:
速度:线程产生的速度快,线程间的通信快、切换快等,因为它们在同一个地址空间内;
资源利用率:线程的资源利用率比较好也是因为它们在同一个地址空间内;
同步问题:线程使用公共变量/内存时需要使用同步机制,还是因为它们在同一个地址空间内。
5、进程进入等待状态有哪几种方式?
调用P操作,而信号量小于0;进程申请资源不能被分配;
6、CPU中的缓存和操作系统中的缓存分别是什么?
操作系统的缓存是指快表。在操作系统中,为提高系统的存取速度,在地址映射机制中增加一个小容量的联想寄存器,即快表,用来存放当前访问最频繁的少数活动 页面的页号。当某用户需要存取数据时,根据数据所在的逻辑页号在快表中找到其对应的内存块号,再联系页内地址,形成物理地址。如果在快表中没有相应的逻辑 页号,则地址映射仍可以通过内存中的页表进行,得到空闲块号后必须将该块号填入快表的空闲块中。如果快表中没有空闲块,则根据淘汰算法淘汰某一行,再填入 新的页号和块号。快表查找内存块的物理地址消耗的时间大大降低了,使得系统效率得到了极大的提高。
CPU中的缓存是指高速缓存。CPU的执行速度越来越快,系统架构越来越先进,而主存的结构和存取速度改进则较慢,因此,高速缓存技术将越来越重要。
高速缓冲存储器是位于CPU和内存之间的临时存储器,它的容量比内存小但交换速度快。在高速缓冲存储器中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的。当CPU调用大量数据时,就可避开内存直接从高速缓冲存储器中调用,从而加快读取速度。
操作系统面试题(2)
1、使用多进程与多线程有什么区别?
用多进程时,每个进程有自己的地址空间,线程则共享地址空间。所有其他区别都由此而来:
* 速度:线程产生的速度快,线程间的通信、切换快等,因为他们在同一个地址空间内。
* 资源利用率: 线程的资源利用率比较好,也是因为它们在同一个地址空间中
* 同步问题: 线程使用公共变量/内存时,需要使用同步机制,还是因为他们在同一个地址空间内。
2、 在Windows 编程中互斥器(mutex)的作用和临界区(critical section)类似,请说一下二者区别。
mutex 可以用于进程之间互斥,critical section是线程之间的互斥。
3、垃圾回收的优点和原理是什么?
java语言中一个显著的特点就是引入了垃圾回收机制,使C++程序员最头疼的内存管理问题迎刃而解,而Java程序员不再需要考虑内存管理。垃圾回收可以有效防止内存泄露。
4、CPU中的缓存 和 OS 中的缓存分别是什么?
* 块表——Cache在OS 中运用的典型范例。
小结:快表是联想寄存器访问速度比内存快,不用快表要两次访问内存;用了快表只需要一次访问内存。
在OS中,为提高系统的存取速度,在地址映射机制中增加一个小容量的联想寄存器,即块表。用来存放当前访问最频繁的少数活动页面的页号。先访问快表中是否有需要的逻辑页号,加上页内地址得到物理地址。如果快表中没有才访问内存中的页表这样两次访问内存。
* 高速缓冲存储器: Cache 在CPU中运用的典型范例。
引入原因:内存的存取速度跟不上CPU的执行速度
它的容量比内存小,但是交换速度快! Cache对CPU的性能影响很大。
5、DOS 与 Windows NT 的权限区别是什么?
DOS 是个单任务、单用户的操作系统。打开装有DOS操作系统的计算机时,就拥有了该操作系统的管理员权限,且该权限无处不在。所以只能说,DOS不支持权限的设置。
在Windows NT里,用户被分成许多组,组和组之间有不同的权限。当然一个组的用户和用户之间也可以有不同的权限。NT中常见的用户组:Administrators 管理员组、 Users 普通用户组、Guests 来宾组、Everyone计算机上所有用户