操作系统面试例题主要包括以下几个方面:
1.进程
作业:用户再一次解题或者一个事务处理过程中要求计算机系统所做工作的集合。它包括用户程序、所需的数据及控制命令等。作业是由一系列有序的步骤组成的。
进程:一个程序在一个数据集上的一次运作过程。所以一个程序在不同数据集上运行,乃至一个程序在同样数据集合上的多次运行都不是进程。
线程:线程是进程的实体,是被系统独立调度和执行的基本单元。
管程:管程的实际意义是定义一个数据结构和在该数据结构上的能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
进程通信方式有信号(信号处理器实现同步和互斥)、信号量(P、V操作)、消息队列、内存共享
作业调度:短作业优先、可剥夺式处理机制、不可剥夺式处理机制。
发生死锁(两个或以上进程在执行过程中因争夺资源而造成一种互斥等待的现象,若不借助外力都无法推进下去)四个条件:(预防方法)
1)互斥条件:一个资源每次只能被一个进程使用。(互斥条件无法被破坏)
2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(采用资源静态分配策略,破坏“部分分配”条件)
3)不剥夺条件:进程已获得资源,在未试用之前不能强行剥夺。(允许进程剥夺使用其他进程占用的资源,从而破坏“不可剥夺”条件)
4)循环与等待:若干进程之间形成一种头尾相接的循环等待资源关系。(采用资源有序分配,破坏“环路”条件)
处理死锁两种方式:防止其发生、发生后处理。
进程三种基本状态:
1>就绪状态:当进程分配到所有出CPU以外的所有必备资源,只要获得处理便立即执行,该进程状态为就绪态。
2>执行状态:进程已获得处理,程序正在处理机上执行。
3>阻塞状态:正在执行的进程由于等待某个事件发生而无法执行,便放弃处理机而处于阻塞状态。引起进程阻塞的事件有很多(如等待I/O完成、申请缓冲区不能满足、等待信号等)
2.线程
进程是程序的一次执行,线程可以理解为进程中执行的一段程序片段
同一进程的两段代码不能够同时执行,除非引入线程。
线程是属于进程的,当进程退出时当进程所产生的的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。进程之间可以IPC通信,但是线程不可以。
PE文件:可移植的执行体Portable Excute,常见的有EXE、DLL(动态链接库 )、OCX、SYS、COM 。 (DOC就不是PE文件)
3.内存管理
windows内存管理几种方式:
页式管理:将虚拟空间划分成若干个长度相等的页,把页式虚拟与内存地址一一对应。(优点:没有外碎片每个内碎片不超过页大小;缺点:程序全部装入内存要求相应的硬件支持)
段式管理:把程序或函数按内容或过程函数关系分成段,每段有自己名字。(优点:可以编写和编译,针对不同段采用不同保护;缺点:会产生碎片)
段页式管理:
X86:Intel制造的普通CPU
X64:x86_64的缩写。X86基础上的改进版
amd64:32位兼容64位架构(AMD是这一架构的主要生产商,由于Intel起步较早,有时也把amd64架构的CPU称为x86_64架构)
内存抖动:一般内存分配算法不好,内存太小或者程序的算法不佳引起频繁的从内存调入调出的行为。
4.垃圾回收
5.缓存