L11 内核级线程

进程,必须在内核中!!
进程必须访问资源,所以进程一定是内核级别的。
L11 内核级线程
用户级线程与内核级线程最主要的区别是:核心级线程切换的是两套栈,而用户级线程用的两个栈

L11 内核级线程
用户栈和内核栈如何切换?所有的中断,如中断(时钟,外设,INT指令)都引起上述的切换
L11 内核级线程
执行int 0x80 时,就启动核心线程,就将堆栈指针压入,cs:ip压入。返回时:就怕内核栈弹出,实现返回。
L11 内核级线程
当线程s阻塞时,就要就要进行线程的切换。
???:表示的该线程T的TCB,
????:iret,一段包含中断返回的代码
PC:为线程中int 后的地址
CS:为线程S的代码的短的首地址 500
SS::SP :ss指向用户态程序的首地址,sp为当前行的地址

L11 内核级线程
首先进入内核,从将该进程的PCB保存起来,切换至进程T的PCB,进程T的PCB中包含了,用户态的代码
L11 内核级线程
L11 内核级线程