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