进程的基本概念
进程的基本概念
进程其实就是对正在运行的程序过程的抽象。(a new level of abstraction)。
本质上说进程是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。
Linux 进程结构:可由三部分组成:代码段、数据段、堆栈段。 也就是程序、数据、进程控制块 PCB(Process Control Block)组成。 进程控制块是进程存在的惟一标识,系统通过 PCB 的存在而感知进程的存在。
进程是资源分配的最小单位,线程是 CPU 调度的最小单位。 线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。 由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度, 从而显著提高系统资源的利用率和吞吐量
进程和线程的区别
大的方向上:
- 进程是资源分配的独立单位
- 线程是资源调度的独立单位
我们只讨论有线程的系统,不考虑无线程系统
具体来说,有以下几个方面:
- 地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
- 通信:进程间通信 IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
- 调度和切换:线程上下文切换比进程上下文切换要快得多。
- 在多线程 OS 中,进程不是一个可执行的实体。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 进程通信介绍
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论