操作系统

今天在看《程序员的自我修养》–链接、装载与库
–俞甲子 石凡 潘爱民著
第一章在讲操作系统,下面是节选。
操作系统在做什么?
操作系统的一个功能是提供抽象的借口,另外一个主要功能是管理硬件资源。
计算机硬件的能力是有限的,比如一个CPU一秒钟能够执行的指令条数是1亿条或是1GB的内存能够最多同时储存1GB的数据。无论你是否使用它,资源总是那么多。一个计算机中的资源主要分CPU、内存器(包括内存和磁盘)和I/O设备。
CPU
在计算机发展早期,CPU资源十分昂贵,如果一个CPU只能运行一个程序,那么当程序读写磁盘是,CPU就空闲下来了。于是人们很快编写了一个监控程序,当某个程序暂时无须使用CPU时,监控程序就把另外的正在等待CPU资源的程序启动,使得CPU能充分地利用起来。这种被称为多道程序的方法看似很原始,但当时的确大大提高了CPU的利用率。不过这种原始的多道程序技术存在最大的问题是程序之间的调度策略太粗糙。对于多道程序来说,程序之间不分轻重缓急,如果有些程序急需使用CPU来完成一些人物,那么可能很长时间后才有机会分配到CPU。这对于有些相应时间要求高的程序来说很致命的,想象一下如果你点击鼠标10分钟以后系统才有反应,那该是多么沮丧的事。
经过稍微改进,程序运行模式变成了一种协作的模式,即每个程序运行一段时间以后都主动让出CPU给其他程序,使得一段时间内每个程序都有机会运行一小段时间。这对于一些交互式的任务尤为重要。比如点击一下鼠标或按下一个按键后,程序所要处理的任务可能并不多,但是它需要尽快地被处理,使得用户能够立即看到效果。这种程序协作模式叫做分时系统
多任务系统
还有就是我们很熟悉的多任务系统,操作系统接管了所有的硬件资源,并且本身运行在一个受硬件保护的级别。所有的应用程序都以进程(Process) 的方式运行在比操作系统权限更低的级别,每个进程都有自己独立的地址空间,使得进程之间的地址空间相互隔离。CPU由操作系统统一进行分配,每个进程根据进程优先级的高低都有机会得到CPU,但是运行时间超出一定的时间,操作系统会暂停该进程,将CPU资源分配给其他等待运行的进程。这种CPU的分配方式即所谓的抢占式(Preemptive),操作系统可以强制剥夺CPU资源并且分配给它认为目前最需要的进程。如果操作系统分配给每个进程的时间都很短, 即CPU在多个进程之间快速的切换,从而造成了很多进程都在同时运行的假象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值