操作系统基本知识点

操作系统面试考点

1、明白并发和并行的区别对理解操作系统很重要

并发:指两个或多个事件在同一时间间隔内发生

并行: 指两个或多个事件在同一时刻发生

操作系统中的程序可以并发执行,而不是并行执行。

2、程序、进程以及线程的区别

从定义来看

程序:程序是对算法的描述,一段静态的代码序列

进程:程序在一个数据集合上的一次运行,它是操作系统资源分配和调度的独立单位,实现操作系统的并发

线程:线程是进程的子任务,是CPU调度和分派的基本单位,不拥有系统资源,共享进程资源,实现进程内部的并发

协程:微线程,一个线程有多个协程,协程与线程是不同维度的概念,协程类似一个特殊的函数,协程可以中断又可以回到中断点继续执行,协程之间串行执行。

关系:程序的并发结果具有不可再现性由此引入进程,为了进一步减少开销,引入线程实现进程内部并发,一个程序至少有一个进程,一个进程至少有一个线程,线程依赖于进程而存在

3、进程间的通信的几种方式

共享存储器:相互通信的进程共享某些数据结构和存储区,进程之间通过这些空间通信

管道通信:用于连接一个读进程和一个写进程,以实现进程通信的共享文件

消息队列:以格式化的消息为单位,利用操作系统提供的操作原语,在进程间传递消息,该方法屏蔽了通信细节

客户机-服务器:基于套接字的,用于网络中不同机器的进程通信

信号量:

4、线程之间的同步

互斥量:互斥对象只有一个,可以保证公共资源不会被多个线程同时访问

信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量

5、进程之间同步

硬件同步,信号量机制,管程机制

6、进程的几种状态

就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源

运行状态:进程已获得处理机正在执行

阻塞状态:进程等待某种条件

7、进程调度算法

先来先服务(FCFS):按照进程到达的先后次序

短作业优先(SJF):要求运行时间短的作业优先

优先级调度算法:优先级越高越先调度,会出现饥饿现象(可以抢占,可以非抢占)

时间片轮转(可抢占):为每个进程分配一个时间片

多队列调度算法: 按照队列的类型和性质划分多个就绪队列,每个就绪队列使用不同的调度算法

多级反馈队列: 设置多个就绪队列划分优先级,每个队列都采用先来先服务算法,进程的时间片用完,会放到低级队列的队尾

8、死锁

1)定义:就是两个或多个进程无限期的阻塞、相互等待的一种状态

2)死锁产生的四个必要条件

互斥:进程对分配到的资源排它,及资源一段时间只能被一个进程使用

不可抢占:进程占有的资源是不可抢占的

占有并等待:一个进程至少占有一个资源,且等待一个被其他进程占有的资源

循环等待:若干资源形成相互等待的环

(3)处理死锁的方法

a预防死锁

破坏不可抢占条件:已占有不可抢占资源的进程,资源请求得不到满足,就释放已占有资源

占有并等待:一次性给够资源,要么给足,要么不给

循环等待:对资源排序,请求必须严格按照递增顺序请求

b避免死锁

检查系统是否处于不安全状态(银行家算法)

c检测死锁

用于确定系统是否发生死锁

d解除死锁

抢占资源:从其它进程中抢占足够资源,分配给死锁进程

终止进程:撤销一个或多个死锁进程,破坏循环等待链

9、分段管理与分页管理

分段管理:段式存储管理是一种符合用户视角的内存分配管理方案。将程序的地址空间划分为若干段(segment),如代码段,数据段,堆栈段;由段表实现地址空间到物理空间的映射。段式管理的优点是:没有内碎片(因为段大小可变,改变段大小来消除内碎片)。但段换入换出时,会产生外碎片(比如4k的段换5k的段,会产生1k的外碎片)。

分页管理:在页式存储管理中,将程序的逻辑地址划分为固定大小的页(page),而物理内存划分为同样大小的块,程序加载时,可以将任意一页放入内存中任意一个块,这些块不必连续,从而实现了离散分离。由页表实现地址空间到物理空间的映射。页式存储管理的优点是:没有外碎片(因为页的大小固定),但会产生内碎片(一个页可能填充不满)。

区别:

目的:分页满足系统管理的需要,用户不可见。分段为了更好的满足用户的需求

大小不同: 页的大小由系统决定是固定的;段的大小由用户决定是不定的

地址空间不同:段向用户提供二维地址空间;页向用户提供的是一维地址空间;

10、局部性原理

时间局部性原理:程序中某条指令被执行,不久后会再次被执行,典型如循环

空间局部性原理: 程序中某个变量被访问,不久后其周围的变量也会被访问,典型如程序顺序执行

11、虚拟内存

定义:具有请求调入和页面置换的功能,并且能从逻辑上对内存容量加以扩充的存储系统。

页面置换算法

最佳置换算法:理论最优,被换出的是永远不会在使用或者最长时间不是使用的页面。

FIFO先进先出:

LFU最少使用:

LRU最近最久:一个页面自上次被访问以来所经历的时间t,t最大

优点:可以运行地址空间比内存空间更大的进程;可以提高系统的并发程度。

12、抖动

定义:系统中同时运行的进程太多,会不断的产生缺页中断,导致频繁的页面调度,致使系统效率急剧下降的现象称为抖动

解决策略:

采取局部置换策略(影响范围控制到最小);降低多道程序度;杀死进程;增加内存容量

系统调用:用户态的进程想要使用内核态的功能,就要使用操作系统提供的API(即系统调用),由操作系统代为完成此功能。

13、磁盘调度算法

先来先服务:满足先到进程的请求

最短寻道时间:选择访问磁道与当前磁头距离最近的线程。

电梯算法:从里向外,从外向里扫描,依次选择访问磁道与当前磁头距离最近的线程。

14、用户态与内核态

用户态:运行用户程序。

内核态:运行操作系统程序,能够执行更多更高级的指令。

 

猜你喜欢

转载自www.cnblogs.com/mgblogs/p/12500732.html
今日推荐