Top Banner
硬硬硬硬硬硬硬 硬硬硬 2014/10/1
26

H wand os

Apr 15, 2017

Download

Devices & Hardware

Fang-Ling Lin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: H wand os

硬體與作業系統簡介林芳苓 2014/10/1

Page 2: H wand os

近代電腦系統

Page 3: H wand os

3

CPU 的組成

程式計數器指令暫存器

程式狀態字組

暫存器

算術邏輯單元

控制邏輯

CPU

記憶體程式區段中的某個指令

指令擷取指令解碼資料擷取指令執行資料儲存

CPU的運作流程

Page 4: H wand os

4

何謂暫存器?• 位於 CPU 之中的小小記憶體,存取速度比主記憶體快得多,但是所儲存的資料量則比主記憶體少得多 • 可以分為 3 類:

– 資料暫存器:用來暫時存放指令運算所需的資料 – 位址暫存器:用來儲存位址相關資訊,包括索引暫存器、區段指標暫存器、堆疊指標暫存器等 – 狀態與控制暫存器:例如程式計數器、指令暫存器,以及記錄狀態資訊的程式狀態字組

Page 5: H wand os

5

圖 1-9 簡化的電腦指令範例運算碼 記憶體位址

(a) 指令格式

運算碼 描述0000 將資料從記憶體載入暫存器 A

0001 將資料從記憶體載入暫存器 B

0010 將暫存器 A 、 B 的值相加,放入暫存器 A 中0011 將暫存器 A 中的值寫入記憶體

(b) 前 4 個運算碼列表

Page 6: H wand os

6

圖 1-10 指令執行範例(一)0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 0 1216

0 0 1 6218

記憶體1 0 0

0 2 1 6程式計數器

暫存器 A

暫存器 B

指令暫存器

(a) 擷取位址 100 的指令(將資料從記憶體載入暫存器 A )

暫存器0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 0 1216

0 0 1 6218

記憶體1 0 2

0 2 1 60 0 0 1

程式計數器

暫存器 A

暫存器 B

指令暫存器

(b) 擷取位址 216 的資料

暫存器

Page 7: H wand os

7

圖 1-10 指令執行範例(二)

0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 0 1216

0 0 1 6218

記憶體1 0 2

1 2 1 8

程式計數器

暫存器 A

暫存器 B

指令暫存器

(c) 擷取位址 102 的指令(將資料從記憶體載入暫存器 B )

暫存器0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 0 1216

0 0 1 6218

記憶體1 0 4

1 2 1 80 0 0 10 0 1 6

程式計數器

暫存器 A

暫存器 B

指令暫存器

(d) 擷取位址 218 的資料

暫存器

0 0 0 1

Page 8: H wand os

8

圖 1-10 指令執行範例(三)0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 0 1216

0 0 1 6218

記憶體1 0 4

2 0 0 00 0 0 10 0 1 6

程式計數器

暫存器 A

暫存器 B

指令暫存器

(e) 擷取位址 104 的指令(A+B->A)

暫存器0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 0 1216

0 0 1 6218

記憶體1 0 6

2 0 0 00 0 1 70 0 1 6

程式計數器

暫存器 A

暫存器 B

指令暫存器

(f) 將 A+B 的值放回暫存器 A

暫存器

Page 9: H wand os

9

圖 1-10 指令執行範例(四)0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 0 1216

0 0 1 6218

記憶體1 0 6

3 2 1 60 0 1 70 0 1 6

程式計數器

暫存器 A

暫存器 B

指令暫存器

(g) 擷取位址 106 的指令( 將暫存器 A 中的值寫入記憶體)

暫存器0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

0 0 1 7216

0 0 1 6218

記憶體1 0 8

3 2 1 60 0 1 70 0 1 6

程式計數器

暫存器 A

暫存器 B

指令暫存器

(h) 將資料寫回位址 216

暫存器

Page 10: H wand os

儲存體結構• 任何要被執行的程式都必須儲存在可複寫記憶體,稱之為主記憶體

[ 又叫做隨機存取記憶體 ( random-access memory ,或 RAM )] 。

• load 指令從主記憶體搬移一個字元組到 CPU 內部的暫存器,而 store 指令則是搬移暫存器的內容到主記憶體。

• 大部份電腦系統提供輔助記憶體 ( secondary storage) 做為主記憶體的延伸。輔助記憶體的主要要求是能夠永久保存大量的資料。• 不同儲存系統間的主要差別是︰速度、價格、大小和揮發性。 • 裝置快取記憶體可以改善因為兩種元件之間的存取時間或傳輸速率差

別所造成的性能差別。

Page 11: H wand os

儲存體結構

Page 12: H wand os

I/O 結構

Page 13: H wand os

13

中斷• 由週邊裝置或計時器送給 CPU 的信號,代表需要盡快處理的某個事件• 中斷事件的處理不能對使用者程式的執行結果造成干擾 • 中斷的處理:

– CPU 先完成目前的指令– 跳出正常的執行步驟,執行中斷處理常式,完成中斷事件的處理– 再回到原本的程式,繼續下個指令的執行

• 處理中斷之前,必須先儲存原本程式的各個旗標和暫存器內容,在處理完成之後再回復原狀。

Page 14: H wand os

14

圖 1-13 程式計數器在中斷處理時的變化0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

記憶體0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

記憶體

0 2 1 6A00

1 2 1 8A02

2 0 0 0FFC

3 2 1 6FFE

0 2 1 61 2 1 8

1 0 0

中斷處理程式起始位址

系統堆疊區段程式計數器

(a) 中斷發生前

0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

記憶體0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

記憶體

0 2 1 6A00

1 2 1 8A02

2 0 0 0FFC

3 2 1 6FFE

0 2 1 61 2 1 8

0 1 0 0

A 0 0

程式計數器

(b) 跳到中斷處理程式時

0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

記憶體0 2 1 6100

1 2 1 8102

2 0 0 0104

3 2 1 6106

記憶體

0 2 1 6A00

1 2 1 8A02

2 0 0 0FFC

3 2 1 6FFE

0 2 1 61 2 1 8

0 1 0 0

1 0 0

程式計數器

(c) 繼續執行

Page 15: H wand os

電腦系統架構• 1.3.1 單一處理器系統

– 僅有一個一般處理器之系統• 1.3.2 多處理器系統

– 擁有一個以上的處理器,共同使用匯流排、時脈、記憶體、周邊裝置。– 使用多處理器系統有三個優點 :1. 增加產量 2. 經濟度量 3. 增加可信度。 – 目前有兩種類別: 1. 非對稱多元處理 (asymmetric

multiprocessing)- 主處理器會指定每個處理器不同之任務,有主從關係 2. 對稱多元處理 (symmetric multiprocessing, SMP)- 每個處理器執行相同之任務,沒有主從關係。

Page 16: H wand os

計時器 (Timer)• 計時器 (Timer)

– 必須保證作業系統維持控制;必須防止使用者程式陷入一個無窮迴路之中,而永遠不把控制權交還給作業系統。為達成此目的,可以使用一個計時器 (timer)– 計時器設定在某段時間之後中斷電腦。其週期可以是固定的 ( 例如, 1/60秒 ) 或可變的 ( 例如,從 1毫秒到 1秒 ) 。– 用計時器來防止使用者程式執行太久。簡單的技巧是用程式允許的時間量設定計數器之初值。例如,具有 7 分鐘時間限制的程式設定計數器初值為 420 。每過 1秒鐘,計時器就會發出中斷且計數器值減 1 。只要計數器值為正,控制權仍回到使用者程式。當計數器值擴成負值時,作業系統因為程式超過其時間限制而終止執行。

Page 17: H wand os

行程管理• 行程 (process) 可以視為執行中的程式,行程需要某些特定的資源,包括 CPU 時間、記憶體、檔案和 I/O 裝置等,以完成其工作。這些資源在行程產生或執行時就會配置給它,除了實體資源和邏輯資源的配置之外,有些起始資料 ( 輸入 )也可能會隨著行程的產生而產生。• 行程管理方面,作業系統必須提供下列的功能 :

– 在 CPU 上的行程及執行緒排班– 使用者和系統行程的產生與刪除 – 行程的暫停和恢復 – 提供行程同步機制– 提供行程通信機制

Page 18: H wand os

主記憶體管理• 主記憶體是現代電腦系統運作的中心,程式執行時,它必須映對到絕對位址並且載入主記憶體之中。• 程式執行時,藉由產生程式指令和資料的絕對位址,才能從記憶體存取它們。最後,在程式結束時,它釋放出記憶體為可用狀態,以及載入下一個程式並且執行它。• 記憶體管理方面,作業系統必須具有下列的功能 :

– 記錄正在使用的記憶體部份以及是誰在使用– 在記憶體空間可用時決定載入的行程– 在需要時配置和回收記憶體空間

Page 19: H wand os

儲存體管理• 作業系統提供資訊儲存一個一致性的邏輯觀點,目的是為了讓使用者能更方便的使用電腦系統。• 作業系統摘取儲存裝置的實體特性並將之定義成邏輯儲存單元,也就是檔案。 • 檔案系統管理

– 檔案的建立與刪除– 組織檔案的目錄建立與刪除– 作為處理檔案和目錄的原始支援– 檔案與輔助記憶體的對映– 穩定 ( 非揮發性 ) 儲存裝置上的檔案備份

• 大量儲存體管理– 可用空間管理– 記憶體配置– 磁碟排班

Page 20: H wand os

• 快取記憶體 (caching)

Page 21: H wand os

I/O 系統• I/O 系統

– 記憶體管理構成要素包括緩衝、快取和連線同時週邊作業。– 通用裝置驅動程式介面– 特定硬體裝置驅動程式

Page 22: H wand os

保護與保密• 電腦系統有許多使用者並且允許同時執行多個行程,則存取資料必須井然有序。• 為了這個目的,必須提供一些功能以確保檔案、記憶體區段、 CPU 和其它的資源只能經由作業系統所認可並授權的行程適當地操作。

Page 23: H wand os

特殊用途系統• 1.10.1 即時嵌入系統

– 嵌入式計算機是現存最普遍形式的計算機。這些裝置到處都可發現,從汽車引擎和製造用機器人到 VCRs 和微波爐。– 嵌入式系統通常大部份執行即時作業系統 (real-time operating

systems) 。即時系統是使用在使用者對於處理器的操作或資料的傳送在時間要求上很嚴謹,因此它通常是用在專門應用範圍中的控制裝置。– 感應器將資料傳送給電腦。電腦必須將資料加以分析,而且可能控制調整以便修正感應器輸入。– 控制科學貫驗、皆學影像系統、工業控制系統,以及一些顯示系統都屬於即時系統的例子。其它還有自動引擎燃料噴射系統、家用器具控制器,以及武器系統也是即時系統。

Page 24: H wand os

• 1.10.2 多媒體系統– 大多數的作業系統被設計成處理傳統的資料,像是文字檔、程式、處理文字文件和試算表。

• 1.10.3 手持系統– 手持系統 (handheld system) 包括了個人數位助理 (Personal digital assistants, PDAs) ,例如掌上型電腦與行動電話和許多使用特殊用途嵌入式作業系統。

– 手持系統和應用的發展者面臨到許多挑戰,大部份的限制都是因為這些裝置尺寸限制。

特殊用途系統

Page 25: H wand os

計算環境• 傳統計算

– 系統不是整批式就是交談式。整批式系統以預定方式輸入 ( 從檔案或其它資料來源 ) ,處理了大多數的工作,交談式系統等候來自使用者的輸入。為了將計算資源的使用最佳化,多個使用者共用系統的時間。分時系統對這些系統使用了計時器和排班演算法以便快速地經過中央處理器循環程序給予每個使用者資源的分享。• 客戶 - 伺服器系統 (Client-Server System)

– 計算伺服器系統 (computer-server system) ,檔案伺服器系統 (file-server system) 。

Page 26: H wand os

• 對等式運算 (peer to peer)– 當節點參與網路,以集中式分佈服務在網路註冊它的服務。任何節點需要服務,首先接觸這個集中式分佈服務,來決定那一個節點提供服務,剩下來的通信在客戶端和服務提供者之間發生。– 表現像客戶端的點,必須首先發現那一個節點提供需求服務,藉由播送服務的需求,給網路上所有其它的節點。節點提供回應需求的服務,為了支持這個方法,必須提供搜尋協定,讓點發現在網路上其它點所提供的服務。

• 以網頁為基礎的計算– 網頁客戶端 (Windows 95,98)伺服器 (Windows XP, Linux..) 。

計算環境