0%

温故知新·进程和线程

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等,然后该进程被放入到进程的就绪队列,进程调度程序选中它,为它分配CPU及其他相关资源,该进程就被运行起来。线程是进程的一个实体,是CPU调度和分配的基本单位,线程基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但是它可以与同属一个进程的其他的线程共享进程所拥有的全部资源。

在没有实现线程的操作系统中,进程既是资源分配的基本单位,又是调度的基本单位,它是系统中并发执行的单元。而在实现了线程的操作系统中,进程是资源分配的基本单位,而线程是调度的基本单位,是系统中并发执行的单元。

进程的状态

进程调度

进程间通信

管道(Pipe)

信号量(Semaphore)

信号(Sugnal)

消息队列(Message Queue)

共享内存(Shared Memory)

嵌套字(Socket)

线程间通信

锁机制

互斥锁/量(mutex)

读写锁(rwlock)

自旋锁(spin lock)

条件变量(condition)

信号量机制(Semaphore)

无名线程信号量

命名线程信号量

信号(Signal)

屏蔽(barrier)