• 沒有找到結果。

計算機與程式設計初體驗

N/A
N/A
Protected

Academic year: 2022

Share "計算機與程式設計初體驗"

Copied!
43
0
0

加載中.... (立即查看全文)

全文

(1)

計算機與程式設計初體驗

作業系統

講師:陳琨 (K. Chen)

kchen@csie.org

(2)

4-1 作業系統簡介

• 電腦系統:硬體、作業系統、應用軟體、使用者

• 作業系統:負責管理電腦裡的硬體及週邊設備,扮演 介於使用者與電腦硬體的中間人

(3)

作業系統的主要工作

• 中央處理器管理

– 把處理器有效地安排給各個程序使用

• 記憶體管理

– 妥善分配記憶體給各個程序使用

• 檔案管理

– 讓使用者安全存取及控制檔案

• 週邊設備管理

– 管理各項週邊系統,提供簡易使用者介面程式

• 程序管理

– 依據程序控制表安排資源

(4)

作業系統的演進:主機型系統

• 手動操作階段

使用者必須熟悉硬體操作,運作麻煩並且容易出錯

• 批次系統

把相同或相似的工作集合成為一整批(batched)

各個作業之間的轉接由程式自動操作,縮短手動操作緩 慢所造成的CPU等待時間

簡單的批次系統記憶體配置

(5)

作業系統的演進:主機型系統(cont)

• 多元程式規劃系統

– 利用多元程式規劃增加CPU使用率

– 程序的狀態:

• 新產生:程序正在產生中

• 執行:程序得到資源正在執行

• 等待:程序等待某個事件發生

• 就緒:程序一切已準備就緒

• 結束:程序已完成

(6)

程序狀態關係圖

(7)

處理器排班

(8)

作業系統的演進:主機型系統(cont)

• 分時系統

採用時間觸發,CPU輪流計算各個程序,時間一到就把 CPU交給下一個程序使用

分時系統的特點:

同時性:可同時有若干個使用者連結到同一計算機 進行運算

獨立性:不同使用者之間不會相互干擾

即時性:每一個使用者都可以即時得到計算機的回

(9)

作業系統的演進:個人電腦系統

• 個人電腦設計方向:增進使用者操作方便,

並且提升CPU的回應速度避免使用者等待

• 個人電腦系統的演進:

– 早期:DOS文字指令

– 第一個圖形化介面:Mac IS – 最多人使用:Windows

– 免付費作業系統:Linux

(10)

作業系統的演進:多處理器系統

• 一個以上的處理器,彼此之間緊密地溝通合作,共享 資源,共用時脈

• 多處理器系統可以增進效能,也因共用週邊設備, 共享 電腦資源,所以較省空間

• 多處理器系統中,多個應用程式共用記憶體等資源

• 多處理器系統擁有較好的容錯能力

(11)

作業系統的演進:分散式系統

• 每一台電腦是各自獨立的,並不共享資源或時脈,

彼此之間依靠網路傳輸交換資料

• 分散式系統的應用:Web Service

(12)

作業系統的演進:即時系統

• 即時系統:計算機要能即時回應外部事件的要 求,於規定的時間內完成對該事件的處理,並 且還能控制所有的即時設備和工作能夠協調一 致地執行

• 即時系統的重點:

– 即時時鐘管理:定時工作或延長工作以利與其他工 作協調

– 過載保護:發生過載時,使用緩衝區來應急

– 高度可靠性:計算機發生問題時,系統有容錯能力

能繼續運作

(13)

作業系統的演進:手持系統

• 手持系統:個人數位助理,較手提式電腦輕薄短小

• 手持式系統的特點:

記憶體容量小:必須有較好的記憶體管理方式

處理器運算緩慢:為使電池使用時間較長,故運算速度不 可能太快,因此必須巧妙設計作業系統或應用程式

顯示螢幕小:使用者介面設計必須格外留意好讓使用者看 到較多畫面

(14)

4-2 CPU排班

• CPU 排班:保持隨時都有一個程序在執行,以 提高CPU的使用率

• CPU 排班的五個決策時間點:

– 程序新產生時

– 程序從執行狀態變等待狀態 ( 譬如有I/O要求)

– 程序從執行狀態變就緒狀態 ( 譬如有中斷發生時)

– 程序從等待狀態變就緒狀態 ( 譬如I/O要求得到回應)

– 程序終止結束

(15)

五個必須CPU排班的時間點

(16)

評量CPU排班演算法好壞的標準

• CPU 使用率:使用率越高表示演算法越好

• 產能:算計單位時間內完成的程序數目,但若 是執行大程序則可能導致產能比執行很多小程 序小

• 回復時間:程序經歷多少時間才完成其計算

• 等待時間:一個程序花多少時間在就緒佇列中

等待

(17)

CPU排班 (cont)

• 不可搶先排班 (nonpreemptive)

– 確保已經享有CPU資源的程序能夠一直執行,

不管其他程序的狀態,直到享有CPU資源的程 序自己跳到非執行的狀態才進行排班

• 可搶先排班(preemptive)

– 時時刻刻注意程序的狀態,如果有程序進入就

緒狀態則進行排班,比較正在使用CPU的程序

與進入就緒狀態的程序的優先順序,優先順序

高者可先使用CPU

(18)

CPU排班演算法:先到先處理

• 先到先處理:採用先進先出的方式,服務先到的程序

• 舉例:

• 先到先處理之甘特圖:

(19)

先到先處理 (cont)

• 各程序等待時間:

若抵達先後順序改變如下:

(20)

先到先處理 (cont)

• 則甘特圖如下所示:

• 平均等待時間如下所示:

(21)

最短工作先處理

• 舉例:

• 甘特圖如下所示:

(22)

最短工作先處理 (cont)

• 各程序的等待時間:

(23)

最短工作先處理 (cont)

• 不同的抵達順序及其平均等待時間:

(24)

優先權排班

• 優先權如下:

• 甘特圖如下:

(25)

依序循環排班

• 依序循環排班方式在使用時,先預設好經

過多少時間CPU就該切換執行下一個程序,

也就是設定好間隔時間(time slice)。所有的

程序放在新進先出的佇列裡面,首先CPU

排班從佇列裡挑第一個程序執行,然後開

始進行倒數,時間到的時候就得讓CPU處

理佇列裡下一個程序。

(26)

依序循環排班 (cont)

範例:

甘特圖:

(27)

4-3記憶體管理

• 記憶體管理:

記憶體管理:把記憶體分割成各個區塊,以供各程序或 各使用者使用

記憶體位址定位:把程序所使用的邏輯位址與記憶體的 實際位址作映射

記憶體保護與共享:程序之間所使用的記憶體不能相互 干擾,可是作業系統的部分要讓各個程序共享

(28)

單一連續記憶體配置方式

• 記憶體被分成三個區塊

作業系統存放、應用

程式佔用、未使用區塊

(29)

單一連續記憶體配置(cont)

• 利用界線暫存器和基底暫存器來提供記憶體保護

(30)

動態載入

• 動態載入是指常式(routine)只有在被呼叫的 時候才會被載入,平常存放在磁碟空間內,

執行時若發現所需的常式不在記憶體內則 動態載入

• 動態載入可以提供較大的彈性

(31)

覆蓋

• 主要的部分會一直存放在記憶體中,在特定時候才需 要用到的指令或資料,則只有用到時才放進記憶體中,

其他時候則被覆蓋掉

• 使用覆蓋的範例:編譯器

(32)

置換

• 利用磁碟當作備分的儲存體,用以置換兩個程序

(33)

置換 (cont)

• 洋蔥皮演算法

附註:Paging system是虛擬記憶體管理的重要機制,它將一個 程序的記憶體需求分割成大小相同的pages,以便更有效管理。

(34)

檔案系統

• 檔案系統負責存取和管理檔案資料

• 檔案系統的重要屬性:

– 名稱:讓使用者辨別不同的檔案

– 識別符號:獨一無二的標籤,讓作業系統辨別 檔案

– 型態:顯示檔案的類型

– 位置:標示出檔案所在的磁碟及目錄位置 – 大小:顯示檔案目前的大小

– 時間日期:顯示檔案建立日期、修改日期、最

後開啟日期等

(35)

檔案的基本操作

• 檔案的基本操作

– 建立檔案 – 寫入檔案 – 讀取檔案 – 刪除檔案

• 目錄結構必須支援的功能

– 搜尋 – 建檔

– 刪除檔名

– 更改檔名

(36)

目錄結構:單層目錄

• 檔案皆在同一層目錄

• 同一個目錄下不能有兩個同樣檔名的檔案

(37)

目錄結構:雙層目錄

• 每個使用者的目錄結構相似

• 開啟檔案時,只會搜尋使用者自己的目錄

(38)

路徑

• 絕對路徑:root/user1/homework/hw1.doc

• 相對路徑:/homework/hw1.doc

(39)

4-5 熱門作業系統介紹

• Linux

創始人托瓦茲認為軟體免費的比較好

開放原始碼,透過大家發現漏洞,一起改善系統

• Linux的特色:

多工、多用戶作系統 支援數十種檔系統格式 提供了先進的網路支援

採用先進的記憶體管理機制,更加有效地利用實體記 憶體

開放原始碼,用戶可以自己對系統進行改進

(40)

Android

• 主要用於行動設備 的Android作業系 統,是一個以

Linux 為基礎的半 開放原始碼作業系 統,它由Google 成立的Open

Handset Alliance

(OHA,開放手

機聯盟)持續領導

與開發中。

(41)

熱門作業系統介紹 - Mac

• 第一個圖形化的作業系統

• 優異的使用者介面

• 漂亮的外型設計

• 針對影像圖片等工具有較好的支援程式

(42)

iOS

• 蘋果公司為iPhone、

iPod touch 、iPad、

Apple TV 所開發的

作業系統。

(43)

熱門作業系統介紹 – Windows

• 最多人使用的電腦作業系統

• 1990 年推出Windows 3.0

• 分成DOS枝脈及Windows NT

• Windows NT 代表New Technology

• Windows XP 代表eXPerience

• 2007 年推出 Vista

• 2009 年推出 Windows 7

• 2012 年推出 Windows 8

參考文獻

相關文件

•  問你當前的序列裡的第 k個人是誰 (區間詢問?). • 

•  問你當前的序列裡的第 k個人是誰 (區間詢問?). • 

 善用從計劃得到的經驗 善用從計劃得到的經驗 善用從計劃得到的經驗 善用從計劃得到的經驗, , , ,自行設計及開發新 自行設計及開發新

高中課程會多元化;讓學生有第二次機會而設計的其他教育 課程(例如毅進計劃及在中學試行的類似計劃),會因應新學

• 1961 年Lawrence Roberts使用低速網路線 將劍橋與加州的電腦相連,展示廣域網路 (wide area network) 的概念..

[r]

[r]

Zivot and Andrews(1992) 將 Perron(1989) 擴充成考慮未知結構性 轉變的單根檢定 , 其概念與之前 max-Chow 檢定一樣 : 找出一個轉 變點