Linux操作系統(tǒng)PPT課件_第1頁(yè)
Linux操作系統(tǒng)PPT課件_第2頁(yè)
Linux操作系統(tǒng)PPT課件_第3頁(yè)
Linux操作系統(tǒng)PPT課件_第4頁(yè)
Linux操作系統(tǒng)PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、8.1 Linux概述 8.1.1 學(xué)習(xí)Linux操作系統(tǒng)的意義8.1.2 Linux系統(tǒng)的特點(diǎn)8.1.3 Linux 系統(tǒng)的發(fā)展第1頁(yè)/共34頁(yè)8.1.4 Linux體系結(jié)構(gòu) 第2頁(yè)/共34頁(yè)8.1.5 Linux的用戶界面 第3頁(yè)/共34頁(yè)8.2 Linux的進(jìn)程管理 8.2.1 Linux進(jìn)程的組成Linux系統(tǒng)中的進(jìn)程都具有以下4個(gè)要素。(1) 有一個(gè)程序正文段供其執(zhí)行。(2) 有進(jìn)程專(zhuān)用的系統(tǒng)堆??臻g。(3) 有一個(gè)進(jìn)程描述符,即在內(nèi)核中的一個(gè)task_struct數(shù)據(jù)結(jié)構(gòu)。有了這個(gè)數(shù)據(jù)結(jié)構(gòu),進(jìn)程才能成為內(nèi)核調(diào)度的一個(gè)基本單位,接受內(nèi)核的調(diào)度。同時(shí),該結(jié)構(gòu)還記錄著進(jìn)程所占用的各項(xiàng)資源

2、。(4) 有一個(gè)獨(dú)立的地址空間,即擁有專(zhuān)有的用戶空間和專(zhuān)用的用戶空間堆棧。 第4頁(yè)/共34頁(yè)8.2.2 Linux進(jìn)程的狀態(tài) Linux的進(jìn)程狀態(tài)共有6種。 (1) TASK_RUNNING:正在運(yùn)行(己獲得CPU)或準(zhǔn)備運(yùn)行(就緒態(tài)等待獲得CPU)的進(jìn)程。 (2) TASK_INTERRUPTIBLE:可中斷等待狀態(tài)。進(jìn)程處于等待隊(duì)列中,一旦資源可用時(shí)被喚醒,也可以由其他進(jìn)程通過(guò)信號(hào)(SIGNAL)或中斷喚醒。 (3) TASK_UNINTERRUPTIBLE:不可中斷等待狀態(tài)。進(jìn)程處于等待隊(duì)列中,一旦資源可用時(shí)被喚醒,但不可以由其他進(jìn)程通過(guò)信號(hào)(SIGNAL)或中斷喚醒。 (4) TASK

3、_ZOMBIE:進(jìn)程僵死狀態(tài)。進(jìn)程停止運(yùn)行但是尚未釋放PCB。 (5) TASK_STOPPED:進(jìn)程停止?fàn)顟B(tài)。可能被特定信號(hào)終止,也可能是受其他進(jìn)程的跟蹤調(diào)用而暫時(shí)將CPU出讓給跟蹤它的進(jìn)程。 (6) TASK_SWAPPING:頁(yè)面被交換出內(nèi)存的進(jìn)程。 第5頁(yè)/共34頁(yè)運(yùn)行態(tài)就緒態(tài)不可中斷等等態(tài)停止態(tài)等等態(tài)僵死態(tài)進(jìn)程終止時(shí)間片到進(jìn)程調(diào)度收到停止命令而暫停所需資源已滿足被喚醒未申請(qǐng)到所需資源所需資源已滿足未申請(qǐng)到所需資源第6頁(yè)/共34頁(yè)8.2.3 進(jìn)程狀態(tài)的切換時(shí)機(jī)第一類(lèi)是隱式地主動(dòng)放棄CPU。這往往是因?yàn)樾枰馁Y源目前不能獲取,如執(zhí)行read()、selec()等系統(tǒng)調(diào)用的過(guò)程中。 第二類(lèi)

4、是進(jìn)程顯式地主動(dòng)放棄CPU,如系統(tǒng)調(diào)用sched_yield()、sched_setscheduler()及pause()均會(huì)導(dǎo)致當(dāng)前進(jìn)程讓出CPU。 第7頁(yè)/共34頁(yè)8.2.4 Linux的進(jìn)程控制 1. 進(jìn)程的創(chuàng)建 Linux操作系統(tǒng)中,除初始化進(jìn)程外,其他進(jìn)程都是用系統(tǒng)調(diào)用fork()和clone()創(chuàng)建的,調(diào)用fork()和clone()的進(jìn)程是父進(jìn)程,被生成的進(jìn)程是子進(jìn)程。 第8頁(yè)/共34頁(yè)2. 進(jìn)程的等待 父進(jìn)程可用系統(tǒng)調(diào)用wait3()等待它的任何一個(gè)子進(jìn)程終止,也可以用系統(tǒng)調(diào)用wait4()等待某個(gè)特定的子進(jìn)程終止。 第9頁(yè)/共34頁(yè)3. 進(jìn)程的終止 當(dāng)命令執(zhí)行完,希望終止自己

5、時(shí),可在其程序末尾使用系統(tǒng)調(diào)用exit()。 第10頁(yè)/共34頁(yè)4. 進(jìn)程上下文切換 改變進(jìn)程上下文的工作很復(fù)雜,是由系統(tǒng)調(diào)用execve()實(shí)現(xiàn)的。它用一個(gè)可執(zhí)行文件的副本覆蓋該進(jìn)程的內(nèi)存空間。 第11頁(yè)/共34頁(yè)8.2.5 Linux 線程 Linux并不確切區(qū)分進(jìn)程與線程,或者說(shuō)沒(méi)有真正意義上的線程概念,但通過(guò)clone()系 統(tǒng) 調(diào) 用 , 可 以 支 持 輕 量 級(jí) 進(jìn) 程(Lightweight Process)。 第12頁(yè)/共34頁(yè)8.2.6 PCB(進(jìn)程控制塊) L i n u x 內(nèi) 核 利 用 一 個(gè) 數(shù) 據(jù) 結(jié) 構(gòu)(task_struct)標(biāo)志一個(gè)進(jìn)程的存在。task_s

6、truct也就是Linux進(jìn)程控制塊PCB 第13頁(yè)/共34頁(yè)8.2.7 進(jìn)程的調(diào)度 Linux中實(shí)現(xiàn)了3種進(jìn)程調(diào)度策略。 SCHED_FIFO:先進(jìn)先出(First In First Out)策略。 SCHED_RR:輪轉(zhuǎn)調(diào)度(RoundRobin)策略。 SCHED_OTHER:其他策略。 第14頁(yè)/共34頁(yè)8. 8.2.8 Linux進(jìn)程通信 信號(hào)是UNIX系統(tǒng)中最古老的進(jìn)程間通信機(jī)制,它主要用來(lái)向進(jìn)程發(fā)送異步的事件信號(hào)。 Linux中,信號(hào)種類(lèi)的數(shù)目和具體的平臺(tái)有關(guān),因?yàn)閮?nèi)核用一個(gè)字代表所有的信號(hào),因此字的位數(shù)就是信號(hào)種類(lèi)的最多數(shù)目。對(duì)32位的i386平臺(tái)而言,一個(gè)字為32位,因此信號(hào)

7、有32。 第15頁(yè)/共34頁(yè)8.2.9 信號(hào)量與PV操作 信號(hào)量也用來(lái)保護(hù)關(guān)鍵代碼或數(shù)據(jù)結(jié)構(gòu)(即臨界資源)。 Linux利用信號(hào)量實(shí)現(xiàn)對(duì)關(guān)鍵代碼和數(shù)據(jù)的互斥訪問(wèn)。 Linux信號(hào)量數(shù)據(jù)結(jié)構(gòu)中包含的信息主要有。1) count(計(jì)數(shù)) 2) waking(等待喚醒計(jì)數(shù)) 3) 等待隊(duì)列4) lock(鎖) 第16頁(yè)/共34頁(yè)8.2.10 管道 管道是Linux中最常用的進(jìn)程間通信IPC機(jī)制。利用管道時(shí),一個(gè)進(jìn)程的輸出可成為另外一個(gè)進(jìn)程的輸入。當(dāng)輸入輸出的數(shù)據(jù)量特別大時(shí),這種IPC機(jī)制非常有用。 第17頁(yè)/共34頁(yè)8.2.11 共享存儲(chǔ)區(qū)與消息隊(duì)列通信機(jī)制 1. Linux進(jìn)程間的共享存儲(chǔ)區(qū)通信

8、第18頁(yè)/共34頁(yè)2. Linux進(jìn)程間的消息隊(duì)列進(jìn)行通信 Linux進(jìn)程間的通信也可以通過(guò)消息隊(duì)列進(jìn)行。消息隊(duì)列可以是單消息隊(duì)列,也可以是多消息隊(duì)列(按消息類(lèi)型);既可以單向,也可以雙向通信;既可以僅和兩個(gè)進(jìn)程有關(guān),也可以被多個(gè)進(jìn)程使用。 第19頁(yè)/共34頁(yè)8.3.1 Linux的虛擬內(nèi)存管理 Linux的虛擬內(nèi)存管理功能可以概括為以下幾點(diǎn)。(1) 地址空間擴(kuò)充。(2) 進(jìn)程保護(hù)。(3) 內(nèi)存映射。(4) 物理內(nèi)存分配。 8.3 Linux 存儲(chǔ)器管理 第20頁(yè)/共34頁(yè)8.3.2 Linux系統(tǒng)采用三級(jí)頁(yè)表 PGD表 項(xiàng) 下 標(biāo)PMD表 項(xiàng) 下 標(biāo)PT下 標(biāo)頁(yè) 內(nèi) 偏 移 量物 理 地 址

9、PGD基 地 址第21頁(yè)/共34頁(yè)8.3.3 內(nèi)存頁(yè)的分配與釋放 Linux系統(tǒng)的物理內(nèi)存頁(yè)分配采用鏈表和位圖相結(jié)合的方法。 第22頁(yè)/共34頁(yè)8.3.4 內(nèi)存交換 當(dāng)系統(tǒng)出現(xiàn)內(nèi)存不足時(shí),Linux內(nèi)存管理子系統(tǒng)就要釋放一些內(nèi)存頁(yè),從而增加系統(tǒng)中空閑內(nèi)存頁(yè)的數(shù)量。此任務(wù)是由內(nèi)核的交換守護(hù)進(jìn)程kswapd完成的。 第23頁(yè)/共34頁(yè)8.3.5 內(nèi)存的共享和保護(hù) Linux中內(nèi)存共享是以頁(yè)共享的方式實(shí)現(xiàn)的Linux可以對(duì)虛存段中的任一部分加鎖或保護(hù)。 第24頁(yè)/共34頁(yè)8.3.6 缺頁(yè)中斷 磁盤(pán)中的可執(zhí)行文件映像一旦被映射到一個(gè)進(jìn)程的虛擬空間,它就開(kāi)始執(zhí)行。由于一開(kāi)始只有該映像區(qū)的開(kāi)始部分被調(diào)入內(nèi)

10、存,因此,進(jìn)程遲早會(huì)執(zhí)行那些未被裝入內(nèi)存的部分。當(dāng)一個(gè)進(jìn)程訪問(wèn)了一個(gè)還沒(méi)有有效頁(yè)表項(xiàng)的虛擬地址時(shí),處理器將產(chǎn)生缺頁(yè)中斷,通知操作系統(tǒng),并把缺頁(yè)的虛擬地址(保存在CR2寄存器中)和缺頁(yè)時(shí)訪問(wèn)虛存的模式一并傳給Linux的缺頁(yè)中斷處理程序。 第25頁(yè)/共34頁(yè)8.4 Linux文件管理 8.4.1 Linux文件系統(tǒng)的目錄結(jié)構(gòu) Linux采用的是樹(shù)型目錄結(jié)構(gòu)管理文件。最上層是根目錄,其他的所有目錄都是從根目錄出發(fā)而生成的。 第26頁(yè)/共34頁(yè)8.4.2 Linux文件系統(tǒng)的實(shí)現(xiàn) Linux支持多種不同類(lèi)型的文件系統(tǒng),包括EXT、EXT2、MINIX、UMSDOS、NCP、IS09660、HPFS、

11、MSDOS、NTFS、XIA、VFAT、PROC、NFS、SMB、SYSV、AFFS以及UFS等。由于每一種文件系統(tǒng)都有自己的組織結(jié)構(gòu)和文件操作函數(shù),并且相互之間的差別很大,Linux文件系統(tǒng)的實(shí)現(xiàn)有一定的難度。為支持上述的各種文件系統(tǒng),Linux在實(shí)現(xiàn)文件系統(tǒng)時(shí)采用了兩層結(jié)構(gòu)。第一層是虛擬文件系統(tǒng)(Virtual File System,VFS),它把各種實(shí)際文件系統(tǒng)的公共結(jié)構(gòu)抽象出來(lái),建立統(tǒng)一的以i_node為中心的組織結(jié)構(gòu),為實(shí)際文件系統(tǒng)提供兼容性。它的作用是屏蔽各類(lèi)文件系統(tǒng)的差異,給用戶、應(yīng)用程序和Linux的其他管理模塊提供統(tǒng)一的接口。第二層是Linux支持的各種實(shí)際文件系統(tǒng)。 第2

12、7頁(yè)/共34頁(yè)8.4.3 虛擬文件系統(tǒng) 虛擬文件系統(tǒng)(VFS)是物理文件系統(tǒng)與服務(wù)之間的一個(gè)接口層,它對(duì)每一個(gè)具體的文件系統(tǒng)的所有細(xì)節(jié)進(jìn)行抽象,使得Linux用戶能夠用同一個(gè)接口使用不同的文件系統(tǒng)。 第28頁(yè)/共34頁(yè)8.4.4 EXT2文件系統(tǒng) 擴(kuò)展文件系統(tǒng)EXT和第二代擴(kuò)展文件系統(tǒng)EXT2是專(zhuān)門(mén)為L(zhǎng)inux設(shè)計(jì)可擴(kuò)展的文件系統(tǒng)。 第29頁(yè)/共34頁(yè)8.4.5 Linux的文件操作系統(tǒng)調(diào)用 1. 文件的打開(kāi) 主要函數(shù)有sys_open()和sys_creat()。 2. 文件的關(guān)閉 3. 文件指針移動(dòng) 4. 讀寫(xiě)文件操作 5. 文件屬性控制 6. 文件上鎖 7. 文件的I/O控制 8. 各種其他文件操作 第30頁(yè)/共34頁(yè)8.5 Linux設(shè)備管理 8.5.1 Linux設(shè)備驅(qū)動(dòng)程序 Linux核心具體負(fù)責(zé)I/O設(shè)備的操作,這些管理和控制硬件設(shè)備控制器的程序代碼稱為設(shè)備驅(qū)動(dòng)程序,它們是常駐內(nèi)存的底層硬件處理子程序,具有控制和管理I/O設(shè)備的作用。 第31頁(yè)/共34頁(yè)8.5

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論