目录
进程=资源+指令执行序列
线程:保留了并发的优点,避免了进程切换代价(映射表上资源不切换)
一、Yileld函数
在线程之间切换
切换的PC在栈中
jmp 204;应当去掉
Yield是用户程序
二、核心级线程
Schedule
1)核心级线程
2)多核必须是核心级线程
并行:同时出发,同时执行,一套资源
并发:同时出发,交替执行,只有一套资源
3)与用户级线程区别
一个栈到两个栈;一套栈到两套栈
4)用户栈和内核栈
用户栈执行INT指令跳入内核栈;
IRET是返回;
这是一套栈
例子:
执行int 0x80,进入内核栈,右侧为一套栈;304是因为执行完int后执行后一句话304;
三、内核中的切换:switch_to
内核级线程switch_to的五段论
四、用户级线程‘核心级线程的对比
1)内核级线程实现
copy_process创建栈