操作系统中一些可以借鉴的解决问题的方法
来源:互联网 发布:php reflection 意义 编辑:程序博客网 时间:2024/04/30 06:26
操作系统和一些成熟的软件产品中,有一些解决问题的方法是很值得借鉴的。我们可以使用这些解决问题的方式来解决一些我们遇到的问题,因为他们的解决方式通常都是比较成熟的。
比如,引用计数。最开始接触这个概念是在COM中,后来发现操作系统中,也有很多使用引用计数的地方,像有的内核对象中就有一个引用计数,来决定何时删除这个内核对象。智能指针也可以用引用计数来实现,这里用一个智能指针的实现来展示一下引用计数。
分析使用引用计数的各个场合,可以看出满足以下条件可以使用引用计数:
(1)引用计数通常用于控制对象的生命周期;
(2)有多个用户代码使用同一对象;
(3)用户代码不必关心对象何时销毁,对象根据引用计数决定何时销毁自己。
再比如,操作系统用于管理内存的方法,虽然可能实现上更多是用硬件,但其设计的思路可以帮助我们设计用于软件的存储系统。我想主要说的是分页的设计方式,其中有两点可以借鉴,至少我借鉴过,当然也许以后更精细的研究可能会借鉴更多:
(1)将物理内存和虚拟内存都分成固定的大小来存放不同大小的数据。
(2)用页表来索引这些页的位置,用来读取和写入数据。
通过以上两点,一个说明了存储的结构,一个说明了使用时存取的方式,可以设计出一个存储系统用于存放不同大小的数据。当然,为了方便管理,还可以借鉴硬盘存储系统中,将数据分为数据块,数据块组成数据簇。不过,其中可能会涉及到删除存储的对象,并在利用其存储空间的一些问题。
还有一点,可能非常简单,就是在很多地方,操作系统都为一些要用到的东西分配一个ID来索引。这其实就是涉及到效率的一个考量。我曾参与的一个项目有同事设计的对象用字符串来标示,其效率就降低了。所以这一点很基本,但是却值得注意。
(待续)
- 操作系统中一些可以借鉴的解决问题的方法
- 此博文目录有几个解决问题的思路可以借鉴
- sed一些解决问题的思路与方法
- 有可以借鉴的观点
- VoltDB可以借鉴的文章
- 可以借鉴的js写法
- 解决问题的一些经验
- 解决问题的一些心得
- 一些解决问题的思维
- 一些解决问题的建议
- 网站优化的一些借鉴
- update方法可以借鉴
- 外行 从小米的销售策略看 诺基亚的销售 MAYBE可以借鉴一些
- C++的一些不错开源框架,可以学习和借鉴
- C++的一些不错开源框架,可以学习和借鉴
- C++的一些不错开源框架,可以学习和借鉴
- 在我工作中,我想让RelativeLayout设置按钮的效果,但是有时候没有效果,下面的方法可以解决问题
- 可以借鉴的 开始——cmd
- 文件查找FindFirst FindNext
- .Net线程问题解答
- java 视频处理 ffmped+mencoder
- 突然感觉很累
- 使用多线程加载多个Xml文件到TreeView控件
- 操作系统中一些可以借鉴的解决问题的方法
- Ubuntu 常见特效设置,调用的快捷键说明
- 取得搜索引擎综合新闻并分页
- 系统钩子在C#的声明
- 2009年7月26日IN语——拥有众多的债主,人际关系广泛
- 平平庸庸普普通通!!!
- 【java】 String 数据类型的编码方式
- flex 中 Color Transform 的计算公式
- 再学C++(4)