进程:程序在一个数据集上的一次运行过程。是操作系统资源分配的基本单位。
线程:是进程中的一个实体,是被操作系统独立调度和执行的基本单位。一个进程包含一个或多个线程。
线程特征:
1、线程的执行状态包括运行、就绪和等待。
2、进程中的所有线程共享所属进程内的主存和其他资源。
3、拥有自己的线程控制块和执行栈,寄存器。
进程和线程的区别:
1、进程间是独立的,在内存空间、上下文环境上。而线程是运行在进程空间内的,同一进程所产生的线程共享同一内存空间。
2、进程间是可以并发执行的,线程之间也可以并发执行。但同一进程中的两端代码只有在引入线程的情况下才能并发执行。
3、线程是属于进程的,当进程退出时,该进程所产生的线程都会被强制退出并清除。
4、线程占用的资源要少于进程占用的资源,线程间的切换速度比进程间的切换快的多。
管程:是定义了一个数据结构和在该数据结构上能为并发进程所执行的一组操作。这些操作能同步进程和改变管程中的数据。它是一种进程同步机制。在结构上类似于面向对象中的类。在功能上和信号量和p,v操作类似。可以更方便的管理系统的临界资源。
管程特征:
1、模块化:一个管程就是一个可单独编译的实体,结构上和类相仿。
2、抽象数据类型。
3、信息隐蔽。
管程要素:
1、安全性:管程中的数据变量在管程之外是不可见的,只能有该管程的操作过程存取。
2、互斥性:任一时刻只能有一个调用者进入管程。
3、等待机制:设置等待队列及相应的操作,对资源进行管理。
管程和上面三个名词,区别大,但是容易混淆。
管道:是一种进程通信机制。是共享文件模式,它基于文件系统,在两个进程之间,以先进先出的方式实现消息的单向传送。管道是一种特殊文件。