美文网首页js css html
操作系统基础知识(2)

操作系统基础知识(2)

作者: Ritchie_Li | 来源:发表于2022-04-13 10:28 被阅读0次

6. 信号量操作

P操作:申请资源,S=S-1,若s>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。

V操作:释放资源,S=S+1,若s>0,则执行V操作的进程继续执行;若s<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。

经典问题:

生产者和消费者的问题 三个信号量:

互斥信号量S0(仓库独立使用权),同步信号量S1(仓库空闲个数), 同步信号量S2(仓库商品个数)。

生产者流程:

生产个商品S

P(S0)

P(S1)

将商品放入仓库中

V(S2)

V(S0)

消费者流程:

P(S0)

P(S2)

取出一个商品

V(S1)

V(S0)

7. 死锁

当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处 于死锁状态,就会造成系统死锁。

死锁产生的四个必要条件:

资源互斥

每个进程占有资源并等待其他资源

系统不能剥夺进程资源

进程资源图是一个环路。

死锁产生后,解决措施是打破四大条件,有下列方法:

死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之 一,使系统任何时刻都不满足死锁的条件。

死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁 的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借 钱,提前考虑好以后,就可以避免死锁。

死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发 生死锁,则设法加以解除。

死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。

死锁计算问题:系统内有个进程,每个进程都需要R个资源,那么其发生死锁的最大 资源数为n*(R-1)。其不发生死锁的最小资源数为n(R-1)+1。

8. 存储管理

页式存储管理

将进程空间分为一个个页,假没每个页大小为4K,同样的将系统的物理空间也分为一个个4K 大小的物理块(页侦号),这样,每次将需要运行的逻辑页装入物理块中,运行完再装入其他需 要运行的页,就可以分批次运行完进程,而无需将整块逻辑空间全部装入物理内存中。

优点:利用率高、碎片小(只在最后一个页中有)、分配及管理简单。

缺点:增加了系统开销,可能产生抖动现象。

页面置换算法

有时候,进程空间分为100个页面,而系统内存只有10个物理块,无法全部满足分配,就需要 将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100个页面能够按执行顺序调入 物理块中执行完。

缺页表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间,因此, 缺页数越多,系统效率越低。

最优算法:OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来 让其他算法比较差距。原理是选择未来最长时问内不被访问的页面置换,这详可以保证未来 执行的都是马上要访问的。

先进先出算法:FO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多, 缺页率可能越多(即效率越低),缺页计算如下:

最近最少使用:LU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根 据局部性原理,这种方式效率高,且不会产生抖动现象。

快表

是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上 保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。

快表是将页表存于Cache中;慢表示将页表存于内存上。

因此慢表需要访问两次内存才能取出页,而快表是访问一次Cache和一次内存,因此快。

段式存储管理

将进程空间分为一个个段,每段也有段号和段内地止,与页式存储不同的是,每段物理大小 不同,分段是根据逻辑整体分段的。

地址表示:(段号,段内偏移):其中段内偏移不能超过该段号对应的段长,否则越界错误, 而此地址对应的真正内存地址应该是:

段号对应的基地止+段内偏移。

段页式存储管理

对进程空间先分段,后分页,具体原理图和优缺点如下:

优点:空间浪费小、存储共享容易、能动态连接。

缺点:由于管理软件的增加,复杂性和开销也增加,执行速度下降

优点:程序逻辑完整,修改 互不影响

缺点:内存利用率低,内存 碎片浪费大

相关文章

  • 【操作系统笔记】操作系统的基本概念

    往期相关文章:【操作系统基础知识】进程管理 【操作系统基础知识】文件管理 【操作系统基础知识】内存管理 1.概念 ...

  • linux操作系统基础知识有哪些

    内容来源(公众号:PHP版WEB项目)linux操作系统基础知识:1、操作系统区分物理内存和虚拟内存;2、了解内存...

  • 操作系统知识点大总汇

    一、操作系统基础知识 操作系统的作用:用户接口、存储管理、文件管理、设备管理、处理机管理。 1.存储管理: 2.处...

  • 操作系统基础知识(2)

    6. 信号量操作 P操作:申请资源,S=S-1,若s>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞...

  • 【操作系统笔记】操作系统内存管理和jvm内存管理的对比和关系

    在上一次的文章 【操作系统基础知识】内存管理 里学习了操作系统的内存管理的基础知识,今天做个延伸拓展,来学习从操作...

  • 操作系统基础知识

    操作系统基础知识 计算机基础知识主要讲到两个重要的主题: 操作系统为程序分配内存的策略 线程和线程安全 程序运行内...

  • 【JVM笔记】Java中的进程管理

    前一篇文章【操作系统基础知识】进程管理 主要是操作系统相关的基础知识。本篇文章将从jvm的角度研究学习java中的...

  • (系列2)操作系统基础知识

    操作系统 进程 进程是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位,目的是为了更好地描述和控制程序的...

  • J2SE复习内容 - 多线程基础

    在这之前应该有相应的操作系统基础知识,包括线程,进程,通信等。 系列目录:J2SE复习内容 - 多线程基础J2SE...

  • 操作系统

    源自https://www.cnblogs.com/xdyixia/p/9274909.html 操作系统基础知识...

网友评论

    本文标题:操作系统基础知识(2)

    本文链接:https://www.haomeiwen.com/subject/kooosrtx.html