其他分享
首页 > 其他分享> > 操作系统学习总结(用于考研复试)

操作系统学习总结(用于考研复试)

作者:互联网

自己整理的哈,有错误还请各位大哥指正!

 

1.os特性:

并发(并发:同一时间间隔内;并行:同一时刻)共享;虚拟;异步

2.os定义及功能:

定义:计算机资源的管理者。处理机管理;存储器管理;文件管理;设备管理的功能。

3.os为用户提供的接口:命令接口;程序接口(即系统调用)

4.用户态转向核心态的例子(本质:将cpu控制权交给os)

中断;系统调用;发生错误;企图执行特权指令。

5.中断和异常

中断:外中断(如时间片到);异常:内中断/例外/陷入(如运算溢出)

区分依据:是否由指令引起,是则属于内中断

6.系统调用:他是用户程序取得os服务的唯一途径。凡是会影响到其他进程(与资源有关的)的操作都应通过系统调用请求os代为完成。

7.中断处理过程:

硬件自动完成(中断隐指令):关中断(使后几步不被打断),保存断点,中断服务程序寻址

程序完成:保存现场和屏蔽字,开中断,执行中断服务程序(目的),关中断(使后一步不被打断),恢复现场和屏蔽字,中断返回(同时开中断)

8.为什么引入进程、线程以及他们的区别:

进程:程序这个静态概念已经不能如实反映并发执行过程的特征,而且进程也可以更好地使多道程序并发执行提高资源利用率。进程=程序+数据+PCB

线程:属于“轻量级的进程”,可以减少时空开销,提高资源利用率。

区别:

  进程:拥有资源的基本单位。系统开销相比线程大得多。

  线程:独立调度的基本单位。(线程可以访问其隶属的进程的资源)

9.用户级线程与内核级线程:

用户级线程中内核意识不到线程的存在,进程仍为基本调度单位,所以即使在多核处理器中也不能实现线程的并发执行,而内核级线程可以。

10.进程的状态:

就绪(无处理机有其他);运行(处理机和其他都有);阻塞(处理机和其他都无)

 

 

11.进程的管理、通信:(将进程控制用的程序成为原语,它不可中断不可分割)

进程的管理:

①进程的创建(创建原语):申请PCB及初始化;分配资源。

②进程的撤销(撤销原语):删除PCB,回收资源。

③进程的阻塞(阻塞原语):PCB插入阻塞队列。

④进程的唤醒(唤醒原语):PCB插入就绪队列。

进程的通信:(区分高级低级看传输效率)

低级方式:PV操作

高级方式:共享存储。消息队列。管道通信。

12.三级调度(高级=作业调度:分配资源,建立进程。中级=内存调度:挂起激活进程。低级=处理机调度:分配CPU)

作业与进程:要求计算机完成的一串任务称为作业。作业调度时将其从后备队列调入内存,为其建立根进程,根进程又会创建子进程去完成指定任务。

 

处理机调度算法:

  先来先服务(不利于短作业)

  短作业优先(不利于长作业)

  高响应比优先(综合上述两种的优点):响应比=(等待时间+处理时间)/处理时间

  优先级调度

  时间片轮转

  多级反馈队列(最优,短作业优先且长作业不会饿死):①设置多个队列,1~n队列的优先级逐级递减,而时间片逐级递增。②进入等待的队列先去1级队列的队尾,按先进先出原则。若运行完后进程未结束则去下一级队列的队尾...③当1级队列空时才轮到2级队列。

13.互斥的四种软件实现方式:

  单标志(必须交替进入,违背空闲让进)

  双标志先检查(可能同时进入临界区,违背忙则等待)

  双标志后检查(可能两个都进不了,违背空则让进)

  皮特森算法:turn表示谦让标志,=0表让P0先进,=1表让P1先进,最后谁进取决于最后谦让的是谁;flag[2]表示两个进程是否想进入。(违背让权等待)

  

 

14.记录型信号量实现同步互斥(同步:有先后制约关系。互斥:相互抢占资源)

P操作:资源数-1,当其<0时加入阻塞队列

V操作:资源数+1,当其<=0时唤醒队头进程

同步中:在需要用到资源的行为前面P,会释放资源的行为后面V。

互斥中:PV操作紧夹使用资源的行为。

15.生产者-消费者问题(既有互斥又有同步):

同步时:需要用前P一下,提供之后V一下。互斥时:PV夹紧资源。

16.读者写者问题(写者与大家都互斥,读者只与写者互斥)

用一个count计数器表示是否是第一个/最后一个读者,是则需要进行资源的请求/释放。

对count的操作需要用mutex进行互斥访问达到一气呵成的效果,否则会死锁。

17.死锁

定义:多个进程因资源竞争而造成的僵局

原因:系统资源的竞争;进程推进非法

必要条件(不满足任意一个则不发生死锁):互斥;不可剥夺;请求并保持;循环等待

解决死锁:

  预防:破坏必要条件

  避免:银行家算法和安全性算法(先用银行家算法预先分配资源再用安全性算法检测这次分配是安全,安全则正式分配,否则撤回之前的分配)

  检测与解除:看资源分配图是否可简化(死锁定理:如果资源分配图可以化简则没有死锁)

18.死锁和饥饿的区别

死锁是多个进程因资源竞争而造成的僵局,而饥饿是进程发生无穷等待的情况。

区别:死锁的进程必须>=2个,而饥饿可以只有一个。死锁进程必须是阻塞状态,而饥饿可以是就绪状态 一直得不到运行。

19.源程序->可执行文件

编译:形成汇编语言

汇编:形成机器语言

链接:形成可执行文件(此时在磁盘上,装入内存才会形成物理地址)

20.链接和装入的三种方式

链接:静态链接,装入时动态链接,运行时动态链接。

装入:绝对装入(编译时产生绝对地址的目标代码);静态重定位(装入时修改指令和数据);动态重定位(需要重定位寄存器的支持,其存放装入模块的起始地址,只有在程序运行时才将相对地址加上寄存器地址得到物理地址)

21.连续内存分配

单一连续分配(内存只有一道程序)

固定分区分配(分区大小可以相等可以不等)

可变分区分配:首次适应(从第一个开始找);循环首次适应(从上次结束的位置开始找);最佳适应(找最小适合的);最坏适应(找最大适合的)

22.非连续内存分配:分页;分段;段页式;

分页的逻辑地址->物理地址:页表寄存器中的页表起始地址+(页号*页表项长度)=块号的地址;块号*块的大小+偏移地址=物理地址。

分段的逻辑地址->物理地址:段表寄存器中的段表起始地址+(段号*段表项长度)=该段的始址;始址+偏移地址=物理地址。

23.分页和分段管理的地址空间维度

分页:一维。分段:二维。

因为页面大小P固定,逻辑地址/P=页号,逻辑地址%P=偏移地址。所以只需给出一个整数即可确定物理地址。

而段的大小不固定,所以需要显示给出段号和段内偏移,即地址空间为二维。

24.分段和分页的区别:

分页:产生内部碎片;逻辑地址一维;页面大小相等;为提高内存利用率。

分段:产生外部碎片;逻辑地址二维;段长不等;为方便编程。

25.虚拟内存管理

为什么引入虚拟内存:在物理上扩展内存相对有限的条件下,可以在逻辑上扩展内存。

虚存空间:min【内外存之和,2^计算机的地址位数】若32位则是2^32,若大于该数则无法寻址,没有意义。

实现方式:请求分页、请求分段、请求段页式。

26.TLB(快表):

采用虚存后,需要访问内存的页表,访存的次数因此增加。为了减少访存的次数,往往将页表中最活跃的几个页表项复制到高速缓冲存储器中(CPU中的寄存器)。这种在高速缓冲存储器中的页表项称为快表。

27.页面置换算法

最佳置换(找最久被使用到的页面换出);先进先出(会出现belady异常即分配的物理块增多而缺页次数也增加的情况);最近最久未使用(往左找);

时钟置换算法(访问位和修改位按00 01 10 11的优先级换出)

28.抖动:

定义:频繁进行页面调度的行为。

原因:内存空间不足;置换算法选择不当;对换信息量过大。

29.磁盘读写操作所需时间

寻道时间+延迟时间+传输时间

磁盘调度算法:先来先服务;最短寻找时间优先;扫描算法(左到右 右到左一直循环);循环扫描算法(左到右一直循环);

30.I/O控制方式:

程序I/O方式(CPU不断测试);

中断驱动方式(允许外设中断CPU,但每个字的传输都需要经过CPU);

DMA方式(以块为单位直接传输数据到内存,只有块的开始和结束需要CPU干预);

通道控制方式(专门负责输入输出的处理机,最大程度减少CPU干预);

31.SPOOLing技术:

是以空间换时间,将独占设备改造为共享设备的技术。

在磁盘上开辟空间用作输入输出井,使得CPU可以不用等待I/O设备,以缓和CPU和I/O设备速度差问题。

标签:操作系统,中断,死锁,复试,互斥,地址,线程,进程,考研
来源: https://www.cnblogs.com/ydw--/p/15968651.html