計算機組成結構(概念模型)
CPU(ALU +CU)纱控,MEMORY辆毡,IO設備三大抽象組件。計算機可以簡單抽象為取指執(zhí)行自動模型機甜害,指令位置存于內存中舶掖,而指令一般由操作符和操作數構成,而操作符可以理解為何種操作(比如加法操作 add)尔店,操作數一般為立即數眨攘,寄存器,內存地址嚣州。從CPU的指令鲫售,可以看出IO設備要能夠被CPU所訪問,必須要有自己的內存地址该肴,IO設備要進行編址情竹。
IO設備如何與CPU設備進行交換,最先想到就是CPU主動去每個IO設備的內存中看看是否有相關數據沙庐,有沒有數據其實IO設備是最清楚鲤妥。于是佳吞,主動輪詢演化成了被動通知到CPU,通知的方式統(tǒng)稱為Interrupt(中斷)棉安。
操作系統(tǒng)
編程模型
編寫程序底扳,說白了就是操作計算機,計算機這么多硬件贡耽,如何最方便且安全的操作衷模,那我們需要一個統(tǒng)一管理者,那它就是操作系統(tǒng)蒲赂,它給我們一個編程的基本環(huán)境阱冶。基本環(huán)境:邏輯代碼和系統(tǒng)調用組成滥嘴。IO操作為最為頻繁操作木蹬,如何進行IO操作?那就是通過系統(tǒng)調用若皱。一般的IO操作镊叁,都是阻塞的系統(tǒng)調用,操作系統(tǒng)這個時候會進行進程的切換走触,便于對計算資源的最大利用晦譬。
IO模型
- 同步IO和異步IO
這是用戶線程和操作系統(tǒng)內核交互來講:
對于同步IO:當用戶發(fā)出IO請求操作后,如果數據沒有就緒互广,需要通過用戶線程或者內核不斷地去輪詢數據是否就緒敛腌,當數據就緒時,再將數據從內核拷貝到用戶線程惫皱;
而異步IO:只有IO請求操作的發(fā)出是由用戶線程來進行的像樊,IO操作的兩個階段都是由內核自動完成,然后發(fā)送通知告知用戶線程IO操作已經完成逸吵。也就是說在異步IO中凶硅,不會對用戶線程產生任何阻塞。 - 阻塞與非阻塞