Week 1 計算機組成

I. 引

Introduction

    在學習計算機技術之前,了解計算機的組成是非常必要的。這不僅可以讓你對硬件有一個大概的了解,而且會讓你將來對基于硬件運行的軟件有一個更為透徹的理解。只有理解了計算機是如何協調它的部件來工作的才方能理解人們為何這樣設計操作系統和程序。

I. 計算機部件

The Essential Components of a Modern PC

    現代計算機都是遵循馮諾依曼體系進行架構的。它由五大部分組成:運算器+控制器+儲存器+輸入設備+輸出設備。

    計算機也叫電腦。電腦這個名字是非常貼切的,因為計算機和人腦的工作方式非常相似。我們想象計算機的時候不妨想象一下一個人的大腦。研究表明,想象的畫面越是夸張花哨,記憶得越牢靠。試著想象一個非常富有科技感的全息大腦。想象這個大腦正在高速運轉。五顏六色的霓虹穿梭于突觸之間,那是龐大的數據流在傳輸。

u=1596299780,1182363738&fm=21&gp=0.jpg

Figure 1

    大部分的計算機組件都安置在主板(Motherboard)上。主板負責接收來自電源(Power)的電流并按需分配給各個配件。主板上還安置了大部分總線(Bus)??偩€就像無數的神經突觸,將各個部件聯系在一起,使它們能進行信息的交換。如果沒有了主板,所有的部件之間的連接所需要的線的數量難以想象,會把組裝計算機的人逼瘋的。主板的存在大大方便了這一點。輸入設備(Input)通過主板來接入總線以讓我們于計算機交互。如果沒有了輸入設備,我們便無法使用計算機。如此它便和板磚無二。

    我們的大腦接收外界的信息并對其進行處理。計算機對應的部件叫做CPU(全稱為:Central Processing Unit,即中央處理單元)。CPU是鑲嵌在主板上的一塊芯片。CPU上有許多針腳。每個針腳負責一個簡單的運算,比如說加法,取模等等。CPU除了具有處理信息的能力,它還承擔了控制器這個角色。這個我們過會兒再講。

    處理好的信息需要一個地方來存儲。人腦中的海馬體便是負責短期記憶的。計算機中的內存(RAM,全稱為:Random Access Memory)也擔當了一樣的角色。CPU通過總線將數據存儲在內存中。內存分為很多不同的區間,不同區間放著不同的數據。如何才能正確地提取數據并把處理好的數據存放在一個空白的區間呢?CPU的控制器部分就是負責這個功能的,以此來協調計算機的工作。內存的讀取和寫入速度都非??欤萘肯喈斢邢?,而且內存一旦斷電就會永久失去所有數據。為了長期儲存數據,我們設計了硬盤(Hard Drive)。相對于內存,硬盤的速度比較慢,但是它的容量非常大。為什么我們需要內存和硬盤兩個部件而不是只用內存或只用硬盤呢?只用內存的話,速度會非???,但是一旦斷電數據則會全部丟失,非常不現實。新型的NVDIMM內存不會出現斷電丟失數據的情況,但是價格相當昂貴。不說NVDIMM內存,普通內存的價格相對于硬盤就非常昂貴。只用硬盤的話,平時運行的時候速度會非常緩慢。所以計算機采取兩者兼用的策略。

    GPU(全稱:Gprahic Processing Unit, 即圖像處理單元)就是我們常說的顯卡。我們大腦接收外界的數據之后在腦內構建圖像,即我們平時所見的世界。在計算機中,CPU將需要GPU處理的數據通過總線傳輸給GPU。GPU將數據進行處理并轉換成模擬信號傳輸給顯示器(Moniter),最后顯示出我們平時所見的圖像。

II. 操作系統

Operating System

    不同廠商生產的計算機部件規格不同。程序員面對某一組計算機硬件編寫的程序很可能不能在另外一臺不同配置的計算機上運行。為了解決這個問題,我們需要通用軟件,即可以無視硬件不同運行的軟件。操作系統(Operating System,簡稱OS)便是這樣一種軟件。操作系統統一了計算機的規格。不管你的CPU是AMD的還是Intel的,操作系統都將其視為提供計算能力的工具。無論你的內存是512MB還是2GB,32位系統默認你擁有4GB內存,64位系統默認你擁有4G個4G內存(天文數字)。規格的統一極大地方便了程序員的工作,所以我們說程序員編程都是面向操作系統編程而不是面向硬件編程。這個統一的規格便是一臺虛擬機(Virtual Machine)。世界上有很多不同的操作系統。程序員使用的都是高級語言,比如說C,C++,Java等等。這些語言在不同的操作系統上都可以通用,但是一旦程序被編譯了,那程序只能在這個操作系統上運行了,比如說Windows系統編譯為的exe格式,Mac系統的dmg格式等等。

    CPU只有一塊,但是我們的操作系統平時都可以同時運行數十個不同的進程。這是通過操作系統實現的。操作系統將使用CPU的時間進行切割,以5ms為一個區間,逐個執行進程。5ms之后,無論現在的任務是否完成,立刻進行下一個任務。因為CPU的速度很快,所以我們感覺這些進程是同時運行的。其實CPU每次只能執行一個功能。

    以上。

III. 引用

Reference

  1. http://img2.imgtn.bdimg.com/it/u=1596299780,1182363738&fm=21&gp=0.jpg

原創文章,作者:mercerchen,如若轉載,請注明出處:http://www.www58058.com/17954

(0)
mercerchenmercerchen
上一篇 2016-06-10 13:21
下一篇 2016-06-12 10:39

相關推薦

  • 程序員的相關笑話(二)

    從前,有一個牧羊人,他有很多的羊。一天他趕著他的那群羊到了一條公路邊上。突然,有一輛保時潔急駛過來,上面坐著一個年輕人人,穿著Armani的衣服,和Cerutti的皮鞋,Ray-Ban的太陽眼鏡,TAG-Heuer的手表,以前Versace的領帶。 他走到牧羊人面前問牧羊人:“如果我能說出你有多少只羊,你能給我一只嗎?” 牧羊人看了看他那一大群數都數不過來的…

    Linux干貨 2016-07-10
  • LVS的詳細應用

    LVS是Linux Virtual Server的簡寫, 意思是Linux虛擬服務器, 是一個虛擬的服務器集群系統. LVS的宗旨:    1. 使用集群技術和Linux操作系統實現一個高性能, 高可用的服務器;    2. 很好的可伸縮性(Scalability);    3. 很好的可靠性(Re…

    Linux干貨 2016-12-05
  • shell腳本編程

    一、編程基礎: shell腳本是包含一些命令或聲明,并符合一定格式的文本文件 shell腳本的用途有: 自動化常用命令 執行系統管理和故障排除 創建簡單的應用程序 處理文本或文件 1)     第一步:使用文本編輯器來創建文本文件 script.sh 并編寫內容 格式要求:首行shebang &nb…

    Linux干貨 2016-08-15
  • 聯通電信雙鏈路內網VRRP+BFD&&PPTP+MYSQL+FreeRadius實現IDC堡壘機連接IDC機房

    一、具體需求與實現 1、多wan:兩條寬帶接入鏈路,使用VRRP+BFD技術,實現鏈路冗余; 2、IDC機房遠程管理和登錄限制:使用PPTP+freeRadius+mysql實現VPN,限制指定網段或IP進行撥號認證登錄IDC機房,并編寫腳本檢查非法用戶登錄IDC機房服務器情況; 3、內網VLAN劃分:利于安全管理、IP分流和帶寬限制; 4、內網監控:使用N…

    Linux干貨 2016-08-22
  • linux程序包管理rpm,yum和編譯安裝以及冒泡排序練習

    linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代碼–> 預處理–> 編譯–> 匯編–> 鏈接 靜態編譯: 共享編譯:.so ABI:Application Binary Interface W…

    Linux干貨 2016-08-24
  • 一次css頁面加載異常的折騰

    1       原始需求 近期在搭建平臺,因多域名會分割流量,所以希望將類似 ansible.178linux.com  salt.178linux.com qa.178linux.com 這些平臺整合為一個平臺,所示如下 ansible.178linux.com =è www.178li…

    系統運維 2015-06-10
欧美性久久久久