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