免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2649 | 回复: 6
打印 上一主题 下一主题

linux 进程和线程问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-03 16:19 |只看该作者 |倒序浏览
linux 中的进程和线程的区别与windowns中的一样吗?linux的进程管理都在什么时候用,在内核中。我看只要是linux的书都有一章介绍进程管理,可是没有介绍多线程的。

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
2 [报告]
发表于 2008-07-03 16:32 |只看该作者
基本没区别

论坛徽章:
0
3 [报告]
发表于 2008-07-03 16:40 |只看该作者

回复 #2 T-bagwell 的帖子

运行一个编译好的c程序是不是就启动一个进程。

论坛徽章:
0
4 [报告]
发表于 2008-07-03 18:24 |只看该作者
原帖由 piaoyi0358 于 2008-7-3 16:40 发表
运行一个编译好的c程序是不是就启动一个进程。



是。

论坛徽章:
0
5 [报告]
发表于 2008-07-11 16:59 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2008-07-11 17:21 |只看该作者
1 基本概念

  1.1. 进程和线程

  可执行文件由指令和数据组成。进程就是在计算机上运行的可执行文件针对特定的输入数据的一个实例,同一个可执行程序文件如果操作不同的输入数据就是两个不同的进程。

  线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享其所附属的进程的所有的资源,包括打开的文件、页表(因此也就共享整个用户态地址空间)、信号标识及动态分配的内存等等。线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一物理内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。

  Linux在核外采用1:1线程模型,即用一个核心进程(轻量进程)对应一个线程,将线程调度等同于进程调度,交给核心完成,而其它诸如线程取消、线程间的同步等工作,都是在核外线程库中完成的。因此可以把进程看作一组线程,这组线程拥有相同的线程组号(TGID),这个TGID就是这组线程序所附属的进程的ID号,每个线程的ID号就是我们用ps命令所看到的LWP号。

  为了方便,从现在起我们用任务来代替进程和线程,即每提到任务,我们就是指线程和进程,除非要强调线程和进程之间的不同之处。任务的周期从被fork开始一直到给任务从进程表中消失。一个进程包括:正文段(text),数据段(data),栈段(STACK)和共享内存段(SHARED MEMORY)。

  1.2. 中断和信号

  (1)中断

  中断通常定义为用来改变CPU执行的指令的顺序的事件。对于其分类可谓是仁者见仁,智者见智,但毕竟有胜于无,这里给出一种分类:硬中断、异常中断和软中断。硬中断也称为外部中断,分为两类,可屏蔽和不可屏蔽。/proc/interrupts列出了当前系统定义的所有硬中断。

  异常中断是系统运行出现异常时候CPU自动产生的中断,如除数为零、使用虚拟内存机制时的缺页保护异常等。软中断是由程序指令中包含INT 指令产生的中断,如单步跟棕;该中断处理的一部分任务可以延迟一会再处理。

  1.3. CPU 的状态

  CPU的状态可分为有7种:

  (1)常规用户态(目态): CPU所执行的任务在访问该任务自己的内存空间;

  (2)核心态(管态):如果CPU正在运行核心程序或在CPU上运行的任务正在通过系统调用请求内核服务,例如访问硬件,这时就称CPU处于核心态;

  (3)CPU运行nice任务,一个优先级别低于普通任务的优先级别的任务;

  (4)io等待: 由于任务等待I/O而使CPU处于空闲状态,这些I/O主要指block I/O,raw I/O,VM paging/swapins;

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
7 [报告]
发表于 2008-07-11 17:23 |只看该作者
原帖由 zqy2000zqy 于 2008-7-11 16:59 发表
linux 中的进程和线程的区别与windowns中的一样吗

拜托, 差远了好吧。

运行一个编译好的c程序是不是就启动一个进程。  这是对的。


对linux内核来说, 线程和进程是一样的, 同样接受cpu调度, 都有 ...


理论上是这样的,实践应该可以证明的,可能我之前是错的?
glibc的pthread是怎么实现的来着?
看君一席话,胜读十年代码

[ 本帖最后由 T-bagwell 于 2008-7-11 17:46 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP