进程

第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单元。

进程的特征

  1. 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
  2. 并发性:任何进程都可以同其他进程一起并发执行
  3. 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
  4. 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

结构特征

进程由程序、数据和进程控制块三部分组成。

线程

最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元。

多核CPU下,各个线程也可以分派到不同的CPU上并行执行,也是程序执行流的最小单元,由线程ID,程序计数器,寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,但它可以和同属一个进程的其他线程共享进程所拥有的系统资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的互相制约,导致线程在运行中呈现间断性。

线程又分为:用户级线程和内核级线程

引入线程之后,进程是资源分配的基本单位。而线程几乎不拥有资源,只拥有极少量的资源(线程控制块TCB,寄存器信息,堆栈等),线程是调度的基本单元

进程 线程 协程 详细讲解相关推荐

  1. Linux的进程/线程/协程系列4:进程知识深入总结:上篇

    Linux的进程/线程/协程系列4:进程/线程相关知识总结 前言 本篇摘要: 1. 进程基础知识 1.1 串行/并行与并发 1.2 临界资源与共享资源 1.3 同步/异步与互斥 1.4 进程控制原语 ...

  2. linux的进程/线程/协程系列5:协程的发展复兴与实现现状

    协程的发展复兴与实现现状 前言 本篇摘要: 1. 协同制的发展史 1.1 协同工作制的提出 1.2 自顶向下,无需协同 1.3 协同式思想的应用 2. 协程的复兴 2.1 高并发带来的问题 2.2 制 ...

  3. linux的进程/线程/协程系列3:查看linux内核源码——vim+ctags/find+grep

    linux的进程/线程/协程系列3:查看linux内核源码--vim+ctags/find+grep 前言 摘要: 1. 下载linux内核源码 2. 打标签方法:vim+ctags 2.1 安装vi ...

  4. linux的进程/线程/协程系列1:进程到协程的演化

    linux的进程/线程/协程系列1:进程到协程的演化 前言 摘要: 1. 一些历史:批处理时代 2. 现代操作系统启动过程 3. 进程(process)的出现 4. 线程(thread)与线程池 5. ...

  5. Python之进程+线程+协程(异步、selectors模块、阻塞、非阻塞IO)

    文章目录 一.IO多路复用 二.selectors模块 本篇文字是关于IO多路复用的更深入一步的总结,上一篇 Python之进程+线程+协程(事件驱动模型.IO多路复用.select与epoll)对I ...

  6. 简要说明__python3中的进程/线程/协程

    多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关 稳定性: 进程 > 线程 > 协程 系统资源占用量:进程 > 线程 > 协程 ...

  7. 进程 线程 协程 各自的概念以及三者的对比分析

    文章目录 1 进程 2 线程 3 进程和线程的区别和联系 3.1 区别 3.2 联系 4 举例说明进程和线程的区别 5 进程/线程之间的亲缘性 6 协程 线程(执行一个函数)和协程的区别和联系 协程和 ...

  8. 线程,进程,协程详细解释

    什么是进程和线程 进程是什么呢? 直白地讲,进程就是应用程序的启动实例.比如我们运行一个游戏,打开一个软件,就是开启了一个进程. 进程拥有代码和打开的文件资源.数据资源.独立的内存空间. 线程又是什么 ...

  9. 面试官:换人!他连进程线程协程这几个特点都说不出

    前言 很早之前就在构思这篇文章的主题,进程线程可以说是操作系统基础,看过很多关于这方面知识的文章都是纯理论讲述,编程新手有些难以直接服用. 于是写下这篇文章,用图解的形式带你学习和掌握进程.线程.协程 ...

最新文章

  1. linux终端中运行网银盾,Linux下使用Virtualbox安装 Windows 7 操作网银攻略
  2. python 文件更新_使用Python批量更新服务器文件【新手必学】
  3. centos6.9配置LAMT页面500错误解决
  4. Mysql优化之开山篇
  5. 用神经网络分类里和外
  6. 权限操作-springSecurity快速入门-使用自定义页面
  7. 机器人电焊电流电压怎么调_【华光】HG1000型电焊机现场校准仪
  8. oracle 本年1月1号 yy,ORACLE 日期函数
  9. 蓝蛇端口扫描器 v2.8.4.724
  10. 用对 gitignore
  11. lm_license_file 冲突怎么办_【微课+语音】孩子一个多月没有上学了怎么办?
  12. 实现一个36进制的加法0-9,a-z
  13. IDA Pro7使用总结
  14. 我的ROS2开发环境
  15. Linux修改固定ip 地址,亲测有效
  16. 电脑开机密码忘了怎么办
  17. 大学生创新创业大赛案例_七大学生创新创业大赛样本示例
  18. 二体问题之6:轨道根数及其转化
  19. 如何成为一名合格的程序员?
  20. 爸爸给4岁女儿的遗书 10年后女儿回了信(感人)

热门文章

  1. STM32时钟系统和TIMER配置(溢出中断/PWM)实例
  2. 案例分析——需求分析的重要性
  3. WordPress Gutenberg Block API:块外观
  4. python基础训练—字典
  5. 七大姑八大姨?一款让你轻松搞明白亲戚关系的开源计算器
  6. android studio AAPT: error: mismatched tag
  7. 机器人出魔切还是三相_卡莎出岚切还是魔切?职业选手给出答案,原来我们一直都出错了!...
  8. 【HIT-计算机系统】ICS-Lab5 LinkLab
  9. Spring3和Yii示范程序性能初探
  10. 从“做事用人”到“用人做事”