2009年6月19日 星期五

context switch

流程:

1.push register的內容進入stack

2.stack pointer存到TCB之中

3.切換stack為高優先權的taskstack

4.popregister的值

5.interrupt return


構想:

利用了stack來保存各register的值,維持了運算的內容與狀態,為的是等到切換回來時又能夠再次pop回來,而stack的位置則由每個taskTCB各自去保存。


猜測:

不直接把放在TCB內大概是因為一個task不一定會用到所有的register,如果用這種作法會造成空間浪費;或者是單純不希望眾多TCB把記憶體容量占用過多。

沒有留言:

張貼留言