當前位置:才華齋>範例>工作總結>

作業系統學結

工作總結 閱讀(1.06W)

經過一天半的戰鬥,終於把作業系統概論這本書給拿下了。對於曾經專業課學過一些電腦硬體知識的我來說,這本書更加吸引我,以前一些聽過的名詞或高大上的詞語在這本書上被詳細介紹了,看的非常有收穫。下面來總結下自己的收穫:

作業系統學結

首先第一章引論,在這裡首先介紹了計算機系統,包括了軟體和硬體兩部分。

接下來就是第一章的重點:作業系統。如下圖:

當前流行的作業系統有windows、unix、linux等。微軟的windows系統經歷了一個從簡單到複雜,從低階到高階的過程;從ms-dos---windows 3---windows 95---windows 98---windows nt---windows 2000,再到現在win7、8甚至win10,微軟始終在進步。unix是一個通用的互動式分時作業系統,有at&t公司下屬的bell實驗室開發,在誕生後,原始碼就一直公開,使用者可以參與到unix的升級中。unix的特點:1.短小精悍;2.可裝卸的多層次檔案系統;3.可移植性好;4.網路通訊功能強。linux是網路時代的產品,繼承於unix,並做了很多改進。

第一章總領了全書,後面的二三四五六章都是講的計算機的各種管理,總結如下圖:

在這裡我把每章中的重點用紅色的顏色標記出來了,這樣在精讀的時候就可以有重點的向外擴散,抓住考點,征服考試。第一遍閱讀畫的有點粗糙,在精讀的時候再大大的豐富下。

作業系統學結 [篇2]

這裡的裝置指的是i/o裝置,即馮若依曼所提出的計算機五大部件的輸入/輸出部件,在五大部件中佔其二,可想其重要行了,現在,開始我的總結之旅了

i/o系統可以分為:微機i/o裝置 和主機i/o裝置。這兩個之間的區別和聯絡,我還是不太清楚。感覺微機i/o比主機i/o要簡單。

對i/o系統的管理有以下幾種管理方式:

程式控制方式:這種方式好比學51微控制器編彙編時反覆去檢測一個埠是否有要求的訊號來一樣,簡單,但對cpu利用率太太太太太低了。

中斷方式:這種方式應該用的比較多吧,曾經有老師在課堂上這樣形象地描繪中斷這個東西,比如說你程式設計,突然,你的朋友來了個電話,很明顯,你不能置之不理,所以,你接了這個電話,掛電話之後,你就會返回剛才程式設計思路被打斷的地方,繼續程式設計了。但這種方式的致命缺點就是,每次傳送的資料量太少了,若要傳輸大量的裝置,很明顯,裝置將要進行n多次的中斷,我們知道,我一次中斷,會儲存當前的psw,register等等資訊,所以,是有開銷的,若進行很多次中斷,cpu的利用率同樣很多,因為,很多cpu時間用到對中斷的處理上了。

dma方式:這種方式是現在廣泛運用的管理方式了,向我們現在聽說的什麼開啟dma啊之類的就是指的這個東西。dma全稱是directmemoryaccess(直接記憶體讀寫)。它的優點不用說,因為有direct,所以,是很快的。cpu僅僅是干預開始和結束,其他一概由dma控制器來完成,所以,大大的節省了大量的cpu時間。

通道方式:通道完成主儲存器和外設之間的資訊傳輸,由於通道這種東西平時沒看到過,對這種方式沒有什麼理解,按照書上所說,這加大了i/o和cpu並行工作的程度。想想也是,cpu僅僅控制通道,通道就可以控制mm和i/o裝置之間的資訊傳輸,在後面的章節中,課本對通道的工作過程有了更詳細的描述,就是cpu僅僅給出通道所要執行的通道程式在記憶體中的首地址,其餘#url#的事情就有通道完成了,好像通道是一個附加的cpu,專門用來完成資料傳輸的工作,的確加大了並行工作的程度。

裝置管理的目標:提高裝置利用率,為使用者提供方便,統一的介面。這裡值得我好好理解。

這裡的方便,指的是遮蔽裝置的物理特性,使用者只需要知道操作而不必知道每一個裝置具體的工作原理。這裡的統一指的是不同的裝置用統一的操作方式,這樣,使用者在操作的時候,對不同的裝置,好像是用同一種操作命令,如winxp中對硬碟和u盤的操作好像是一樣的,比如同樣的複製命令等等,統一、簡化了使用者的使用。把方便和統一結合起來看,就是讓使用者面對的不再是一個個的物理裝置,而是一組具有相同特徵的邏輯裝置。

裝置管理的主要技術:中斷技術,dma技術,通道技術,緩衝技術

android logcat 如何獲取輸出所有內容? 想要的東東沒有輸出

。我覺得前三個主要是通過硬體來實現的,而緩衝技術,藉助硬體,主要是以某種演算法,以軟體實現的。

前面一直再說硬體,現在開始說軟體了。

裝置管理軟體的基本思想是分層構造。想想也是#url#,為了實現裝置管理的目標:為使用者提供方便,統一的介面,如果不通過分層的思想,層層抽象,是達不到這個目的的。

裝置管理軟體的目標:裝置獨立性 和統一命名。裝置獨立性可以這樣來理解,當最底層的物理裝置變化的時候,面向使用者的那一層軟體並不用變,因為,它的下層的軟體把這種變化遮蔽了,具體的情況就是,當硬體變化後,我們僅僅改變了驅動程式,但驅動程式與上層軟體的介面並沒有變,所以,我們的上層軟體就不用變化了。提高了軟體的複用。這個原理很像我們在資料庫中學的三級模式,兩級映像,不光提供了物理獨立性,還提供了邏輯獨立性。統一命名比較難懂,通過例子來說明吧,在winxp中,西部資料和 邁拓的硬碟被當作同樣的硬碟裝置來使用,在unix中,i/o裝置被當作檔案來處理,這樣,可以通過路徑來訪問i/o裝置。

作業系統學結 [篇3]

1.聯機命令的型別:系統訪問型別;磁碟操作型別;檔案操作型別;目標操作型別;通訊類;其他命令

2.作業系統的目標:方便性、有效性、可擴充性、開放性。

3.作業系統的作用:os作為使用者與計算機硬體系統之間的介面;os作為計算機系統資源的管理者;os用作擴充機器。

4.作業系統的基本特性:併發、共享、虛擬、非同步。

5.作業系統的功能:處理機管理(程序控制、程序通訊、排程)、儲存器管理(記憶體分配、記憶體保護、地址對映、記憶體擴充。)、裝置管理(緩衝管理、裝置管理、裝置處理)、檔案管理(檔案儲存空間的管理、目錄管理、檔案的讀/寫管理和保護)。

6.常見的作業系統介面有:命令介面、程式介面、圖形介面。

7.單緩衝和雙緩衝的區別:兩臺機器之間的通訊,配置單緩衝則在任意時刻都只能實現但方向的資料傳輸,絕不允許雙方同時向對方傳送資料。在兩臺機器中設定兩個緩衝區,一個用作傳送緩衝區,另一個用作接受緩衝區,可實現雙向資料傳輸。

8.作業系統的定義:是一組控制和管理計算機硬體和軟體資源,合理的對各類作業進行排程以及方便使用者使用的程式集合。

9.高階排程(長度排程或作業排程):用於決定把外存上處於後備佇列中那些作業調入記憶體,併為他們建立程序,分配必要的資源,然後再將新建立的程序排列到就緒佇列上,準備執行。

10.低階排程(程序排程或短程排程):用來決定就緒佇列中的哪個程序應獲得處理機,然後再由分派程式執行把處理機分配給該程序的具體操作。

11.中級排程(中程排程)引入目的:為了提高記憶體利用率和系統吞吐量。

12.程序通訊的型別:共享儲存系統,訊息傳遞系統,管道通訊,訊號量通訊。

13.產生死鎖的原因:競爭資源,程序間推進順序非法

14.產生死鎖的必要條件:互斥條件,請求和保持條件,不剝奪條件,環路等待條件。

15.預防死鎖:(1)摒棄“請求和保持”條件:若系統有足夠的資源分配給某程序,便可把其需要的所有資源分配給該程序,則該程序在整個執行期間,便不會提出資源請求,從而摒棄了請求條件,在分配資源時只要有一種資源不能滿足其程序的要求,即使其餘所需的各資源都空閒,也不分配給該程序,而該程序等待。由於該程序的等待時間,他並未佔有任何資源,因而也摒棄了保持條件,從而可以避免發生死鎖。(2)摒棄“不剝奪”條件:當一個已經保持了某些資源的程序,在提出新的資源請求而不能立即得到滿足時,必須釋放它已經保持了的所有資源,待以後需要時再重新申請,即某一程序已經佔有的資源,在執行中會被暫時的釋放掉,也可被認為是被剝奪了,從而摒棄了不剝奪條件。(3)摒棄“環路等待”條件:所以程序對資源的請求必須嚴格按資源序號遞增的次序提出,這樣在所形成的資源分配圖中,不可能在出現環路,因而摒棄了環路等待條件。

16.為什麼引入動態重定位?如何實現?

答:為了在程式執行過程中,每當訪問指令或資料時,將要訪問的程式或資料的邏輯地址轉換成實體地址,所以引入了動態重定位.可在系統中增加一個重定位暫存器,用它來裝入(存放)程式在記憶體中的起始地址,程式在執行時,真正訪問的記憶體地址是相對地址與重定位暫存器中的地址相加而形成的,從而實現動態重定位.

17.程序的三種基本狀態:就緒狀態,執行狀態,和阻塞狀態。

18.程序控制塊(pcb)的作用:使一個在多道程式環境下不能獨立執行的程式(資料),成為一個能獨立執行的基本單位,一個能與其他程序併發執行的程序。

19.程序控制塊的定義:是程序實體的一部分,是作業系統中最重要的記錄型資料結構。

20.引入程序的目的:為了使多個程式能併發執行,以提高資源利用率和系統吞吐量。

21.引入執行緒的目的:為了減少程式在併發執行時所付出的空開銷,使作業系統具有更好的併發性。

執行緒的屬性:輕型實體,獨立排程和分派的基本單位,可併發執行,共享程序資源。

22.分時系統的特徵:多路性,獨立性,及時性和互動性。

23.程序的特徵:結構特徵,動態性,併發性,獨立性和非同步性。

24.多道批處理系統的特徵:(1)提高cpu的利用率(2)提高記憶體和輸入輸出裝置的利用率(3)增加系統吞吐量:多道性,無序性和排程性(4)巨集觀上並行微觀上序列

優缺點:資源利用率高,系統吞吐量大,平均週期長,無互動能力;需解決的問題:處理機管理問題,記憶體管理問題,輸入輸出裝置管理問題,作業管理問題

25.單道批處理系統含義:由於系統對作業的處理都是成批地進行的,且在記憶體中始終只保持一道作業。單批道處理系統者在提高系統資源後利用率和系統吞吐量。

26.分時系統的定義:在一臺主機上接連了多個帶有顯示器和鍵盤的終端,同時允許多個使用者通過自己的終端以互動方式使用計算機共享主機中的資源。分時系統是為了滿足使用者要求所形成的一種新型os.

27.實時系統是指系統能及時響應外部事件的請求,在規定時間內完成對該事件的處理,並控制所有實時任務協調一致的執行。

28.傳統的作業系統結構:模組化的os結構,分層式作業系統結構,微核心作業系統結構(能有效地支援多處理機執行,所以非常適用於分散式系統環境,具有以微核心為作業系統核心,以客戶/服務為基礎,並採用了面向物件程式設計方法的特徵)。

29.程式的併發執行的實質:巨集觀下程式並行和微觀下程式序列

30.先來先服務排程演算法:週轉時間=完成時間-到達或提交時間

帶權週轉時間=週轉時間/服務時間

31.常用的幾種實時排程演算法:最早截止時間優先即edf演算法,最低鬆弛優先即llf演算法

32.多處理器系統的型別:緊密耦合mps和鬆弛耦合mps,對稱多處理器系統和非對稱多處理器系統

34.死鎖的解除:剝奪資源,撤銷程序

35.記憶體的連續分配方式:單一連續分配;固定分割槽分配;動態分割槽分配;動態重定位分配。

36.動態分割槽分配演算法間的區別:(1)首次適應演算法ff:分配記憶體時,順序查詢,直到找到滿足要求的空閒分割槽為止,優先利用記憶體中的低址空閒區為大作業的記憶體空間創造了條件,每次都從開頭找,增加查詢空閒分割槽時的開銷。(2)迴圈首次適應演算法:從上次找到的空閒分割槽的下一個空閒分割槽開始查詢,直到找到一個能滿足要求的空閒分割槽,從中劃出一塊與請求大小相等的的記憶體空間分配給作業,使記憶體中的空閒分割槽分佈均勻,減少查詢空閒分割槽的開銷,但會缺乏大的空閒分割槽。(3)最佳適應演算法:所有空閒分割槽按容量從小到大順序排列,每次分配記憶體時,把能滿足要求且最小的空閒分割槽分配給作業。但會留下許多難以利用的小空閒區。

37.引起程序阻塞和喚醒的事件:請求系統服務;啟動某種操作;新資料尚未到達;無新工作可做。

38.阻塞原語:block();喚醒原語:wakeup();掛起原語:suspend();啟用原語:active()

39.臨界區:每個程序中訪問臨界資源的那段程式碼。

40.程序同步機制應遵循的規則:空閒讓進;忙則等待;有限等待;讓權等待。

41.p、v操作:wait(s):whiles≤0dono-op

s:=s-1;

signal(s):s:=s+1;

42.檔案的邏輯結構是指從使用者的觀點出發所觀察到的檔案組織形式,也就是使用者可以直接處理的資料及其結構,它獨立於物理特性。有記錄式檔案和流式檔案。

43.檔案的物理結構則是指檔案在外存上的儲存組織形式,與儲存介質的儲存效能有關。有連續檔案、串連檔案、索引檔案。

44.什麼是分頁?什麼是分段?二者主要有何區別?

答:分頁是將一個程序的邏輯地址空間分成若干大小相等的部分,每一部分稱作頁面。

分段是一組邏輯資訊的集合,即一個作業中相對獨立的部分。

分頁和分段的主要區別是:分頁和分段都採用離散分配的方式,且都要通過地址對映機構來實現地址變換,這是它們的共同點;不同點:頁是資訊的物理單位,段是資訊的邏輯單位;頁的大小是由系統固定的,段的'長度因段而異,由使用者決定;分頁的作業地址空間是一維的,分段的作業地址空間是二維的

ling(假離線操作)定義:在聯機情況下實現的同時外圍操作。

ling技術是對離線輸入、輸出系統的模擬。

ling系統的特點:提高了i/o的速度;將獨佔裝置改造為共享裝置;實現了虛擬裝置功能

作業系統學結 [篇4]

1.程序通訊的方式

程序通訊ipc——inter process communication,通訊方式主要有:

管道pipe,管道是一種半雙工單向通訊的方式,適用於親緣關係的程序,通常指父程序與子程序。

有名管道named pipe,與管道類似,不同在於它適用於所有的程序,而不知是親緣關係程序。

訊號量semophone,某個資源可能會被多個程序同時訪問,為了保證程序不衝突,使用訊號量來確保同一時間只有一個程序在訪問資源。通常是一種鎖機制,用來使程序與程序或同一程序間多個執行緒同步。

訊息佇列message queue,存放於核心中。

訊號signal,用來通知某個接受程序某個事件已經發生。

共享記憶體shared memory,有一個程序創建出一片共享的記憶體塊,可被其他程序訪問,是最快的ipc方式。

套接字socket,socket是一種通訊介面,通常適用於internet的通訊。

2.執行緒同步的幾種方式

臨界區,當多個執行緒訪問一個獨佔資源時,臨界區保證了同一時間只有一個執行緒在訪問,其他執行緒會被掛起,知道訪問程序退出臨界區,在由其他執行緒競爭。

互斥量,類似於臨界區,不同的是互斥量支援程序兼得同步,而臨界區是執行緒間的。

事件,某個事件發生後,可以去執行接下來的任務,允許程序在執行某個事件後,喚醒其他程序去執行任務。

訊號量,當需要限制訪問共享資源的執行緒個數時,使用訊號量,訊號量通過使用pv操作來實現同步。

3.執行緒實現的方式

執行緒分為核心執行緒kst(kernal support thread)與使用者執行緒ult(user level thread)。

核心執行緒由系統建立,管理,排程,所以系統回為執行緒安排時間片,一旦某個執行緒阻塞,不會影響其他執行緒,但是核心執行緒有核心管理,執行緒的建立以及使用者態/核心態的模式切換代價都比較大,所以效率比較低。

使用者執行緒是由使用者程式來進行建立,排程,管理。相對於核心執行緒來說,更加靈活,由於是在使用者態上的管理,所以代價比核心管理要少,效率更高,缺點是併發性不足,一旦一個執行緒進入阻塞態,那麼其他執行緒都會阻塞,因為使用者執行緒沒有時間片的概念。

4.使用者態和核心態的區別

使用者態和核心態是作業系統執行的兩種級別,當一個程序執行系統呼叫而進入核心程式碼中,稱其處於核心態,核心態下cpu處於擁有系統最高許可權的核心程式碼中,執行核心程式碼會用到當前程序的核心棧,每個程序都有自己的核心棧;當程序在執行使用者程式碼的時候,cpu處於系統最低許可權的使用者程式碼中執行。

核心態下cpu可以執行任何指令,使用者態下只能執行非特權指令。核心態可以隨時切換到使用者態,而使用者態切換大核心態只有通過系統呼叫和中斷才行。一般一個程式是先在使用者態下執行,需要使用系統呼叫時,通過軟中斷來進入核心態。

5.使用者棧和核心棧的區別

轉:核心建立程序,會為程序建立兩個棧,使用者棧和核心棧。使用者棧——存在於使用者空間,當程序出於使用者態時cpu堆疊指標暫存器存放使用者棧的地址,使用使用者棧;當程序出於核心態時,cpu堆疊指標暫存器存放核心棧地址,使用核心棧。

當由使用者態切換到核心態時,首先將使用者棧地址存在核心棧,然後讓cpu堆疊指向記憶體棧;由核心態切換到使用者態,將核心棧儲存的使用者棧地址回覆為cpu堆疊指標內容即可。

我們是如何知道核心地址的呢?關鍵在於程序從使用者態到核心態轉換後,核心棧總是空的,因為使用者態使用使用者棧,轉換到核心態,核心棧儲存程序在核心中執行的資訊。但是程序從核心態再到使用者態時,核心棧就會被清空。(這個我認為是因為使用者態的許可權原因,無法獲取核心態的資訊,所以為空)所以進入核心態,只需將核心棧棧頂地址設定為cpu堆疊內容。

作業系統學結 [篇5]

程序

為描述和有效控制多個程式的併發執行,引入“程序”。什麼是程序呢?簡單地說,程序就是程式執行的一個動態實體。打個比方,如果把程式比作是菜譜,那麼程序就是廚師(可以比作作業系統)炒菜的全過程。一個程式可以對應多個程序。另外再提一下執行緒的概念,程序是執行緒的容器,程序向作業系統申請資源,而執行在程序下的(多個執行緒)則直接使用該程序所擁有的資源。就是說程序為其內的多個執行緒提供了各種資源和環境,這些執行緒在程序下可以方便的切換、通訊和共享資料而不用作業系統的介入進而效率大大提高;相比之下,程序的切換、通訊和共享資料要麻煩得多,需要切換到“管態”,耗費大量的系統開銷。

程序由三部分組成,程式碼段資料段和pcb。結構如下圖所示。

程序排程

程序排程主要是幾種經典的演算法,注意在瞭解演算法之前應該清楚目標是什麼。目標主要考慮四方面:公平性,cpu利用率,系統吞吐量,程序的響應時間。使用者要求響應時間儘量地短,系統則要求系統吞吐量高、cpu利用率高、各類資源平衡利用。

fcfs,先來先服務,最簡單的演算法,基於fifo佇列。明顯的缺點就是對短程序不公平,想象一下,你去超市只買一袋牛奶,而你前面排著10個人,每個人都是一大車的東西。

spf短程序優先排程是對fcfs的改進,有效地降低了平均等待時間,提高了系統的吞吐量(很適合批處理系統)。但是缺點就是對長程序不利,甚至會餓死長程序(永遠執行不到——在1973年關閉mit的ibm7094時,發現有一個低優先權的程序是1967年提交的但一直都未執行)。該排程演算法的最大難點在於對還沒有執行的程序,怎樣才能準確預測它的執行時間長短,怎麼選出“最短程序”,書上說是根據使用者提交時的估計,其實我覺得還可以建立模型進行估算(比如pcb中的資料資訊可以蒐集起來作為歷史資料,根據歷史資料來預測未執行的程序),但無論如何都存在著不準確性和巨大開銷的危機。

高優先權優先排程演算法,有效地分清任務的輕重緩急。打個比方,你用滑鼠點選一個圖示,但是為了完成之前的事件,“滑鼠點選”事件不得不等待,想想看,一個滑鼠點選都要等個10分鐘那將是多大的災難啊!基於響應比的優先權是比較理想的一種排程,但又不可避免地帶來系統頻繁計算響應比的開銷。

時間片輪轉法有很好的互動性,其主要問題是上下文切換需要額外系統開銷,由此時間片大小的設定很重要。多級反饋佇列排程演算法基於時間片演算法,動態地確定各程序的優先權並根據優先權的不同設定不同大小的時間片獲得了很好的效能。

程序同步

如何訪問臨界資源是解決問題的關鍵。如圖所示。

注意到,先申請資源訊號量再申請互斥訊號量,互斥訊號量嚴格地配對,資源性訊號量交叉配對。(如果先申請互斥訊號量呢?——申請到使用權的程序,如果阻塞等待資源時,將永遠阻塞!)另外,注意讀併發程式的方法

死鎖問題

由於多個程序競爭資源而引發的問題。死鎖發生的四個必要條件:1.互斥;2.請求和保持:一個程序佔有一些資源而等待其他程序的資源;3.不剝奪;4.環路等待。

解決方法

1.預防死鎖:系統通過事先破壞死鎖的一個或者若干個必要條件。

互斥條件是不能破壞的,否則併發執行就沒有意義了。

對於“請求保持”的破壞,可以要求程序要麼一次性申請到所需所有資源然後一次性釋放,要麼等待,這樣很顯然會造成資源的極大浪費,因為對於很多資源程序可能只需要用一會兒,可是由於還有資源需要用而閒置那些已用完的資源。

對於“不剝奪”的破壞,很可能造成極大的系統資源和不必要的開銷,因為如果剝奪了程序對資源的使用權很可能要撤銷很多之前的操作,很多工作都白費。

對於“環路等待”的破壞,則需要程序按照嚴格的順序執行。

2.避免死鎖:引進“安全系統”的概念,用銀行家演算法可以有效地避免死鎖。

3.檢測和解除:利用資源分配圖檢測死鎖狀態(實現時構造類似於銀行家演算法中的資料結構),然後解除死鎖(兩種方法:剝奪;撤銷程序)。

程序間的通訊

程序間估計通訊機制可歸結為三類:共享儲存器系統、訊息傳遞系統和管道通訊。