天天看點

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

目錄

Chapter1 作業系統簡介

參考資料:作業系統概念(第9版&第7版)

例題

概念整理:

Chapter2 作業系統結構

例題

概念整理

Chapter1 作業系統簡介

參考資料:作業系統概念(第9版&第7版)

例題

1.What are the three main purposes of an operating system?

1.Resource allocator    作業系統相當于一個資料總管,管理計算機硬體。

2.Control program       控制程式,它是人機互動的媒介。

3.Kernel                       核心,為程式運作提供了基礎。

作業系統是管理計算機硬體的程式,它還為應用程式提供基礎,并且充當計算機硬體和計算機使用者的中介。

大型機的作業系統設計的主要目的是充分優化硬體的使用率,個人計算機的作業系統是為了能支援從複雜遊戲到商業應用的各種事物,手持計算機的作業系統是為了給使用者提供一個可以與計算機友善地互動并執行程式的環境。

功能:CPU排程器      實體記憶體管理      虛拟記憶體管理      檔案系統管理      中斷處理與裝置驅動

How does the distinction between kernel mode and user mode function as a rudimentary form of protection (security) system?

使用者模式下隻能執行非特權指令,如果在使用者模式下試圖執行特權指令,那麼硬體并不執行該指令,而是認為該指令非法,并将其以陷阱(trap)的形式通知作業系統。

管理模式可以執行全部特權指令和非特權指令,具有通路所有資源并改變處理器狀态的能力。

特權指令包括:轉換到使用者模式,I/O控制,定時器管理和中斷管理等。

2.Which of the following instructions should be privileged?(特權)

a. Set value of timer.                                  //設定定時器

b. Read the clock.                                      //讀時鐘

c. Clear memory.                                        //清空記憶體

d. Issue a trap instruction.                          //發出一個trap指令

e. Turn off interrupts.                                 //關閉中斷

f. Modify entries in device-statustable.     //修改裝置狀态表中的條目

g. Switch from user to kernel mode.           //從使用者模式切換到核心模式

h. Access I/O device.                                //接入I/0裝置

Answer: a  c  e  f  h

3.Distinguish between the client–server and peer-to-peer models of distributed systems.

Answer: client-server(客戶機-伺服器系統)是以一個PC端作為中心系統響應使用者的需求,其節點不對等。P2P系統模式節點對等,任何一個都可以作為客戶機或伺服器,解決了伺服器瓶頸問題。

計算機系統大緻可分為4個組成部分:計算機硬體、作業系統、系統程式與應用程式、使用者

其關系如圖(text editor 文本編輯器)

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

硬體(hardware),如中央處理單元(central processing unit,CPU)、記憶體(memory)、輸入輸出裝置(I/O devices),為系統提供基本的計算資源。

應用程式,如文本處理程式、編譯器、網絡浏覽器規定了使用者以何種方式使用這些資源。

作業系統控制和協調各使用者的應用程式對硬體的使用。

一個比較公認的定義是:作業系統是一直運作在計算機上的程式(通常稱為核心),其他程式則為系統程式和應用程式。

現代通用計算機系統由一個或多個CPU和若幹裝置控制器通過共同的總線相連而成,該總線提供了對共享記憶體的通路。每個裝置控制器負責一種特定類型的裝置。CPU與裝置控制器可以并發工作,并競争記憶體周期。為了確定對共享記憶體的有序通路,需要記憶體控制器來協調對記憶體的通路。

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

概念整理:

bootstrap program(初始化程式/引導程式):打開電源或重新開機時,計算機都需要運作這個初始化程式,用于初始化作業系統的所有部分。

interrup(中斷):事件的發生通常通過硬體或軟體中斷表示。硬體可随時通通過系統總線向CPU發出信号以觸發中斷,軟體通過執行特别操作如系統調用(system call/monitor call)來觸發系統中斷。

當CPU中斷時,它暫停正在做的事并立即轉到固定的位置去繼續執行。該固定位置通常是中斷服務程式開始位置的位址。中斷服務程式開始執行,執行完後,CPU重新執行被中斷的計算。

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

存儲結構:

随機通路記憶體(random access memory,RAM)

動态随機通路記憶體(dynamic random access memory,DRAM)

記憶體通常是用DRAM的半導體技術來實作的。

記憶體是易失性儲存設備,是以計算機系統會提供輔存(secondary storage)以作為記憶體的擴充。如磁盤(magnetic disk),絕大多數程式會儲存在磁盤上,直到要執行時才裝入到記憶體。

I/O結構

①I/O中斷驅動:适合移動少量資料

②DMA(direct memory access,直接記憶體通路)用于大塊的資料移動

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

單處理器系統和多處理器系統:

單處理器系統中,有一個主CPU能夠執行一個通用指令集。一般以專用裝置處理器的形式出現,如磁盤、鍵盤、圖形控制器。

多處理器系統(并行系統(parallel system) 或 緊耦合系統(tightly coupled system))有多個緊密通信的CPU,共享計算機總線(有時還有時鐘、記憶體、外設等)

多處理器系統有是三個主要優點:

①增加吞吐量:更短的時間做更多的事

②規模經濟:共享資源的好處

③增加可靠性:分擔故障

分類:主要有兩類

非對稱多處理(asymmetric multiprocessing):即每個處理器都有各自特定的任務。一個主處理器控制系統,其他處理器或者向主處理器要任務或做預先定義的任務。即主-從關系,主處理器排程從處理器并安排工作。

對稱多處理(symmetric multiprocessing,SMP):處理器對等

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

雙重操作模式:

使用者模式(user mode)

核心模式(kernel mode / supervisor mode / system mode / privileged mode)

在計算機硬體中增加一個模式位(mode bit)以表示目前模式:核心模式(0),使用者模式(1)

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

特權指令(privileged instruction):會引起損害的機器指令。如果在使用者模式下試圖執行特權指令,那麼硬體将不會執行該指令,而是認為該指令非法,并将其以trap的形式通知OS。

user mode 轉 kernel mode 不是特權指令

kernel mode 轉 user mode 是特權指令

分布式系統(Distributed Systems)

分布式系統是一組實體上分開的,各種可能異構的計算機系統通過網絡連接配接在一起為使用者提供系統所維護的各種資源的計算機的集合。通路共享資源增加了計算速度、功能、資料可用性以及可靠性。

TCP/IP協定是最常用的網絡協定,對于作業系統而言,一個網絡協定隻簡單地需要一個接口裝置,如網絡擴充卡,加上管理它的驅動程式以及按網絡協定處理資料的軟體。

網絡可根據節點間的距離來劃分:區域網路(local-area network,LAN)位于一個房間、一層樓或一棟樓内。廣域網(wide-area netword,WAN)通常位于樓群、城市或國家之間。新型網絡有藍牙(BlueTooth)---實作數米内無線通信,等。

客戶機-伺服器計算----------

client-server系統 & P2P系統 都屬于分布式系統

Chapter2 作業系統結構

QUESTION:

1、作業系統為使用者、程序和其他系統提供了什麼服務?

2、組織作業系統的方法?

3、作業系統是如何安裝、定制以及啟動的?

例題

1.What is the purpose of system calls?

Answer:

系統調用提供了程序與作業系統間的接口,其目的就是讓使用者級空間能夠請求系統級的服務。比如編寫一個從一個檔案讀取資料并複制到另一個檔案的簡單程式,對于互動系統,這過程需要一系列的系統調用:首先在螢幕上寫出提示資訊,再從鍵盤上讀取定義兩個檔案名稱的字元。這個過程就需要許多I/O系統調用。後續也還需要許多各方面的系統調用,從中即可看出,系統調用的作用就是讓使用者級的程序能夠請求作業系統的服務。

2.What are the three major activities of an operating system with regard to memory management?  (記憶體管理)

Answer:

① 記錄記憶體的哪些部分正在被使用以及被誰使用

② 當有記憶體空間時,決定哪些程序可以裝載進記憶體

③ 根據需要配置設定和釋放記憶體

or

1) 按需配置設定與釋放回收記憶體

2) job排程:當記憶體空間可用,決定将哪些程序排程入記憶體

3) 跟蹤記憶體的使用情況,即追蹤記憶體的哪一部分被使用,使用對象是誰

3.What are the three major activities of an operating system with regard to secondary-storage management? ()(二級存儲/輔存)

Answer:

1) 對空閑的存儲空間進行管理

2) 給待存儲的對象配置設定合适的存儲空間

3) 管理磁盤的排程

4.What system calls have to be executed by a command interpreter or shell in order to start a new process?

解:

建立新程序的系統調用流程:

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

(基于UNIX下的程序建立流程)

當啟動新程序,首先Shell或指令解釋器執行fork()系統調用。接着,所選擇的程式通過

exec()裝入記憶體,程式開始執行。fork調用克隆目前執行的程序,而exec調用基于不同

的可執行檔案覆寫一個新的程序

5.What is the purpose of system programs?

Answer:

計算機的邏輯層次:最底層是硬體,上面是作業系統,接着是系統程式,最後是應用程式。系統程式提供了一個友善的環境,以開發程式和執行程式。其中一小部分隻是系統調用的簡單接口,其他的包括檔案管理,狀态資訊,檔案修改,程式語言支援,程式裝入和執行,通信等。

設計系統程式的目的,就是友善使用者解決常見問題。系統程式将那些常用的系統調用打

包在一起,提供接口,為使用者提供基本的功能,避免使用者重複程式設計去解決一些常見的問

題。

6.What is the main advantage of the layered approach to system design? What are the disadvantagesof the layered approach? (分層方法的優劣)

Answer:

優點:構造和調試的簡單化---每一層被“限定”了相應的功能,調試時不用考慮其他層次出錯的可能性。每層為較高層隐藏了一定的資料結構、操作和硬體的存在。較高層利用較低層所提供的功能來實作,不需要知道如何實作這些操作。

缺點:效率較低,每層的資訊傳遞需要額外的開銷。例如,當一個使用者執行I/O操作時,它執行系統調用,并陷入到I/O層,I/O層會調用記憶體管理層,記憶體管理層又調用CPU層,最後傳遞給硬體---每層都會增加額外開銷(如參數傳遞等)。

分層設計的難點在于對層的詳細定義,現在使用數量更少而功能更多的分層設計。

概念整理

系統調用類型

作業系統學習筆記(一) ---作業系統簡介Chapter1 作業系統簡介Chapter2 作業系統結構

作業系統提供的服務/函數:

為使用者提供的服務包括:

1) 使用者界面(接口)

使用者界面是系統和使用者之間進行互動和資訊交換的媒介,它能夠使得使用者友善有效率地去操作硬體以達成雙向之互動,完成所希望借助硬體完成之工作。我們知道使用者模式下是無法直接通路硬體的,是以當在需要通路硬體的情形下使用者模式就無法提供相應的服務了。

2) 程式執行

程式執行這個服務提供的便利就是幫助使用者将程式裝載入記憶體中并運作該程式,且讓該程式正常或不正常結束。由于根據設計,不能信任使用者級的程式來配置設定 CPU的時間,是以,在任何要執行程式的情況下,使用者級程式都無法提供程式執行的服務。

3) I/O操作

當某個使用者程式運作時需要 I/O 裝置,就需要 I/O 操作的幫助。對于特定的裝置,需要特定的功能,這就是 I/O 操作為使用者提供的便利。為了提高效率以及進行相應的保護,使用者通常也無法直接控制 I/O 裝置,是以通常的需要 I/O 操作的情況下,使用者級程式都無法提供I/O操作這樣的服務。

4) 檔案系統操作

為了解決使用者程式需要讀寫檔案和目錄,或根據檔案名來建立和删除檔案、搜尋一個給定的檔案、列出檔案資訊等的操作,提供了檔案系統操作服務。這些操作有很多細節,有了這樣的服務,使用者就不必具體了解細節并實作功能。删除檔案時需要删除名稱檔案資訊并釋放配置設定的塊。還必須實施一系列的檢查保護,以確定正确的檔案通路。使用者程式既不能確定,保護方法的安全性,也因不被信任而被限制無法配置設定空閑塊和在檔案删除時釋放塊。是以,在有這些需求的情況下,使用者級程式都是無法提供這樣的服務的。

5) 通信

許多情況中,程序間需要交換資訊,這就是程序間的通信。系統間傳遞消息通過将消息轉換為資訊包來進行操作。系統将資訊包發送到網絡工作控制器,跨通信媒體傳輸,并由目标系統重新組裝。這就是通信服務為使用者提供的便捷功能。對于使用者程式而言,它們沒有辦法正确找到網絡裝置的接口,不能協調網絡裝置間的通信。是以不能提供通信服務。

為作業系統本身提供的服務/函數

資源配置設定

統計

保護和安全

微核心(microkernel)

微核心即較小的核心,通過将一些非基本部分從核心中移走,将它們實作為系統程式或使用者程式的方法稱為微核心技術。關于哪些應該保留在核心中沒有定論,微核心通常包括最小的程序和記憶體管理以及通信功能。

微核心的主要功能是使客戶程式和運作在使用者空間的各種服務之間進行通信,通信以消息傳遞形式提供。

微核心方法的好處之一在于便于擴充作業系統,所有新服務可以在使用者空間增加而不用修改核心。

繼續閱讀