一,线程
1.将进程划分为多个功能单位调度执行。
A | a1 | a2 | a3 |
B | b1 | b2 | b3 |
主要体现在切换效率的提高上可以切换到an上继续执行,避免切换到B,节约切换开销。
2.多线程系统中,同一个进程中的多个线程 共享进程资源 可并发执行
3,线程的属性
(1)多线程OS中,一个进程包括多个线程,每个线程都是利用CPU的基本单位。
(2)轻型实体:只需一点必不可少的、能保证独立运行的资源。(TCB) 独立调度和分派的基本单位:调度切换迅速且开销小。
(3)可并发执行 共享进程资源:同进程中的线程可共享相同的进程地址空间、已打开文件、信号量机构等。
4,TCB管理信息:
状态参数 标识符、运行状态、优先级、寄存器状态、堆栈、专有存储器、信号屏蔽等。
运行状态 执行、就绪、阻塞
5,线程的创建和终止
在多线程OS中,应用程序启动时,通常只有一个线程(初始化线程)在执行,它根据需要再创建若干线程。
创建新线程
利用线程创建函数(或系统调用),提供相应参数。线程创建函数执行完后,返回一个线程标识符供以后使用。
线程被终止:
不立即释放资源,只有当进程中的其它线程执行分离函数后,资源才分离出来能被其它线程利用。 被终止而未释放资源的线程仍可被需要它的线程调用,使其重新恢复运行。
6,线程与进程的比较
(1)调度:线程作为CPU调度的基本单位,而进程只作为其它资源分配单位。
(2)并发性:进程之间可以并发,实质上是不同进程中的两个线程并发。一个进程的多个线程之间亦可并发。
(3)拥有资源:进程间资源相互独立;同一进程的各线程间共享。某进程内的线程在其它进程不可见
(4)系统开销:线程上下文切换在同进程环境下上下文切换要快得多。因为同进程内线程间共享内存地址和打开的文件资源;