博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
共享的两种方式
阅读量:6526 次
发布时间:2019-06-24

本文共 954 字,大约阅读时间需要 3 分钟。

共享有两种,这里的共享可以理解为复用,分为时间上的复用和空间上的复用,时间上的复用的一个典型的例子就是分时系统分时使用cpu,cpu将所有时间分成若干个段,每个进程使用一段时间,然后让出cpu,之后调度逻辑会挑选另外一个进程来使用cpu的接下来的时间段;空间上的复用的一个典型的例子就是早期的多道程序设计的内存管理机制,那个时候没有现在MMU的复杂逻辑,仅仅将物理内存分成若干等分或者不等分的空间段,然后分给每个进程一个,如果空间段比进程少就要涉及换入换出机制,这里先不涉及换入换出,如果有换入换出了就说明这个内存段在进程生命周期内并不是永久属于该进程的,这就导致了一定的时间复用,这个一会再说,不考虑交换的话,每个进程就可以在被分到的内存空间段中进行仅仅属于自己的编址逻辑,比如所有进程都将自己内存段的开始定位为逻辑地址0,然后顺序平坦编址。

更晚的时候的请求调页机制实际上是空间复用和时间复用的混合,某一个时刻是空间复用,但是在更长的时间段上看,一个内存空间段并不是永久的属于一个进程,这就是时间复用了。实际上请求调页的复杂性就在于它实现了公平性,在很细的粒度上实现了公平性,如果不是为了这种公平,完全没有必要这么复杂,原始的整个进程的换入换出已经很好了,只是那会造成很大的交换延迟,相反如果粒度过于细,还会造成抖动,因此请求调页机制在公平性和效率之间作了折中,这就是工作集机制,当然这只是理论,实际的操作系统内核实现中LRU的用法更加普遍些,并且lru链表加上两个阀值而不是一个阀值,有效地防止了抖动。

在现实生活中,时分复用和空分复用使用的也是很广泛的,毕竟理论就是来源于真实的世界的如果共享的是一个资源,那么就是空分复用,如果共享的是一个流程,那么就是时分复用,当然流水线也是一种提高效率的机制,它在一个流程内部分为了好几个流程,有效地调动了所有的流程,使得任何细微流程不至于空闲,流水线是为了防止部件空闲的,是一个细粒度的机制,然而问题是虽然部件不空闲了,但是数据却不再是一步到位了,而要从流水线的一节流到下一节,肯定影响了单品加工效率,这个怎么解决呢?这就是缓存的作用。

 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274126

转载地址:http://smnbo.baihongyu.com/

你可能感兴趣的文章
通过ActionTrail监控AccessKey的使用
查看>>
从 JavaScript 到 TypeScript
查看>>
一个mysql复制中断的案例
查看>>
【最佳实践】OSS开源工具ossutil-大文件断点续传
查看>>
Linux常用的服务器构建
查看>>
深入了解 Weex
查看>>
Android第三方开源FloatingActionButton(com.getbase.floatingactionbutton)【1】
查看>>
【75位联合作者Nature重磅】AI药神:机器学习模型有望提前五年预测白血病!
查看>>
精通SpringBoot——第二篇:视图解析器,静态资源和区域配置
查看>>
JavaScript基础(六)面向对象
查看>>
总结几点Quartz的经验
查看>>
从veth看虚拟网络设备的qdisc
查看>>
企业的最佳选择?开放式混合云大行其道
查看>>
物联网、自动化的冲击下未来20年职场六大趋势
查看>>
《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.6.2 使用StAX解析器
查看>>
9月26日云栖精选夜读:阿里Java代码规约插件即将全球首发,邀您来发布仪式现场...
查看>>
北京市交管局联合高德地图发布北京中考出行提示
查看>>
如何防止应用程序泄密?
查看>>
一文带你看懂物联网开源操作系统
查看>>
什么是实践中真正在用的数据科学系统?
查看>>