- 消息传递(管道、FIFO、消息队列)
- 同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)
- 共享内存(匿名的和具名的)
- 远程过程协调(Solaries门和Sun RPC)
进程好比一个车间,线程好比车间里面的工人
- 不同的进程地址空间是独立的,而同一个进程内的线程共享同一地址的空间。
- 进程是资源分配和调度的单位,线程是基本调度单位
- 资源是分配给进程的,线程只拥有很少资源
- 共享: 进程代码段、进程的公有数据、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID
- 不共享: 线程ID、寄存器组的值、线程的堆栈、错误返回码、线程的信号屏蔽码
- 互斥:一个资源每次只能被一个进程使用
- 不可抢占:进程已获得的资源,在未使用完成之前,不能强行剥夺
- 占有并等待:一个进程因请求资源而阻塞时,对已经获得的资源保持不放
- 环形等待:若干个进程之间形成一种首尾相接的循环等待资源关系
ls|cd|mkdir|rmdir|rm|cp|man|less|>>|chmod|sudo|apt get install
- top :查看进程,包括堆栈信息,内存占有率等
- ps -aux :
- 进程提供了两种优先级,一种是普通的进程优先级,第二种是实时优先级
- 任何时候实时优先级都高于普通进程,实时进程只会被更高级的实时进程抢占。同级的进程之间按照FIFO,RR规则调度
- 普通进程根据动态优先级进行调度,动态优先级是由静态优先级(static_prio)调整而来。