进程:(1)资源所有权 :保存进程的虚拟地址空间和对处理器、IO、文件资源的控制权 (2)具有执行状态和调度优先级,是操作系统调度并分派的实体。
即资源分配和保护的实体。
线程:程序执行的实体
线程的优点:称为轻量级进程
(1)创建和终止一个线程比创建和终止一个进程花费的时间少
(2)线程间切换比进程间切换花费的时间少
(3)提高了不同执行程序间的通信效率
单处理器线程的例子
(1)前台和后台操作,如字处理程序
(2)异步处理
(3)加速执行
(4)模块化处理
线程状态:
产生,阻塞,解除阻塞,结束
线程分类:
(1)用户级线程:在一个纯粹的ULT程序中,线程的管理完全由应用程序控制,内核没有意识到线程的存在。
优点:
①所有线程的管理数据结构都在一个进程的用户地址空间,进程不用为了管理线程而切换到内核空间,降低了开销。
②调度算法可以是应用程序专有的。进程A可以采用简单的循环调度,进程B可以采用优先级队列调度,不会影响内核底层的调度算法。
③在任何平台上都可以运行,不必修改底层内核。
缺点:
①一个线程被阻塞进程中所有的线程都被阻塞
②一个多线程程序不能利用多处理器技术。内核一次只能把进程分配给一个处理器,一个进程中只有一个线程在执行。
(2)内核级线程:在一个纯粹的KLT程序中,线程的管理完全由内核控制,应用程序没有管理进程的代码。
主要缺点是:在管理线程时,需要切换到内核模式。