书上和别人也总是说“进程是资源分配的单位、线程是系统调度的单位”,重复一遍一遍又一遍,听的耳朵都起茧了。但有没有想过为什么?
去年有个小伙伴分享了下进程栈和线程栈,我从中似乎找到了答案。

他讲到linux内核会检查该内存地址是否属于该进程,也就是进程地址空间相隔离,各有各的区域,而同进程内的线程之间可没有这个检查,所以线程之间有可能彼此踩到彼此的地址——突然灵光闪动,这也许就是说“进程是资源分配的单位”——因为地址空间的隔离单位是进程,进程间有地址隔离机制。
说线程是调度单位,这个好理解,linux内核不区分进程线程的反正它们都是struct task结构体。只不过进程是一组task,这个task链表的leader是主线程,其他是普通线程,该进程的所有线程共享地址空间,只是在主线程的task的时候分配这些资源,所以说线程是轻量级进程的原因也是在这。而linux内核调度器只认task,所以说线程是调度单位也好理解。

为什么说“进程是资源分配的单位、线程是调度的单位”?相关推荐

  1. linux 编程 调度,Linux的进程线程及调度

    搜索热词 本文为宋宝华<Linux的进程.线程以及调度>学习笔记. 1 进程概念 1.1 进程与线程的定义 操作系统中的经典定义: 进程:资源分配单位. 线程:调度单位. 操作系统中用PC ...

  2. c语言中线程的调度,线程、进程及其调度简介

    知识需要不断总结.验证.迭代,知其然,知其所以然. 1.进程和线程 进程和线程的区别与联系: 进程:资源申请的最小单位 线程:资源调度的最小单位,进程的一部分,描述指令流的执行状态. 内核中,描述进程 ...

  3. 转载_进程、轻量级进程(LWP)、线程

    进程.轻量级进程(LWP).线程 进程.轻量级进程(LWP).线程 进程:程序执行体,有生命期,用来分配资源的实体 线程:分配CPU的实体. 用户空间实现,一个线程阻塞,所有都阻塞. 内核实现,不会所 ...

  4. potplayer 多个进程_操作系统进程与线程基本概念理解

    主要内容 进程 为什么引入进程? 最开始的操作系统是单道批处理的(一个程序处理完,再处理下一个程序)而IO是低速的,就会出现cpu要等待IO的情况:从而降低了实际效率.后来就引入多道批处理:而程序在执 ...

  5. 进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈...

    进程和线程的区别?什么时候用进程?什么时候用线程? 答:首先得知道什么是进程什么是线程? 我的理解是进程是指在系统中正在运行的一个应用程序:程序一旦运行就是进程,或者更专业化来说:进程是指程序执行时的 ...

  6. 进程和线程的区别?什么时候用进程?什么时候用线程?

    首先得知道什么是进程什么是线程? 我的理解是进程是指在系统中正在运行的一个应用程序:程序一旦运行就是进程,或者更专业化来说:进程是指程序执行时的一个实例. 线程是进程的一个实体. 进程--资源分配的最 ...

  7. [Linux]线程概念_线程控制(线程与进程的区别与联系 | 线程创建 | 线程等待 | 线程终止 | 线程分离 | LWP)

    文章目录 线程概念 进程和线程的关系 线程的优点 线程的缺点 线程控制 Linux线程和接口关系的认识 线程创建 线程ID及进程地址空间布局 线程等待 线程终止 线程终止状态 线程分离 LWP和pth ...

  8. 进程的句柄,PID及线程

    进程(process) 进程是一个正在运行的程序 进程里可以包括多个模块(DLL,OCX,等) 进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位. 一个任务就是一个进程 ...

  9. 操作系统之进程管理:4、线程与多线程

    4.线程与多线程 思维导图 线程 进程的不足 什么是线程 为什么要引入线程 引入线程的好处 线程的特点 多线程 思维导图 用户级线程(ULT) 内核级线程 一对一模型 多对一模型 多对多模型 思维导图 ...

最新文章

  1. 在线作图|2分钟绘制一张箱线图
  2. 【 MATLAB 】DFT性质讨论(一)线性、循环反转、共轭与实序列的对称性
  3. 一篇文读懂分布式系统本质:高吞吐、高可用、可扩展
  4. [Android1.5]DigitalClock自定义日期输出格式
  5. linux下重启weblogic(关闭和启动)
  6. SAP Spartacus Set Active BaseSite action执行的时间点 - Route路由触发方式
  7. python去除图片上的文字_Python图像处理之识别图像中的文字(实例讲解)
  8. html表白照片墙,【原创】【申精】用python去告白 绘制照片墙(自定义格式)
  9. 如果可以,我们一起留在竹山。
  10. 内核网络输出帧的处理
  11. YouTube将关闭原创节目部门
  12. jQuery中兄弟元素、子元素和父元素的获取
  13. java实现支付宝第三方登录_Java 实现QQ第三方登录(附赠:完整代码)
  14. 软件发布!DOTA2统计学
  15. c语言快递信息系统有哪些信息,国内知名物流信息管理系统软件有哪些?分别是什么?...
  16. 编写的软件在运行时界面不能移动_常用软件开发工具介绍
  17. Centos7.0 中的中iptables、firewall和SELINUX
  18. matlab 打不开 slx,matlab2014a打不开仿真参数设置对话框怎么办
  19. ArcGIS计算河宽
  20. 感受Java的魅力——基于Java二维数组和if语句编制的税后工资计算方法

热门文章

  1. SQL Server群集共享存储迁移
  2. 通过脚本下派WsusAgent3.0.exe(续)
  3. python中_new_和_init_的区别_Python 中的__new__和__init__的区别
  4. sh脚本和bash脚本_我是如何开始使用bash脚本的
  5. linux挑战:历史命令_博客挑战:分享您关于社区运作方式的知识
  6. oxp开放型可变长协议_培养开放型领导者
  7. 分布式锁 动态代理 Java数据结构List,Set,Map,Spring执行流程,Spring MVC组件
  8. 提升开发效率的 Chrome 开发者工具快捷键参考
  9. css属性前浏览器厂商前缀
  10. Bootstrap媒体对象列表