2021年4月
银行家算法学习笔记
死锁避免——银行家算法的应用背景
要想说银行家,首先得说死锁问题,因为银行家算法就是为了死锁避免提出的。那么,什么是死锁?简单的举个例子:俩人吃饺子,一个人手里拿着酱油,一个人手里拿着醋,拿酱油的对拿着醋的人说:“你把醋给我,我就把酱油给你”;拿醋的对拿着酱油的人说:“不,你把酱油给我,我把醋给你。”
于是,俩人这两份调料是永远吃不上了。这就是死锁。
那么,为啥这个算法叫银行家算法?因为这个算法同样可以用于银行的贷款业务。让我们考虑下面的情况。
一个银行家共有20亿财产
第一个开发商:已贷款15亿,资金紧张还需3亿。
第二个开发商:已贷款5亿,运转良好能收回。
第...
页面置换算法之Clock算法
1.前言
缓冲池是数据库最终的概念,数据库可以将一部分数据页放在内存中形成缓冲池,当需要一个数据页时,首先检查内存中的缓冲池是否有这个页面,如果有则直接命中返回,没有则从磁盘中读取这一页,然后缓存到内存并返回。
但是内存的价值较高,一般来说服务器的内存总是小于磁盘大小的,而且内存不能完全分配给数据库作为缓冲池。这就意味着数据库基本上无法将所有的数据都缓冲到内存中。
当缓冲池满后,如果还有新的页面要被缓冲到池中,就要设计一种页面置换的算法,将一个旧的页面替换成新的页面。
一般来说我们熟悉的算法有下面几种:
下面逐一介绍各种算法。
2. 最佳置换算法
如果被替...
操作系统速记——存储管理
文章目录
存储器的结构
存储管理
连续存储管理
离散存储管理
虚拟存储
请求分页式管理
存储器的结构
存储器一般分为主存储器和辅助存储器两大类
主存储器简称主存,或称为内存,主存可分为系统区和用户区两个区域,系统区用于存放操作系统,用户区用于存放用户程序和数据
存储管理是对主存中的用户区进行管理
存储层次至少分为三级:cache、主存、辅存
存储管理
将用户源程序变为可在内存中执行的程序,通常需要经过编译、链接、装入
地址转换
绝对装入:装入时,程序的物理地址与逻辑地址完全相同
静态重定位:装入时,将程序中的所有逻辑地址修改成物理地...
一句话+一张图说清楚——银行家算法
土豆洋芋山药蛋 2018-05-08 21:10:44 69665 收藏 715
分类专栏: 操作系统【OS】 文章标签: 银行家算法 操作系统
本文试图用一句话+一张图说清楚操作系统中的银行家算法。我相信用一句话可以讲清楚一个算法的核心思想,一张图可以描述整个算法的操作步骤。但本人能力有限,错误之处望大家指出,多谢。
一句话:
当一个进程申请使用资源的时候,银行家算法通过先 试探 分配给该进程资源,然后通过安全性算法判断分配后的系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待。
那么此时会有一个问题,如何判断系统是否处于安全状态?算...
OpenStack是干嘛的
OpenStack是为云计算服务的,更确切地说,它是工作在IaaS这个层面的一套软件。
我们知道,IaaS全称是“基础设施及服务”,目的是为用户灵活的提供各种资源,从而满足客户的需求。所谓的基础设施,主要就是计算,存储和网络三类资源。那为什么需要OpenStack呢?
云计算的思想是将所有的资源“池”化,也即是说,不管你有多少台服务器,多少个硬盘,我先把它们做成池子,然后再灵活地分配给不同的用户。那么具体谁来做池子,做完池子以后怎么分配给用户,这就是OpenStack做的事情。它就好比电脑的操作系统,每个应用占用多少CPU,占用多少内存,由操作系统来分配。Op...
- 1
- 2
- 后一页 »