2009-05-06

5/6 OS上課筆記

XXXXX用來看堆疊使用率。


mem由下往上填0。

因為都填0會造成誤判,所以microC就填怪值。


kernel內的大array要記得malloc,不可直接用。



不能用StackPointer(SP值)來算堆疊使用率,因為SP值是目前使用率,不是最高使用率。
所以要數0!!


一般來說stack不需要初始化,除非在debug。



Deletimg a Task
─判斷在ready/waiting queue,並從中移走。

刪除task,之前跟系統要的resource都要free掉。
─要的記憶體、open的file、開的socket

microC/OSII中沒有辦法直接free,只會刪除。(????)

1)錯誤檢查:存在與否
2)從queue中移走
3)插入一個preemption point
─和卡位很像,打開中斷向量(interrupt)。
4)
5)從priority table中移走
6)叫OSSched()
─自殺才需要→最高優先權者才有辦法自殺→因為最高優權者不見了所以ready queue需要改

沒有留言:

張貼留言

Check for typo before sending