
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习互联网软件编程开发的相关技术知识,而本文我们就通过案例分析来简单了解一下,零基础学习编程开发需要解决哪些问题。
1、多道程序(Multiprogramming)
多道程序起,操作系统正式具有同时运行多个程序的能力。
其是让CPU一次读取多个程序放入内存中。当某个程序暂时无须使用CPU时,监控程序就把另外的正在等待CPU资源的程序启动,以此使得CPU能够充分地利用起来。这种策略的确大大的提高了CPU资源的利用率。
真实场景
你在Windows上点击鼠标10分钟以后系统才有反应,那是多么无奈的事情。因为没有优先级区分,自然一路排下来也就不知道要等到什么时候了,相当于半饿死。
存在的问题
核心问题在于程序之间的调度策略太粗糙。对于多道程序来删,程序之间部分轻重缓急,也就是说不存在优先级的区分。因此如果有些程序急需使用CPU来完成一些任务,那么很有可能会很长时间后才有机会被分配到CPU,才得以继续往下运行。
2、分时系统(Time-SharingSystem)
程序运行模式改为协作的模式,在原有的多道程序继续升级改造,即每个程序运行一段时间以后都主动让出CPU给其他程序,使得一段时间内每个程序都有机会运行一小段。
真实场景
比如你点击一下鼠标或按下一个键盘按键后,他会相较前者能够更快的得到响应,因为他好歹是存在切换的可能性。
存在问题
这时候的监控程序已经比原有多道程序的模式已经复杂了不少,完整的操作系统雏形已经基本形成,很早期的Windows(Windows95和WindowsNT之前),MacOSX之前的MacOS版本都是采用这种分时系统的方式来进行程序调度。
其仍然存在问题,核心在于若一个程序一直在进行一个耗时计算,便会一直霸占着CPU不放,那么操作系统也没有不放,就会导致其他程序都只能无限等待,相当于就是系统假死了。
3、多任务系统(Multi-tasking)
背景
在分时系统中,一个程序死循环就会导致系统假死,并且其运行效率并不高,只能解决当时的交互式环境。
放在现在来讲,已经完全没法很好的运行。因此当时业界也在研究更为先进的操作系统模式,也就是现在为流行也是熟悉的多任务系统。
解决方案
在多任务系统中,所有的应用程序都以进行(Process)的方式运行,其有以下特点:
每个进程都有自己独立的地址空间,因此各进程之间相互隔离。
每个CPU都由操作系统统一进行分配。
每个进程根据其优先级的高低都有机会得到CPU。
但需要注意的是,若是进程运行超出了指定的时间,操作系统就会暂停该进程,将CPU资源分配给其他等待运行的进程。这种CPU的分配方式一般称作抢占式(Preemptive)。
通过这种方式,操作系统就可以强制剥夺CPU资源并且分配给它认为目前需要资源的进程,如果分配给每个进程的时间都很短,即CPU在多个进程间快速切换,就可以造成多个进程同时在运行的假象。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。