




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、操 作 系 統(tǒng)1.1 操作系統(tǒng)的地位、目標及作用計算機系統(tǒng)(層次結構)軟件硬件(裸機)應用軟件系統(tǒng)軟件編輯軟件,編譯軟件操作系統(tǒng)計算機系統(tǒng)的組成 :第1章 引論計算機硬件操作系統(tǒng)系統(tǒng)工具用戶應用應用用戶應用開發(fā)人員操作系統(tǒng)開發(fā)人員地位: 緊貼系統(tǒng)硬件之上,所有其它軟件之下(是其它軟件的支撐環(huán)境) 有效性(系統(tǒng)管理人員的觀點):管理和分配硬件、軟件資源,合理地組織計算機的工作流程。方便性(用戶的觀點):提供良好的、一致的用戶接口,彌補硬件系統(tǒng)的類型和數(shù)量差別??蓴U充性(開放的觀點):硬件的類型和規(guī)模、操作系統(tǒng)本身的功能和管理策略、多個系統(tǒng)之間的資源共享和互操作 。目標:作用 :幾種觀點 (1)O
2、S是計算機硬件、軟件資源的管理者。系統(tǒng)調(diào)用(編程接口)命令 命令行圖形界面(GUI)(2)OS是用戶使用系統(tǒng)的接口(3) OS是擴展機(extended machine)/虛擬機(virtual machine)。在裸機上添加:設備管理、文件管理、存儲管理(針對內(nèi)存和外存)、處理機管理1.2 操作系統(tǒng)的發(fā)展史 1.2.1 推動操作系統(tǒng)發(fā)展的主要動力 需求推動了發(fā)展(1) 提高資源的利用率和系統(tǒng)性能(2) 方便用戶 (3) 器件的發(fā)展1.2.2 早期的手工操作 時間 1946 50年代(電子管),集中計算(計算中心),計算機資源昂貴;需求 二戰(zhàn)對武器設計的需要,美國、英國和德國等國家開始了電子數(shù)
3、字計算機的研究工作。 哈佛大學的Howard Aiken 普林斯頓高等研究院的John Neumann(馮諾依曼) 賓夕法尼亞大學的J.Presper Eckert和William Mauchley 德國電話公司的Konraad Zuse以及其他一些人都使用真空管成功地建造了運算機器。 沒有程序設計語言(甚至沒有匯編),更談不上操作系統(tǒng)。 程序員提前預約一段時間,然后到機房將他的插件板插到計算機里。 期盼著在接下來的時間中幾萬個真空管不會燒斷從而可以計算自己的題目。ENIAC計算機運算速度:1000次/每秒, 數(shù)萬個真空管, 占地100平方米工作方式:用戶:用戶既是程序員,又是操作員;用戶是計
4、算機專業(yè)人員;編程語言:機器語言;輸入輸出:紙帶或卡片;工作特點:1) 用戶獨占全機:不出現(xiàn)資源被其他用戶占用的現(xiàn)象,但資源利用率低;2)CPU等待用戶:計算前,手工裝入紙帶或卡片;計算完成后,手工卸取紙帶或卡片;CPU利用率低;主要矛盾: 1)計算機處理能力的提高,手工操作的低效率(造成浪費); 2)用戶獨占全機的所有資源;提高效率的途徑專門的操作員,批處理 1.2.3 單道批處理系統(tǒng)(simple batch processing) 時間 50年代末 60年代中(晶體管):利用磁帶把若干個作業(yè)分類編成作業(yè)執(zhí)行序列,每個批作業(yè)由一個專門的監(jiān)督程序(Monitor)自動依次處理??墒褂脜R編語言
5、開發(fā)。批處理中的作業(yè)的組成:包括用戶程序、數(shù)據(jù)和作業(yè)說明書(作業(yè)控制語言)批處理方式(1) 聯(lián)機批處理 問題:輸入輸出時,CPU處于等待狀態(tài)。 早期的聯(lián)機批處理的硬件控制方式是:作業(yè)的輸入、計算和輸出都是在CPU直接控制下進行的。模型: 早期聯(lián)機批處理 應用帶 系統(tǒng)帶主機卡片輸入機打印機(2)脫機批處理(緩沖技術的一種) 增加衛(wèi)星機完成輸入/輸出功能。主機與衛(wèi)星機可并行工作。 系統(tǒng)帶 應用帶輸出帶輸入帶衛(wèi) 星 機打印機主機卡片輸入機1.2.4 多道批處理系統(tǒng)時間:60年代中 70年代中(集成電路) 60年代初期,計算機開始采用集成電路,多數(shù)廠商有幾條完全不同的生產(chǎn)線,生產(chǎn)不同的計算機。開發(fā)和維
6、護完全不同的產(chǎn)品,對廠商來說是昂貴的。 另外,新用戶,在開始時只需要一臺小計算機,隨著時間的推移,業(yè)務量的增加,到后來可能需要一臺大的計算機,而且希望能在新計算機上執(zhí)行原有的程序。這樣,廠家和用戶都需要軟件在不同型號的計算機之間兼容。目的: 提高資源的利用率。特點:多道:內(nèi)存中同時存放幾個作業(yè)(用戶程序);宏觀上并行運行:都處于運行狀態(tài),但都未運行完;微觀上串行運行:各作業(yè)交替使用CPU;tjop1jop2jop3調(diào)度程序jop1打印jop1再次運行jop2讀數(shù)據(jù)使用cpu使用I/O優(yōu)點: 資源利用率高:CPU和內(nèi)存利用率較高;作業(yè)吞吐量大:單位時間內(nèi)完成的工作總量大;缺點: 用戶交互性差,不
7、利于調(diào)試和修改; 由于所有的計算機都有相同的體系結構和指令集在理論上,為一型號編寫的程序可以在其它型號機器上運行。IBM試圖一次性地解決上述問題代表機器: 1964 年IBM 宣布推System/360計算機系統(tǒng),為第一個采用小規(guī)模集成電路的主流機型。IBM System/360的若干問題: IBM無法寫出同時滿足互沖突需要的操作系統(tǒng),其實別人也一樣不能完成這項工作任務。 IBM OS/360文件系統(tǒng)中有類型字段,定義文件的類型,有定長、不定長記錄、塊狀和非塊狀文件,用戶對于輸出文件的大小,只有通過猜測。 存儲管理有基地址寄存器尋址方式,程序也可以訪問和修改基地址寄存器,但是CPU生成的卻是絕
8、對地址,雖然不用進行動態(tài)再分配,但程序卻被釘死在調(diào)入內(nèi)存時的物理地址上。IBM System/360, 龐大的軟件怪獸 數(shù)千名程序員寫了數(shù)百萬行匯編語言代碼,系統(tǒng)自身占據(jù)了大量存儲空間和一半的CPU時間。 數(shù)百萬行匯編代碼中有成千上萬處錯誤 IBM不斷發(fā)行新的版本試圖更正這些錯誤,每個新版本在更正老錯誤的同時又引入新錯誤。 隨著時間的流逝,錯誤的數(shù)量大致保持不變1.2.5 分時系統(tǒng)時間:70年代中期至今含義: 多個用戶分享使用同一臺計算機。每個用戶給一定的時間運行,然后切換到另一個用戶,一個輪轉周期在宏觀上相當短,用戶感覺不到。主機終端 占用終端與系統(tǒng)用戶交互的作業(yè)前臺作業(yè)系統(tǒng)控制臺不占用終端
9、的用戶(作業(yè))后臺作業(yè)特點:(1)人機交互性好。在調(diào)試和運行程序時由用戶自己操作。(2)共享主機:多個用戶同時使用。(3) 用戶獨立性:對每個用戶而言邏輯上獨占主機。 目前許多操作系統(tǒng)都具有分時處理的功能,在分時系統(tǒng)的基礎上,操作系統(tǒng)的發(fā)展開始分化,如實時系統(tǒng)、通用系統(tǒng)、個人系統(tǒng)等。 1.2.6 實時系統(tǒng)(real-time system) 用于工業(yè)過程控制、軍事實時控制、金融等領域,包括實時控制、實時信息處理。 要求:在一定范圍之內(nèi),響應時間短; 系統(tǒng)可靠性高1.3 操作系統(tǒng)的特征和服務 1.3.1 操作系統(tǒng)的特征 并發(fā)(concurrency) 多個事件在同一時間段內(nèi)發(fā)生。操作系統(tǒng)是一個并
10、發(fā)系統(tǒng),各進程間的并發(fā),系統(tǒng)程序與應用程序間的并發(fā)。操作系統(tǒng)要完成這些并發(fā)過程的管理。并行(parallel) 是指在同一時刻發(fā)生。在多道程序處理時,宏觀上并發(fā),微觀上交替執(zhí)行(在單處理器情況下)。 程序的靜態(tài)實體是可執(zhí)行文件,而動態(tài)實體是進程(或稱作任務),并發(fā)指的是進程。 共享(sharing)多個進程共享有限的計算機系統(tǒng)資源。操作系統(tǒng)要對系統(tǒng)資源進行合理分配和使用。資源在一個時間段內(nèi)交替被多個進程所用?;コ夤蚕恚ㄈ缫纛l設備):資源分配后到釋放前,不能被其它進程所用。同時訪問(如可重入代碼,磁盤文件)虛擬(virtual)一個物理實體映射為若干個對應的邏輯實體分時或分空間。虛擬是操作系統(tǒng)管
11、理系統(tǒng)資源的重要手段,可提高資源利用率。CPU每個用戶(進程)的“虛處理機”存儲器每個進程都占有的地址空間(指令數(shù)據(jù)堆棧)顯示設備多窗口或虛擬終端(virtual terminal)異步性(asynchronism)也稱不確定性,指進程的執(zhí)行順序和執(zhí)行時間的不確定性;進程的運行速度不可預知:分時系統(tǒng)中,多個進程并發(fā)執(zhí)行,“時走時?!?,不可預知每個進程推進的快慢判據(jù):無論快慢,應該結果相同通過進程互斥和同步手段來保證難以重現(xiàn)系統(tǒng)在某個時刻的狀態(tài)(包括重現(xiàn)運行中的錯誤)性能保證:實時系統(tǒng)與分時系統(tǒng)相似,但通過資源預留以保證性能 1.3.2 操作系統(tǒng)的服務 (1)服務類型程序執(zhí)行和終止(包括分配和回
12、收資源)I/O操作文件系統(tǒng)操作通信:本機內(nèi),計算機之間(通常通信服務的使用者為進程,而不是籠統(tǒng)說“主機”)配置管理:硬件、OS本身、其它軟件差錯檢測(2)服務提供方式:系統(tǒng)命令和系統(tǒng)調(diào)用 1.4.1 存儲管理 管理目標:提高利用率、方便用戶使用、提供足夠的存儲空間、方便進程并發(fā)運行。(1)存儲分配與回收(2)存儲保護 (3)地址映射 (4)內(nèi)存擴充(覆蓋、交換和虛擬存儲)1.4.2 處理機管理 完成處理機資源的分配調(diào)度等功能。(1)進程控制 (2)進程同步 (3)進程通信 (4)調(diào)度1.4 操作系統(tǒng)的功能 1.4.3 設備管理 目標:方便設備使用、提高CPU與I/O設備利用率;(1)設備操作
13、(2)設備獨立性(3)設備分配與回收1.4.4 信息管理 解決軟件資源的存儲、共享、保密和保護。(1)文件存儲空間管理(2)目錄管理 (3)文件的讀寫管理和存取控制 (4)軟件管理1.4.5 用戶接口 目標:提供一個友好的用戶訪問操作系統(tǒng)的接口。 (1)系統(tǒng)命令:供用戶用于組織和控制自己的作業(yè)運行。命令行、菜單式或GUI“聯(lián)機”;命令腳本“脫機” (2)編程接口:供用戶程序和系統(tǒng)程序調(diào)用操作系統(tǒng)功能。系統(tǒng)調(diào)用和高級語言庫函數(shù);(系統(tǒng)調(diào)用) 1.5 操作系統(tǒng)分類 1、微機OS 單用戶單任務MS_DOS單用戶多任務Window多用戶多任務UNIX版本2、多處理機操作系統(tǒng)(Multi-process
14、or Operating System) 3、 網(wǎng)絡操作系統(tǒng)(NOS, Network Operating System)4、分布式操作系統(tǒng)(Distributed Operating System)5、非Microsoft系列操作系統(tǒng)1)OS/2 OS/2最初是微軟與IBM共同開發(fā)的,但后來微軟推出Windows 3.x,并獲得不錯的市場反應,終到導致于微軟與IBM分道揚鑣,專心致力于Windows系列操作系統(tǒng)的研發(fā)。而此時由于OS/2的系統(tǒng)需求偏高,因此其市場接受程度偏低。直到IBM在1992年推出OS/2 2.0版,以及稍后的OS/2 Warp 3.0,才真正改變了大家對OS/2的觀感。
15、而IBM在1996年,將OS/2Warp 3.0與LANServer 5.0整合,推出OS/2 Warp Server 4.0版。至此,OS/2 Warp與微軟的Windows NT一樣,已經(jīng)分成Client和Server兩種版本。 OS/2目前的版本是 4.0 Warp系列(96年),其特點如下: 真正、完全的多用戶操作系統(tǒng),其效率很高; 尋址能力高達64TB,使每個程序都可占用512MB的虛擬內(nèi)存; 對象導向式操作環(huán)境,不同程序可通過SOM(System Object Model)共享及交換對象; 支持Java和語音識別,這是目前OS/2領先業(yè)界的先進技術; 內(nèi)置DOS及Windows模擬
16、器,以運行傳統(tǒng)的DOS或Windows應用程序; 完善的多媒體MMPM/2(Multimedia Presentation Manager/2)和3D圖形支持; 高效率的文件系統(tǒng)(HPFS),文件名可長達255個字符。 參考網(wǎng)站:http:/os/warp/OS/2問題:1.合作矛盾Window 3.1后MS與IBM分道揚鑣MS負責 OS/2 3.0 (Window NT) IBM負責 OS/2 2.02 .IBM進入PC領域后,仍然用大型機市場的思考模式,產(chǎn)品 價格貴,機器配置要求高,缺乏配套軟件,非計算機人員不愿購買。 2002年12月IBM宣布,在2003年3月12日正式停止OS/2操作
17、系統(tǒng)的支持與銷售,其服務還將持續(xù)到2004年12月31日。2)Mac OS 自1984年Macintosh上市以來,Mac OS幾乎是大家公認唯一在Macintosh上運行的OS;不過除Mac OS之外,BeOS與Linux在Macintosh上也都有不錯的表現(xiàn)。 User Friendly一直是電腦用戶所企盼的。Mac OS在用戶界面上跨了一大步,圖形與鼠標導向的使用界面確實讓人與電腦之間的交互達到了所謂的User Friendly。相比之下,直到1988年OS/2的Presentation Manager出現(xiàn),IBM才推出具有相同能力的圖形用戶界面(GUI)解決方案;而微軟直到1990年W
18、indows 3.x問世之后,才有圖形用戶界面。 Mac硬件結構的封閉性迫使其下游廠商不得不屈服于蘋果公司,但是也正是該特性使MacOS本身和Mac硬件具有高度的集成性。它通過資源管理器、字型管理器、事件管理器、窗口管理器等一系列管理器,讓整套操作系統(tǒng)相當人性化與合理化,用戶在使用中根本感覺不到Mac OS的存在。 Mac OS 8.5是Macintosh系統(tǒng)史上的大翻新。系統(tǒng)核心主要針對PowerPC進行了改寫,以提高Mac OS的運行效率;而重新改寫的Macintosh系統(tǒng)繪圖核心QuickDraw ,除了將繪圖顯示速度提高10%左右,還提供屏幕字體的柔邊效果。新的Mac OS 8.5具有
19、以下特點: Sherlock搜索引擎提供強大的搜索界面,甚至可將用戶面前的電腦變成一個功能強大的網(wǎng)站搜索引擎; 改寫了AppleScript,系統(tǒng)組件也提供Apple Script描述功能,這使得AppleScript在Mac OS 8.5中能發(fā)揮更多更廣的用途; 提高了網(wǎng)絡文件傳輸速度,與Windows NT /98相比,Mac OS 8.5的網(wǎng)絡傳輸速度甚至更快; 內(nèi)置多國語言網(wǎng)絡瀏覽功能。 參考網(wǎng)站:/ 最新為Mac OS 10 , 2005年4月29日出蘋果最新Mac操作系統(tǒng)Tiger于出貨,129美元3)UNIX 由于開放性、發(fā)展概念及商業(yè)利益等因素,Unix現(xiàn)已呈現(xiàn)出百家爭鳴的盛況
20、。不過總體來說,Unix可分成System V和BSD兩大流派。這兩大派別雖然都是Unix,但在系統(tǒng)架構、命令操作以及管理方式上都有所不同。到了1988年,System V融入BSD與SunOS的主要特性,演變成為SVR4(System V Release 4)。 因為Unix當初是X/Open所使用的注冊商標,基于版權考慮,不可以再使用Unix這個名字作為商業(yè)的操作系統(tǒng)名字。有影響的的UNIX系統(tǒng):IBM RS/6000上的AIX(System V)SGI的IRIX(SVR4)Sun的SunOS(4.3BSD或SVR4)HP的HP-UX(System V) SCO的SCO Unix(SVR3
21、.2)發(fā)展歷史: 為了解決批處理方式缺乏效率與使用不便,Dartmouth大學和麻省理工學院發(fā)明了分時系統(tǒng), Dartmouth大學的分時系統(tǒng)只能運行BASIC,麻省理工學院的CTSS則具有通用性,在科研領域取得了巨大的成功。 1965年麻省理工學院、貝爾實驗室和通用電氣公司決定開發(fā)一種“公用計算服務系統(tǒng)”,希望能夠同時支持整個波士頓所有的分時用戶。該系統(tǒng)稱作MULTICS(MULTiplexed Information and Computong Service) MULTICS設計目標是:便利的遠程終端使用,大量終端通過電話線接入計算機主機。 高可靠的大型文件系統(tǒng);大容量的用戶信息共享;存
22、儲和構造層次化信息結構的能力。 MULTICS研制難度超出了所有人預料,長期研制工作達不到預期目標,1969年4月貝爾實驗室退出,其后通用電氣公司也退出了。 但最終,經(jīng)過多年的努力,MULTICS成功地應用。 運行MULTICS的計算機系統(tǒng)在九十年代中期陸續(xù)被關閉。MULTICS引入了許多現(xiàn)代操作系統(tǒng)領域概念雛形,對隨后操作系統(tǒng)特別是UNIX的成功有著巨大的影響。PDP-11的UNIX 1969年,在貝爾退出MULTICS研制項目后,Ken Thompson和Dennis M. Ritchie 想申請經(jīng)費買計算機從事操作系統(tǒng)研究,但多次申請得不到批準,項目無著落, Thompson在一臺無人用
23、的PDP-7上,重新擺弄原先在MULTICS項目上設計的“空間旅行”游戲。其工作吸引了Dennis M. Ritchie ,為了使游戲能夠在PDP-7上順利運行,他們陸續(xù)開發(fā)了浮點運算軟件包、顯示驅動軟件,設計了文件系統(tǒng)、實用程序、shell 和匯編程序。 因此他們重寫了一個簡化的MULTICS并加進了自己的一些思想(用匯編語言作為編程工具),被Brian Kerighan開玩笑的稱為UNICS(UNIplexed Information and Computer Service)Dennis Ritchie及所在部門的加入,完成兩件事情從PDP-7移植到PDP-11/20,后來又移植到PDP
24、-11/45,PDP-11/70Thompson決定用自己設計的語言“B”來重新寫UNIX其后,Ritchie對B進行了改進,取名為C,接著又寫了C的編譯器 74年,Thompson和Richie發(fā)表了一篇關于UNIX的論文。84年被授予圖靈獎。可移植的UNIX UNIX移植到非PDP11的第一個機器為Interdata 8/32小型機上,其后,又移植到了VAX和其它一些機器上。 貝爾實驗室的Steve Johnson設計并實現(xiàn)了可移植的C語言編譯器。只要修改少量的代碼,它就能為相應的機器產(chǎn)生目標代碼。從此以后,幾乎所有的C編譯器都是基于該可移植的編譯器。85年推出System V 。伯克利的
25、UNIX 加州大學的伯克利分校在美國國防高級研究規(guī)劃局的資助下,為PDP11設計并發(fā)布了一個改進的版本。取名為1BSD(First Berkeley software Distribution),很快有了2BSD。定型的是4BSD(4.1 BSD 4.2BSD,4.3BSD和4.4BSD)UNIX的標準化 80年代后期兩個互不相同、互不兼容的UNIX版本 4.3BSD和System V Release 3都在廣泛使用,另外,每個UNIX提供商事實上又在原有的UNIX系統(tǒng)的基礎上加入了自己的非標準東西。 目前這些系統(tǒng)還都朝著各自的方向發(fā)展著,混亂依然存在。一般而言,Unix操作系統(tǒng)具有下列特點:
26、 靈活性,主要原因是Unix大部分以C語言寫成。事實上,也正是由于發(fā)展Unix的需要, 才有C語言的問世; 多用戶、多任務; 樹狀文件結構; 文件與設備獨立,即輸出、輸入設備皆被視為文件; 完整的軟件開發(fā)工具,便于開發(fā)軟件系統(tǒng)和應用程序; 完整且強大的網(wǎng)絡能力。 長久以來,初學者最頭疼的是Unix的使用界面,但隨著X-Window的發(fā)展,Unix用戶也可以享受功能強大的圖形用戶界面。同時,不同的X-Window管理界面(如FVWM、AfterStep、CDE、MWM)更讓您的X-Window有多種選擇,也使您的電腦更具個人風格。此外,現(xiàn)在已經(jīng)有許多應用軟件可在Unix下運行。 參考網(wǎng)站:htt
27、p:/www.PLiG.org/xwinman/4)Solaris Solaris是Sun公司開發(fā)的以Unix為基礎的使用環(huán)境。完整的Solaris包含Unix操作系統(tǒng)、源自X11的窗口系統(tǒng)以及ONC網(wǎng)絡產(chǎn)品與服務等。簡單來說,Solaris = SunOS + Open Windows(或CDE),不過SunOS 4.1.x是根據(jù)4.2/4.3 BSD開發(fā)的,而Solaris則是根據(jù)SVR4的SunOS 5.x開發(fā)的。 Solaris操作系統(tǒng)具有許多特點,如: 支持多種硬件平臺,上至價值數(shù)百萬的高端服務器,下至Intel x86個人電腦。如此完整的操作系統(tǒng)產(chǎn)品,可以輕易地進行硬件平臺的升級;
28、 有數(shù)量龐大的應用軟件支持,并提供完整的應用系統(tǒng)開發(fā)環(huán)境; Wabi(Windows Application Binary Interface)使用戶在Solaris上可以執(zhí)行大部分Microsoft Windows 的應用程序; 有功能強大的XGL(X-Window版的 OpenGL)及XIL圖像處理程序庫; 提供C2級系統(tǒng)安全防護。(雖然NT也號稱是C2的系統(tǒng),但僅限于單機狀態(tài)下。) 參考網(wǎng)站:http:/solaris/新動態(tài): 04年Sun Microsystems當?shù)貢r間8月3日披露了新一代OS“Solaris 10”(開發(fā)代號:Project Janus)的新功能。 11月宣布完成
29、。 在Solaris 10中,Linux二進制程序不必修改即可直接運行。這樣,“在多種OS環(huán)境下,就可以在不降低性能和易管理性的同時削減開發(fā)和管理成本” 此外,Solaris 10添加了600多種新功能。其它主要特點:實時問題分析及還原功能“Dynamic Tracing” 在線查測及自動修復功能“Predictive Self Healing” “具有相當于現(xiàn)有文件系統(tǒng)160億倍的容量”(Sun)的自我管理文件系統(tǒng)技術“Dynamic File System” 5)MINIX 一個用于操作系統(tǒng)教學的與UNIX兼容的操作系統(tǒng),由坦尼鮑姆完成。目的:解決操作系統(tǒng)課程只講理論缺乏實例的情況,(UN
30、IX太大了,已超出一個人能全面理解的范疇) MINIX發(fā)布不久,就出現(xiàn)了一個面向它的新聞組,每天都有數(shù)百人提供建議、思想甚至代碼。而作者幾年來堅持不采納這些建議,以保持MINIX的特點。人們最終意識到作者的立場,于是一個芬蘭學生決定寫一個面向實用而不是教學的MINIX系統(tǒng)LINUX。參考網(wǎng)站: http:/asw/6)Linux歷史: Linux是1991年由芬蘭大學生 Linus 編寫的一套與Unix相容卻又免費的Unix clone,后經(jīng)Internet的傳播,獲得眾多電腦玩家的響應和GNU基金會的支持,可以說是一套無國界的操作系統(tǒng)。 90年秋天,正在芬蘭首都的赫爾辛基大學學習UNIX課程
31、的Linus為了實習使用了Minix,買了一臺486微機,但很快發(fā)現(xiàn)許多功能很難滿足自己的要求,于是自己開始動手編寫一些代碼,隨后將這些代碼結合起來,到次年的10月5日,發(fā)布了第一個“正式”版本,0.02版。當時并沒有在Minix的新聞組中公布它,而只是在赫爾辛基大學的一臺FTP服務器上發(fā)了一則消息,稱用戶可以下載Linux的公開版本。Linux是Linus的筆名,當時起的名字為Freax(free+freak(怪胎)+x),F(xiàn)TP管理員認為這是Linus的Minix,就建了一個Linux目錄放源代碼。94年3月14日,第一個正式版本1.0版發(fā)布。 Linux操作系統(tǒng)具有下列特點: Linux
32、是免費的軟件,您可以自由安裝及任意修改軟件的原代碼; Linux系統(tǒng)與System V及BSD Unix兼容,并且符合POSIX 1.0規(guī)格; 擁有數(shù)量龐大的GNU軟件以及世界各地Linux高手所開發(fā)的軟件; 支持Intel x86、680 x0、SPARC、Alpha及MIPS等平臺,并廣泛支持各種周邊設備。 不論在哪里,只要有計算機的地方就有人為Linux寫程序,這表示這套系統(tǒng)進步很快,但同時這也是它最大的缺點:系統(tǒng)缺乏嚴密性。由于它從系統(tǒng)核心到應用程序幾乎都是集各家之大成,到底里面藏有多少問題,恐怕沒有人可以給出一個答案。 目前在Linux世界里,已經(jīng)有不少公司或組織有計劃地收集有關Li
33、nux的軟件,組合成一套完整的Linux發(fā)行版本上市,比較著名的有Slackware、RedHat、Caldera及GNU自己的Debian。 Linux的發(fā)展經(jīng)歷了三個階段:(1)99-00年:快速發(fā)展階段,十天半月就可能有一個新的發(fā)行版本“出爐”,在中國,八九個人就能成立一家Linux公司。 (2)00-01:隨著互連網(wǎng)泡沫的破滅,Linux遭受了重創(chuàng),雖然全球涌現(xiàn)了數(shù)百個Linux發(fā)行版本,但在它上面的應用軟件很少,桌面用戶很難找到合適的辦公軟件。對企業(yè)用戶而言, Linux的可靠性、穩(wěn)定性、后續(xù)的技術支持等都不能讓人放心,“觀望”是大多數(shù)企業(yè)用戶當時的心態(tài)。對Linux廠商來說, Li
34、nux特有的“自由與開放”使他們找不到贏利的模式。(3)01起,IBM、Oracal,CA,Intel 、AMD等業(yè)界巨頭紛紛宣布支持Linux,IBM豪賭了10億美元,押寶Linux!支持Linux的數(shù)據(jù)庫、中間件、應用方案紛紛“粉墨登場”; Linux廠商調(diào)整策略,重點移到提供應用解決方案上。巨頭的支持,加上Linux的成熟,企業(yè)用戶從質(zhì)疑轉向信任, Linux應用進入平穩(wěn)的發(fā)展期。 但Linux廠商還沒有走上贏利的陽關道,到目前為止,實現(xiàn)收支平衡并略有贏利的廠商還很少,更多的廠商仍然在艱難前進。未來發(fā)展:(1) Linux會演變成巨頭們的“囊中物”?(2)是否支持LSB LSB是由Dan
35、 Quinlan和他的LSB小組發(fā)起的一個比較公認的標準,目前得到多數(shù)Linux廠商的支持。目標是各種不同的Linux發(fā)布版本能夠在二進制上兼容。(3)桌面端還是大型機上發(fā)展參考網(wǎng)站:http:/ http:/ 目前LINUX的研究,使用基本上還以科研院所,大專院校為主。7)FreeBSD FreeBSD是一個在Intel x86(含兼容的AMD、Cyrix等CPU)個人電腦上執(zhí)行的Unix操作系統(tǒng),它能使個人電腦輕易地變成功能強大的工作站,或是網(wǎng)絡服務器。 FreeBSD具有下列特點: 完全32位操作系統(tǒng); 提供多樣化且簡易的安裝方式。除了可用CD-ROM安裝外,還可以用軟盤、MS_DOS分
36、區(qū)、FTP以及NFS等方式安裝; FreeBSD是免費的PC Unix,它的開放原則不僅可免費使用,更提供完整的源程序代碼供參考甚至修改; 內(nèi)存保護模式確保用戶不會干擾到其他人,而應用程序之間也不會相互干擾; 可直接執(zhí)行在其它操作系統(tǒng)(如SCO、BSDI、Linux)上編譯的程序; 動態(tài)共享函數(shù)庫提供有效的硬盤空間及內(nèi)存利用; 提供包括C、C+和FORTRAN等完整的應用程序開發(fā)環(huán)境。與Linux相比,FreeBSD擁有比較嚴謹?shù)腇reeBSD核心小組,他們有組織地維護、更新并發(fā)行整個系統(tǒng),這使得FreeBSD系統(tǒng)比較穩(wěn)定,但整體支持就沒有Linux多樣、活潑與新穎。FreeBSD目前最新的版
37、本是3.0,該版本支持更多、更新的架構,如多處理器、Secure RPC等。 參考網(wǎng)站:http:/參考書:1、Abraham Silberschatz,Peter Baer Galvin,Greg Gagne Operating System Concepts (6rd edition), 高等教育出版社,20022、Operating Systems Design And Implementation(2rd edition), 清華大學出版社, 19973、尤晉元,史美林等,Windows操作系統(tǒng)原理,機械工業(yè)出版社,2001第2章 進程的描述與控制 為了描述程序在并發(fā)執(zhí)行時對系統(tǒng)資源的
38、共享,需要一個描述程序執(zhí)行時動態(tài)特征的概念,這就是進程。2.1 程序執(zhí)行特點1)順序執(zhí)行123特征:順序性:按照程序結構所指定的次序(可能有分支或循環(huán))封閉性:獨占全部資源,計算機的狀態(tài)只由該程序的控制邏輯所決定,結果不受外界因素的影響可再現(xiàn)性:初始條件相同則結果相同。如:可通過空指令控制時間關系。2)并發(fā)執(zhí)行 具有許多新的特征,目的是為了提高資源利用率。并發(fā)執(zhí)行的特征:I1I2I3I3C1C2C3C3P1P2P3P3T特征:間斷性:表現(xiàn)為“走走停?!?,一個程序可能走到中途停下來,失去原有的時序關系;失去封閉性:共享資源,受其它程序的控制邏輯的影響。如:一個程序寫到存儲器中的數(shù)據(jù)可能被另一個程
39、序修改,失去原有的不變特征。失去可再現(xiàn)性:失去封閉性 失去可再現(xiàn)性;外界環(huán)境在程序的兩次執(zhí)行期間發(fā)生變化,失去原有的可重復特征。 并發(fā)執(zhí)行的條件:達到封閉性和可再現(xiàn)性(正確性的要求)。2.2.1 進程的定義與特征 進程這個概念是為了描述系統(tǒng)中各并發(fā)活動而引入的。為了滿足成千上萬個用戶的要求,現(xiàn)代操作系統(tǒng)正是圍繞進程這個概念建造的。最早使用進程(process)概念進行操作系統(tǒng)設計的是美國的麻省理工學院在MULTICS系統(tǒng)和IBM公司的CTSS/360系統(tǒng)上實現(xiàn)的。只是IBM/360使用了另一個術語任務(task),但兩者的實際含義是相同的。2.2 進程的描述 1. 進程的含義 一個具有一定獨立
40、功能的程序在一個數(shù)據(jù)集合上的一次動態(tài)執(zhí)行過程。 2. 進程的特征(1)動態(tài)性:創(chuàng)建產(chǎn)生,調(diào)度執(zhí)行,撤銷消亡。(2)并發(fā)性:多個進程同時存在于內(nèi)存,宏觀上同時運行。(3)獨立性:獨立運行的基本單位。(4)異步性:各進程各自獨立的運行,以不可預知速度前進。(5)結構化:代碼段,數(shù)據(jù)段和進程控制塊組成。3. 進程與程序的區(qū)別1)進程是動態(tài)的,程序是靜態(tài)的:程序是有序代碼的集合;進程是程序的執(zhí)行。2)進程是暫時的,程序的永久的:進程是一個狀態(tài)變化的過程,程序可長久保存。3)進程與程序的組成不同:進程的組成包括程序、數(shù)據(jù)和進程控制塊(即進程狀態(tài)信息)。4)進程與程序的對應關系:通過多次執(zhí)行,一個程序可對
41、應多個進程。2.2.2 進程的基本狀態(tài) 運行態(tài)就緒態(tài)阻塞態(tài)時間片用完進程調(diào)度等待某個事件發(fā)生某個事件已經(jīng)發(fā)生1、三個基本狀態(tài) 就緒狀態(tài):進程已獲得除處理機外的所需資源,等待分配處理機資源;只要分配到CPU就可執(zhí)行。在某一時刻,可能有若干個進程處于該狀態(tài)2.2.2 進程的基本狀態(tài) 運行態(tài)就緒態(tài)阻塞態(tài)時間片用完進程調(diào)度等待某個事件發(fā)生某個事件已經(jīng)發(fā)生1、三個基本狀態(tài)運行狀態(tài):占用處理機資源運行;處于此狀態(tài)的進程的數(shù)目小于等于CPU的數(shù)目。2.2.2 進程的基本狀態(tài) 運行態(tài)就緒態(tài)阻塞態(tài)時間片用完進程調(diào)度等待某個事件發(fā)生某個事件已經(jīng)發(fā)生1、三個基本狀態(tài) 阻塞態(tài):由于進程等待某種條件(如I/O操作或進程
42、同步),在條件滿足之前無法繼續(xù)執(zhí)行。該事件發(fā)生前即使把處理機分配給該進程,也無法運行。void main() int i; cini; couti;創(chuàng)建態(tài):進程剛創(chuàng)建,但還不能運行(一種可能的原因是OS對并發(fā)進程數(shù)的限制);如:分配和建立PCB表項(可能有數(shù)目限制)、建立資源表格(如打開文件表)并分配資源,加載程序并建立地址空間表。結束態(tài)(Exit):進程已結束運行,等待OS做善后工作。2、增加創(chuàng)建、與結束的狀態(tài)進程調(diào)度時間片完事件完成等待事件進程完成fork()接納創(chuàng)建態(tài)就緒態(tài)運行態(tài)結束態(tài)阻塞3、引入掛起狀態(tài)靜止就緒掛起激活掛起靜止阻塞釋放掛起目的:(1)調(diào)整系統(tǒng)負荷(2)用戶程序調(diào)試進程調(diào)
43、度時間片完事件完成等待事件進程完成fork()接納創(chuàng)建態(tài)就緒態(tài)運行態(tài)結束態(tài)阻塞2.2.4進程控制塊(PCB, process control block) 1. 作用記錄系統(tǒng)管理進程全部信息。一般常駐于內(nèi)存,由OS維護。每個進程都有唯一的一個PCB。不能由應用程序自身的代碼來直接訪問。2. 包含信息 不同的操作系統(tǒng)差別很大,隨系統(tǒng)復雜性而異 。共性的有: 1)進程描述信息 進程標識符(process ID,內(nèi)部標識符,具有唯一性,通常是一個整數(shù)); 用戶標識符(user ID); 進程組標識符(process group) 2)在進程進行切換時的處理機及其相關現(xiàn)場。(CPU,程序狀態(tài)字,通用寄
44、存器,棧指針)3)為保證進程再次運行的:進程調(diào)度信息、控制信息3、進程表的組織以線性表的方式管理1)順序存儲2)靜態(tài)鏈表,具有相同狀態(tài)的進程形成一個鏈3)索引表,建立若干個索引,如就緒索引,阻塞索引2.3 進程控制 術語:核心態(tài)(系統(tǒng)態(tài)、管態(tài)、 特權態(tài))和用戶態(tài)(目態(tài))(supervisor mode monitor mode system mode Privileged mode user mode)核心態(tài):可執(zhí)行所有機器指令。OS運行在核心態(tài),可以訪問所有資源。用戶態(tài):用戶進程運行在用戶態(tài)。無法直接訪問硬件資源,不可直接訪問受保護的OS代碼,只可以訪問OS指定的寄存器和存儲區(qū)域及有關資源。
45、 現(xiàn)代的計算機的程序狀態(tài)字中都至少有一個位,其值為0或1。這樣區(qū)分出兩種狀態(tài)。分別稱為核心態(tài)和用戶態(tài)。機器的一部分指令只能在核心態(tài)下運行,這樣的指令稱為特權指令。1)現(xiàn)代某些計算機的狀態(tài)多于一位(80386以后的芯片),因此能提供更強的保護機制(如2位,形成四種方式,稱為保護環(huán),操作系統(tǒng)在0環(huán),DB等在1環(huán)等)2)用戶進程在用戶態(tài)運行,在需要操作系統(tǒng)為其服務時,將轉到OS,從用戶態(tài)轉到核心態(tài);OS完成任務后回到用戶進程,也就是用戶態(tài)。實現(xiàn):計算機提供一條陷阱指令,如在SUN公司的機器中為trap指令,指令格式樣為:指令碼參數(shù)1參數(shù)2其中,參數(shù)1為本次系統(tǒng)調(diào)用的調(diào)用號,這由編譯解決轉換 參數(shù)2為
46、一個地址,給出了調(diào)用參數(shù)表的首地址trap碼102文件號緩沖地址0字節(jié)數(shù)在trap指令執(zhí)行后,狀態(tài)位自動從用戶態(tài)轉到核心態(tài)2.3.1操作系統(tǒng)內(nèi)核 出于結構上的考慮,將OS分為若干層次。內(nèi)核:程序模塊的集合,這些模塊通常為與硬件緊密相關的(如中斷處理、設備驅動程序)或執(zhí)行頻率較高的(如處理機調(diào)度)程序模塊。它們常駐內(nèi)存,不會被交換出去。內(nèi)核的功能: 支撐功能:中斷處理、時鐘管理、原語操作。 資源管理功能:進程管理、存儲器管理、設備管理等。 原語操作:由若干條指令構成的“原子操作(atomic operation)”過程 ,作為一個整體而不可分割要么全都完成,要么全都不做。在執(zhí)行其間不能被中斷。(
47、實現(xiàn)時,屏蔽所有中斷,執(zhí)行完,開中斷) 注意問題:原語執(zhí)行時間盡可能短;若由于忘記開中斷,則系統(tǒng)無法正常運行。2.3.2 進程的創(chuàng)建(Creation of Process) 在創(chuàng)建一個進程中,不應有外界干擾,所以系統(tǒng)中一般都有進程創(chuàng)建原語(如UNIX的newproc( )1.進程圖(Process Graph)進程可以創(chuàng)建子進程,個數(shù)一般系統(tǒng)都沒有限制(只取決于系統(tǒng)當前的資源),所以會構成樹狀結構進程樹。2.引起創(chuàng)建進程的事件 用戶登錄 作業(yè)調(diào)度 提供服務 應用請求:用戶程序自己創(chuàng)建子進程3、進程的創(chuàng)建的步驟: 申請空白PCB 為子進程分配資源初始化進程控制塊 資源往往繼承父進程將新進程插入
48、就緒隊列進程創(chuàng)建父進程創(chuàng)建子進程,子進程還可創(chuàng)建子進程,從而形成進程樹。父子進程關系:資源繼承共享父子進程共享所有的資源.子進程共享父進程資源的子集.父進程和子進程之間不共享資源.執(zhí)行關系:父進程和子進程并發(fā)執(zhí)行.父進程等待執(zhí)行結束.地址空間子進程是父進程的復制(克隆).子進程將自己代碼裝入其中。Windows NT支持兩種例子:UNIXfork 系統(tǒng)調(diào)用:創(chuàng)建一個子(新)進程。精確復制父進程exec系統(tǒng)調(diào)用: 在 fork 之后執(zhí)行,用來用新的代碼替換原父進程的代碼。2.3.3 進程的終止 1. 引起終止的事件正常結束異常結束越界錯誤保護錯特權指令錯非法指令錯運行超時等待超時算數(shù)運算錯I/O
49、故障外界干預操作員或系統(tǒng)干預父進程請求父進程終止2、 進程終止時應做的工作終止所有子進程回收資源若本身是運行的,通知調(diào)度程序進行CPU的調(diào)度unix進程終止過程進程執(zhí)行完最后一條語句,請求操作系統(tǒng)刪除進程(通過執(zhí)行exit系統(tǒng)調(diào)用)。將子進程運行數(shù)據(jù)傳遞給父進程(通過 wait系統(tǒng)調(diào)用)。回收的系統(tǒng)資源由操作系統(tǒng)再另行分配父進程也可以終止子進程的執(zhí)行(通過abort系統(tǒng)調(diào)用)。原因:子進程超額使用資源.分配給子進程執(zhí)行的任務不在需要執(zhí)行.父進程退出。如果父進程終止,操作系統(tǒng)不再允許子進程繼續(xù)執(zhí)行。1.引起阻塞的事件:所需資源得不到滿足(如申請內(nèi)存暫時無法滿足)啟動輸入/輸出后同步關系在等待其它
50、進程的消息無事可做2.3.3 進程的阻塞和喚醒 2. 進程阻塞所做工作(block) 進程自身調(diào)用阻塞原語,進入等待隊列(是進程的主動性行為),然后進行處理機調(diào)度。3.進程的喚醒過程(wakeup) 喚醒原因:等待的事件產(chǎn)生。 由阻塞隊列轉入就緒隊列,狀態(tài)標志改動。若干unix進程的調(diào)用(1) fork() fork創(chuàng)建一個新進程(子進程),fork()是UNIX中建子進程的唯一方法。子進程繼承了父進程的所有環(huán)境,甚至開始執(zhí)行的執(zhí)行位置(子進程不從main()開始執(zhí)行,而是從fork()的后繼語句處執(zhí)行)void main() fork(); printf(“This is testn”);
51、void main() fork(); printf(“This is testn”); 進程p1P1就緒進程:void main() fork(); printf(“This is testn”); 子進程p2fork()P2This is test.This is test.調(diào)用fork()會返回不同的值:子進程返回:0父進程返回:子進程的id號返回0返回子進程號void main() if(fork()= =0) printf(“This is the childn”); else printf(“This is the parentn”);This is the parent. Thi
52、s is the child. 在UNIX中子進程建立后,先執(zhí)行子進程還是父進程是不定的。(對于特定的一個UNIX是確定的)This is the child. This is the parent. (2)wait() wait(變量地址),等待子進程結束,并將系統(tǒng)結束碼放在給定的單元中,若為空則不保存結束狀態(tài)。void main() if(fork()= =0) printf(“This is the childn”); else wait(NULL); printf(“This is the parentn”); (3)exec() 改變原有進程的代碼 用一個新代碼覆蓋原有代碼。它的參數(shù)
53、包括新代碼對應的文件和命令行參數(shù)。成功調(diào)用時,不再返回;否則,返回出錯原因。(exec有多種格式)void main() if(fork()= =0) exec(文件,參數(shù)); else wait(NULL); . 2.4 線程(threads)的基本概念 在OS中,進程的引入提高了計算機資源的利用率。但在進一步提高進程的并發(fā)性時,進程切換開銷的比重越來越大,同時進程通信的效率也受到限制。引入線程的目的是用它來提高系統(tǒng)內(nèi)程序的并發(fā)程度,提高系統(tǒng)效率,增大系統(tǒng)作業(yè)的吞吐量。例子:(1)網(wǎng)頁瀏覽器:含有圖象、文本等 (2)網(wǎng)頁服務器:同時可能有數(shù)百個客戶在訪問進程的兩個基本屬性: 資源分配單位 處
54、理機調(diào)度單位。線程模型: 線程作為處理機調(diào)度單位。只擁有必不可少的資源,如:線程狀態(tài)、寄存器狀態(tài)和棧同樣具有就緒、阻塞和執(zhí)行三種基本狀態(tài)優(yōu)點:減小并發(fā)執(zhí)行的時間和空間開銷(線程的創(chuàng)建、退出和調(diào)度),因此容許在系統(tǒng)中建立更多的線程來提高并發(fā)程度。一個進程中可以有多個線程 由于同一進程內(nèi)各線程都可以訪問整個進程的所有資源,因此線程之間的通信比進程間的通信要方便;而同一進程內(nèi)的線程間切換也會由于許多上下文的相同而簡化線程:一個動態(tài)對象,它是處理機調(diào)度的基本單位,表示進程的一個控制點,執(zhí)行一系列的指令。同一進程內(nèi)各線程的差異體現(xiàn):線程狀態(tài)、寄存器上下文和堆棧等環(huán)境上。優(yōu)點:1)線程創(chuàng)建的時間比進程短2
55、)線程的終止時間比進程短3)同一進程的線程切換時間比進程短4)同一個進程的線程可直接進行通信。進程和線程的比較:1)不同進程的地址空間是相互獨立的,而同一進程下的各線程共享同一地址空間。一個進程中的線程在另一個進程中是不可見的。2)同一進程下的線程可以通過讀寫進程數(shù)據(jù)段(如全局變量)來進行通信;進程間通信必須用操作系統(tǒng)提供的進程間的通信機制。3)同一進程中的線程上下文切換比進程上下文切換要快得多。2.4.3用戶級線程和內(nèi)核支持線程 1、由操作系統(tǒng)內(nèi)核實現(xiàn),內(nèi)核線程(kernel-level thread),OS知道每個進程有多少線程,一個線程阻塞時,OS會選則另一個線程,它們可能屬于同一個進程
56、,也可能屬于不同進程。 2、操作系統(tǒng)感覺不到線程存在,它們在用戶空間進行管理用戶級線程。(用戶級線程軟件包:POSIX-P,MACH C, 數(shù)據(jù)庫informix,圖形處理Aldus PageMaker )兩者性能上差異很大:用戶級線程的調(diào)度發(fā)生在同一個進程中,也不需通過中斷進入核心,所以切換快這個事實有力的支持將線程管理放在用戶級。用戶級的線程阻塞后,整個進程阻塞,因為內(nèi)核無法知道其它線程的存在這個事實有力的支持將線程管理放在核心。最后兩種都用,1992 Anderson,現(xiàn)在SUN的Solaris 同時支持兩者 不管線程在核心還是用戶空間,都有一堆新問題,這些問題在相當?shù)某潭壬细淖兞司幊棠?/p>
57、型。如: 若父進程創(chuàng)建子進程,子進程的線索和父進程一樣多嗎? 需一樣,否則可能無法工作但一樣又會產(chǎn)生:若一個線程阻塞于鍵盤輸入語句,那么兩個線程都阻塞?從鍵盤讀入的一行數(shù)據(jù)是每個線程都有拷貝,還是只有父進程有。一個線程關閉文件而另一個正在讀,怎么辦?一個線程要求內(nèi)存分配而此時正好線程切換,新線程同樣發(fā)現(xiàn)內(nèi)存不夠而要求內(nèi)存分配,這里算幾次? 問題本身是可以克服的,但表明僅僅向現(xiàn)有系統(tǒng)引入線程而不進行重新設計是根本不行的。第 3章 進程的同步與通信 目的:為了改善資源的利用率和提高系統(tǒng)的吞吐量,引入了進程,但同時失去了程序的封閉性及可再現(xiàn)性。本章討論OS保證并發(fā)程序的封閉性和可再現(xiàn)性的機制及策略。
58、3.1 進程同步的基本概念 由于多進程在操作系統(tǒng)中的并發(fā)執(zhí)行,諸進程之間存在相互制約的關系,表現(xiàn)為: 1)進程互斥:由于共享資源所要求的排它性,進程間要相互競爭,以獲得這些資源的使用權。 2)進程同步:多個進程中發(fā)生的事件存在某種時序關系,必須協(xié)同工作、相互配合,以共同完成一項任務。 在多進程系統(tǒng)中,可以把進程的相互制約關系按感知程度分成下標所列的三種類型: 相互感知的程度交互關系一個進程對其他進程的影響潛在的控制問題相互不感知(完全不了解其它進程的存在)競爭一個進程的操作對其它進程的結果無影響互斥,死鎖(可釋放的資源),饑餓間接感知(雙方都與第三方交互,如共享資源)通過共享進行協(xié)作一個進程的
59、結果依賴于從其它進程獲得的信息互斥,死鎖(可釋放的資源),饑餓,數(shù)據(jù)一致性直接感知(雙方直接交互,如通信)通過通信進行協(xié)作一個進程的結果依賴于從其他進程獲得的信息死鎖,饑餓3.1.1 臨界資源 臨界資源: 必須互斥使用的資源。 可以是硬件,也可以是軟件(如外設、共享代碼段、共享數(shù)據(jù)結構),多個進程在對其進行訪問時(主要指進行寫入或修改),必須互斥地進行。(有些共享資源可以同時訪問,如只讀數(shù)據(jù)。)例:共享變量的修改沖突DB存10萬取5萬10111 -510111 +10服務器程序process(id,m) 在DB中取記錄id; 帳號id +m; 修改記錄送回DB; 10111 10例:共享變量的
60、修改沖突DB存10萬取5萬10111 -510111 +10process(10111,+10) 在DB中取記錄10111; 帳號10111 +10; 修改記錄送回DB; process(10111,-5) 在DB中取記錄10111; 帳號10111 -5; 修改記錄送回DB; 10111 10例:共享變量的修改沖突DB存10萬取5萬10111 -510111 +10process(10111,+10) 在DB中取記錄10111; 帳號10111 +10; 修改記錄送回DB; process(10111,-5) 在DB中取記錄10111; 帳號10111 -5; 修改記錄送回DB; 10111
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 7《中華民族一家親》 教學設計-2023-2024學年道德與法治五年級上冊統(tǒng)編版
- 9 改變世界的四大發(fā)明 改變世界的四大發(fā)明 教學設計-2024-2025學年道德與法治五年級上冊統(tǒng)編版
- 居間介紹傭金合同范本
- 果園托管合同范本
- 21 古詩詞三首-楓橋夜泊教學設計-2024-2025學年五年級上冊語文統(tǒng)編版
- 紅城租房合同范本
- 5《七律·長征》教學設計-2024-2025學年統(tǒng)編版語文六年級上冊
- 地面保潔合同范本
- 7《湯姆·索亞歷險記》(節(jié)選)教學設計-2024-2025學年統(tǒng)編版語文六年級下冊
- 2024年九年級數(shù)學中考專題 反比例函數(shù) 教學設計
- 小學五年級下冊信息技術-第1課班級靚點多拍攝電子工業(yè)版13課件
- 心肌梗死心律失常的機制和處置
- 商品專員簡歷模板
- 市場營銷(第2版)課件全套 王永貴 第1-17章-市場與市場營銷概述及發(fā)展-顧客營銷學
- 塑料產(chǎn)品報價明細表
- 供應商來料包裝運輸存儲規(guī)范標準
- 垃圾滲濾液處理站運維及滲濾液處理投標方案(技術標)
- 哈工大模電實驗報告
- 銀行職工學習違規(guī)違紀典型案例心得體會5篇
- 《思想道德與法治》第二章
- 汽輪機潤滑油系統(tǒng)內(nèi)容-課件
評論
0/150
提交評論