操作系统面试题

时间:2022-10-14 22:29:21 面试问题 我要投稿
  • 相关推荐

操作系统面试题

  1、 在Windows 编程中互斥器(mutex)的作用和临界区(critical section)类似,请说一下二者区别。

操作系统面试题

  mutex 可以用于进程之间互斥,critical section是线程之间的互斥。

  2、垃圾回收的优点和原理是什么?

  java语言中一个显著的特点就是引入了垃圾回收机制,使C++程序员最头疼的内存管理问题迎刃而解,而Java程序员不再需要考虑内存管理。垃圾回收可以有效防止内存泄露。

  3、CPU中的缓存 和 OS 中的缓存分别是什么?

  * 块表——Cache在OS 中运用的典型范例。

  小结:快表是联想寄存器访问速度比内存快,不用快表要两次访问内存;用了快表只需要一次访问内存。

  在OS中,为提高系统的存取速度,在地址映射机制中增加一个小容量的联想寄存器,即块表。用来存放当前访问最频繁的少数活动页面的页号。先访问快表中是否有需要的逻辑页号,加上页内地址得到物理地址。如果快表中没有才访问内存中的页表这样两次访问内存。

  * 高速缓冲存储器: Cache 在CPU中运用的典型范例。

  引入原因:内存的存取速度跟不上CPU的执行速度

  它的容量比内存小,但是交换速度快! Cache对CPU的性能影响很大。

  4、DOS 与 Windows NT 的权限区别是什么?

  DOS 是个单任务、单用户的操作系统。打开装有DOS操作系统的计算机时,就拥有了该操作系统的管理员权限,且该权限无处不在。所以只能说,DOS不支持权限的设置。

  在Windows NT里,用户被分成许多组,组和组之间有不同的权限。当然一个组的用户和用户之间也可以有不同的权限。NT中常见的用户组:Administrators 管理员组、 Users 普通用户组、Guests 来宾组、Everyone计算机上所有用户.

  5、进程和线程的差别。

  线程是指进程内的一个执行单元,也是进程内的可调度实体.

  与进程的区别:

  (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位

  (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行

  (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.

  (4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

  6、谈谈IA32下的分页机制

  小页(4K)两级分页模式,大页(4M)一级

  7、在IA32中一共有多少种办法从用户态跳到内核态?

  通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等

  8、网络编程中设计并发服务器,使用'多进程'与'多线程',请问有什么区别?

  进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。

  线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

  两者都可以提高程序的并发度,提高程序运行效率和响应时间。

  线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

  9、列举几种进程的同步机制,并比较其优缺点。

  原子操作

  信号量机制

  自旋锁

  管程,会合,分布式系统

  10、进程之间通信的途径

  共享存储系统

  消息传递系统

  管道:以文件系统为基础

  11、描述实时系统的基本特性

  在特定时间内完成特定的任务,实时性与可靠性

  12、Windows消息调度机制是:

  A.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈;

  13、线程与进程的区别和联系? 线程是否具有相同的堆栈?dll是否有独立的堆栈?

  进程是死的,只是一些资源的集合,真正的程序执行都是线程来完成的,程序启动的时候操作系统就帮你创建了一个主线程。

  每个线程有自己的堆栈。

  DLL中有没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行,只有线程拥有堆栈,如果DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的代码是由DLL自己创建的线程所执行,那么是不是说 DLL有独立的堆栈?

  以上讲的是堆栈,如果对于堆来说,每个DLL有自己的堆,所以如果是从DLL中动态分配的内存,最好是从DLL中删除,如果你从DLL中分配内存,然后在EXE中,或者另外一个DLL中删除,很有可能导致程序崩溃。

【操作系统面试题】相关文章:

DELL的英文面试题(硬件部分和操作系统)11-06

组件机制与操作系统的实现03-18

操作系统专业简历模板12-27

嵌入式操作系统的功能02-23

linux操作系统目录结构详解02-26

面试题精选02-18

分享面试题目 教育职业面试题11-20

浅析组件机制和操作系统的实现12-11

浅谈组件机制和操作系统的实现11-30

计算机操作系统试题及答案03-10