摘要: 在看xv6的代码,先做一下简单的笔记。通常来说,进程A持有锁,最终由A释放。但是在进程切换的时候不同。当一个进程释放CPU的时候,调用yield()1 yield()2 {3 lock(&proctab.lock);4 proc->state = RUNNABLE;5 sched();6 unlock(&proctab.lock);7 }proc是全局变量,指向当前进程。当A持有锁,然后调用sched的时候,转到scheduler中去了: 1 scheduler(void) 2 { 3 for(;;){ 4 lock(&proctab.l... 阅读全文
posted @ 2013-03-19 00:46 canghai 阅读(163) 评论(0) 推荐(0)
摘要: 在看jpeg解码,里面有对8x8数组进行重排。里面直接提供了unzig表:int unzig[] = { 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63,}; 阅读全文
posted @ 2013-03-05 22:10 canghai 阅读(275) 评论(0) 推荐(0)