【正文】
ORY一些概念l 邏輯地址:an address generated by cpul 物理地址:an address seen by the memory unitl 內(nèi)存管理單元(MMUmemory management unit): 包括一個(gè)基地址寄存器(relocation register)和一個(gè)加法器,在程序運(yùn)行時(shí)map虛擬地址到物理地址。管程實(shí)現(xiàn)同步:內(nèi)部設(shè)置條件變量。}V操作( signal):release a resourcesignal (S) { S++。滿足有空讓進(jìn)和有限等待:假設(shè)Pi已經(jīng)準(zhǔn)備好進(jìn)入臨界區(qū),正在while循環(huán)中等待。 // end of critical sectionP1: flag[1] = true。Multilevel FeedbackQueue(多級(jí)反饋隊(duì)列):主流OS使用此算法。進(jìn)程與線程的區(qū)別聯(lián)系(1)調(diào)度方面:線程作為調(diào)度分派的基本單位,而進(jìn)程則是資源分配和調(diào)度的一個(gè)基本單位;(2)并發(fā)性方面:進(jìn)程之間可以并發(fā),一個(gè)進(jìn)程的多線程之間也可并發(fā)執(zhí)行;(3)擁有資源方面:進(jìn)程作為擁有資源的基本單位,而線程只擁有少量必不可少的資源,但它可以訪問所屬進(jìn)程的資源(4)系統(tǒng)開銷方面:進(jìn)程切換要涉及到進(jìn)程環(huán)境的切換,開銷較大,而線程間切換只需保存和設(shè)置少量的寄存器內(nèi)容,開銷遠(yuǎn)小于進(jìn)程切換開銷進(jìn)程的控制(1) 進(jìn)程控制由操作系統(tǒng)內(nèi)核完成(2) 內(nèi)核通過執(zhí)行相應(yīng)的原語(primitive)來實(shí)現(xiàn)進(jìn)程的控制(3) 進(jìn)程控制原語:創(chuàng)建,終止,阻塞,喚醒,掛起,激活創(chuàng)建原語完成以下工作:申請(qǐng)一個(gè)空PCB,初始化PCB中項(xiàng)目,把PCB插入就緒隊(duì)列撤消原語完成以下工作:根據(jù)ID在PCB鏈中查找相應(yīng)PCB,檢查進(jìn)程狀態(tài)。進(jìn)程的概念:程序的一次執(zhí)行進(jìn)程的特性:(1)動(dòng)態(tài)性:有生命周期(2)并發(fā)性:并發(fā)執(zhí)行(3)獨(dú)立性:獨(dú)立獲得資源、獨(dú)立運(yùn)行單位(4)異步性:推進(jìn)速度不可預(yù)知道、執(zhí)行結(jié)果不確定(5)結(jié)構(gòu)性:由程序段、數(shù)據(jù)段和PCB組成進(jìn)程的狀態(tài)(process state):進(jìn)程的組成程序(text section),數(shù)據(jù)(data section),PCB(process control blocks)PCB的定義:記錄OS所需的、用于描述進(jìn)程的當(dāng)前情況以及控制進(jìn)程運(yùn)行的全部信息,是進(jìn)程存在的唯一標(biāo)志,常駐內(nèi)存。l 優(yōu)點(diǎn):提高CPU利用率,控制并發(fā)。同時(shí)訪問方式是指如程序段和磁盤等資源,可以由進(jìn)程交替訪問。(3)實(shí)時(shí)(realtime):實(shí)時(shí)性,對(duì)時(shí)間有嚴(yán)格的要求,對(duì)安全性要求高。(4)通用:同時(shí)具有兩種或以上性質(zhì)的操作系統(tǒng)。(3)虛擬性(Virtual): (2)分時(shí)技術(shù)(timesharing/multitasking)定義:logical extension of multiprogramming. The cpu executes multiple jobs by switching among them, but the switch so frequently that the users can interact with each program while it is running.CHAPTER 21.操作系統(tǒng)接口(1)作業(yè)級(jí)接口(Command interface):l 命令行(mand line interface)l 批處理(batch):規(guī)定一種特殊的文件,通常該文件有特殊的擴(kuò)展名,用戶可預(yù)先把一系列命令組織在該文件中,一次建立多次執(zhí)行l(wèi) GUI:make mousebasedwindowandmenu system as interface(2)程序級(jí)接口(Program interface)系統(tǒng)調(diào)用(system call) 定義:system call provide an interface to the service made available by the operating 。PCB的內(nèi)容:進(jìn)程標(biāo)識(shí)符;處理機(jī)狀態(tài)(CPU現(xiàn)場(chǎng));進(jìn)程調(diào)度信息:狀態(tài)、優(yōu)先級(jí)、時(shí)間、事件;進(jìn)程控制信息:地址、通信信息、資源。若是執(zhí)行狀態(tài)則終止進(jìn)程;終止其子進(jìn)程;回收資源;撤銷PCB阻塞原語:當(dāng)出現(xiàn)阻塞事件,將狀態(tài)改為阻塞狀態(tài),進(jìn)入阻塞隊(duì)列喚醒原語:將阻塞進(jìn)程喚醒,狀態(tài)改為READY,插入就緒隊(duì)列。與多級(jí)隊(duì)列算法不同的是,多級(jí)反饋隊(duì)列允許進(jìn)程轉(zhuǎn)移到其他隊(duì)列。 turn = 0。對(duì)于Pj的以下三種情況:l 若Pj未準(zhǔn)備好,則FLAG[j] = 0,那么Pi的while條件不再滿足,進(jìn)入臨界區(qū)。}//,有一個(gè)P操作就一定有一個(gè)V操作//當(dāng)為互斥操作時(shí),它們處于同一進(jìn)程//當(dāng)為同步操作時(shí),則不在同一進(jìn)程中出現(xiàn)//對(duì)于前后相連的兩個(gè)P(S1)和P(S2) ,順序是至關(guān)重要的:同步P操作應(yīng)該放在互斥P操作前,而兩個(gè)V操作順序則無關(guān)緊要信號(hào)量實(shí)現(xiàn)互斥為臨界資源設(shè)置一個(gè)互斥信號(hào)量mutex,其初值為1;在每個(gè)進(jìn)程中將臨界區(qū)代碼置于P(mutex)和V(mutex)原語之間信號(hào)量實(shí)現(xiàn)同步,有一個(gè)P操作就一定有一個(gè)V操作三個(gè)經(jīng)典問題(1)生產(chǎn)者消費(fèi)者(2)讀者寫者(3)哲學(xué)家吃米飯While (true) { wait ( chopstick[i] )。一個(gè)條件變量就是一個(gè)線程隊(duì)列(queue), 其中的線程正等待某個(gè)條件變?yōu)檎?。l Compiler bind symbolic address to reloacatable addressl Loader/linkage editor bind relocatable address to absolute address重定位動(dòng)態(tài)重定位:在程序執(zhí)行期間每次訪問內(nèi)存之前進(jìn)行重定位。分頁的地址變換過程當(dāng)一個(gè)進(jìn)程轉(zhuǎn)入執(zhí)行狀態(tài)時(shí),其頁表的始址和長(zhǎng)度從其PCB中裝入頁表寄存器。頁表增加以下內(nèi)容:存在位P、訪問字段A、修改位M、外存地址。記錄式文件:順序文件:記錄通常是定長(zhǎng)的,順序存取;索引文件:記錄通常是變長(zhǎng)的,方便直接存取;索引順序文件:前二者的結(jié)合,減少了索引表所占的空間文件的訪問方式(access method)順序訪問(磁帶模型)/隨機(jī)訪問(磁盤模型)/索引表訪問目錄(directory):即文件夾,而是關(guān)于文件及文件系統(tǒng)的信息,即文件夾里面存放的是從文件到文件所在磁盤地址的映射. FCB的有序集合,其中的每個(gè)FCB叫作一個(gè)目錄項(xiàng)。分配算法:首次適應(yīng)、最佳適應(yīng)等。為了實(shí)現(xiàn)設(shè)備獨(dú)立性,用戶程序不直接使用物理設(shè)備名(或設(shè)備的物理地址),而使用邏輯設(shè)備名來請(qǐng)求某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),將邏輯設(shè)備名轉(zhuǎn)換為某個(gè)具體的物理設(shè)備名,實(shí)施I/O操作。獨(dú)立性還可使用戶程序獨(dú)立于設(shè)備的類型。寧可累死在路上,也不能閑死在家里!寧可去碰壁,也不能面壁。什么是奮斗?奮斗就是每天很難,可一年一年卻越來越容易。 為了實(shí)現(xiàn)設(shè)備獨(dú)立性,在應(yīng)用程序中應(yīng)使用邏輯設(shè)備名來請(qǐng)求使用某類設(shè)備;而系統(tǒng)中必須設(shè)置一張邏輯設(shè)備表LUT用來進(jìn)行邏輯設(shè)備到物理設(shè)備的映射,其中每個(gè)表目中包括邏輯設(shè)備名、物理設(shè)備名、設(shè)備驅(qū)動(dòng)程序的入口地址三項(xiàng);當(dāng)應(yīng)用程序用邏輯設(shè)備名申請(qǐng)I/O設(shè)備