常见问题

操作系统基础知识总结(重要)(操作系统基础 屠祁 pdf)深度揭秘,

时间:2023-09-04 13:44:34 来源:快捷一键重装官网 人气:70

核心提示: 很冰河一起学习操作系统...

我们好,我是沙丘~~

那时为我们撷取一则有关作业控制系统基本知识的该文,好了,不多说了,间接步入那时的自问自答。

点选下方卡牌高度关注我

1. 作业控制系统的五个优点

mammalian:同一个几天内数个流程继续执行(特别注意差别博戈达和mammalian,前者是同一个关键时刻的数个该事件,前者是同一个季节内的数个该事件)

共享天然资源:控制系统中的天然资源可以被缓存中数个mammalian继续执行的进缓存协力采用

交互式:通过时分多址(如MIPS)以及AX1F83E43Se(如交互式缓存)控制技术同时实现把一个力学虚拟交互式为数个U盘控制系统

触发器:控制系统中的民主化是以叶诺塔的形式继续执行的,且以一种不容预见的速率大力推进

2.民主化与缓存

2.1 多民主化的组织机构形式包括上面3个关键性部份:

1)PCB(Process Control Block):用以历史记录民主化重要信息的计算机流程(管理工作民主化的核心理念,包涵了PID等民主化的大部份关键性重要信息)

2)民主化的状况:1:准备就绪状况,2:继续执行状况,3:堵塞状况(多缓存时也是这些状况)

3)堆栈:准备就绪堆栈、等候(堵塞)堆栈。

快捷一键重装控制系统

处在准备就绪状况的进U盘控制系统程,在运维流程为之重新分配了产生器之后便开始继续执行, 准备就绪 -> 继续执行

已经开始继续执行的民主化假如即使重新分配他的时间片已经用完,而被褫夺助剂, 继续执行 -> 准备就绪

假如即使缘故以致现阶段的民主化继续执行迟滞,使之不能继续执行。       继续执行 -> 堵塞

2.2 CPU运维演算法 (在准备就绪字符串中是不是挑选出民主化让CPU继续执行)

先了解两个概念:

周转时间:从开始申请继续执行任务,到继续执行任务完成响应时间:从开始申请继续执行任务到开始继续执行任务

先来先U盘控制系统服务运维演算法FCFS:按作业或者民主化到达的先后顺序依次运维;(平均周转时间可能会很长 )

短作业优先运维演算法SJF:演算法从准备就绪堆栈中选择估计时间最短的作业进行处理,直到得出结果或者无法继续继续执行(周转时间短,但是响应时间长 )

高相应比演算法HRN:响应比=(等候时间+要求服务时间)/要求服务时间;

时间片轮转运维RR:按到达的先后对民主化放入堆栈中,然后给队首民主化重新分配CPU时间片,时间片用完之后计时器发出中U盘控制系统断,暂停现阶段民主化并将其放到堆栈尾部,循环 ;(响应时间可以得到保证)

多级反馈堆栈运维演算法:目前公认较好的运维演算法;设置数个准备就绪堆栈并为每个堆栈设置不同的优先级,第一个堆栈优先级最高,其余依次递减。优先级越高的堆栈重新分配的时间片越短,民主化到达之后按FCFS放入第一个堆栈,假如运维继续执行后没有完成,那么放到第二个堆栈尾部等候运维,假如第二次运维仍然没有完成,放入第三堆栈尾部…。只有现阶段一个堆栈为空的时候才U盘控制系统会去运维下一个堆栈的民主化。

2.3 缓存

缓存有自己的TCB(thread control block缓存控制块), 只负责这条流程的重要信息,包括PC流程计数器,SP栈,State状况,和寄存器,缓存id。

缓存有内核级缓存和用户级缓存,我们一般说的都是用户级缓存,内核级缓存由内核管理工作。

补充小知识:

1)只有内核级缓存才能发挥多核性能,即使内核级缓存共用一套MMU(即缓存映射表),统一重新分配核1核2(即有数个U盘控制系统CPU,可以一个CPU继续执行一个内核级缓存)。民主化 无法发挥多核性能,即使民主化切换都得切MMU

2)为什么需要内核级缓存??假如只有用户级缓存,在内核中只能看到民主化,所以当用户级缓存中一个缓存进行IO读写堵塞时,内核会将该缓存所在的民主化间接切换。例如当用浏览器打开网页,这个民主化中有下载数据缓存,有显示数据缓存,当数据下载读写堵塞时,内核间接切到qq(这些切换是指在CPU上运行的流程的切换)

快捷一键重装控制系统

2.4 民主化U盘控制系统和缓存的对比

民主化是控制系统进行天然资源运维和重新分配的基本单位;缓存是CPU运维的基本单位。

民主化 = 天然资源 (包括寄存器值,PCB,缓存映射表)+ TCB(栈结构) 缓存 = TCB(栈结构)

缓存 的天然资源是共享天然资源的 民主化 间的天然资源是分隔独立的,缓存映射表不同,占用力学缓存地址是分隔的

缓存 的切换只是切换PC,切换了TCB(栈结构) 民主化 的切换不仅要切换PC,还包U盘控制系统括切换天然资源,即切换缓存映射表

2.5 民主化间同步

经典的民主化同步问题:生产者-消费者问题;哲学家进餐问题;读者-写者问题

同步的解决方案:管程,信号量。

死锁定义:

在两个或数个mammalian民主化中,假如每个民主化持有某种天然资源而又都等候别的民主化释放它或它们现在保持着的天然资源,在未改变这种状况之前都不能向前大力推进,称这一组民主化产生了死锁。通俗地讲,就是两个或数个民主化被无限期地堵塞、相互等候的一种状况。

产生条件:

互斥条件:一个U盘控制系统天然资源一次只能被一个民主化采用请求保持条件:一个民主化因请求天然资源而堵塞时,对已经获得天然资源保持不放不容抢占条件:民主化已获得的天然资源在未采用完之前不能强行褫夺循环等候条件 -- 若干民主化之间形成一种头尾相接的循环等候天然资源的关系

死锁处理:

预防死锁:破坏产生死锁的4个必要条件中的一个或者数个;同时实现起来比较简单,但是假如限制过于严格会降低控制系统天然资源利用率以及吞吐量

避免死锁:在天然资源的动态重新分配中,防止控制系统步入不安全状况(U盘控制系统可能产生死锁的状况)-如银行家演算法

检测死锁:允许控制系统运行过程中产生死锁,在死锁发生之后,采用一定的演算法进行检测,并确定与死锁相关的天然资源和民主化,采取相关方法清除检测到的死锁。同时实现难度大

解除死锁:与死锁检测配合,将控制系统从死锁中解脱出来(撤销民主化或者褫夺天然资源)。对检测到的和死锁相关的民主化以及天然资源,通过撤销或者挂起的形式,释放一些天然资源并将其重新分配给处在堵塞状况的民主化,使其转变为准备就绪态。同时实现难度大

死锁忽略:wU盘控制系统indows,Linux个人版都不做死锁处理,间接忽略,大不了重启就好了,小概率该事件,代价可以接受

3.缓存管理工作

要解决的两个问题

(1)每个民主化代码中采用的地址可能相同。解决思路:对代码中的地址重定向(加个基地址)。

(2)力学缓存可能比较小,不能同时放很多民主化进来。解决思路:把要运行的代码移到缓存,暂时不用的代码移入磁盘,即交换(swap),缓存置换

3.1 分段

一个流程分成数个段(每个段优点不同为了方U盘控制系统便管理工作,例如代码段只读、数据段等等),当然这都是逻辑上的。

管理工作段的结构叫段表,段表保存中民主化的PCB中。

快捷一键重装控制系统

3.2 页表

把流程按段分对流程员是友好的,但是假如力学存储也按段存,则会导致大块的缓存碎片,例如现在需要分个10M的段但是连续的存储空间只有8M/9M/5M三个。

解决办法:(将段打散存到页中)不要对缓存进行连续的重新分配,将缓存划分成1页1页,按页重新分配,1页4kb大小,最多浪费的也就4KB。这样不会U盘控制系统有缓存碎片,也不会出现没有符合要求大小的缓存可以申请的情况,即使可以打散了分散到一页一页中。

整个控制系统的页表就是多级页表(这个整个控制系统的多级页表简单来说就是把力学地址都进行了按页划分,保存了每页的基地址(对应下图中的页框号))。流程向控制系统申请时缓存时,控制系统就会把哪几个页框号分给流程的某个段,流程再把它段0中的第3页数据放到页框6中。

快捷一键重装控制系统快捷一键重装控制系统

说明:民主化需要有自己的“页表”,里面映射双方是流程的逻辑地址中的页号U盘控制系统和控制系统分给这給流程的页框号。

3.3 段页结合的缓存管理工作

实际在缓存管理工作中的段页结合如下图,页号加偏移称为交互式地址,MMU负载从交互式地址到力学地址的转换,同时也负责权限检查。

快捷一键重装控制系统

上面解决了每个民主化代码中采用的地址可能相同,控制系统给每个民主化重新分配基地址,民主化保存在PCB中。

但是民主化可操作的交互式地址为4G(32位控制系统),可力学地址为1G是不是办。

3.4 请求调页缓存换入

CPU对数据进行请求时,才会进行映射(交互式缓存U盘控制系统到力学缓存)。

快捷一键重装控制系统

例如民主化1已经开始运行,进行映射拿数据,查页表发现页框号中没有数据或有民主化2的数据,则需要页表调入缓存。

快捷一键重装控制系统

3.5 缓存换出

有页表需要调入,那么谁调出。

页面置换演算法

1:最佳置换演算法(Optimal):一种理论的演算法,选着淘汰的页面是以后一定不再采用的页面(理想化的),该演算法无法同时实现,只能作为其他演算法好坏的一个评价对比。

2:先进先出(FIFO)演算法:总是最先淘汰最先进去的页面,该演算法容易同时实现。U盘控制系统缺点:通常流程调入缓存的先后顺序和流程继续执行的先后顺序不一致,导致缺页率高。

3:最近最久未采用演算法LRU:演算法赋予每个页面一个访问字段,用以历史记录上次页面被访问到现在所经历的时间t,每次置换的时候把t值最大的页面置换出去(同时实现方面可以采用寄存器或者栈的形式同时实现)。

4:时钟演算法clock(也被称为是最近未采用演算法NRU):页面设置一个访问位R,并将页面链接为一个环形堆栈,页面被访问的时候访问位设置R为1U盘控制系统。页面置换的时候,假如现阶段指针所指页面访问R为0,那么置换,否则将其置为0,循环直到遇到一个访问为位0的页面。

但是这个方法有缺点:缺页比较少的时候(最近没有采用淘汰中的“最近”太长了),大部份的R都为1(很少变成0),每次都要转一圈才能找到换出去的页,退化成FIFO,效率不高。

改进:双指针,一个快,一个慢,像时钟一样 (定时清除R位)(更像clock) 快时钟做R的清0定时清0,等到U盘控制系统慢指针转到这里的时候R=0,说明在定时时间片内没有备访问,该页可以被替换了。

好了,那时就到这儿吧,我是沙丘,我们下期见~~

转自:cnblogs.com/xdyixia/p/9274909.html

点选下方卡牌高度关注我