一、程序、进程、线程的概念
程序:一组计算机能识别和执行的指令、它是一些保存在磁盘上的指令的有序集合
进程:进程是一个独立的可调度的任务,进程是一个抽象的实体,当系统在执行某个程序时,分配和释放的各种资源,进程是资源分配的总称。
线程:共享同一个进程地址空间的多个任务叫线程
二、程序、进程、线程的区别
进程与程序的区别:
程序是静态的,没有任何执行概念,进程是一个动态的概念,它是程序执行的过程,包括创建,调度和消亡
进程是程序执行和资源分配的最小单位
进程包括 正文段、用户数据段、系统数据段,程序属于正文段和用户数据段,系统数据段用来有效的存放程序运行的环境
系统数据段包括 PCB(进程控制块)、相关寄存器
进程不仅包括程序的指令和数据,而且包括程序计数器值、CPU的所有寄存器值以及存储临时数据堆栈
程序类似剧本,存放在纸上,通过某种语言记录一场戏的整个流程、灯光、道具等 静态的
程序: 存放在磁盘,二进制有序指令、可执行、静态的
进程类似于根据剧本演出
进程:程序运行后的一种体现、动态、要占用资源
进程与线程的区别:
每一个进程都有自己独立的地址空间,任务切换时频繁切换地址空间耗时,由于进程的地址空间是私有的,因此在进程间的上下切换时,系统开销比较大,为了提高系统的性能,许多操作系统规范里引入了轻量级进程的概念,也被成为线程。
每个进程有一个独立的虚拟4g地址空间而同一个进程中的多个线程共享进程的地址空间
线程统一参与CPU的调用,即线程间的执行顺序不确定,线程共享进程的资源
程序、进程、线程之间的关系:
程序:大的车间 进程:车间内的一个组 线程:相当于每个执行人员
车间生产产品,车间内的小组实现产品的功能,执行人员单独或共同实现功能。
一个程序可能有多个进程不同的进程实现不同的功能,一个进程可以包含多个线程,线程是进程内的基本调度单位。