Redian新闻
>
胡狗是谷歌的Elop?
avatar
o*6
2
会不会是狗狗派来的卧底,过几年把小米搞垮之后卖给狗狗,自己回去当CEO?
avatar
t*2
3
每个process有一个对应的kernel stack,
这个stack不同于virtual space的那个stack
这个stack好像就8K,
context switch就把当前的一些寄存器存在这里

【在 a*****1 的大作中提到】
: http://www.mitbbs.com/article_t/JobHunting/32248935.html
: context switch的时候保存什么,保存在哪里??
: 保存内核堆栈? 保存到内核里?
: 很模糊。
: 请高手指点。。
: 谢谢

avatar
s*e
4
又不是去当小米CEO,和老埃执行力差远了

【在 o*******6 的大作中提到】
: 会不会是狗狗派来的卧底,过几年把小米搞垮之后卖给狗狗,自己回去当CEO?
avatar
a*1
5
那global page directory 和 page table 呢?
是不是也应该保存? 那他们保存在哪啊?
谢谢

【在 t*******2 的大作中提到】
: 每个process有一个对应的kernel stack,
: 这个stack不同于virtual space的那个stack
: 这个stack好像就8K,
: context switch就把当前的一些寄存器存在这里

avatar
s*k
6
每个process的stack就是它的virtual space的stack,VM的原因每个process都认为自
己拥有所有的memory addr吧。
context switch保存应该是所有寄存器信息,尤其是PC,再加上stack pointer吧

【在 t*******2 的大作中提到】
: 每个process有一个对应的kernel stack,
: 这个stack不同于virtual space的那个stack
: 这个stack好像就8K,
: context switch就把当前的一些寄存器存在这里

avatar
t*2
7
好像是一个cr3管最上层的,然后page table就在每个process的1g那部分的virtual sp
ace里,具体忘记了。。。

【在 a*****1 的大作中提到】
: 那global page directory 和 page table 呢?
: 是不是也应该保存? 那他们保存在哪啊?
: 谢谢

avatar
s*k
8
看了看,context switch分两步:
1. Switching the Page Global Directory to install a new address space; .
2. Switching the Kernel Mode stack and the hardware context, which
provides all the information needed by the kernel to execute the new process
, including the CPU registers.
应该是整个PCB都被switch 进入kernel stack,

【在 s********k 的大作中提到】
: 每个process的stack就是它的virtual space的stack,VM的原因每个process都认为自
: 己拥有所有的memory addr吧。
: context switch保存应该是所有寄存器信息,尤其是PC,再加上stack pointer吧

avatar
a*1
9
register 保存 在kernel stack里。
Page Global Directory 保存在哪啊?
avatar
a*1
10
请高手 们 再解释。。。
谢谢
avatar
s*k
11
X86下是CR3 register吧,ARM不太清楚了。重新flush所有的TLB,还有一二级cache,
所以慢,context switch本身消耗并不大

【在 a*****1 的大作中提到】
: register 保存 在kernel stack里。
: Page Global Directory 保存在哪啊?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。