L11 内核级线程

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

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200214121345463.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTczNjMx,size_16,co
用户栈和内核栈如何切换?
所有的中断,如中断(时钟,外设,INT指令)都引起上述的切换
在这里插入图片描述
执行int 0x80 ,从中断向量表中查找int 0x80对应的系统调用,就启动核心线程,就将堆栈指针压入和cs:ip压入。返回时:从内核栈弹出,实现返回。
在这里插入图片描述
当线程s阻塞时,就要就要进行线程的切换。
???:表示的该线程T的TCB,
????:iret,一段包含中断返回的代码
PC:为线程中int 后的地址
CS:为线程S的代码的短的首地址 500
SS::SP :ss指向用户态程序的首地址,sp为当前行的地址

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020021414074735.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MTczNjMx,size_16,color_FFF
首先进入内核,从将该进程的PCB保存起来,切换至进程T的PCB,进程T的PCB中包含了,用户态的代码

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值