🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#初探操作系统 [TOC] ##古书都是有用的 我个人特别喜欢哲学《周易》,《连三》,《伦理》等。因为它们中的哲理能够用在计算机领域的方方面面,比如: ###**道可道,非常道。名可名,非常名。** 道理是无法讲出来的,讲出来的那就已经不是道理了。前天我去补考《计算机组成原理》,卷子上有这么一个问题:“简述计算机的层次结构,并说明特点。”我看到的第一反应是操作系统的这个图: ![](https://box.kancloud.cn/2015-10-16_562081eeb216b.png) (网上有一张圆形的图,那个比较形象,可以上网找找,我想到的是那个圆形的,内容和这个类似) 然后觉得不对,毕竟是“计算机组成” 然后我又想到了这个图: 3层“谷堆” 进程 文件 存储 然后我又想到了存储结构。这个图: 分诺依曼结构 直到我刚刚百度到的这张图: ![](https://box.kancloud.cn/2015-10-16_562081eee291a.png) 其实我心中早就有了答案!其实就是osi/rm七层模型在计算机内部的表示。如图: ![](https://box.kancloud.cn/2015-10-16_562081eef40e9.png) 但是!废话说了这么多,例子也都是图,最终的结果是要图转化成文字信息去回答一个简答题。。。或许,我估计只能得到“0”分。。 **(当你真正学会一个东西的时候,那么它绝对是难以名状的!)** ###**有无相生,难易相成,长短相形,高下相倾,音声相和,前后相随。** 计算机内部都是相对的,尤其是硬件和软件,相互制约,相互促进,相辅相成。。就如前面6句话。。难以名状! ###**一花一草一世界。(佛)** 所有事物**自成世界**,即介观(物理概念)。编程语言能够看成一个自定义的世界。操作系统能看成一个有待完备的世界。一个细胞也能看成一个完备世界。......... .... **唉?!** **“界”这个字像不像一个“立体”的人?!之所以用田当头,是不是觉得知识储备就像一个个抽屉?!而人的身体就像一个个独立的世界?!(《黄帝内经》里应该有这个概念,应该下去查查资料。介百科上说就是指人而且是“甲骨文”中指人,那为啥界不用“田人”而用“田介”?,甲骨文中应该暗示了什么,嘿嘿)** 最**核心**概念的引出: ##学习操作系统的三大基本概念 一、为什么所有关于操作系统的专业书最开始都喜欢画结构、分层次、讲历史? 答:因为现在的操作系统不完备,还处在发展阶段。因此,学习它时,人们就必须按照发展史讲起。 **那么,如果当操作系统完备后,该如何与后辈阐述操作系统的概念?** ###太极图 ![](https://box.kancloud.cn/2015-10-16_562081ef17d36.png) (这是我最喜欢的一张图,也是学习计算机必备的一张图。我把它放在这里,供大家思考。) ###**它是完备的圆,是无法分割的。** ####我们可以把一个圆分成两部分,并且分别上色,但它始终是一个圆。 二进制转换:原码和反码。它最终所表示的值是同一个,即“真值”。只是“看”的角度,分成了计算机和人。 计算机组成:硬件和软件。他们是一个整体,光有软件没有硬件,只能看成有灵魂没躯壳。但光有硬件没有软件,也只能把它看成是一个没有灵魂的躯壳。 同一台计算机。 逻辑判断: 真和假。回答同一个问题。 ....... **太极图说:同一个“圆”,不同的梦想。** ###**它就像一个生命体。** 学习操作系统的人应该都知道一句话:“理解了进程,就理解了操作系统”。那么什么是进程? 我们用书上的概念引出: 定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。 **1、进程是程序的一次执行。** **2、进程是一个“程序”及“其数据”在处理机上“顺序执行”时所发生的活动。** **3、进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。** 可以说,理解了上面三点,就理解了进程。那么话说回来,什么是进程或怎样去理解上面三句话? 我想没有一个人能准确地说出个所以然来,是因为进程的定义和生命的定义是可以画“==”的。 为什么呢? 我们先来定义一下什么是生命:“alive”;活着的,活跃的。 如果我说: 一个生命体的数据、数据特征、构造3者是随着时间**动态变化**的,那么是不是也就表明,这个生命是活着的! 换句话来说: 生命是一个生命体及其特征数据,在生命体构造中按照时间顺序执行时所发生的**动态变化**(活动)。 **哒哒!**是不是和上面的第二点不谋而合了? (数据、数据特征、构造3者指心跳频率、呼吸速率...;心脏大小、肺活量...;身份证号、性别、年龄...;这3种不同类型数据需要3种类型的存储空间,详情请看——程序如何成为进程) 人类无法把一个时时刻刻在变化的生命数据记录在纸上,同样的也无法把一个“正在进行的程序”(进程)的动态数据记录出来。唯一能做的,就是写一个数据块儿(PCB)来描述一下“局部”。(详情请看——莱昂氏unix源代码解读之PCB) ###**它体内的各个器官都是相互独立,但又相互联系的。** (我不知道大家原来是如何看待进程的,至少经过我上面的“坑蒙拐骗”。大家肯定觉得自己和我比就是一个菜鸟,觉得差距还好大——其实我就是自吹一下,没那么夸张。如果把进程看成一个身体器官,就很好理解了。PCB中的各个字段我也就不说了,具体技术问题另说——深究操作系统。再说,现在全写完以后就没写的了。再说,我也一天写不完。再说,哪那么多说的。。(m3m)。。) 本人男生一枚,对异性肯定感兴趣。那我们就拿异性举例子。 女生上厕所问题。。。俗称:“抢坑位”。 题目是这样: 先有一个班的女学生5位、这个班的女班主任一枚、路人女一位。厕所3个坑。。大家想象那个场景具体场景我说了算,哈哈。如下: 现在来了3个女学生,她们依次进入坑位,进去后会上锁。 接着,又来了2位女学生和一位路人女。依次排队。顺序为:女学生、路人女、女学生。 坑位中的一位女学生化妆完毕出来了,排最前面的女学生该进了。 这时,突然班主任来了。。会发生什么情况? 1、班主任、女学生、路人女、女学生。最前面的女学生会让老师先上。 2、女学生、路人女、女学生、班主任。老师排最后面。 3、女学生、路人女、班主任、女学生。(学生让老师先上,但是路人女不同意) 我们以路人的角度看:1、那个中年妇女凭什么先上?2、很可能她们认识。但我不认识她,她就得在我后面。 我们以学生的角度看:1、老师怎么了,老师也得排队!2、老师应该先上。 学生和老师,这种关系是只有她们“内部”才能识别的。在计算机里,只有cpu能识别的进程id 我们称作Pid。 而路人和老师,他们没有特定的识别单位,只能通过别的来识别。在计算机里,供用户识别的进程id我们称作Uid。 而掌管她们排队的算法,就是进程调度算法。 而标记厕所现在还有没有坑位。在计算机中,是用信号量来标示的。(详情请看——莱昂氏unix源代码解读之PCB) 说了半天,大家可能会发现和这个标题一点儿关系也没有,请看: 心脏是如何输血的?假如:现在大脑,手,肺,胃4个器官都供血不足,心脏会优先给谁输血? 答案只能是:从我的(用户)角度看,心脏会优先给大脑。因为,人活着,就是大脑在动。 但是,换个角度想,不给肺供血,没氧气,大脑光有血没氧,不一样的死? 所以说,心脏(cpu)会有它自己的优先级判断,而且人们都看不出来,因为我们都不是心脏。 为什么我的标题这么写,我给大家抛个引子——当你玩儿游戏的时候是不是鼠标键盘显示器等都要用到,那么游戏是不是以进程的形式存在于计算机中?当我把心脏从身体里拉扯出来的时候,它上面的血管又连接的是哪里? ##科学本身就是仿生的一个过程,学习科学千万不能只学表面 如果看完这篇文字,脑海中有一个说不出的感觉,我写作的目的也就达到了。 谢谢观赏 作者:蝌蚪明 (转载望写明出处、谢谢)