打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux应用编程 | 进程相关概念


本文字数:1467字

阅读时间:4分钟



作者

良许

一个热爱技术的程序猿


程序和进程

程序,是一种静态的概念,是指编译好的二进制文件,在磁盘上,不占用系统资源(包括但不限于:cpu、内存、打开的文件、设备、锁)。所以,程序只是磁盘上的一个文件而已。


进程,是一种动态的概念,也是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。运行时,程序会被加载到内存中执行,产生一个进程。


可以这样理解:程序是一个蓝图,告诉你房子如何建造,而进程就是具体的建造过程,包括工地、工人、原料、机械设备等。同一个蓝图可以在不同的工地同时建造房子,同样,同一个程序可以加载为不同的进程,彼此之间互不影响。


如:同时开两个终端。各自都有一个bash但彼此ID不同。


并发

并发是指:在操作系统中,一个时间段中有多个进程都处于运行状态。比如:我们可以在同一台电脑上边听音乐边聊QQ边上网。但是,在任一个时刻点上仍只有一个进程在运行。这就是并发的概念。


并发是通过分时复用CPU实现的。具体来讲,进程A执行一个时间片,然后轮到进程B执行一个时间片,再轮到进程C……如此循环往复。


单道程序设计

所有进程一个一个排对执行。若A阻塞,B只能等待,即使CPU处于空闲状态。而在人机交互时阻塞的出现时必然的。所有这种模型在系统资源利用上及其不合理,在计算机发展历史上存在不久,大部分便被淘汰了。



多道程序设计

在计算机内存中同时存放几道相互独立的程序,它们在管理程序控制之下,相互穿插的运行。多道程序设计必须有硬件基础作为保证。


时钟中断即为多道程序设计模型的理论基础。 并发时,任意进程在执行期间都不希望放弃cpu。因此系统需要一种强制让进程让出cpu资源的手段。时钟中断有硬件基础作为保障,对进程而言不可抗拒。 操作系统中的中断处理函数,来负责调度程序执行。


在多道程序设计模型中,多个进程轮流使用CPU (分时复用CPU资源)。而当下常见CPU为纳秒级,1秒可以执行大约10亿条指令。由于人眼的反应速度是毫秒级,所以看似同时在运行。


1s = 1000ms, 1ms = 1000us, 1us = 1000ns


实质上,并发是宏观并行,微观串行! 


CPU工作原理

前文所述,程序一般放在硬盘里,而CPU直接打交道的是寄存器。我们平常所说的32位、64位电脑,指的就是寄存器位数。


硬盘的读写速度相比寄存器来说慢太多,所以CPU不可能直接从硬盘读写数据。而且由于寄存器是使用比较昂贵的金属制作而成的,所以为了节约成本,寄存器个数一般不会太多。这样一来,就不可能将代码全部加载到寄存器。为了缓解这个矛盾,一般设置了两级缓存——内存及cache。


从硬盘到cache,容量越来越小,速度越来越快。CPU通过预取器从cache里读出一条指令,送到译码器译码。译码器译码之后,决定了使用什么运算符号,使用什么寄存器。


ALU(算术逻辑单元)执行具体的运算,并将运算结果回写到寄存器。ALU只会做两种运算:加法(+)及左移(<>


当然CPU的工作原理远比这些要复杂的多,但大概过程就是这样。理解了这个过程可以对计算机的工作情况会有更深层次的理解。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
操作系统~内存管理之覆盖与交换、连续内存分配
线程与进程的区别
计算机底层知识大盘点,支撑起操作系统的几大特性
内存管理的概念
操作系统复习练习(答案)
操作系统2022春期末复习题(学生版)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服