漫畫:昨天晚上我去這個奇葩餐廳吃飯,被打出來了!
注意:這篇漫畫描述的不是OS實際的工作方式,并沒有那么嚴(yán)謹(jǐn),比真正的如時鐘中斷并不是200毫秒才發(fā)生一次,時間間隔要小得多;再比如操作系統(tǒng)調(diào)度的是進程,不是程序, 希望這些不嚴(yán)謹(jǐn)?shù)牡胤讲粫`導(dǎo)大家。
漫畫主要是為了說明時鐘中斷在程序切換過程中所起到的決定性作用:操作系統(tǒng)也是一個程序,當(dāng)另外一個程序在CPU中運行的時候,操作系統(tǒng)是沒有辦法把人家踢出CPU的,讓自己去執(zhí)行的,因為CPU只會按照指令去執(zhí)行,如果某個程序一直執(zhí)行,不把控制權(quán)轉(zhuǎn)移給操作系統(tǒng),操作系統(tǒng)是無可奈何的。
所以操作系統(tǒng)必須得和CPU配合起來才能完成任務(wù)的切換,在系統(tǒng)啟動的時候,操作系統(tǒng)需要設(shè)定一個時鐘,并且設(shè)置好時鐘中斷處理程序,當(dāng)系統(tǒng)運行起來以后,讓這個時鐘定期地給CPU發(fā)信號,當(dāng)CPU收到時鐘中斷以后,就要停下來,找到時鐘中斷處理程序去執(zhí)行,這個中斷處理程序最終會調(diào)用操作系統(tǒng)設(shè)置好的調(diào)度程序,調(diào)度程序會計算進程用了多少時間,是不是需要切換,這樣,進程的并發(fā)就實現(xiàn)了。
【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號coderising獲取授權(quán)】