进程间通信IPC,进程;程序;线程区别

并发的目的

提高系统效率

简化程序设计

多线程是实现并发的一种有效手段

多进程并发(多任务操作系统中

多线程并发:一个进程可以通过运行多个线程来并发地执行多项任务

l进程:内核级的实体

包含代码、数据、堆,PCB(进程管理、内存管理、文件管理信息)等

进程结构存在于内核空间,用户程序须通过系统调用进行访问或改变

l线程:用户级的实体

线程结构驻留在用户空间,能够被普通的用户级函数组成的线程库直接访问

线程独有:寄存器(栈指针,程序计数器)、栈等

一个进程中的所有线程共享该进程的状态

 

 

 

 

 

 

进程间通信IPC,进程;程序;线程区别

 

进程互斥

 

进程间通信IPC,进程;程序;线程区别

 

 

进程间关系

进程同步

进程间通信IPC,进程;程序;线程区别

 

例如

进程间通信IPC,进程;程序;线程区别

 

可以用信号量

 

进程通信目的

 

进程间通信IPC,进程;程序;线程区别

 

 

进程间通信的发展

进程间通信IPC,进程;程序;线程区别

 

匿名管道;有名管道;

 

进程间通信的分类

进程间通信IPC,进程;程序;线程区别

 

文件锁互斥,实现读写锁

 

system V  ;posix 消息队列 共享内存  信号量

 

互斥量  条件变量  读写锁   posix

 

IPC(Inter-Process Communication,进程间通信)

进程间通信IPC,进程;程序;线程区别

 

 

 

 

进程间通信IPC,进程;程序;线程区别

 

 

IPC对象的持续性

进程间通信IPC,进程;程序;线程区别

内核自举

 

 

进程间通信IPC,进程;程序;线程区别

 

IPC关系目前有

互斥  同步  死锁

 

进程间通信IPC,进程;程序;线程区别

 

三个进程互相等待也不释放自己的资源就会发生死锁;

死锁产生的必要条件

进程间通信IPC,进程;程序;线程区别

 

一般不破坏互斥条件

防止死锁办法:

进程间通信IPC,进程;程序;线程区别

 

 

银行家算法类比避免死锁

进程间通信IPC,进程;程序;线程区别进程间通信IPC,进程;程序;线程区别

 

产生死锁的例子

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

都在等待右叉子的出现,就出现了死锁;

 

 

信号量

PV原语

进程间通信IPC,进程;程序;线程区别

P原语伪代码,原子性操作

进程间通信IPC,进程;程序;线程区别

 

PCB进程控制块(Processing Control Block)

V原语

进程间通信IPC,进程;程序;线程区别

 

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

 

进程间通信IPC,进程;程序;线程区别

进程间通信IPC,进程;程序;线程区别

临界区

x为临界资源

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

 

程序进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

进程是动态的;短暂的;堆栈段+PCB(进程控制块(Processing Control Block))

程序是静态的;数据段;永久的;

一个进程只能对应一个程序

一个程序可以对应多个进程

 

 

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

32位每个进程有4GB地址空间

 

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

线程优点

进程间通信IPC,进程;程序;线程区别

 

线程缺点

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别 进程间通信IPC,进程;程序;线程区别

 

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

 

进程间通信IPC,进程;程序;线程区别

 

进程间通信IPC,进程;程序;线程区别

 

 

posix使用N:M混合线程模型。