流程:
1.push register的內容進入stack
2.把stack pointer存到TCB之中
3.切換stack為高優先權的task的stack
4.pop出register的值
5.interrupt return
構想:
利用了stack來保存各register的值,維持了運算的內容與狀態,為的是等到切換回來時又能夠再次pop回來,而stack的位置則由每個task的TCB各自去保存。
猜測:
不直接把放在TCB內大概是因為一個task不一定會用到所有的register,如果用這種作法會造成空間浪費;或者是單純不希望眾多TCB把記憶體容量占用過多。
沒有留言:
張貼留言