预推免复习之操作系统

操作系统

1、线程、进程的区别?

1)线程:由进程创建,是系统进行独立调度和分配的基本单位,线程会与同属于一个进程的其他线程共享该进程所具备的资源。
(2)进程:是系统进行资源分配的基本单位,创建一个进程,系统会为其分配相应的内存空间等资源。一个进程可以拥有一个或者多个线程。

2、操作系统的作用、功能、特性

操作系统的作用:
(1)操作系统是系统资源的管理者。
(2)操作系统是用户和计算机硬件系统之间的接口。
(3)操作系统实现了对系统资源的抽象。
操作系统的特性:
(1)并发性:并发是指一个处理器同时处理多个任务。 并行是指在同一时刻,有多条指令在多个处理器上同时执行。
(2)共享性:指的是资源的共享,是指同一资源可为多个并发执行的进程所共享。
两种共享的方式:互斥共享(临界资源)和同时访问
(3)虚拟性:时分复用技术(分时系统)和空分复用技术(虚拟存储技术)
(4)异步性:指进程并非一次性执行完,而是走走停停以不可预知的速度向前推进。

3、操作系统的调度算法

作业的调度算法(高级调度)——从输人的一批作业中选出若干个作业,分配必要的资源
(1)先来先服务调度算法
(2)短作业优先调度算法
(3)优先级调度:每一个作业规定一个表示该作业优先级别的整数
(4)高响应比优先:(等待的时间+要求服务的时间)/(要求服务的时间)
其中(1)(2)(3)均可用于进程和作业调度。
高响应比优先多用于作业调度。
内存的调度(中级调度)——为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目
进程调度(低级调度)——根据一定的算法将CPU分派给就绪队列中的一个进程
(1)分时系统中的时间片轮转调度:轮转的基本思想是,将CPU的处理时间划分成一个个的时间片,就绪队列中的进程轮流运行一个时间片。当时间片结束时,就强迫进程让出CPU,该进程进入就 绪队列,等待下一次调度,同时,进程调度又去选择就绪队列中的一个进程,分配给它一个时间片,以投入运行。
(2)多级反馈队列调度算法:时间片轮转算法+优先级调度算法+先来先服务
虚拟页式存储管理中的页面置换算法
(1)理想页面置换算法(OPT):这是一种理想的算法,在实际中不可能实现。该算法的思想是:发生缺页时,选择以后永不使用或在最长时间内不再被访问的内存页面予以淘汰。
(2)先进先出页面置换算法(FIFO):选择最先进入内存的页面予以淘汰。
(3)最近最久未使用算法(LRU):选择在最近一段时间内最久没有使用过的页,把它淘汰。
(4)最少使用算法(LFU):选择到当前时间为止被访问次数最少的页转换。

4、死锁

死锁的定义:产生死锁的一组进程中的每个进程都在等待该组进程中其他进程所拥有的资源,使得所有的进程都无法向下推进。
死锁产生的原因:四个原因,互斥性、不可剥夺、请求和保持、循环等待。
解决死锁的四种方法:
(1)死锁的预防:不让死锁发生的静态策略,通过设计合适的资源分配算法,由资源分配策略保证不让死锁发生
(2)死锁的避免:安全性检查算法。先看能不能给他,再假设给他,看是否存在一条安全性序列,不存在的话就不安全。不让死锁发生的动态策略,以不让死锁发生为目标,跟踪并评估资源分配过程,根据评估结果决策是否分配
(3)死锁的检测:判断死锁是否真的发生,然后采用一些方法来解除死锁的问题
(4)死锁的解除:一般是撤销一部分进程使得死锁解除。
死锁的避免(安全性检查:银行家算法)
(1)首先判断资源的请求是否正确:即首先请求的资源<=需要的资源数并且系统具有的资源>请求的资源。
(2)安全性检查:然后假设分给它,看是否会进入不安全状态。

5、内存的管理

连续的内存分配(每个进程分配连续的空间)
(1)单一连续分配:每次只有一个进程进入内存,为其分配连续的地址。简单、但是利用率很低。
(2)固定分区分配:
	1)分区大小相同:就是将内存分成大小固定且相同的分区,每个进程占用一个分区。好控制,但是会产生内部碎片。
	2)分区大小不同:就是分为一部分小分区、中分区、大分区。
(3)动态分区分配:不事先将内存分区,按照进程所需空间进行动态分配,分区个数和大小会一直变化。有四种算法,在过程中会利用交换的方式,将目前不会运行的进程换出,会产生外部碎片,可使用动态重定位寄存器进行紧凑,但是费时。
	1)首次适应算法
	2)循环首次适应算法
 这两个都是将空闲分区按照地址从小到大链接起来,1)是从头开始选择第一个满足请求的空闲分区。该算法是最简单且最优的,但是会造成低地址部分有很多碎片,而且每次查找都会先查找这些碎片,增加了查找的开销。2)是从上一次找到的空闲分区中的下一个分区开始找到第一个满足请求的空闲分区。
	3)最佳适应算法:将空闲分区按照从小到大来链接起来,从头开始选择第一个满足需要的分区。会产生很多外部的小碎片无法利用。
	4)最坏适应算法:将空闲分区按照从从大到小来链接起来,从头开始选择第一个满足需要的分区。缺点是大作业无法进入。
非连续的内存分配管理(重要)(每个进程分配的空间不是连续的)
(1)基本分页式(地址是一维的):
	1)将每个进程都分成若干大小相同的页面,内存分成大小相同的页框。每个进程都有一个页表,是用于形式地址到物理地址的映射。
	2)引入块表机制,在高速缓冲寄存器中建立块表(TLB),利用程序的局部性原理提高地址转换的速度。
(2)分段式(地址空间两维:段号+段内地址,因为每个段的大小不一致,所以一定要都有,我们段表中有段号、段长度、本段在内存的起始地址):对进程进行逻辑的分段,易于理解以及进程对段的共享。
(3)段页式存储管理方式:段号+页号+页内地址,每次访问都需要访存三次。
虚拟内存技术
(1)定义:在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。这样,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器。
(2)页面置换算法(内存无剩余页面的时候进行换出)
	1)先进先出FIFO
	2)最佳置换算法(OPT):已知未来的情况下,未来最晚使用的就将它置换出去
	3)最近最久未使用LRU:最近长时间未访问过的页面。
	4)时钟Clock置换算法:每个页面有一个访问位A,访问了就置为1。clock算法是每次从一个页面开始检测访问位,若为0则将其换出,若为1则将其置为0,给他一次驻留内存的机会。
	5)改进的时钟Clock置换算法:在Clock基础上再增加一个修改位M。因为我们知道我们每次将页面换入内存的时候,外存有我们页面的副本,如果内存中的页面未被修改,那么就不需要换出后写回外存,否则需要重新写回外存,替换原有的页面,相比之下要耗费时间一些。所以我们把它看作是第二级条件。
(3)驻留集:系统为该进程分配的页框就称为该页面的驻留集。(驻留在页面中的集合)
(4)抖动:是指为每个进程分配的物理块太少了,导致缺页率激增,频繁执行I/O操作进行页面的换进换出,使得CPU几乎无法做任何有用的工作,我们称之为抖动。
(5)工作集:是指一段时间内,进程要访问的页面的集合。

6、文件的分配方式

1)连续分配方式:给每个文件分配连续的盘块,记录该文件的表项含有文件名、文件其实盘块地址、占有的盘块数目。
	缺点:只适合文件大小固定不变的情况,会产生外部碎片,文件大小改变时,需要移动大量的数据。
(2)链接分配的方式:包括隐式链接和显示链接。
	1)隐式链接就是每个盘块有指向下一个盘块的指针,每个文件只需记录文件名、初始盘块的地址以及最后的盘块的地址即可。解决了产生碎片的问题。
	缺点:如果中间指针除了错误,就产生文件数据的丢失。
	2)显式链接就是磁盘有张FAT表,里面显式的记录了每个盘块指向的下一个盘块号的指针。还可以用特殊的数字记录哪些盘块是空的(-2)等。
	优点:FAT表在启动时会被装入内存,查找速度很快且大量减少了I/O操作的次数。
 	1)和2)的缺点:解决了连续分配方式产生外部碎片,但是无法直接访问一个盘块,只能进行顺序访问。
(3)索引分配的方式:想实现直接访问盘块,不需要再顺序访问。为每一个文件分配一个索引表,表中记录了为该文件分配的每一个磁盘块的地址。索引表的第i个条目指向该文件的第i块。(相当于数组)所以要访问文件某个块时,直接找到相应的索引表的相应条目即可找到地址。(第i块---->第i个条目)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值