在实际的OS中,资源分配是用"银行家算法"吗
来源:互联网 发布:淘宝手机卡 编辑:程序博客网 时间:2024/06/06 20:33
http://bbs.chinaunix.net/thread-4060467-1-1.html
Wiki百科上面对于银行家算法的解释比较详细(http://zh.wikipedia.org/wiki/%E9 ... 6%E7%AE%97%E6%B3%95)
但是我感觉要实际应用,有几个问题:
(1)真实的操作系统如Linux/Windows当中,进程/线程的资源分配真的使用了Djikstra的银行家算法吗? 我没有看过Linux的源代码,想知道理论学到的东西和实际应用是不是一回事。
(2)既然操作系统大都是用C写的,那么如果系统资源有10种类型,那么是不是OS要为每个进程分配一个Allocation向量来记录当前的进程用了多少资源? 这个数据结构是在OS的地址空间里面呢,还是进程自己的进程空间里面?
(3)因为进程的执行是可以并行的,是否会导致: 一个进程分配一个资源的时候,必须停下其他所有的进程来保证资源矩阵的操作是同步的。否则可能两个进程同时申请了一种资源,但是这种资源的available只是减去了1。我觉得OS不应该这样设计,否则进程越多系统越慢,但是这个同步的问题是如何解决的呢?
谢谢。
++++++++++++++++++++++++++++++++
这是个很有意思的问题,在上学的时候我也想到过很多类似的问题,包括这个。现在给你一些参考:
以下内容来自《操作系统:设计与实现》
3.3.3 鸵鸟算法
最简单的方法是像鸵鸟一样对死锁视而不见。对该方法各人的看法不同。数学家认为不管花多大代价也要防止死锁的发生;工程师们则要了解死锁发生的频率、系统因其他原因崩溃的频率、以及死锁有多严重,如果死锁平均每50年发生一次,而系统每个月会因硬件故障、编译器错误或操作系统错误而崩溃一次,那么大多数工程师不会不惜工本的去消除死锁。
。。。。。
3.3.5 死锁预防
。。。。。
该算法(银行家算法)有Dijkstra与1965年发表。从那之后几乎每本操作系统的专著都详细的描述它,许多内容的论文也都围绕该算法,但很少有作者指出该算法有实用价值。因为很少有进程能够在运行前就知道其所需资源的最大值,而且进程数不是固定的,往往在不断变化,况且原本可用的资源也可能突然变成不可用(比如磁带机可能突然坏掉)。
。。。。。
++++++++++++++++++++++++++++++++++++++++++++++++
如果执行的任务相对固定,那么预先估计每个任务的资源使用也是可能的,在当年的大型机时代这个是完全可能的。但是,这个算法在现在的通用OS内核中估计就没多大用处了。
Wiki百科上面对于银行家算法的解释比较详细(http://zh.wikipedia.org/wiki/%E9 ... 6%E7%AE%97%E6%B3%95)
但是我感觉要实际应用,有几个问题:
(1)真实的操作系统如Linux/Windows当中,进程/线程的资源分配真的使用了Djikstra的银行家算法吗? 我没有看过Linux的源代码,想知道理论学到的东西和实际应用是不是一回事。
(2)既然操作系统大都是用C写的,那么如果系统资源有10种类型,那么是不是OS要为每个进程分配一个Allocation向量来记录当前的进程用了多少资源? 这个数据结构是在OS的地址空间里面呢,还是进程自己的进程空间里面?
(3)因为进程的执行是可以并行的,是否会导致: 一个进程分配一个资源的时候,必须停下其他所有的进程来保证资源矩阵的操作是同步的。否则可能两个进程同时申请了一种资源,但是这种资源的available只是减去了1。我觉得OS不应该这样设计,否则进程越多系统越慢,但是这个同步的问题是如何解决的呢?
谢谢。
++++++++++++++++++++++++++++++++
这是个很有意思的问题,在上学的时候我也想到过很多类似的问题,包括这个。现在给你一些参考:
以下内容来自《操作系统:设计与实现》
3.3.3 鸵鸟算法
最简单的方法是像鸵鸟一样对死锁视而不见。对该方法各人的看法不同。数学家认为不管花多大代价也要防止死锁的发生;工程师们则要了解死锁发生的频率、系统因其他原因崩溃的频率、以及死锁有多严重,如果死锁平均每50年发生一次,而系统每个月会因硬件故障、编译器错误或操作系统错误而崩溃一次,那么大多数工程师不会不惜工本的去消除死锁。
。。。。。
3.3.5 死锁预防
。。。。。
该算法(银行家算法)有Dijkstra与1965年发表。从那之后几乎每本操作系统的专著都详细的描述它,许多内容的论文也都围绕该算法,但很少有作者指出该算法有实用价值。因为很少有进程能够在运行前就知道其所需资源的最大值,而且进程数不是固定的,往往在不断变化,况且原本可用的资源也可能突然变成不可用(比如磁带机可能突然坏掉)。
。。。。。
++++++++++++++++++++++++++++++++++++++++++++++++
如果执行的任务相对固定,那么预先估计每个任务的资源使用也是可能的,在当年的大型机时代这个是完全可能的。但是,这个算法在现在的通用OS内核中估计就没多大用处了。
0
上一篇:本(专)科毕业设计(论文)选题
下一篇:进程的虚拟地址空间——NULL指针分区
相关热门文章
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- 什么是shell
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- 在实际的OS中,资源分配是用"银行家算法"吗
- 银行家算法的实现,有关进程资源分配的算法
- 资源分配之银行家算法(含随机调度算法C++代码,此银行家算法,没考虑死锁的发生)
- Spark性能调优之——在实际项目中分配更多的资源
- 用银行家算法实现系统资源分配
- OS 银行家算法
- OS-银行家算法
- 【OS课程设计四】银行家算法
- os作业3:银行家算法
- 银行家算法(单项资源)
- 银行家算法(多项资源)
- 银行家算法(1)——概念与举例说明(多进程管理资源分配避免死锁)
- 用二维数组编写的银行家算法
- 用c++写银行家算法的感想
- OS 之 避免死锁(银行家算法)
- 别人的银行家算法
- 银行家算法的模拟
- 银行家算法的实现
- ABI——Application Binary Interface——应用二进制接口
- HTML/CSS中文本text属性详解
- phpcms修改伪静态
- 本(专)科毕业设计(论文)选题
- 基于wpa_supplicant库的WIFI连接功能实现--wpa_cli命令解析
- 在实际的OS中,资源分配是用"银行家算法"吗
- 进程的虚拟地址空间——NULL指针分区
- C++ 创建一系列字符串
- 《操作系统》实验大纲
- 《操作系统》——实验课教学进度表——12计科12班——张同光
- -bash: pod: command not found
- API级别是什么
- 《操作系统》——实验课教学进度表——13专升本班——张同光
- leetcode-03-Longest Substring Without Repeating Characters-python
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
阳春黄蜡石
贾阳春
阳春面的做法
景阳春酒价格表
下里巴人和阳春白雪
阳春面的家常做法
三月阳春好风光打一生肖
阳春旅游景点
阳春市属于哪个市
燕阳春演员表
一碗阳春面原文
阳春三月打一生肖
阳春信息互联网
阳春市房地产价格
阳春人才招聘
阳春同城论坛
阳春本地招工
阳春特产小吃
阳春是哪个省的
阳春招聘论坛
阳春论坛招聘
阳春招聘信息
阳春同城交易
阳春市房产网
阳春哪个楼盘好
阳春旅游景点大全
阳春特色美食
阳春光华橡树园
阳春旅游路线
广东阳春楼盘
潍坊阳春羊奶
阳春妇科医院
阳春旅游攻略
阳春哪里好玩
阳春车站电话
阳春胶囊功效
阳春胶囊怎么样
阳春招工信息
阳春房地产价格
阳春汽车总站时刻表
阳春是什么意思