原语是一种特殊的程序,它的执行具有原子性。也就是说,这段程序的运行必须一气呵成,不可中断
那么什么是“进程运行环境信息”呢?
CPU中会设置很多“寄存器”,用来存放程序运行过程中所需的某些数据。
这些指令顺序执行的过程中,很多中间结果是放在各种寄存器中的
当原来的进程再次投入运行时,可以通过PCB恢复它的运行环境
学习技巧:进程控制会导致进程状态的转换。无论哪个进程控制原语,要做的无非三类事情:
进程间通信(Inter-Process Communication, IPC
)是指两个进程之间产生数据交互。
因此,操作系统为进程通信提供了三种方式:
(1)
(2)
(3)
很多编程语言提供了强大的线程库,可以实现线程的创建、销毁、调度等功能。
线程如果是用”用户级线程“的方式来实现,cpu的调度单位依然是进程,操作系统是给进程分配cpu时间的。因此,即便我们的电脑是多核处理机,但是由于此时进程才是cpu调度的基本单位,因此,进程只能被分配一个核心,因此,这些线程并不能并行运行
大多数现代操作系统都实现了内核级线程,如Windows、Linux
内核级线程的线程实现方式下,内核级线程是处理机调度的基本单位,而进程只作为分配资源的基本单位,因此在多核cpu的环境下,这几个线程可以分别分派到不同核心下并行执行
这些用户级线程不可能并行运行,因为只有内核级线程才是处理机的分配单位,如果一个进程只对应一个内核级线程,那么在同一时刻,这个进程只能被分配一个cpu的核心;如果给这个进程分配多个内核级线程的话,那么在多核环境下,这些内核级线程可以并行运行。但在考试中,如果提到“多对一的线程模型”,那么我们默认一个进程只被分配了一个内核级线程
由于此时一个进程它有两个内核级线程,因此,其中一个内核级线程被堵塞了的话,另一个内核级线程可以继续运行下去,克服了多对一并发度不高的缺点
上一篇:Quartz深度实战
下一篇:python练习(1)