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

news2024/11/17 15:28:35

目录

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.coloradmin.cn/o/1001960.html

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

相关文章

C++-day4

仿照string类&#xff0c;完成myString 类 #include <iostream> #include <cstring> using namespace std; class myString { private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度 public://无参构造myString():size(10…

mac 13.x 打开第三方应用,提示已损坏无法打开

前排提示&#xff0c;不一定有效 1、先在终端执行下面这个&#xff0c;因为要提权&#xff0c;输入自己的密码 sudo xattr -r -d com.apple.quarantine 具体应用 # 具体应用是一个路径&#xff0c;拖入 访达——应用程序——第三方应用 到终端就行 # sudo xattr -r -d com.app…

在Widows系统下载安装Ubuntu

1.下载VirtualBox Oracle VM VirtualBox 2.下载安装microsoft visual c 2019 进入百度&#xff1a;百度一下&#xff0c;你就知道 出现下面这个页面时&#xff0c;直接点击修复&#xff0c;点击修复后&#xff0c;出现【重新启动】按钮&#xff0c;点击【重新启动】&#xff…

微信小程序基础加强总结

本篇文章给大家带来了关于微信小程序的相关问题&#xff0c;其中主要介绍了一些基础内容&#xff0c;包括了自定义组件、样式隔离、数据、方法和属性等等内容&#xff0c;下面一起来看一下&#xff0c;希望对大家有帮助。 1、自定义组件 1.1、创建组件 在项目的根目录中&…

电机⽮量控制、直接转矩控制、参数辨识

直接转矩控制是一种控制异步电动机转矩的方式&#xff0c;其基本原理是测量和控制异步电动机定子电流矢量。在直接转矩控制中&#xff0c;定子磁链和转子磁链矢量可以表示为&#xff0c;并通过测量空间电角度的大小&#xff0c;来决定电磁转矩&#xff0c;进而实现直接转矩控制…

Java8实战-总结25

Java8实战-总结25 用流收集数据归约和汇总查找流中的最大值和最小值汇总连接字符串广义的归约汇总 用流收集数据 归约和汇总 重用一下之前的例子&#xff1a;包含一张佳肴列表的菜单。 就像刚刚看到的&#xff0c;在需要将流项目重组成集合时&#xff0c;一般会使用收集器(S…

uniapp 小程序 全局弹窗 每个需要使用的页面都不用再引用

文章目录 创建组件在项目的根目录下的vue.config.vue中配置页面中使用 使用全局组件&#xff0c;先声明全局组件 与普通的组件声明不同之处在于 1&#xff1a;目录形式 2&#xff1a;声明引用方式 创建组件 在components目录中创建组件目录/组件vue&#xff0c;如下 注意需要同…

SpringMVC之综合案例:参数传递,向页面传参,页面跳转

参数传递向页面传参页面跳转 1.参数传递 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"htt…

【PyTorch 08】如果要手动安装对应的包

例如有时候我们要下载 PyG &#xff0c;但是需要手动下载&#xff0c;需要进行以下步骤&#xff1a; 网站链接&#xff1a;https://data.pyg.org/whl/ 首先查看当前安装好的Pytorch版本和对应的cuda版本 1. pip list&#xff1a;查看torch版本 2. torch.version.cuda&#xf…

3.4 栈与递归

3.4.1 采用递归算法解决问题 3.4 栈与递归的关系 栈和递归之间有着紧密的关系&#xff0c;特别是在算法和程序设计中。栈作为一种数据结构&#xff0c;可以有效地支持递归算法的实现。本节我们将详细讨论栈在递归算法中的作用及其在程序设计中的重要性。 1. 递归算法的基本概…

C#和.NET FrameWork概述

.NET FrameWork是什么&#xff1f; .NET FrameWork是由微软开发的一种面相对象的环境框架&#xff0c;特点如下&#xff1a; ①多平台&#xff1a;可在各种计算机、服务器、手机上运行。 ②标准化通讯协议&#xff1a;如XML、HTTP、JSON等。 ③安全性&#xff1a;CLR检查并…

通过实例学习鸿蒙静态库的创建与使用

简要介绍 静态共享包HAR&#xff08;Harmony Archive&#xff09;&#xff0c;是为了实现代码和资源的共享&#xff0c;可以包含代码、C库、资源和配置文件&#xff0c;随使用方一起编译&#xff0c;如果在多个应用中进行调用&#xff0c;就需要有多个HAR&#xff0c;和应用绑…

修改Tomcat的默认端口号

1、找到Tomcat的安装路径。 2、打开conf文件夹。 3、用记事本打开server.xml文件 4、找到 <Connector port"8080" protocol"HTTP/1.1"&#xff0c;其中的8080就是tomcat的默认端口&#xff0c;将其修改为你需要的端口即可。

图书管理信息系统分析与设计

一、系统开发的可行性分析 &#xff08;一&#xff09;系统背景.必要性及意义 随着社会经济的迅速发展和科学技术的全面进步&#xff0c;计算机事业的飞速发展&#xff0c;以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高&#xff0c;人…

数据接口工程对接BI可视化大屏(六)接收前台数据

文章目录 第6章 接收前台数据6.1 模拟数据6.2 接收数据6.2.1 编写Dao6.2.2 编写ServiceImpl6.2.3 编写Controller6.2.4 验证 后记 第6章 接收前台数据 在工作中也会遇到需要接收前台发送数据&#xff0c;进行存储的情况。这里以接收日志服务器的日志数据保存到kafka为例。 6.…

久运恒远聚焦物业多营渠道致力服务美好生活

随着社会的不断发展和人民生活水平的不断提高&#xff0c;物业行业已经逐渐向深度服务化方向调整&#xff0c;物业的多种经营体系也成为品牌关注和布局的重要销售渠道。久运恒远&#xff08;北京&#xff09;企业管理有限公司聚焦物业多营体系&#xff0c;整合资源&#xff0c;…

CTFHub | 综合过滤练习

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

简单5步骤搞定windows server2019 配置IIS支持PHP

测试成功&#xff0c;记录一笔&#xff0c;感谢网上各位大佬的技术支持。 一、安装vcredist_x64.exe 否则可能会出现 FastCGI进程意外退出 二、IIS开启CGI&#xff08;可能需要重启&#xff09; 控制面板&#xff0c;启用或关闭windows程序&#xff0c;IIS--应用程序开发--CGI…

61、SpringBoot -----跨域资源的设置----局部设置和全局设置

★ 跨域资源共享的意义 ▲ 在前后端分离的开发架构中&#xff0c;前端应用和后端应用往往是彻底隔离的&#xff0c;二者不在同一个应用服务器内、甚至不再同一台物理节点上。 因此前端应用和后端应用就不在同一个域里。▲ 在这种架构下&#xff0c;前端应用可能采用前端框架&a…

Linux入门教程||Linux系统目录结构

登录系统后&#xff0c;在当前命令窗口下输入命令&#xff1a; ls / 你会看到如下图所示: 树状目录结构&#xff1a; 以下是对这些目录的解释&#xff1a; /bin&#xff1a; bin是Binary的缩写, 这个目录存放着最经常使用的命令。 /boot&#xff1a; 这里存放的是启动Linux时…