读《操作系统之哲学原理》的一点感想

从小就开始数了。

数到懂事,数到成熟,

还没有数清。

天上的星星为什么数不清呢?

像记忆和幻想,

永远背负着固执的迷。。。。。。


不要失望,

不要迷茫;

抬起头来,让我们数星星;

也许,我们能数得清;

也许,我们能看到真理的光芒;

也许,这就是我们的希望。。。。。。

最近看了一本关于操作系统的书,它的中文译名是:《操作系统之哲学原理》。

自己觉得这本书写的很好,最起码不是帮自己复习,最起码我从头看到尾了。

不过从内容上看,这本书还是写的很不错,现在我才懂得一句话:从另个角度看问题,那将是另一个世界!

下面是我对这本书的理解:



无论什么操作系统,都围绕着内存,文件,进程和I/O的保护和独立两方面,外加效率来展开的。


内存的地址保护和地址独立引出了内存管理,而内存管理也经历几代更新:基本内存管理(交换系统)------页式内存管理------段式内存管理------段页式内存管理。

我们因为不满足基本内存管理带来的外部碎片,于是我们引进了分页内存管理,在分页内存管理中,我们为了提高内存访问速度和效率,于是发明了多级分页,虚拟内存和页面替换算法。但是分页也有缺点,一个人类不能忍受的缺点是它不能有效的解决内存共享的问题。应此我们又引进了段式内存管理,但是段式内存管理同样存在外部碎片,并且必须把一段全都加载进内存,才能进行下一步指令,很不灵活。于是我们自然想到了把页式内存管理和段式内存管理结合起来,于是就有段页式内存管理。


文件的保护和独立催生了文件系统。文件的独立,即怎样保证每个文件都有独立访问地址?这就是文件夹所实现的功能。其实文件夹也是文件,只不过他们是特殊的文件,文件夹里存放的是在这个文件夹下的文件的文件名到文件地址的映射,这跟C语言中的指针没什么区别,是一个指向性文件。这样就不难理解Linux里的硬链接和软链接,硬链接只不过是给一个文件赋予两个地址,即不管从哪条路径,你都能访问到这个文件,而软链接并不是直接给一个文件直接加上一个路径,而是间接的在文件夹下兴建一个类似指针的文件,这个文件里存的是那个文件的路径(如:C:\windows\xxx.pdf)。而文件保护则引出了权限,访问控制表和能力表。访问控制表和能力表是从不同的两个不同的角度来实施的,访问控制表是站在操作系统角度,即操作系统主动控制文件的访问,为每一个文件建立一个文件控制表。而能力表则是站在用户的角度来看的,每一个用户都有一个能力表,里面记录了什么你能够访问,什么你不能够访问。但这两者都有缺点,于是提出了域的概念。


而进程的保护,独立和执行效率则引出了线程,进程通信,进程同步和进程调度,线程的产生使得进程可以同时干两个事,增加效率。进程的调度可以更有效的利用CPU。而进程通信则产生了管道,记名管道,套接字,信号和信号量。由于CPU的调度使得不同线程是交叉执行的,而线程同步就是为了不管线程之间怎样穿插,其运行结果都一样。线程同步催生了锁,睡觉与叫醒和信号量。

对进程管理的一个重点就是如何防止死锁,但很遗憾,直到现在我们接触的桌面系统都没有对这点加以控制,这就是WindowsLinux为什么会死机的原因。


操作系统对I/O的管理则是设备的独立和保护。而这就有一些I/O模式,比如DMA,专有I/O通道,复合I/O通道.........


现在的多处理器,多核处理器,超线程(HT)也对操作系统产生了很大影响。


以上是我看《Computer's Mind,Philosophical Principles Of Operating System》一书时的一点总结,有一点自己的感悟,但大多是此书的作者的观点。文章的开头是这本书结尾的一首诗,觉得很有感触,故摘抄下来。记得以前总是听一些人感概道:人是不是很傻,以有限的生命,投入到无限的知识学习当中?我想这就是很好的答案。

写这篇文章并无他求,只是留下一个足迹,以供后来者和自己回味。

如有更高见解,欢迎讨论。E-mail: wengpingbo@gmail.com .转载请注明出处。

少艾

2011.7.30 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值