以前的中斷處理函式只做為測試用,其實問題還很多,我把它放到了乙個專門的檔案中,kernel/system_call.s
**如下:
.globl timer_interrupt
timer_interrupt:
incl jiffies
movb $0x20,%al
outb %al,$0x20
call do_timer
iret
main.c中新增
extern void timer_interrupt(void);
long volatile jiffies=0;
void do_timer(void)
然後將
set_intr_gate(32,&interrupt);
改為:
set_intr_gate(32,&timer_interrupt);
其實tss.esp0 = 0xffff;這條語句一直不放心 ,隨便指了乙個地方,萬一是**段程式就崩潰了,還是及早處理一下的好。我們給它分配乙個堆疊
struct stack;
struct stack stack0;
然後讓tss.esp0 指向stack0.top就放心多了
tss.esp0 = &stack0.top;
時鐘中斷技術
時鐘中斷技術 1系統中斷與時鐘節拍 1.1 系統中斷 中斷是一種硬體機制,用於通知cpu有個非同步事件發生了。中斷一旦被系統識別,cpu則儲存部分 或全部 現場 context 即部分 或全部 暫存器的值,跳轉到專門的子程式,稱為中斷服務子程式 isr 中斷服務子程式做事件處理,處理完成後執行任務排...
時鐘中斷(2)
1.時鐘中斷的產生 時鐘中斷是特別重要的乙個中斷,因為整個作業系統的活動都受到他的鼓勵。系統利用時鐘中斷維持系統時間,促使環境的切換,以保證所有程序共享cpu 利用時鐘中斷並進行記賬,監督系統工作以及確定未來的排程優先順序等工作。可以說 時鐘中斷 是整個作業系統的脈搏。從本質上說,時鐘中斷只是乙個週...
中斷與時鐘
0 序言 中斷服務程式的執行並不存在於程序上下問中,要求中斷服務程式的時間要盡量短。因此,linux中斷處理中引入上半部和下半部分離的機制。另外,核心對時鐘的處理也是採用中斷方式,而核心軟體定時器最終依賴於時鐘中斷。1 中斷與定時器 基本概念 2 linux中斷處理程式架構 中斷會打斷核心程序的正常...