糯米文學吧

位置:首頁 > 範文 > 工作總結

操作系統學結

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

操作系統學結

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

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

當前流行的操作系統有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.檢測和解除:利用資源分配圖檢測死鎖狀態(實現時構造類似於銀行家算法中的數據結構),然後解除死鎖(兩種方法:剝奪;撤銷進程)。

進程間的通信

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

標籤:學結 操作系統