計算機基礎從入門到放棄


計算機基礎

一、編程語言的作用及與操作系統和硬件的關系

語言的存在是為了溝通,在中國用華語,美國用英語,在計算機領域中也不例外,編程語言是讓計算機能識別的語言,編程語言也是程序員與計算機溝通的橋梁。

與操作系統之間存在依賴關系,當用編程語言編寫完一個軟件的時候,卻沒有操作系統來控制計算機的硬件,那就必須要自己寫一個操作系統來控制計算機硬件

當已經在計算機上安裝了操作系統了,那么就不需要考慮控制計算機的硬件了,只考慮用戶軟件與操作系統之間是否兼容。

與硬件的關系,當軟件安裝到永久保存的硬盤上面,運行軟件時,會先從硬盤中找到這個軟件的啟動文件,然后CPU通過內存來從硬盤中讀寫程序。

 

二、應用程序-》操作系統-》硬件

答:用編程語言來編寫應用程序的,但計算機的硬件卻是按照機器碼指令來執行操作的。於是,就出現了這樣一個問題:用戶如何才能用高級語言來指示一台只能識別

機器碼指令的機器來工作。顯然,在高級語言程序和機器硬仵之間,必須有一個中介來完成高級語言與低級語言的對接工作,這個中介就是操作系統來控制計算機的硬

 

三、cpu-》內存-》磁盤

磁盤是永久存放數據的地方,cpu是計算機的大腦核心,也是計算機中運行最快的一個,如果說cpu要從磁盤中讀取數據來計算的話,會受限於磁盤的I/O速度,cpu那

邊的需要等磁盤從中讀寫然后交給cpu計算,這就需要一個內存來進行從磁盤中提取數據的緩存,cpu就可以直接從內存中讀取數據緩存這樣的話就會快很多。

 

四、cpu與寄存器,內核態與用戶態及如何切換

cpu是計算機的核心是計算機中運行最快的。

寄存器(L1)跟cpu的材料工藝是一樣的所以cpu訪問寄存器是無時延的可以達到1ns但存儲容量只有1KB

 寄存器是用與cpu相同材質制造,與cpu一樣快,因而cpu訪問它無時延。用來避免內存速率比CPU慢幾個數量級的瓶頸問題。

寄存器的分類:

     a.通用寄存器:用來保存變量和臨時結果

     b.程序計數器:保存了將要取出的下一條指令的內存地址。在指令取出后,程序計算器就被更新以便執行后期的指令。

     c.堆棧指針: 指向內存中當前棧的頂端。該棧包含已經進入但是還沒有退出的每個過程中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量以及那些沒有保

存在寄存器中的臨時變量。   

     d.程序狀態字寄存器(Program Status Word,PSW): 這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各種其他控制位。用戶通常讀入整

個PSW,但是只對其中少量的字段寫入。在系統調用和I/O中,PSW非常重要。

cpu有兩種模式內核態和用戶態,當cpu在內核態下運行時,可以通過操作系統來控制所有的硬件

當cpu在用戶態下運行,通過用戶程序來控制,但不能控制硬件。

用戶態下工作的軟件不能操作硬件,但是我們的軟件,一定會有操作硬件的需求,那就必須經歷從用戶態切換到內核態的過程,為此,用戶程序必須使用系統調用(system call),

系統調用陷入內核並調用操作系統,TRAP指令把用戶態切換成內核態,並啟用操作系統從而獲得服務。

 

五、存儲器系列,L1緩存,L2緩存,內存(RAM),EEPROM和閃存,CMOS與BIOS電池

L1緩存(寄存器),與cpu同材質構成,所以數據讀寫無延遲。讀寫速度是1ns雖然速度快但容量均<1KB。

L2緩存(高速緩存器)二級緩存就是一級緩存的緩沖器:一級緩存制造成本很高因此它的容量有限,二級緩存的作用就是存儲那些CPU處理時需要用到、一級緩存又無法存儲的

數據。同樣道理,三級緩存和內存可以看作是二級緩存的緩沖器,它們的容量遞增,但單位制造成本卻遞減。需要注意的是,無論是二級緩存、三級緩存還是內存都不能存儲處理器

操作的原始指令,這些指令只能存儲在CPU的一級指令緩存中,而余下的二級緩存、三級緩存和內存僅用於存儲CPU所需數據。intelCPU的L2緩存是一整塊的,多核多線程的話會出

現幾個cpu搶一塊L2緩存,ADM的CPU是把L2緩存分成相同大小的部分到CPU上,各有優劣。

內存(RAM)是系統存儲主力,通常都是從硬盤讀取數據臨時存儲以備cpu調用,但是斷電后數據將不會保存。

EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和閃存(flash memory)也是非易失性的,但是與ROM相反,他們可以擦除和重寫。不過重寫時花費的時間比寫入RAM要多,

閃存在便攜式電子設備中通常作為存儲媒介。

CMOS與BIOS電池:CMOS是易失性的,許多計算機利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,即使電腦是在關機狀態沒有加

電,時間也仍然可以保持時間的更新,當電腦加電時加載bios會進入cmos查找哪一個時啟動磁盤,一塊電池能使用五年以上,當電池沒電時相關的配置和時間都會丟失。

六、磁盤結構,平均尋道時間,平均延遲時間,虛擬內存與MMU

 

每個磁頭可以讀取一段換新區域,稱為磁道

把一個戈丁手臂位置上所以的磁道合起來,組成一個柱面

每個磁道划成若干扇區,扇區典型的值是512字節

數據都存放於一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據需要經歷尋道時間和延遲時間

平均尋道時間是指當用戶發出指令要尋找一個文件時,磁盤磁頭開始移動到存儲那個文件位置所需要的時間,從指令發出尋址命令到找到目標文件的時間稱為尋址時間

平均延遲時間當找到文件的時候,需要磁道轉一圈在讀取這個數據這個讀取時間就是平均延遲時間。

虛擬內存與MMU許多計算機都有虛擬內存機制會讓磁盤的某塊地方划分為虛擬內存,一般大於內存的1.5倍,讓計算機能運行大於內存的應用程序,會把沒用的應用程序存放到虛擬內存里面等待處理,為了保障計算機的運行只能犧牲計算機的運行速度

所以會很卡。在linux中成為swap,這種機制的核心在於快速地映射內存地址,由cpu中的一個部件負責,成為存儲器管理單元(Memory Management Unit MMU)。

七、磁帶

在同等的價格中磁帶要比其他的存儲設備要低很多且擁有更大的容量,但是讀寫速度很慢時100s,當機房中出現天災人禍時,磁盤的可移動性很強,常被用來做數據備份。

八、設備驅動與控制器

控制器是對硬件發起控制命令,負責給系統提供接口,廠商會給設備加上相應驅動來給操作系統來識別

控制器:是查找主板上的一塊芯片或一組芯片(硬盤,網卡,聲卡等都需要插到一個口上,這個口連的便是控制器),控制器負責控制連接的設備,它從操作系統接收命令,比如讀硬盤數據,然后就對硬盤設備發起讀請求來讀出內容。

控制器的功能:通常情況下對設備的控制是非常復雜和具體的,控制器的任務就是為操作系統屏蔽這些復雜而具體的工作,提供給操作系統一個簡單而清晰的接口

設備本身:有相對簡單的接口且標准的,這樣大家都可以為其編寫驅動程序了。要想調用設備,必須根據該接口編寫復雜而具體的程序,於是有了控制器提供設備驅動接口給操作系統。必須把設備驅動程序安裝到操作系統中。

九、總線與南橋和北橋

總線連接各個硬件設備的線路


北橋(PCI橋)專門連接高速設備


南橋(ISA橋)專門連接慢速設備

十、操作系統的啟動流程


windows操作系統

1.計算機加電

2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等

3.BIOS讀取CMOS存儲器中的參數,選擇啟動設備

4.從啟動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446為引導信息,后64為分區信息,最后兩個為標志位

5.根據分區信息讀入bootloader啟動裝載模塊,啟動操作系統

6.然后操作系統詢問BIOS,以獲得配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,如果沒有,系統則會要求用戶按照設備驅動程序。一旦有了全部的設備驅動程序,操作系統就將它們調入內核。然后初始有關的表格(如進程表),穿件需要的進程,並在每個終端上啟動登錄程序或GUI

linux操作系統

1.計算機加電

2.BIOS自檢

3.系統引導libo/grub

4.啟動內核

5.初始化系統

6.執行系統初始化腳本(/etc/rc.d/rc.sysinit),對系統進行基本的配置,以讀寫方式掛載根文件系統及其它文件系統,到此系統算是基本運行起來了,后面需要進行運行級別的確定及相應服務的啟動。rc.sysinit所做的事情(不同的Linux發行版,該文件可能有些差異)如下:

7.獲取網絡環境與主機類型。首先會讀取網絡環境設置文件"/etc/sysconfig/network",獲取主機名稱與默認網關等網絡環境。

8.測試與載入內存設備/proc及usb設備/sys。除了/proc外,系統會主動檢測是否有usb設備,並主動加載usb驅動,嘗試載入usb文件系統。

9.決定是否啟動SELinux。

10.接口設備的檢測與即插即用(pnp)參數的測試。

11.用戶自定義模塊的加載。用戶可以再"/etc/sysconfig/modules/*.modules"加入自定義的模塊,此時會加載到系統中。

12.加載核心的相關設置。按"/etc/sysctl.conf"這個文件的設置值配置功能。

13.設置系統時間(clock)。

14.設置終端的控制台的字形。

15.設置raid及LVM等硬盤功能。

16.以方式查看檢驗磁盤文件系統。

17.進行磁盤配額quota的轉換。

18.重新以讀取模式載入系統磁盤。

19.啟動quota功能。

20.啟動系統隨機數設備(產生隨機數功能)。

21.清除啟動過程中的臨時文件。

22.將啟動信息加載到"/var/log/dmesg"文件中。

十一、應用程序啟動流程

當運行應用程序,程序會找到硬盤中相應的啟動文件生成進程存儲到內存里,然后根據程序運行通過操作系統進行輸入輸出指令再由CPU完成啟動應用。


免責聲明!

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



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