freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)教程-第八章 linux系統(tǒng)-全文預(yù)覽

2025-02-07 12:49 上一頁面

下一頁面
  

【正文】 ? SCHED_FIFO適合于實時進(jìn)程,它們對時間性要求比較強,而每次運行所需的時間比較短,一旦這種進(jìn)程被調(diào)度開始運行后,就要一直運行到自愿讓出 CPU,或者被優(yōu)先權(quán)更高的進(jìn)程搶占其執(zhí)行權(quán)為止。 ? 當(dāng)前進(jìn)程 (Current process)調(diào)度是由當(dāng)調(diào)度其它進(jìn)程占用 CPU時,根據(jù)調(diào)度策略對當(dāng)前進(jìn)程進(jìn)行一些處理,修改其狀態(tài),并插入相應(yīng)的隊列。 ? 進(jìn)程處于運行狀態(tài)時所剩余的時鐘滴答數(shù),其初值由priority算出。 ? 在內(nèi)核內(nèi)部使用的 priority優(yōu)先級是 1~40 ? 系統(tǒng)調(diào)用 renice可以改變進(jìn)程的優(yōu)先級 ? 實時進(jìn)程的優(yōu)先級 (rt_priority)的值由調(diào)度器來決定。 ? SCHED_OTHER:普通進(jìn)程。根據(jù)調(diào)度策略, Linux將進(jìn)程分為以下三種類型: ? SCHED_FIFO:先進(jìn)先出實時進(jìn)程。 操作系統(tǒng)教程課件 第 42頁 機械工業(yè)出版社 操作系統(tǒng)教程課件 第 43頁 表 81 task_struct結(jié)構(gòu)中的與調(diào)度有關(guān)的域 域名 含義 N e e d _ r e s c h e d 調(diào)度標(biāo)志 C o u n t e r 進(jìn)程可運行的時間量 P o l i c y 進(jìn)程調(diào)度策略 N i c e 和 P r i o r i t y 優(yōu)先級 R t _ p r i o r i t y 實時優(yōu)先級 n e e d _ r e s c h e d 表示該進(jìn)程是否需要重新調(diào)度。 ? 進(jìn)程調(diào)度的策略要考慮如下等原則: ? ⑴公平:保證每個進(jìn)程得到合理的 CPU時間; ? ⑵高效:使 CPU保持忙碌狀態(tài),即總是有進(jìn)程在 CPU上運行; ? ⑶響應(yīng)時間:使交互用戶的響應(yīng)時間盡可能短; ? ⑷周轉(zhuǎn)時間:使批處理用戶等待輸出的時間盡可能短; ? ⑸吞吐量:使單位時間內(nèi)處理的進(jìn)程數(shù)量盡可能多。 ? Clear_wait(),thread_wakeup_prim(),這兩個函數(shù)均可用于喚醒相應(yīng)的線程 ? Thread_swapout(),用于釋放指定線程的內(nèi)核棧,該內(nèi)核棧用于線程的上下文切換。 ? 線程運行過程中,動態(tài)調(diào)整其狀態(tài)的一組函數(shù): ? Thread_suspend(),使指定線程掛起,此函數(shù)分兩部分,分別稱為 suspend1和 suspend2,第一部分將指定線程的狀態(tài)轉(zhuǎn)為掛起態(tài) S,第二部分則做具體掛起操作。 ? 線程可以看作進(jìn)程中指令的不同執(zhí)行路線。 操作系統(tǒng)教程課件 第 36頁 機械工業(yè)出版社 線程狀態(tài)及轉(zhuǎn)換 ? 線程是同一個進(jìn)程中獨立的執(zhí)行上下文,它們?yōu)閱我贿M(jìn)程提供了一種同時處理多件事情的方法。 操作系統(tǒng)教程課件 第 35頁 機械工業(yè)出版社 ? 僵尸進(jìn)程( Zombie Process): ? 當(dāng)一個進(jìn)程已經(jīng)結(jié)束,但是沒有正確的清理的時候,它就是一個僵尸進(jìn)程。如果不是正常結(jié)束,可以通過 WTERMSIG宏來得到導(dǎo)致進(jìn)程非正常結(jié)束的信號值?;蛘哌M(jìn)程接收到 SIGKILL信號,用于直接立即殺死進(jìn)程。 ? 多種情況下都會出現(xiàn)進(jìn)程終止的現(xiàn)象 ? 正常終止 ? 異常終止 ? 等待進(jìn)程結(jié)束 ? 僵尸進(jìn)程( Zombie Process) 操作系統(tǒng)教程課件 第 33頁 機械工業(yè)出版社 ? 正常終止: ? 程序中調(diào)用 exit函數(shù),或者在 main函數(shù)中返回。 ? 如果執(zhí)行成功則返回子進(jìn)程識別碼 (PID)。 ? 參數(shù) pid為預(yù)期等待的子進(jìn)程識別碼 : ? pid1 等待進(jìn)程組識別碼為 pid絕對值的任何子進(jìn)程。 ? pid_t waitpid(pid_t pid,int * status,int options); ? waitpid()會暫時停止目前進(jìn)程的執(zhí)行 ,直到有信號來到或子進(jìn)程結(jié)束。 ? pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage)。 ? 復(fù)制完成后, Linux允許兩個進(jìn)程共享資源而不是復(fù)制各自的拷貝。 ? 系統(tǒng)調(diào)用 fork或 clone可以創(chuàng)建新任務(wù),復(fù)制發(fā)生在內(nèi)核狀態(tài)下的內(nèi)核中。 ? 它負(fù)責(zé)完成系統(tǒng)的一些初始化設(shè)置任務(wù) (如打開系統(tǒng)控制臺與安裝根文件系統(tǒng) ),以及執(zhí)行系統(tǒng)初始化程序,如 /etc/init, /bin/init或者 /sbin/init,這些初始化程序依賴于具體的系統(tǒng)。 ? 在 Linux早期的內(nèi)核版本中文件 /include/linux/義了 task_struct數(shù)據(jù)結(jié)構(gòu) 操作系統(tǒng)教程課件 第 23頁 機械工業(yè)出版社 ? task_struct數(shù)據(jù)結(jié)構(gòu),可以歸為如下幾類: ? 1.進(jìn)程的狀態(tài)信息 (State) ? (Scheduling Information) ? (Identifiers) ? (InterProcess Communication) ? (Links) ? (Times and Timers) ? (File system) ? (Virtual memory) ? (Processor Specific Context) ? 操作系統(tǒng)教程課件 第 24頁 機械工業(yè)出版社 ? 在 Linux系統(tǒng)中,每個進(jìn)程都有一個系統(tǒng)棧,用來保存中斷現(xiàn)場信息和進(jìn)程進(jìn)入內(nèi)核模式后執(zhí)行子程序 (函數(shù) )嵌套調(diào)用的返回現(xiàn)場信息。操作系統(tǒng)的其它內(nèi)容都是圍繞進(jìn)程展開的。(進(jìn)入內(nèi)核模式) ? (4).進(jìn)行中斷處理,通過系統(tǒng)調(diào)用號,并根據(jù)系統(tǒng)調(diào)用表找到并調(diào)用內(nèi)核函數(shù)(系統(tǒng)調(diào)用)。 操作系統(tǒng)教程課件 第 19頁 機械工業(yè)出版社 系統(tǒng)調(diào)用過程 ? (1).執(zhí)行用戶程序 (如: fork),遇到需要系統(tǒng)調(diào)用時。 ? system_call函數(shù)根據(jù)用戶傳來的系統(tǒng)調(diào)用號,在系統(tǒng)調(diào)用表里找到對應(yīng)的系統(tǒng)調(diào)用再執(zhí)行 ? 每一個系統(tǒng)調(diào)用號都對應(yīng)有一個系統(tǒng)調(diào)用 ? 接下來就是系統(tǒng)調(diào)用宏的展開 ? 當(dāng)發(fā)生調(diào)用時,函數(shù)中的 name(調(diào)用名)會被系統(tǒng)調(diào)用名所代替。 ? 關(guān)鍵問題是從用戶模式到內(nèi)核模式的轉(zhuǎn)換、堆棧的切換以及系統(tǒng)調(diào)用和參數(shù)的傳遞是如何實現(xiàn)的呢? 操作系統(tǒng)教程課件 第 17頁 機械工業(yè)出版社 ? 可以結(jié)合 Liunx源代碼根目錄下的arch/i386/kernel/ ? 切換 ? 文件中的代碼里定義了兩個非常重要的宏 ,即SAVE_ALL和 RESTORE_ALL ? 兩個宏用于解決內(nèi)核模式切換時相關(guān)信息的保存和恢復(fù) ? 模式切換后地址空間發(fā)生變化,這時還需要使用到宏__SWITCH_KERNELSPACE以實現(xiàn)地址空間的轉(zhuǎn)換。 ? 中斷響應(yīng)順序執(zhí)行下述三步動作: ? ◆中止當(dāng)前程序的執(zhí)行 ? ◆保存原程序的斷點信息 ? ◆從中斷控制器取出中斷向量,轉(zhuǎn)到相應(yīng)的處理程序 ? 內(nèi)核對中斷處理的順序主要由以下動作完成: ? ◆保存正在運行進(jìn)程的各寄存器的內(nèi)容 ? ◆確定“中斷源”或核查中斷發(fā)生,識別中斷的類型和中斷的設(shè)備號 ? ◆內(nèi)核調(diào)用中斷處理程序,對中斷進(jìn)行處理 ? ◆中斷處理完成并返回 操作系統(tǒng)教程課件 第 14頁 機械工業(yè)出版社 Linux 系統(tǒng)調(diào)用 ? 系統(tǒng)調(diào)用 ? 是內(nèi)核提供的、功能十分強大的一系列的函數(shù) ? 這些系統(tǒng)調(diào)用是在內(nèi)核中實現(xiàn)的,再通過一定的方式讓用戶可以調(diào)用,一般都通過門 (gate)陷入 (trap)實現(xiàn) ? 系統(tǒng)調(diào)用是用戶程序和內(nèi)核交互的接口 ? 在 Linux kernel ,有 280多個系統(tǒng)調(diào)用 ? 系統(tǒng)調(diào)用是用戶接口在內(nèi)核中的實現(xiàn),如果沒有系統(tǒng)調(diào)用,用戶就不能利用內(nèi)核。 ? 第三類由于在程序中使用了請求系統(tǒng)服務(wù)的系統(tǒng)調(diào)用而引發(fā)的過程,稱作“陷入” (trap,或者陷阱 )。 操作系統(tǒng)教程課件 第 10頁 機械工業(yè)出版社 ? Linux系統(tǒng)內(nèi)核結(jié)構(gòu)的詳細(xì)框圖分成用戶層、內(nèi)核層和硬件層三個層次。 ? Linux系統(tǒng)內(nèi)存管理模塊 ? 控制內(nèi)存分配與回收。 ? 單內(nèi)核模式的主要優(yōu)點 ? 內(nèi)核代碼結(jié)構(gòu)緊湊 ? 執(zhí)行速度快 ? 單內(nèi)核模式的不足之處: ? 層次結(jié)構(gòu)性不強 ? Linux內(nèi)核基本上是單一的,但是它并不是一個純粹的集成內(nèi)核。機械工業(yè)出版社 第八章 Linux系統(tǒng) ? Linux系統(tǒng)概述 ? Linux進(jìn)程管理 ? Linux內(nèi)存管理 ? Linux輸入和輸出系統(tǒng) ? Linux文件系統(tǒng) ? 本章小結(jié) 操作系統(tǒng)教程課件 第 1頁 機械工業(yè)出版社 Linux系統(tǒng)概述 ? Linux的產(chǎn)生及版本 ? Linux的特點 ? Linux 系統(tǒng)模型 ? 系統(tǒng)機制 操作系統(tǒng)教程課件 第 2頁 機械工業(yè)出版社 ? Linux操作系統(tǒng)是 UNIX操作系統(tǒng)的一種克隆系統(tǒng) ? 誕生于 1991年的 10月 5日。 ? 發(fā)行 (Distribution)版本 ? 一些組織或廠家,將 Linux系統(tǒng)的內(nèi)核與外圍實用程序 (Utilities)軟件和文檔包裝起來,并提供一些系統(tǒng)安裝界面和系統(tǒng)配置、設(shè)定與管理工具,就構(gòu)成了一種發(fā)行版本 (distribution) ? 最流行的幾個正式版本有: SUSELinux、 RedHat、 Fedora、 Ubuntu、TurboLinux、 Slackware、 OpenLinux、 Debian 操作系統(tǒng)教程課件 第 4頁 機械工業(yè)出版社 Linux的特點 ? Linux功能強大而全面 ? 與 UNIX兼容 ? 自由軟件和源碼公開 ? 性能高且安全性強 ? 便于定制和再開發(fā) ? 強大的互操作性 ? 全面的多任務(wù)和真正的 32位及 64位的操作系統(tǒng) 操作系統(tǒng)教程課件 第 5頁 機械工業(yè)出版社 Linux 系統(tǒng)模型 ? Linux 內(nèi)核模式 ? Linux 內(nèi)核結(jié)構(gòu) 操作系統(tǒng)教程課件 第 6頁 機械工業(yè)出版社 ? 操作系統(tǒng)內(nèi)核的結(jié)構(gòu)模式 : ? 層次式的微內(nèi)核模式 ? 整體式的單內(nèi)核模式 ? 微內(nèi)核設(shè)計優(yōu)點 ? 在不影響系統(tǒng)其它部分的情況下,用更高效的實現(xiàn)代替現(xiàn)有系統(tǒng)模塊的工作 ? 不需要的模塊將不會被加載到內(nèi)存中,因此微內(nèi)核就可以更有效的利用內(nèi)存。 ? Linux的內(nèi)核展現(xiàn)出了幾個相互關(guān)聯(lián)的設(shè)計目標(biāo): ? 清晰性( clarity) ? 兼容性( patibility) ? 可移植性( portability) ? 健壯性( robustness) ? 安全性( security) ? 速度( speed) 操作系統(tǒng)教程課件 第 8頁 機械工業(yè)出版社 Linux 內(nèi)核結(jié)構(gòu) ? Linux內(nèi)核主要由 5個模塊構(gòu)成:進(jìn)程調(diào)度模塊、內(nèi)存管理模塊、文件系統(tǒng)模塊、進(jìn)程間通信模塊和網(wǎng)絡(luò)接口模塊 操作系統(tǒng)教程課件 第 9頁 機械工業(yè)出版社 ? Linux系統(tǒng)進(jìn)程控制系統(tǒng) ? 由進(jìn)程調(diào)度模塊和進(jìn)程間通信模塊構(gòu)成,用于進(jìn)程管理、進(jìn)程同步、進(jìn)程通信、進(jìn)程調(diào)度等。 ? 使用了虛擬文件系統(tǒng) (VFS)來支持多種不同的文件系統(tǒng) ? Linux系統(tǒng)支持字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備三種類型的硬件設(shè)備。 ? 第二類是來自 CPU的內(nèi)部事件或程序執(zhí)行中的事件引起的過程,稱作異常,如由于 CPU本身故障、程序故障等引起的過程。 ? 中斷響應(yīng)由硬件實施,中斷處理主要由軟件實施。 操作系統(tǒng)教程課件 第 16頁 機械工業(yè)出版社 ? 對于內(nèi)核來說系統(tǒng)調(diào)用就相當(dāng)于函數(shù)。 ? 使用 sys_call_table函數(shù)來找到系統(tǒng)調(diào)用名字以及入口地址 ? 為實現(xiàn)系統(tǒng)調(diào)用,還需從 glibc中的函數(shù)實現(xiàn)到系統(tǒng)調(diào)用中使用一個重要的環(huán)節(jié),即系統(tǒng)調(diào)用號 ? 系統(tǒng)調(diào)用號的定義在 include/asmi386/。這個過程里包含了系統(tǒng)調(diào)用的初始化,系統(tǒng)調(diào)用的初始化源代碼在: arch/i386/kernel/。 ? (3).執(zhí)行 ,進(jìn)行地址空間的轉(zhuǎn)換和堆棧的切換,執(zhí)行 SAVE_ALL。 操作系統(tǒng)教程課件 第 20頁 機械工業(yè)出版社 Linux進(jìn)程管理 ? 進(jìn)程的數(shù)據(jù)結(jié)構(gòu) ? 進(jìn)程和線程 ? 進(jìn)程的調(diào)度 ? 進(jìn)程的通信機制 操作系統(tǒng)教程課件 第 21頁 機械工業(yè)出版社 ? 操作系統(tǒng)借助于進(jìn)程來管理計算機的軟、硬件資源,支持多任務(wù)的并發(fā)。這些進(jìn)程必須對外部事件做出快速反應(yīng),系統(tǒng)將區(qū)分對待這些進(jìn)程和其他進(jìn)程。 ? init內(nèi)核線程 (或進(jìn)程 )是系統(tǒng)的第一個真正的進(jìn)程,標(biāo)志符為 1。 操作系統(tǒng)教程課件 第 29頁 機械工業(yè)出版社 ? 新進(jìn)程通過克隆老進(jìn)程或當(dāng)前進(jìn)程來創(chuàng)建。 ? 新創(chuàng)建的 task_struct將被放入 task數(shù)組中,將被復(fù)制進(jìn)程的task_struct中的內(nèi)容頁表拷入
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1