L13操作系统之树(过程)
发布日期:2021-07-01 02:21:00
浏览次数:3
分类:技术文章
本文共 777 字,大约阅读时间需要 2 分钟。
PC置初值,不断的取指执行
边烧水边去洗衣服
从而造成程序切换:跳转(用栈)用户栈 内核栈 TCB1 TCB2
TCB切换完成后内核栈切换 再用户栈切换交替的在屏幕打出A B(linux0.01):进程的切换
fork就是系统调用执行的就是int 0x80
jne 208 :父进程返回就要进行调度了(schedule)
因为创建了打出A的进程,那么还需要进行打出B,则又一次int 0x80
wait() 父进程进入阻塞态,调用schedule
他的核心结构就是:一个进程产生出两个子进程(打出A,打出B),子进程的TCB分别贴好,分别是打A和B的函数,父进程进入阻塞态,调用scheduleschedule选择一个进程阻塞(A),选择完了就可以切换回去(switch to)
发现TSS可以完成任务的切换:CPU的寄存器拍在照片里保存在TSS中,用下一个TSS的内容扣在CPU上
A的TSS扣给CPU,把CPU的内容拍照拍给当前进程(current)的TCB里 拍下来-》扣过来当前eip等于100,从4行继续往下执行,eax返回的0那么就是返回的A
现在屏幕出现A需要调度点,
当前在用户态打A,怎么才能打B?调度B 则需 schedule ,那么久要进入内核? 考的是中断,时钟中断2初始化时钟中断。
每到一个进程时,就让当前进程的counter-1,剪刀0时,调用schedule有那么一次时钟中断。counter刚好等于0,A的时间片用完了。就不再执行
调用schedule,进行switch to,switch to找到B,从B的TSS取出内容,发现eip=300,Bj就开始执行了完成了切换,怎么切?把当前CPU的东西放给A进程的PCB的TSS
再把B的TSS东西赋给CPU此时取出的地址是300,执行300,,打出B
转载地址:https://mapengsen.blog.csdn.net/article/details/105927357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月14日 22时14分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
命名难,难于上青天
2019-05-01
没钱没公司,怎么做一款付费产品
2019-05-01
代码整洁之道-编写 Pythonic 代码
2019-05-01
树莓派程序开机自启动
2019-05-01
连锁门店无线通信方案
2019-05-01
配置Lotus Domino集群视频详解
2019-05-01
Linux软件万花筒
2019-05-01
全球开源软件发展趋势分析
2019-05-01
Linux常用的安全工具
2019-05-01
python 多进程之进程池的操作
2019-05-01
flask整理之 flask程序中的debug模式
2019-05-01
比特币,父母这一辈能接受吗?
2019-05-01
为什么要反对比特币,这不代表是空气币
2019-05-01
SnapEx的新感觉,对新手很友好
2019-05-01
首个聚合器怎么产生的,并运用领域在什么
2019-05-01
区块链技术应用,最先医疗行业
2019-05-01
新币上市旧币会降价吗
2019-05-01
当博士进入币圈会怎么样
2019-05-01
PHP之 使用PHPMailer插件实现邮件发送功能
2019-05-01