程序:一个静态的指令序列。
进程:为执行程序指令的线程而保留的一系列系统资源的集合。
线程:操作系统调度执行的最小单元。
1、进程
应用程序的一个运行实例。管理着一组可用的系统资源,如内存空间,CPU运行时间等。
进程可以处理以下三种状态之一:
运行:正在使用CPU。
就绪:当前能够运行,但由于CPU正在执行其它进程,所以需要等待。
阻塞:由于不能得到所需资源等原因而不能运行,需要等外部事件发生。
进行的基本构成:
一个可执行的指令集合。
一个私有的虚拟地址空间。
系统资源,包含信号量、通信端口、文件等。
至少一个执行线程。
进程ID。
2、线程
操作系统分配系统资源的最小执行单元。
线程的基本构成:
表示处理器状态的寄存器。
两个堆栈,一个在线程处理核心模式时使用,另一个在线程处于用户模式时使用。
一个由子系统、运行时库和动态链接库使用的私有存储区。
一个线程ID。
3、线程同步
保证多个线程的操作之间的协调、有序。线程通过休眠机制实现同步。
4、内核对象
由系统内核创建和管理的对象。应用程序只能通过API函数来操作这些对象。
用于实现线程同步的内核对象有:临界段、互斥量、事件、信号量。
5、对象与句柄
对象:预先定义的静态类型的一个运行态实例。
句柄:标识对象的一个值。
6、安全属性
描述内核对象由谁创建,可以被谁访问。在创建内核对象晨,由一个SECURITY_ATTRIBUTES结构体类型的变量指定。
7、线程调度方式
轮循式,抢占式。 Windows操作系统采用的是抢占式线程调度方案。
Windows操作系统下,线程优先级分为32级(用0-31表示,0最低,31最高)。抢占式调度方案下,优先保证所有高优先级线程全部执行完毕。也就是说只有系统中的所有31优先级的线程全部执行结束,30优先级的线程才有可能被执行。
操作系统会动态调整线程优先级。