基礎-計算機及操作系統和應用程序的概念


編程語言用來開發應用程序,應用程序要基於操作系統運行,硬件需要操作系統控制;

CPU即計算機的大腦,它從內存中獲取指令然后進行解碼,最后執行,周而復始直至程序被執行完成;但由於CPU的計算速度遠大於內存,等待內存中的指令,就要浪費時間,所以在CPU的內部存在一個關鍵性的寄存器,用來保存臨時數據,這樣就可以彌補內存速度跟不上CPU的情況了;寄存器分為4類:

通用寄存器;程序計數器,堆棧指針,程序狀態字存儲器(PSW)

用於保存臨時數據的就是通用寄存器了,CPU即將執行的指令會存放在程序計數器中,而還沒有推出的過程框架會從存放在堆棧指針中,最重要的程序狀態字寄存器是用來控制CPU的模式,內核態和用戶態。

內核態:可以理解為讓CPU對硬件直接進行操作調用所有指令集,一般操作系統的指令是可以直接將CPU轉為內核態的

用戶態:可以理解為不讓CPU對硬件直接進行操作只能調用部分指令集,應用程序絕大部分只能將CPU在用戶態下工作,只能通過系統調用(SystemCall)將狀態轉成內核態

存儲器

CPU的L1L2緩存,曾經只聽老師講過CPU有1級2級緩存,但是沒有深度的了解過L1L2的緩存是什么?

L1緩存就是剛才上面提到的寄存器了,與CPU同一個材質制造,死貴死貴的而且存儲容量非常的小小小,32位CPU就是32*32位,64位CPU就是64*64位。

L2緩存可以理解為高速緩存區,其特性與RAM內存相似,是失憶性存儲,斷電數據就會消失了,但是其運行速度非常之快,介於CPU與內存之間。

RAM內存,這就是我們熟知的內存,后現代稱其為運存,失憶性存儲,斷電數據就消失,用於快速存儲指令供CPU調取。

閃存(FlashMemory)我是把它理解為讀寫速度非常快的記憶存儲,你們也可以理解為U盤,SSD硬盤

CMOS是計算機最基礎的存儲器了,用於存儲BIOS的相關設置和計時功能,可這么重要的存儲器卻是失憶性存儲,不可以斷電呀,所以只有靠BIOS電池CR2032,進行持續供電。

機械硬盤(磁盤),記憶存儲器,用於存放大量資料數據,被廣泛應用:

利用扇區存儲,但是圓形尋道,這樣的話每當想要尋找數據時,磁盤就會一圈一圈一圈的尋找存儲的扇區,如果運氣好,瞬間就可以尋找到,如果運氣不好,就等着它一圈一圈的轉吧,這個等待時間就叫平均尋道時間。

磁帶,對於98年出生的我來說,已經沒有見過了,存儲速度慢,容積大,方便攜帶是它的特性,這個特性使他在數據備份領域占據了一定的優勢。

虛擬內存,其實我的理解就是在物理內存不足以分配的時候,物理硬盤將部分存儲空間划分為內存使用,在Linux操作系統中專門有一個虛擬內存的分區叫Swap,而虛擬內存映着在CPU中的地址則被稱為MMU(存儲器管理單元)

控制器,負責控制連接設備,從操作系統中得到指令並控制設備,例如操作系統保存一個數據,就會給硬盤控制器一個指令,控制器收到指令就去執行了,但是控制器本身也是需要執行方法的,這個執行方法,就是所謂的驅動程序
總線是一個非常不好理解的概念,我把它理解成電路:

ISA南橋用於連接非關鍵的慢速設備

PCI北橋用於高速設備的連接和交互

了解了這么多理論知識,來看一下當你的電源燈亮起,到屏幕上出現“小窗口”的過程吧

計算機通電-BIOS開始運行-檢測硬件-BIOS加載CMOS中的設備參數-從啟動設備中加載MBR主分區的內容-讀取分區中的Boot啟動模塊-加載內容到內存中-出現小窗口
應用程序的啟動程序-輸入設備操作系統發送應用程序的指令-操作系統會將應用程序存放在內存中-CPU將指令從內存中取出解碼運算返回,程序就開啟了。

於是乎,一天就過去了

2017年3月10日

閆龍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM