操做系统:一个老汉的无声告白

老夫生于上世纪五十年代,做为八零后的大叔,九零后的老伯,同时也是大家动辄就要重装的操做系统,个人学名是“计算机管理控制程序”,英译“operating system”,小老弟们常喊我“OS”。虽然说是老弟,目的却都不怎么单纯,大部分人只想玩我,剩下一小撮人却钟爱探索个人身体,他们沉迷于当下,但真正愿意了解我过去的所剩无几。今儿个趁机会给大家介绍一下个人过去。
 

人工操做

在我幼年时期,虽然跟我打交道的绝大部分都是精英程序员,但作的事仍是很基础的,想执行一段程序必须先把代码写到卡片上,塞到我身体里,打开开关,等我对数据进行计算,计算完毕后再把卡片卸下来,这才把控制权交给下一我的,这就叫作“人工操做方式”。可是很明显,个人处理能力是有目共睹的,原本几秒钟就能处理完的做业,恰恰人工操做就等了几分钟,不只我心急,后面排队的人也很容易跟他干架,可若是把浪费的时间用来处理其它做业,效率必定会蹭蹭的往上涨。
 

单道批处理系统

为了解决等待人工操做的问题,绝顶聪明的我想到了一个好方法,首先准备一个磁带做为存储设备,程序员将做业聚在一块儿塞给我,而后我成批的将做业读入磁带,这时候程序员们就能够走开作别的事了。showtime!接下来只需依次将做业装入内存,计算数据并输出结果便可。因我引觉得傲的处理能力天然而然的就省下了等待人工操做的时间。
 
虽然有了批量处理的能力,但仍是有很大的缺陷,由于我一次只能执行一个做业,因此做业执行时是独占我全部资源的。这意味着当我进行I/O时,个人CPU是无事可作的,很是浪费资源,若是让空闲的CPU去处理其它做业,理论上就能作到同时处理两个做业了。
 

多道批处理系统

说干就干,接下来我进行了一些改造,目的就是“谁闲给谁活干”——当一个做业在使用CPU时,另外一个做业能够进行I/O,反之亦然。这样不只实现了多个做业的同时处理,还提升了老夫的资源利用率和吞吐能力。与此同时,我再也不严格按照顺序装载做业,而是由个人做业调度程序负责分配做业的装载,并由进程调度程序分配CPU,这样权责分明,更有利于往后调度策略的优化和调整。
 
如今的做业已经不一样以往,再也不独占全机,但它们却面临着共享CPU、内存、设备等问题。有共享就会有资源归属权的冲突,既然可预见到冲突就得提早预防,怎么预防呢?这就须要有专门的模块来管理规避由共享产生的冲突问题,好比CPU管理、内存管理、设备管理等,这些模块是个人灵魂,也是之后主要围绕的发展方向。
 
虽然比起单道时期的我性能获得极大提高,但人嘛毕竟是不满足的,机器也同样。个人平均周转时间还有很大的改善空间,周转时间呢,是指从做业提交给系统到执行完毕所花费的时间,而平均周转时间是指“全部做业的时间总和与做业总数的比值”,平均周转时间越小意味着性能越高。减小该时间最有效的方式就是调整调度策略,让全部做业尽量快的执行完毕,调度策略相对复杂,之后的章节再给你们讲解。除平均周转时间外,与用户交互能力的提高也是个人重中之重,如今的我只能同时与一个程序员进行交流,但这是远远不够的,要和人类长期打交道,他们的满意度才是我迈向成功的最高准则。
 

分时操做系统

为解决人类强烈的交互欲望,努力修炼的我终于练就了一套绝世武功——时间片轮转法。这是一套极强的掌法,用户能够经过若干个终端链接到我这里,我按必定时间间隔轮流的为各个终端服务,因为我极快的处理速度,用户彻底没法感知我作了什么手脚,以致于他们认为我只为他们本人服务,而如今天天打游戏的你仍然在走着个人套路/滑稽,正所谓“天下武功惟快不破”,而这种戏弄大家的感受让我奇爽无比。
 

实时操做系统

若是说分时的我必定要有缺陷的话,那么在某些场景下公平的分时就是个人缺陷。刚才讲到分时是用时间片轮转法轮流的为每一个用户服务,虽能诓得了小白,但在高精尖领域不太适用,好比航空航天、海底探测,丝毫的处理延迟可能会致使没法挽回的后果,想要解决延迟,时间片就不能过于均衡,优先级高的要先执行,但总执行优先级高的又会致使低权重的一直得不到执行,或是两个一样高优先级的做业因互抢资源发生死锁,听起来很复杂吧,但这就是调度策略的艺术之处。不过我一时半会也解释不清楚,要不就先到这里吧,我要关机了,如下是我为大家整理的思惟导图,拜拜。
相关文章
相关标签/搜索