线程的状态转化只关注三种状态
运行态,阻塞态,就绪态

线程的状态转化与进程状态转化类似。
线程通过TCB(线程控制块来组织维护),线程控制块的结构如下:

发生线程切换时,需要保存的信息如上图(括号内)
多个线程组合起来形成线程表,线程表的组织可以又多种。取决于具体的操作系统

调度: 由于资源优先,任务无法同时被执行,需要确定某种规则来决定任务处理顺序。
作业: 一个具体的任务
暂时调到外存等待的进程状态为挂起状态(挂起态)挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态。

挂起与阻塞的区别:
两种状态都是暂时不能获得CPU的服务,但挂起态是将进程映像调到外存去了,而阻塞态下进程映像还在内存中。
进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。
当前CPU运行的进程主动放弃CPU
当前进程被动放弃CPU
需要注意:
在处理中断的过程中,中断处理过程复杂,期间不能进行进程的调度。
进程在操作系统临界区时不能进行进程调度。
临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源。
内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列(由各就绪进程的PCB组成)
原子操作时不能进行进程调度。
非剥夺式:(非抢占式)只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。
剥夺式:(抢占式)当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。
剥夺式进程调度方式可以让进程以时间片轮转的方式来进行调度,同时也具备优先处理任务的能力。
进程调度与进程切换的区别:
狭义上讲:
注意:
进程切换是有代价的,因此如果过于频繁的进行进程调度、切换,必然会使整个系统的效率降低,使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少。