28|进程调度:应用为什么能并行执行?
LMOS
你好,我是 LMOS。
你知道为什么在计算机上,我们能一边听着音乐,一边刷着网页,顺便还能跟朋友畅聊天下大事吗?这得益于计算机里的各种应用,更得益于支撑各种应用同时运行的操作系统。那么操作系统为什么能同时运行多个应用,具体是用什么机制让多个应用并行执行呢?
这节课我们来一起探索前面这两个问题的答案。我会带你先从最简单的 shell 开始,了解一个应用的运行过程,然后和你聊聊进程的本质,以及它的“生老病死”,最后再给你讲讲多进程调度是怎么回事儿。
最简单的 shell
为什么要先从 shell 开始了解呢?因为熟悉了它,你才能知道 Linux 上怎么运行一个应用程序,才能明白 Linux 内部怎么表示一个正在运行的应用程序。
通常情况下,我们在 Linux 上运行程序,都是在终端下输入一个命令,这个命令其实大部分都是 Linux 系统里相应应用程序的文件名。
而终端也是 Linux 系统上一个普通的应用程序,从 UNIX 开始它就叫 shell,但是 shell 只是一个别名,在你的系统上,它的文件名可能是 sh,也可能是 bash。shell 实现的功能有别于其它应用,它的功能是接受用户输入,然后查找用户输入的应用程序,最后加载运行这个应用程序。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了进程调度的原理和在计算机上并行执行的应用机制。首先介绍了Linux系统中应用程序的运行过程,包括fork和execl系统调用的使用。随后从应用程序、资源管理和代码实现三个角度对进程进行了探讨,深入解释了进程调度的原理和应用在计算机上能够并行执行的机制。文章还展示了Linux中表示进程内存空间的数据结构和进程的状态转换关系。此外,还介绍了多核多进程的情况下,CPU在各种可运行进程间来回切换的问题。文章还讨论了对称多处理器系统和多核心调度带来的挑战,以及操作系统需要解决的同步机制和进程调度问题。最后,总结了进程的四大特性:动态特性、并行特性、独立特性和异步特性。整体而言,本文通过深入浅出的方式,让读者了解了进程调度的关键思路和实现细节,为读者提供了对进程概念的全面认识。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》,新⼈⾸单¥68
《计算机基础实战课》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- peter请教老师几个问题: Q1:Linux进程的最大个数是64吗? 看了一个博客,其中提到“早期的0.1版本内核,进程最大是64,是用一个常量定义的最大个数”。请问,最新或比较新的内核,进程的最大个数还是64吗? Q2:一个核有两个“硬件线程”,是指可以同时运行两个线程吗? 文中的“实施结构”图中,画了四个CPU核,每个核有两个“硬件线程”。请问:一个“硬件线程”可以运行一个软件的线程,所以一个CPU核可以同时运行两个软件层面的线程,是这样吗? Q3:Linux计算机的load是用什么指标表示的? 一个普通的计算机,用Linux,有时候“系统load高”。此处的“load”具体是用什么指标? 是CPU的百分比吗?(比如,CPU占用率是90%,此时“系统load高”)。
作者回复: Q1 不是 Q2 是 Q3 是系统负载
2022-09-28归属地:湖北1 - 苏流郁宓不同的进程可以包含相同程序的片段,但能不能包含相同程序需要操作系统的支持! 比如有的安卓手机可以同开两个微信,但ios只能一个! 在理论上,不同的进程可以包含相同的程序,但在现实中需要软硬件的支持!(包括设备间的切换利用)
作者回复: 是的
2022-09-28归属地:湖北1
收起评论