基础知识
1、操作系统的特性
- 并发
- 共享
- 虚拟
- 异步
2、操作系统的主要功能
- 进程控制
- 进程同步
- 进程通信
- 进程调度
3、程序并发的特征
- 间断性
- 失去封闭性
- 不可再现性
4、程序的特征
- 动态
- 并发
- 独立
- 异步
5、程序的三态模型,五态模型
6、为什么要引入挂起状态
终端用户需要、父进程需要、负荷调节需求、操作系统需求
7、引入挂起后的状态转换
8、进程控制块PCB的作用
作为进程独立运行基本单位的标志,能够实现间接运行方式,提供经常管理所需要的信息,提供进程调度所需要的信息,实现与其他进程的同步与通信
9、什么是临界区?如何解决冲突?
每个进程中访问临界资源的那段程序称为临界区,每次只允许一个进程进入临界区,进入后不允许其他进程进入。
- 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入
- 如果已有进程进入临界区,则其他所有试图进入临界区的进程必须等待
- 进入临界区的进程要在有限时间内退出,以便其他进程能及时进入临界区
- 如果进程不能进入临界区,应该让出CPU,避免进程出现“忙等”现象
10、进程同步机制应该遵循的规则
空闲让进,忙则等待,有限时间,让权等待
11、进程同步经典问题
- 生产者――消费者
- 哲学家进餐问题
- 读者――写者问题
12、进程间的通信如何实现?
低级通信:效率低,生产者每次只能向一个缓冲池投放一个信息;通信对用户不透明,隐藏了通信的具体细节
高级通信:用户可以利用操作系统所提供的一组通信命令传送大量数据。通信过程对用户是透明的。
共享存储器系统、消息传递系统、管道通信系统、客户机――服务器系统
13、处理机调度的层次
- 高级调度
- 低级调度
- 终极调度
14、作业调度算法
- 时间片轮转法
- 先来先服务算法 FSFS
- 短作业优先调度算法 SJF
- 优先级调度算法 PSA
- 高响应比优先调度算法 HRRN
15、死锁:两个或多个进程被无限阻塞,互相等待的一种状态
两个或多个并发进程中,如果每个进程持有某种资源,却又在等待别的进程释放资源,而且再未改变状态前无法向前推进,那么这一组进程产生了死锁。
16、死锁产生的四个条件
- 互斥:一个资源一次只能被一个进程使用
- 请求保持:一个进程因请求资源而阻塞时,对已持有的资源保持不放
- 不可抢占:进程已获得的资源在未使用完之前不能进行抢占
- 循环等待:若干进程之间形成一种头尾相接的循环等待资源的关系
- 破坏“请求保持”
- 破坏“不可抢占式”
- 破坏“循环等待”
18、避免死锁的方法
- 系统安全状态
- 银行家算法
19、连续分配存储管理方式
- 单一连续分配
- 固定分区分配
- 动态分区分配
20、动态分区分配算法
- 首次适应算法 FF
- 循环首次适应算法 NF
- 最佳适应算法 BF
- 最坏适应算法 WF
21、Windows下的内存是如何管理的?
Windows提供了3种方式管理内存
- 虚拟内存:管理大型对象、结构数组
- 内存映射文件:管理大型数据流和在单个计算机上运行多个进程之间的共享数据
- 内存堆栈:管理大量的小对象
22、为什么需要虚拟存储器
有的作业很大,需求空间超过了内存总容量,导致作业不能运行
大量作业要求运行,但内存容量不足,大量的作业停留在外存等待
请求分页存储管理除了要求一定容量的内存和外存,还需要:
- 请求页表机制
- 缺页中断机制
- 地址变化机制
24、虚拟存储器的页面置换算法
在进程运行的过程中,若所要访问的页面不在内存,就需要将它调入内存,而在哪个页面调入,需要根据算法而定
- 最佳置换算法 OPT
- 先进先出算法 FIFO
- 最近最久未用算法 LRU
- 最少使用算法 LFU
使用算法进行置换
计算缺页
25、文件管理
26、磁盘管理
面试题
1、linux为什么要分内核态和用户态?
操作系统的核心是内核,独立于普通的应用程序,提供操作系统的最基本的功能(进程管理、内存管理、设备驱动程序、文件管理、和网络系统),可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。
区分用户态和内核态的原因:运行在用户态的程序不能访问操作系统内核,保证了内核的安全。给应用程序提供单一简单的接口,使得上层的应用程序不用去关注底层的实现
内核态下CPU可以执行任何指令,用户态下CPU只能执行非特权指令。
CPU处于内核态,可以随意进入用户态;
CPU处于用户态,只能通过软中断方式进入内核态。
一般程序开始时都处于用户态,当程序需要系统资源时,通过软中断进入内核态
操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。
linux操作系统而言,高位的1G字节为内核空间;低位的3G字节为用户空间。
2、进程与线程的区别
(1)进程:进程是系统进行资源分配和调度的一个独立单位(程序段、相关数据段、PCB)
(2)线程:线程是进程的一个实体,是CPU调度和分配的基本单位。线程不拥有自己的资源,只拥有程序计数器、一组寄存器和栈区),它可以与同属一个进程的其他线程共享进程所拥有的全部资源
(3)关系:一个线程可以创建和销毁另一个线程,同属进程的多个线程可以并发执行。
同属进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列
(4)区别:进程和线程是不同的操作系统资源管理方式。
1)进程独立地址空间,更健壮(一个进程崩溃后不会影响其他进程);线程没有独立的地址空间,一个线程dang掉了整个进程就dang了
2)切换:所以进程切换时消耗资源更大,效率低
来源:博客园
作者:XieXinBei0318
链接:https://www.cnblogs.com/xiexinbei0318/p/11418958.html