网站大量收购闲置独家精品文档,联系QQ:2885784924

致敬操作系统.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
致敬操作系统

向操作系统致敬 你发现它远比你玩的好 学电子信息类的人去学操作系统总是有说不完的纠结和蛋疼。但又有他们的优势,从下往上,更容易杀出一条血路来。因为硬件本来在你手里,后来被操作系统夺走了,你发现它远比你玩的好,把你的硬件性能发挥到了极致,用起来也相当的方便,甚至还给你提供了开发平台、各种接口函数,让你的开发周期也非常短。本来对你来说眼花缭乱的硬件和应用,在它的管理下,变得井井有条。它建立了一整套的硬件使用机制和各种管理办法,并且用它的自己的算法提高你的硬件使用效率。在操作系统的世界里,你唯一的信条就只能是“遵守”,因为遵守了它规定的“机制”,你就能方便得使用各种软硬件资源,硬件资源也能在他的调度下也更有效率。处处都透露这“高效率”、“便捷”。高效率是对硬件来说的,便捷是对开发和应用来说的。不同的操作系统在设计的时候制定了不同的机制,使用了不同的调度算法,提供了各式的运行库和内核函数,这就造成了系统性能的差别。你处处都在调用内核的服务,你一个click就能让一堆的硬件拼命而有序地为你工作,这比你当年用寄存器去使唤硬件要NB了不知道多少亿倍。 机制所带来的开发的便捷性。比如说,你的系统中添加了一个键盘,那么你就要按照linux规定的驱动程序编程的方式(模块编程、动态加载到内核、生成设备文件)来为键盘编写驱动程序,这样键盘就以设备文件这种方式被linux内核识别,当有程序要使用键盘时,就只需要对这个文件操作进行相应的操作就行了。(详见《简谈设备驱动》),这种机制就是linux规定的。它的好处就是将设备伪装成文件,利用统一的文件操作接口函数来驱动外部设备,屏蔽了硬件的复杂性,将驱动层清晰地剥离出来,极大地方便了上层开发。这就是linux机制带来的便捷,在这套机制的管理下,你手里的各种硬件被文件操作函数不知不觉地驱动着。 机制所带来的使用的便捷性。很多人不曾思考,如果没有操作系统的话,我应该如何使用我们的硬件?理所当然地认为windows就是操作系统,操作系统就是window,我就该这样使用电脑,电脑就应该有屏幕有键盘有鼠标,开机后有窗口,有桌面,有我的电脑,有网上邻居,有office …其实这些都不是理所当然的。只是微软的视窗操作系统做得太成功了。大家完全习惯了将它提供的用户交互界面,习惯了用它提供的开发平台和提供得各种服务。我们习惯了打开个播放器点一点就能让喇叭放出声音来,点一点就能放出电影来,打开浏览器软件就能上网,其实这个过程中,非常复杂,操作系统从桌面的鼠标click事件提取到你要操作的信息后,驱动你的声卡、喇叭、你的显卡、你的网卡等等有条不紊的工作。如何将你调用的服务完美的呈现给你就是它的工作。也是它实现管理的过程,高度屏蔽硬件。如果没有操作系统,难道你想看电影的时候,要去查显示器怎么驱动,显卡怎么用,声卡怎么用,怎么把程序下载进去,怎么把电影从硬盘调到内存再解码再发给显卡声卡…如果你能想到这个过程有多复杂,就越能知道操作系统有多NB。 机制带来的高效率。在没有操作系统的时候,程序只能单线程运行,CPU、内存等宝贵资源被独占,效率非常低,特别是系统资源越来越丰富的时候,比如从51到ARM,CPU的处理能力提高了很多倍,那么我如果再单线程的运行就非常罪过了,而且在许多时候要求实时性,多个功能程序必须并行,这就要求有CPU了,那多个程序之间怎么共享CPU,谁占用多长时间?这就要有一个进程调度算法,对!这就是内核一个主要的工作:进程调度。一开始的时候,调度的策略很简单,时间片轮转,就是每个进程都运行固定的时间,然后把CPU的控制权交给别的进程,后来发展到基于优先级的抢占式调度算法,再后来更多先进的算法出现,CPU的利用率被提到非常高的水平。很多人不明白,它是怎么实现调度的,为什么它让谁运行谁就能运行,是因为程序(任务、进程)都是有自己的堆栈的,里面存着程序指针,环境变量等程序运行信息。将这些信息出栈到CPU,程序就能继续运行(类似于中断返回),将一个程序的断点信息压栈,将另外的程序断点出栈,其实就是进程切换的过程,也就实现的CPU占有权的分配,如果切换的对象是在进程调度算法的计算下完成的,那么这个过程就是整个的进程调度。我们知道程序的执行,是先从硬盘或者flash拷贝到内存中,CPU从内存中去代码和数据来运行的,那么如果你的内存也大了,我的内存如何分配给各个运行的进程才合理呢?有没有优先级之分,谁多谁少?而且程序共享内存会不会发生危险?怎么实现程序地址空间的隔离?内存不够了怎么办?所以就需要一整套的机制来支持对内存的管理,对!这就是内核的另一个主要工作:内存管理!一般用分段、分页等方式可以解决上述的问题。 利用管理机制解决一些使用问题 如果两个程序都要使用同一个硬件资源,那怎么让他们两个共享一个资源?什么时候给谁用?就像你的千千静听

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档