一、程序、进程、线程的概念

程序:一组计算机能识别和执行的指令、它是一些保存在磁盘上的指令的有序集合

进程:进程是一个独立的可调度的任务,进程是一个抽象的实体,当系统在执行某个程序时,分配和释放的各种资源,进程是资源分配的总称。

线程:共享同一个进程地址空间的多个任务叫线程

二、程序、进程、线程的区别

进程与程序的区别:

程序是静态的,没有任何执行概念,进程是一个动态的概念,它是程序执行的过程,包括创建,调度和消亡

进程是程序执行和资源分配的最小单位

进程包括 正文段、用户数据段、系统数据段,程序属于正文段和用户数据段,系统数据段用来有效的存放程序运行的环境

系统数据段包括 PCB(进程控制块)、相关寄存器

进程不仅包括程序的指令和数据,而且包括程序计数器值、CPU的所有寄存器值以及存储临时数据堆栈

程序类似剧本,存放在纸上,通过某种语言记录一场戏的整个流程、灯光、道具等 静态的

程序:                存放在磁盘,二进制有序指令、可执行、静态的

进程类似于根据剧本演出

进程:程序运行后的一种体现、动态、要占用资源

进程与线程的区别:

每一个进程都有自己独立的地址空间,任务切换时频繁切换地址空间耗时,由于进程的地址空间是私有的,因此在进程间的上下切换时,系统开销比较大,为了提高系统的性能,许多操作系统规范里引入了轻量级进程的概念,也被成为线程。

每个进程有一个独立的虚拟4g地址空间而同一个进程中的多个线程共享进程的地址空间

线程统一参与CPU的调用,即线程间的执行顺序不确定,线程共享进程的资源

程序、进程、线程之间的关系:

程序:大的车间          进程:车间内的一个组        线程:相当于每个执行人员

车间生产产品,车间内的小组实现产品的功能,执行人员单独或共同实现功能。

一个程序可能有多个进程不同的进程实现不同的功能,一个进程可以包含多个线程,线程是进程内的基本调度单位。

进程、线程、程序的区别相关推荐

  1. 进程与程序的区别与联系

    进程的定义 进程是允许某个并发执行的程序在某个数据集合上的运行过程. 进程是由正文段.用户数据段及进程控制块共同组成的执行环境. 正文段存放被执行的机器指令. 用户数据段存放进程在执行时直接进行操作的 ...

  2. 2.1 linux C 进程与多线程入门--(1)进程和程序的区别

    进程和程序的区别: j进程是活动的程序,而程序是一个代码的集合.进程是加载到内存中的程序,而程序没有加载到内存中,只是在磁盘上存储着. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  3. python进程线程协程区别_Python3多线程与协程

    python中的多线程非常的常用,之前一直糊里糊涂地使用,没有一些系统性的概念,记录一下~ 0x001 多线程的优势:可将长时间占用的程序放到后台 可能会加速程序执行速度 能够实现一些类似同步执行的效 ...

  4. python进程线程协程区别_Python中 进程 线程 协程

    一.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在 ...

  5. 28.进程和程序的区别

    1.进程是动态的,程序是静态的. 2.进程是程序执行的一个过程,包括进程创建.进程运行.进程挂起.进程结束.程序是数据+代码.

  6. 进程与程序的区别和联系

    1)进程是程序及其数据在计算机的一次运行活动,是一个运行过程,是一个动态的概念.进程的运行实体是程序,离开程序的进程没有存在的意义.而程序是一组有序的指令集合,是一种静态概念. 2)进程是程序的一次执 ...

  7. python进程线程协程区别_进程和线程、协程的区别

    现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来.python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程.本文主要介绍进程.线程和协程三者之间的区 ...

  8. linux进程和程序的却别,操作系统:进程的概念和与程序的区别

    进程的概念和与程序的区别 1.进程的定义 进程是允许某个并发执行的程序在某个数据集合上的运行过程. 进程是由正文段.用户数据段及进程控制块共同组成的执行环境.正文段存放被执行的机器指令,用户数据段存放 ...

  9. 图解linux32位平台下进程线程长什么样子

    目录 0.linux的进程线程 1.单线程的进程 2.多线程的进程 3 总结 3.1 公共之处 3.2 差异之处 4.好的图解文章推荐 4.1 深入理解linux内核中的栈 4.2 进程虚拟内存管理 ...

最新文章

  1. 物流英语与计算机操作,《物流英语与计算机模拟题及正确答案.doc
  2. Java集合(五):Set集
  3. vue-cli3.0打包时如何忽略某个第三方依赖包
  4. C++/C--NULL与nullptr【转载】
  5. LeetCode笔记:39. Combination Sum
  6. python元祖组成字典_Python基础之元组和字典
  7. 3.业务架构·应用架构·数据架构实战 --- 战略驱动的业务架构设计
  8. 入门排序(冒泡、选择、直接)
  9. socket编程(java实现)
  10. 怎么连接win10共享计算机,xp系统下怎么连接win10共享的打印机
  11. 计算机技术手段在材料中的应用,计算机在材料加工中的应用.docx
  12. MongoDB_基本操作
  13. 计算机主机的拆卸的注意事项,拆解笔记本注意事项及技巧!
  14. 如何快速理解TCP协议
  15. 怎么还原计算机网络,怎么把网络协议还原为默认设置
  16. MySQL 备份 nb3 和 psc的区别
  17. 画出spi输出bdh数据总线时序图_单片机张毅刚课后习题答案.docx
  18. 蓝牙模块惨痛教训——模块与单片机串口的隔离(更新)
  19. abaqus在不同job间传递结果(import)之整理与问题(转载)
  20. 4652 final exam review tutor review

热门文章

  1. 【老保姆教程】:Tesseract-OCR图片文字识别
  2. 张量学习(1):张量的基本概念
  3. PAC学习框架-泛化误差
  4. 《Excel 职场手册:260招菜鸟变达人》一第 4 招 身份证号码、银行卡号等超过15位数据的录入技巧...
  5. python—二次规划求解
  6. 6.10 通过屏幕截图功能快速插入网页图片 [原创Excel教程]
  7. java json parser_自己实现JSON解析器 JsonParser
  8. 4、网络层:三层物理设备:集线器、交换机、路由器【IP、ICMP、BGP、OSPF
  9. MIDI 音乐程序设计 (可以自己编曲的快乐)
  10. 托盘装载问题(PLP)