进程&线程

进程?    

进程=程序段+数据段+进程控制段

1)进程是一个运行起来的程序,程序在运行的时候需要加载到内存,进程是操作系统资源分配的基本单位

2)进程在linux下就是也可以说是一个PCB(进程控制块),实际上是一个task_struct结构体,底层实现上是一个双向链表 ps -ef(查看所有标准进程)

3)标识符(PID),状态(僵尸"资源泄漏"、运行、停止、可中断/不可中断睡眠),优先级,上下文数据,内存指针、程序计数器(即将执行的下一条指令的地址)

 

fork()    exit()    wait()//进程等待 防止僵尸进程产生的主要方式    

进程程序替换(创建子进程的主要目的是分流)

进程间通信(system V环境下)pipe fifo shm msg sem

 

线程?   

一个程序的一个执行路线叫做线程

1)线程是一个进程内部的控制序列,任何一个进程至少有一个执行路线,将进程的资源合理的分配给每个执行流,就形成了线程执行流

2)Linux下的线程都是用进程PCB模拟的(轻量化线程),线程是CPU调度的基本单位

 

Linux下线程共用进程的虚拟地址空间优缺:

优:线程的创建/销毁成本低,切换调度成本低,线程之间通信方便

缺:线程安全(缺乏访问控制)【通过互斥锁/条件变量来解决】,对临界资源的访问容易导致数据混乱,系统调用会对整个进程产生影响

 

线程共享:文件状态表、信号处理方式、工作目录

线程独有:上下文数据、线程id,全局变量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值