做底層硬件嵌入式的不愿去懂上層PC軟件,而做上層PC軟件的又不愿去懂底層硬件,做FPGA不懂FPGA邏輯屬硬軟核處理器屬軟?,F(xiàn)在,HLS的出現(xiàn),讓FPGA本屬于硬件HDL的開發(fā)慢慢變成HLS的軟件開發(fā),有種當年匯編開發(fā)走向C開發(fā)的感覺。目前,各大FPGA廠商正在努力搭建HDL到HLS的橋梁,讓以后的我們以后能夠用HLS高效開發(fā)?,F(xiàn)在,讓我們看看Windows應用程序,操作系統(tǒng),計算機硬件之間的相互關系,看看它們之間的橋梁如何搭建的。
其中,上圖中,輸入輸出設備就是計算硬件:鍵盤、鼠標、耳機等。
【1】 .操作系統(tǒng)中有很多操作底層的函數(shù)接口,也就是我們常說的驅(qū)動,這些驅(qū)動是直接操作計算機硬件的動作,比如讓聲卡發(fā)出聲音。但是,你有沒有發(fā)現(xiàn),操作系統(tǒng)可以操作硬件,但是是何時操作了?操作系統(tǒng)不知道,就好比你不買了一個玩具車,裝上電池它就可以跑起來,但是你不控制遙控它并不知道要去那;
【2】.操作系統(tǒng)對設備進行輸入、輸出和閉環(huán)控制。按鍵鼠標狀態(tài)輸入,顯示器輸出顯示,而硬盤的讀寫操作就要不斷的讀取剩余的空間等信息才做有效的寫操作的閉環(huán)控制。在這里說個題外話:學習學習是不斷學和習的閉環(huán),而很多人學的不好就是環(huán)沒有閉好,理論與實踐的結(jié)合更恰當?shù)恼f是理論和實踐的閉環(huán),理論與實踐如果不閉環(huán)就是紙上談兵和一介武夫而已;
【3】.前面說過操作系統(tǒng)能很好的去操作底層硬件,但是不知道什么時候去操作和操作到了什么程度,這些都是由應用程序來是實現(xiàn)的,也就是我們常說的應用程序調(diào)用API來操作底層硬件,不同的是沒有操作系統(tǒng)的單片機由單一的1個Main應用程序去調(diào)用API,讀取所需要的一個底層設備狀態(tài);而有操作系統(tǒng)的PC機由多個應用程序去調(diào)用API,讀取所需要的多個底層設備的狀態(tài)。這里就會遇到一個問題,多個應用程序調(diào)用API操作相同的底層硬件,這不就亂套了?
【4】.在這里Windows通過消息隊列來處理多個應用程序下的問題:將多個應用程序的操作寫入到消息隊列中,并按照先寫先操作(類似FPGA中的FIFO)的原則去調(diào)用API和讀取底層設備的狀態(tài)信息,將時間片切碎分時復用,這種消息隊列的處理機制比較復雜,不過沒關系,這些都由操作系統(tǒng)來管理并完成,應用程序開發(fā)者不用管,開發(fā)者開發(fā)起來簡單方便。
【5】.操作系統(tǒng)中這種消息隊列的機制為多個底層驅(qū)動和多個應用程序通信搭建了很好的橋梁,非常方便應用程序和底層驅(qū)動的獨立開發(fā)維護。如果我們搭建的嵌入式系統(tǒng)中沒有用到操作系統(tǒng),底層和應用層開發(fā)獨立性差,我們完全可以借鑒消息隊列這種思維方式來搭建我們的系統(tǒng)架構(gòu)來獨立底層和應用層的開發(fā)。
-
FPGA
+關注
關注
1651文章
22224瀏覽量
628228 -
WINDOWS
+關注
關注
4文章
3624瀏覽量
92921 -
操作系統(tǒng)
+關注
關注
37文章
7274瀏覽量
128201
原文標題:Windows程序內(nèi)部運行原理
文章出處:【微信號:fpga234,微信公眾號:fpga234】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
超異構(gòu)計算時代的操作系統(tǒng)架構(gòu)綜述

Windows應用程序,操作系統(tǒng),計算機硬件之間的相互關系
評論