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

正文內(nèi)容

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

  

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