操作系统基本知识点
操作系统面试考点
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、用户态与内核态
用户态:运行用户程序。
内核态:运行操作系统程序,能够执行更多更高级的指令。