软件设计师学习笔记10-死锁资源数计算+进程资源图+段页式存储

目录

1.死锁资源数计算

1.1死锁

1.2进程管理与死锁资源的计算

2.进程资源图

3.段页式存储

3.1页式存储

3.1.1页式存储组织

3.1.2完整页表及页面淘汰原则

3.1.3页面置换算法(了解一下)

3.2段式存储


1.死锁资源数计算

1.1死锁

(1)死锁的概念:所谓死锁,是指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象

(2)死锁的四大条件:互斥、保持和等待、不剥夺、环路等待

(3)死锁的处理:

1.2进程管理与死锁资源的计算

(1)进程管理与死锁:进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果进程在等待一件不可能发生的事,则进程就死锁了。而如果多个进程产生死锁,就会造成系统死锁。

(2)系统不可能发生死锁的最小资源数:(w - 1) * m + 1 <= n

注:m为进程的个数,w为每个进程所需的资源数,n为可用资源数

(3)上述公式的运算举例,如下:

系统有5个进程,这5个进程都需要4个系统资源。此时,当可用资源<4时,没有一个进程能执行,必然死锁;当15>=可用资源>=4时,可能死锁,也可能避免死锁,最好情况下4个资源都分配给一个进程,不会产生死锁,最坏的情况下15个资源平均分配给5个进程,都无法执行,产生死锁;当n>=16时,不可能产生死锁,一定能执行下去,(4 - 1) * 5 + 1 = 16

2.进程资源图

(1)资源图如下:

(2)重要概念:

①非阻塞节点和阻塞节点:这里的节点即某个进程,系统的资源能够支持其执行下去即非阻塞节点,反之为阻塞节点

举个例子,资源分配完成后R1还剩1个,此时,P1和P2都需要1个资源才能执行下去,此时P1和P2都为非阻塞节点;而R2还剩0个,P3却还需要1个,因此P3为阻塞节点

②可化简和非死锁:当部分非阻塞节点执行,释放资源后能使得所有节点都能执行完成,就说该图是可化简的、非死锁的,反之,为不可化简的、死锁的

3.段页式存储

3.1页式存储

3.1.1页式存储组织

(1)页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。

(2)示意图如下:

一般都是已知逻辑地址,根据页号查表的页帧号,最后推出物理地址

(3)逻辑地址推出物理地址的举例

例如,在页式存储系统中,每个页的大小为4 KB,逻辑地址为10 1100 1101 1110, 以上述示意图的页表为标准,推出物理地址:

①已知总容量为4 KB,而总容量 = 存储单元个数 * 编址内容(默认1 B),因此存储单元个数为4 K = 4096,即页内地址0~4095,为了表示这么多数量的页内地址,就需要12位二进制位来表示页内地址(2^12 = 4096),所以可得二进制10表示页号为2

②查表可得,页帧号为6,用二进制表示为110,所以物理地址为110 1100 1101 1110

(4)优点:利用率高,碎片小,分配及管理简单

缺点:增加了系统开销;可能产生抖动现象(就是系统开销增加的一种表现,了解一下)

3.1.2完整页表及页面淘汰原则

完整页表如下(图片来自希赛软考):

什么时候要进行页面淘汰?当要使用未分配页帧号的页号时(如页号3),会产生页面中断,此时需要淘汰已在内存中的页帧号,让新的页帧号进来。此时要遵守以下原则进行页面淘汰:

①如果只有一个访问位为0的页面,那么就淘汰该页面(因为根据局部性原理,最近被访问的页面可能马上又被访问)

②如果存在多个访问位为0的页面,那么就淘汰修改位为0的页面(因为淘汰被修改过的页面花销成本更大)

3.1.3页面置换算法(了解一下)

①最优(Optimal, OPT)算法,理想型,一般用于程序执行后,才知道怎样最优,用于与当前选择的算法进行对比,进行判定性的操作

②随机(RAND)算法,随缘进行页面淘汰

③先进先出(FIFO)算法,有可能产生"抖动",就是进行页面淘汰时,删除最先进去的页面

④最近最少使用(LRU)算法,不会"抖动",与3.1.2所述的页面淘汰原则基本相同,依据是局部性原理

对于局部性原理的回顾:

时间局部性:刚被访问的内容,立即又被访问。

空间局部性:刚被访问的内容,临近的空间很快被访问。

3.2段式存储

段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。

示意图如下(该图片来自希赛软考):

逻辑地址:(段号,段内偏移)

此处考点为判断合法的段地址,合法有两个原则:①段号要存在在段表中②段内偏移要小于等于对应段长(不然就偏到其它地方去了)

以上图为例:

合法地址为:(0, 25 K)

非法地址为:(0, 35 K)

声明:内容参考自希赛软考

上一篇:软件设计师学习笔记9-进程调度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/76185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab学习-自定义函数

Matlab学习-自定义函数 常用自定义函数 文章目录 Matlab学习-自定义函数1. 打印时间2. 计算统计参数3. 画图函数 1. 打印时间 function result calculate_time(time)% Function describe : calculate time% Input : time:N*1% Output : result.hour/min/sec hour/min/sec…

构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...

长太不看版&#xff1a;基于领域驱动设计思考的 AI Agent 框架 Chocolate Factory&#xff0c;框架现在还在 PoC 阶段&#xff0c;欢迎加入开发。&#xff08;当前主要关注于 SDLC AIGC 的场景&#xff09;。 GitHub&#xff1a;https://github.com/unit-mesh/chocolate-facto…

ffmpeg安装及使用

centos linux下安装ffmpeg 1、下载解压 wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz tar -zxvf ffmpeg-3.1.tar.gz 2、 进入解压后目录,输入如下命令/usr/local/ffmpeg为自己指定的安装目录 cd ffmpeg-3.1 ./configure --prefix/usr/local/ffmpeg make &&a…

文件上传之图片马混淆绕过与条件竞争

一、图片马混淆绕过 1.上传gif imagecreatefromxxxx函数把图片内容打散&#xff0c;&#xff0c;但是不会影响图片正常显示 $is_upload false; $msg null; if (isset($_POST[submit])){// 获得上传文件的基本信息&#xff0c;文件名&#xff0c;类型&#xff0c;大小&…

Web jQuery—属性、元素、尺寸和位置

jQuery 属性、元素、尺寸和位置 代码下载 jQuery 属性操作 jQuery 常用属性操作有三种&#xff1a;prop() / attr() / data() ; 元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属性&#xff0c;比如 元素里面的 href &#xff0c;比如 元素里面的 type。 语…

迷你无人车 Navigation 导航(3)

迷你无人车 Navigation 导航&#xff08;3&#xff09; 自己实现了对于迷你无人车关节的控制&#xff0c;由于原本的关节布置仅支持阿克曼转向&#xff0c;因此先进行阿克曼转向的控制 修改 URDF 文件 添加 transmission 标签&#xff0c;定义关节的驱动 <transmission …

ant-design-vue table 同时勾选或者取消勾选某字段值相同的数据

Ant-design-vue 库中 Table 组件 API 有个 rowKey 属性&#xff1a;表格行 key 的取值&#xff0c;既可以是字符串&#xff0c;也可以是一个函数&#xff0c;它在 rowSelection 选择功能的配置中尤为重要。 在勾选或者取消选中项回调的 onChange 事件中&#xff0c;有两个参数返…

Linux 中的 comm 命令及示例

comm 逐行比较两个排序的文件并写入标准输出;常见的线条和独特的线条。 假设您有两个人员列表,并且要求您找出其中一个列表中可用而另一个列表中不可用的名称,甚至是两个列表中共有的名称。comm是帮助您实现这一目标的命令。它需要两个排序的文件,并逐行比较。在进一步讨论…

Mysql binlog的三种模式statement,row,mixed详解,以及无主键造成复制延时的测试

2.1 Statement 模式的概念 Statement 是基于语句的复制模式。 Statement 模式将数据库中执行的修改操作记录为 SQL 语句&#xff0c;再从数据库上执行相同的 SQL 语句来实现数据同步。 2.2 Statement 模式的优点 Statement 模式的优点是简单明了&#xff0c;易于理解和实现。…

基于Java SSM+layui+mysql实现的图书借记管理系统源代码+数据库

介绍 本项目使用的技术栈是SSMlayuimysql&#xff0c;服务器使用的是tomcat 其中书籍图片存放的位置需要先在tomcat根目录下conf/setting.xml中配置虚拟路径&#xff0c;本项目配置的是D:\upload 完整代码下载地址&#xff1a;图书借记管理系统 用户角色划分 游客 使用本系…

ArcGis地图

1、概述 官网&#xff1a;https://developers.arcgis.com/qt/ 官网&#xff1a;官网指导 官网&#xff1a;Add graphics to a map view 官网&#xff1a;Esri官方博客 官网(github)&#xff1a;https://github.com/Esri Arcgis runtime sdk for Qt 开发记录&#xff08;系列文…

Vue+NodeJS实现邮件发送

一.邮箱配置 这里以QQ邮箱为例,网易邮箱类似. 设置->账号 二.后端服务搭建 index.js const express require(express) const router require(./router); const app express()// 使用路由文件 app.use(/,router);app.listen(3000, () > {console.log(server…

项目上线部署--》网站运行机制

网站运行机制 &#x1f31f;名词解释 域名 DNS 服务器 服务器 &#x1f31f; 网站请求流程 静态页面 动态页面 前后端分离的页面 前后端不分离的页面 &#x1f31f;写在最后 &#x1f31f;名词解释 域名 www.baidu.comwww.taobao.comwww.qq.com 域名俗称网址&#xf…

MVCC

MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是数据库管理系统&#xff08;DBMS&#xff09;中的一种技术&#xff0c;用于管理并发访问数据&#xff0c;允许多个事务同时进行而不互相干扰&#xff0c;同时保持数据的一致性。 MVCC 的工作原理如下&#xf…

AI入门指南:探索人工智能的基础原理和实际应用

引言 介绍AI的基本概念&#xff1a;什么是人工智能&#xff0c;为什么它如此重要。 引出博客的主要内容&#xff0c;即AI的基础原理和实际应用。 第一部分&#xff1a;AI的基础原理 什么是人工智能&#xff1a; 解释AI的定义和范畴。 介绍AI的历史和发展。 机器学习入门&#x…

高级深入--day22

机器视觉 从 Google 的无人驾驶汽车到可以识别假钞的自动售卖机&#xff0c;机器视觉一直都是一个应用广 泛且具有深远的影响和雄伟的愿景的领域。 我们将重点介绍机器视觉的一个分支&#xff1a;文字识别&#xff0c;介绍如何用一些 Python库来识别和使用在线图片中的文字。…

Qt 10进制和16进制转换

10进制和16进制转换 通过标准库std::stringstream进行10进制和16进制转换10进制转换成16进制16进制转换成10进制 通过QString::number()和toInt()、setNumbe()等方法进行转换10进制转换成16进制16进制转换成10进制 格式化输出 在项目开发中&#xff0c;如何进行进制转换&#x…

Linux centos7 bash编程训练__打印各类形状

利用for循环&#xff0c;打印各种不同的三角形、矩形和菱形。 主要是fort循环嵌套使用&#xff0c;及条件判断等。 因方法简单&#xff0c;不作更多解释&#xff0c;部分注释可以帮助初学者掌握代码。 下面列出代码&#xff0c;供参考。 #! /bin/bash ## 打印输出各种*型形…

觉非科技数据闭环系列 | BEV感知研发实践

随着自动驾驶迈向量产场景&#xff0c;“BEV感知数据闭环”已成为新一代自动驾驶量产系统的核心架构。数据成为了至关重要的技术驱动力&#xff0c;发挥数据闭环的飞轮效应或将成为下半场从1到N的胜负关键。 觉非科技在此方面已进行了大量的研究工作&#xff0c;并在实际量产项…

解决nbsp;不生效的问题

代码块 {{title}} title:附 \xa0\xa0\xa0件,//或者 <span v-html"title"></span> title:附 件&#xff1a;,效果图