计算机基础实战课
彭东
网名 LMOS,Intel 傲腾项目关键开发者
19719 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
计算机基础实战课
15
15
1.0x
00:00/00:00
登录|注册

28|进程调度:应用为什么能并行执行?

你好,我是 LMOS。
你知道为什么在计算机上,我们能一边听着音乐,一边刷着网页,顺便还能跟朋友畅聊天下大事吗?这得益于计算机里的各种应用,更得益于支撑各种应用同时运行的操作系统。那么操作系统为什么能同时运行多个应用,具体是用什么机制让多个应用并行执行呢?
这节课我们来一起探索前面这两个问题的答案。我会带你先从最简单的 shell 开始,了解一个应用的运行过程,然后和你聊聊进程的本质,以及它的“生老病死”,最后再给你讲讲多进程调度是怎么回事儿。
这节课的配套代码,你可以从这里下载。

最简单的 shell

为什么要先从 shell 开始了解呢?因为熟悉了它,你才能知道 Linux 上怎么运行一个应用程序,才能明白 Linux 内部怎么表示一个正在运行的应用程序。
通常情况下,我们在 Linux 上运行程序,都是在终端下输入一个命令,这个命令其实大部分都是 Linux 系统里相应应用程序的文件名。
而终端也是 Linux 系统上一个普通的应用程序,从 UNIX 开始它就叫 shell,但是 shell 只是一个别名,在你的系统上,它的文件名可能是 sh,也可能是 bash。shell 实现的功能有别于其它应用,它的功能是接受用户输入,然后查找用户输入的应用程序,最后加载运行这个应用程序。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了进程调度的原理和在计算机上并行执行的应用机制。首先介绍了Linux系统中应用程序的运行过程,包括fork和execl系统调用的使用。随后从应用程序、资源管理和代码实现三个角度对进程进行了探讨,深入解释了进程调度的原理和应用在计算机上能够并行执行的机制。文章还展示了Linux中表示进程内存空间的数据结构和进程的状态转换关系。此外,还介绍了多核多进程的情况下,CPU在各种可运行进程间来回切换的问题。文章还讨论了对称多处理器系统和多核心调度带来的挑战,以及操作系统需要解决的同步机制和进程调度问题。最后,总结了进程的四大特性:动态特性、并行特性、独立特性和异步特性。整体而言,本文通过深入浅出的方式,让读者了解了进程调度的关键思路和实现细节,为读者提供了对进程概念的全面认识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》
新⼈⾸单¥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
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部