




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-PAGE156--PAGE157-《操作系統》第一章操作系統概述1.1操作系統的目標和作用1.1.1操作系統的目標目標:1.方便性。不需要人人都是程序員2.有效性。工作協調高效3.可擴充性。各自獨立發展4.開放性。移植和互操作1.1.2操作系統的作用1.OS作為用戶與計算機硬件系統之間的接口OS處于用戶與計算機硬件系統之間,用戶通過OS來使用計算機系統。(從用戶角度來看,來操縱計算機。)(1)命令輸入。形式又分為以下幾種:命令行(CommandLineInput):由OS提供的一組聯機命令(語言),用戶可通過鍵盤輸入有關命令,來直接操縱計算機系統。圖形用戶界面(GUI):用戶通過顯示設備上的窗口和圖標來操縱計算機系統和運行自己的程序。自然輸入方式(NUI):用戶通過語音識別輸入來操縱計算機系統和運行自己的程序。(2)系統調用方式(SystemCall)。OS提供了一組系統調用,用戶可在自己的應用程序中通過相應的使用編程調用API1.1.3推動操作系統發展的主要動力1.不斷提高計算機資源利用率2.方便用戶3.器件的不斷更新換代4.計算機體系結構的不斷發展用戶的需求是推動OS發展的根本動力2.OS作為計算機系統資源的管理者在一個計算機系統中通常都含有各種各樣的硬件和軟件資源。需要空間和時間來使用這些資源,OS合理調配和使用。(這是從管理者的角度來看)3.OS用作擴展機、虛擬機隱藏了計算機具體細節,為用戶展現的是一臺虛擬機,功能上擴展了幾個功能部件的組合。(這是從發展的角度來看)Government1.2操作系統的發展過程1.2.1無操作系統的計算機系統1.人工操作方式從第一臺計算機ENIAC誕生(1945年2月)到50年代中期的計算機,屬于第一代。這種人工操作方式有以下兩方面的缺點:(1)用戶獨占全機。(2)CPU等待人工操作。2.脫機輸入/輸出(Off-LineI/O)方式這種脫機I/O方式的主要優點如下:(1)減少了CPU的空閑時間。(2)提高I/O速度。
1.2.2單道批處理系統1.單道批處理系統(SimpleBatchProcessingSystem)的處理過程2.單道批處理系統的特征該系統的主要特征如下:(1)自動性。(2)順序性。(3)單道性。1.2.3多道批處理系統1.多道程序設計的基本概念多道批處理系統(MultiprogrammedBatchProcessingSystem)。在該系統中,用戶所提交的作業都先存放在外存上并排成一個隊列,稱為后備隊列;然后,由作業調度程序按一定的算法從后備隊列中選擇若干個作業調入內存,使它們共享CPU和系統中的各種資源。這種調度稱之為作業調度。1.2.4分時系統1.分時系統(TimeSharingSystem)的產生如果說,推動多道批處理系統形成和發展的主要動力,是提高資源利用率和系統吞吐量,那么,推動分時系統形成和發展的主要動力,則是用戶的需求。用戶的需求具體表現在以下幾個方面:(1)人機交互。(2)共享主機。(3)便于用戶上機。2.分時系統實現中的關鍵問題分時系統性能好壞的主要指標是響應時間。(1)及時接收。(2)及時處理。(3)符合使用習慣。在OS中引入多道程序設計技術可帶來以下好處:(1)提高CPU的利用率。(2)可提高內存和I/O設備利用率。(3)增加系統吞吐量。2.多道批處理系統的特征(1)多道性。(2)無序性。(3)調度性。3.多道批處理系統的優缺點(1)資源利用率高。(2)系統吞吐量大。(3)平均周轉時間長。(4)無交互能力。4.多道批處理系統需要解決的問題(1)處理機管理問題。(2)內存管理問題。(3)I/O設備管理問題。(4)文件管理問題。(5)作業管理問題。3.分時系統的特征(1)多路性。(2)獨立性。(3)及時性。(4)交互性。1.2.5實時系統實時系統(Real-TimeSystem)是指系統能及時(或即時)響應外部事件的請求,在規定的間內完成對該事件的處理,并控制所有實時任務協調一致地運行。1.3操作系統的基本特性1.3.1并發(Concurrence)并行性和并發性是既相似又有區別的兩個概念,并行性是指兩個或多個事件在同一時刻發生;而并發性是指兩個或多個事件在同一時間間隔內發生。最基本的特征!1.3.2共享(Sharing)在操作系統環境下,所謂共享是指系統中的資源可供內存中多個并發執行的進程(線程)共同使用。1.3.3虛擬(Virtual)操作系統中的所謂虛擬,是指通過某種技術把一個物理實體變為若干個邏輯上的對應物。1.3.4異步性(Asynchronism)在多道程序環境下,多個進程是以停停走走的方式運行。失去封閉性第二章進程管理2.1進程的基本概念2.1.1程序的順序執行及其特征2.1.2前趨圖前趨圖(PrecedenceGraph)是一個有向無循環圖,記為DAG(DirectedAcyclicGraph),用于描述進程之間執行的前后關系。2.1.3程序的并發執行及其特征2.1.4進程的特征與狀態OneprogramwhichhasanindependentfunctionworksoncertaindatasetdynamicallyandallocateresourcesdynamicallyWhatisaprocess?一個具有一定獨立功能的程序對某個數據集合上的一次動態執行過程和資源分配過程Code,Data,ProcessTableTheDifferenceBetweenProcessandProgramProcessisdynamic,andtheprogramisstaticProcessistemporary,theprogramispermanenceTheelementsofprocessandprogramisdifferentCodeData–PTTherelationshipsofprocessandprogramarecomplexCreateSystemcall2.進程的三種基本狀態1)就緒(Ready)狀態2)執行狀態3)阻塞狀態2.1.5進程控制塊1.進程控制塊的作用進程控制塊的作用是記錄一個獨立運行的進程的基本信息。或者說,OS是根據PCB來對并發執行的進程進行控制和管理的。2.進程控制塊中的信息3.進程控制塊的組織方式1)鏈接方式2)索引方式2.2進程控制2.2.1進程的創建(1)用戶登錄。(2)作業調度。(3)提供服務。(4)應用請求。(1)申請空白PCB。(2)為新進程分配資源。(3)初始化進程控制塊。(4)將新進程插入就緒隊列,如果進程就緒隊列能夠接納新進程,便將新進程插入就緒隊列。2.進程的終止過程(1)根據被終止進程的標識符,從PCB集合中檢索出該進程的PCB,從中讀出該進程的狀態。(2)若被終止進程正處于執行狀態,應立即終止該進程的執行,并置調度標志為真,用于指示該進程被終止后應重新進行調度。(3)若該進程還有子孫進程,還應將其所有子孫進程予以終止,以防他們成為不可控的進程。(4)將被終止進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統。(5)將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其他程序來搜集信息。2.2.2進程的終止1)正常結束(自愿的)2)異常結束普通錯誤退出(自愿的)致命錯誤退出(非自愿的)3)外界干預(非自愿的)2.2.3進程的阻塞與喚醒1.引起進程阻塞和喚醒的事件1)請求系統服務2)啟動某種操作3)新數據尚未到達4)無新工作可做2.2.4進程的掛起與激活2.3進程同步2.3.1進程同步的基本概念1.兩種形式的制約關系(1)間接相互制約關系。(2)直接相互制約關系。2.臨界資源(CriticalResource)3.臨界區(criticalsection)一個飛機訂票系統,兩個終端,運行T1、T2進程T1:……read(x);ifx>=1thenx:=x-1;write(x);……T2:……read(x);ifx>=1thenx:=x-1;write(x);……CriticalRegionsComingdatablocksSynchronization4.同步機制應遵循的規則(1)空閑讓進。(2)忙則等待。(3)有限等待。(4)讓權等待。(Peterson’sAlgorithm):先修改、后檢查、后修改者等待正確的算法turn=j;描述可進入的進程(同時修改標志時)在進入區先修改后檢查,并檢查并發修改的先后:檢查對方flag,如果不在臨界區則自己進入--空閑則入否則再檢查turn:保存的是較晚的一次賦值,則較晚的進程等待,較早的進程進入--先到先入,后到等待MutualExclusionwithBusyWaitingEnteringandleavingacriticalregionusingtheTSLinstructionSleepandWakeupProducer-consumerproblemwithfatalracecondition2.3.2信號量機制1.整型信號量最初由Dijkstra把整型信號量定義為一個整型量,僅能通過初始化和兩個標準的原子操作(AtomicOperation)wait(S)和signal(S)來訪問。兩個操作被分別稱為P、V操作(primitive)。wait(S):whileS≤0donoopS∶=S-1;signal(S):S∶=S+1;2.記錄型信號量在整型信號量機制中的wait操作,只要是信號量S≤0,就會不斷地測試。因此,該機制并未遵循讓權等待的準則,而是使進程處于忙等的狀態。記錄型信號量機制,則是一種不存在忙等現象的進程同步機制。但在采取了讓權等待的策略后,又會出現多個進程等待訪問同一臨界資源的情況。為此,在信號量機制中,除了需要一個用于代表資源數目的整型變量value外,還應增加一個進程鏈表L,用于鏈接上述的所有等待進程。記錄型信號量是由于它采用了記錄型的數據結構而得名的。P原語wait(s);down(s);P(s)--s.count;//表示申請一個資源;if(s.count<0)//表示沒有空閑資源;{調用進程進入等待隊列s.queue;阻塞調用進程;}V原語signal(s);up(s);V(s)++s.count;//表示釋放一個資源;if(s.count<=0)//表示有進程處于阻塞狀態;{從等待隊列s.queue中取出一個進程P;進程P進入就緒隊列;}SemaphoresTheproducer-consumerproblemusingsemaphoresMonitorsExampleofamonitor2.4經典進程的同步問題2.4.1生產者消費者問題1.利用記錄型信號量解決生產者消費者問題DiningPhilosophersPhilosopherseat/thinkEatingneeds2forksPickoneforkatatimeHowtopreventdeadlock2.4.2哲學家進餐問題讓奇數號的哲學家先取右手邊的筷子,讓偶數號的哲學家先取左手邊的筷子。send(i)beginifimod2=0thenelse{{P(c[i]);P(c[i+1mod5]);P(c[i+1mod5]);P(c[i]);eat;eat;V(c[i+1mod5]);V(c[i]);V(c[i]);V(c[i+1mod5]);}}end2.4.3讀者寫者問題讀者-寫者問題描述TheReadersandWritersProblem1.利用記錄型信號量解決讀者寫者問題
TheSleepingBarberProblemTheSleepingBarberProblemSolutiontosleepingbarberproblemSharedmemory(共享內存)Message(消息機制)Pipe(管道)Signal(信號)Socket(套接字)InterprocessCommunication2.5進程通信2.5.1進程通信的類型1.共享存儲器系統(SharedMemorySystem)(1)基于共享數據結構的通信方式。(2)基于共享存儲區的通信方式。2.消息傳遞系統(Messagepassingsystem)在消息傳遞系統中,進程間的數據交換,是以格式化的消息(message)為單位的;在計算機網絡中,又把message稱為報文。程序員直接利用系統提供的一組通信命令(原語)進行通信。3.管道(Pipe)通信管道是指用于連接一個讀進程和一個寫進程以實現他們之間通信的一個共享文件,又名pipe文件。這種方式首創于UNIX系統,由于它能有效地傳送大量數據,因而又被引入到許多其它操作系統中。2.5.2消息傳遞通信的實現方法1.直接通信方式通信命令(原語):Send(Receiver,message);發送一個消息給接收進程;Receive(Sender,message);接收Sender發來的消息;例如,原語Send(P2,m1)表示將消息m1發送給接收進程P2;而原語Receive(P1,m1)則表示接收由P1發來的消息m1。不指定發送者的接收原語可表示為:Receive(id,message);利用直接通信原語,解決生產者消費者問題。repeat…produceaniteminnextp;…send(consumer,nextp);untilfalse;repeatreceive(producer,nextc);…consumetheiteminnextc;untilfalse;MessagePassing.Theproducer-consumerproblemwithNmessages2.間接通信方式(1)信箱的創建和撤消。(2)消息的發送和接收。Send(mailbox,message);將一個消息發送到指定信箱;Receive(mailbox,message);從指定信箱中接收一個消息;3.進程同步方式(1)發送進程阻塞、接收進程阻塞。(2)發送進程不阻塞、接收進程阻塞。(3)發送進程和接收進程均不阻塞。2.6線程2.6.1線程的基本概念為使程序能并發執行,系統還必須進行以下的一系列操作。1)創建進程2)撤消進程3)進程切換1.線程的引入TheThreadModel(a)Threeprocesseseachwithonethread(b)OneprocesswiththreethreadsForExampleTheThreadModelEachthreadhasitsownstack2.線程的屬性(1)輕型實體(容易創建和撤銷)。(2)獨立調度和分派的基本單位。(3)可并發執行。(4)共享進程資源。(5)適應硬件的發展TheThreadModelItemssharedbyallthreadsinaprocessItemsprivatetoeachthread
3.線程的狀態(1)狀態參數。(2)線程運行狀態。5.多線程OS中的進程在多線程OS中,進程是作為擁有系統資源的基本單位,通常的進程都包含多個線程并為它們提供資源,但此時的進程就不再作為一個執行的實體。多線程OS中的進程有以下屬性:(1)作為系統資源分配的單位。(2)可包括多個線程。(3)進程不是一個可執行的實體。4.線程的創建和終止在多線程OS環境下,應用程序在啟動時,通常僅有一個線程在執行,該線程被人們稱為初始化線程。它可根據需要再去創建若干個線程。終止線程的方式有兩種:一種是在線程完成了自己的工作后自愿退出;另一種是線程在運行中出現錯誤或由于某種原因而被其它線程強行終止。2.6.2線程間的同步和通信1.互斥鎖(mutex)互斥鎖是一種比較簡單的、用于實現線程間對資源互斥訪問的機制。2.條件變量Useofabarrierprocessesapproachingabarrierallprocessesbutoneblockedatbarrierlastprocessarrives,allareletthrough2.6.3內核支持線程和用戶級線程1.內核支持線程這里所謂的內核支持線程,也都同樣是在內核的支持下運行的,即無論是用戶進程中的線程,還是系統進程中的線程,他們的創建、撤消和切換等,也是依靠內核實現的。此外,在內核空間還為每一個內核支持線程設置了一個線程控制塊,內核是根據該控制塊而感知某線程的存在的,并對其加以控制。ImplementingThreadsintheKernelAthreadspackagemanagedbythekernel2.用戶級線程用戶級線程僅存在于用戶空間中。對于這種線程的創建、撤消、線程之間的同步與通信等功能,都無須利用系統調用來實現。對于用戶級線程的切換,通常是發生在一個應用進程的諸多線程之間,這時,也同樣無須內核的支持。由于切換的規則遠比進程調度和切換的規則簡單,因而使線程的切換速度特別快。可見,這種線程是與內核無關的。ImplementingThreadsinUserSpaceAuser-levelthreadspackageHybridImplementationsMultiplexinguser-levelthreadsontokernel-levelthreadsTheMultithreadingRevolution第三章處理機調度與死鎖3.1處理機調度的基本概念BurstsofCPUusagealternatewithperiodsofI/OwaitaCPU-boundprocessanI/O-boundprocessSchedulingAlgorithmGoals3.1.1高級、中級和低級調度ThreelevelschedulingFCFSSJFHRFSRFFCFSSPFRRPS1.高級調度(HighScheduling)宏觀調度在每次執行作業調度時,都須做出以下兩個決定。1)接納多少個作業?2)接納哪些作業?2.低級調度(LowLevelScheduling)微觀調度1)非搶占方式(Non-preemptiveMode)優點:實現簡單、系統開銷小。調度時機:①正在執行的進程執行完畢退出②發生某事件而被阻塞(外部原因)③執行中的進程提出阻塞請求(自我原因)2)搶占方式(PreemptiveMode)優點:處理及時,實現復雜搶占的時機:①具有搶先權的進程創建就緒②具有搶先權的進程被喚醒進入就緒③具有搶先權的進程從掛起進入就緒3.中級調度(Intermediate-LevelScheduling)中程調度引入中級調度的主要目的,是為了提高內存利用率和系統吞吐量。中級調度的算法主要由內存管理來實現,與高級調度和低級調度的算法不同。3.1.2調度隊列模型1.僅有進程調度的調度隊列模型2.具有高級和低級調度的調度隊列模型3.同時具有三級調度的調度隊列模型3.1.3選擇調度方式和調度算法的若干準則1.面向用戶的準則(1)周轉時間短(批處理)平均周轉時間帶權周轉時間WT/TS而平均帶權周轉時間(2)響應時間快(交互式系統)(3)截止時間的保證(實時系統)(4)優先權準則(特權處理)2.面向系統的準則(1)系統吞吐量高(批處理)(2)處理機利用率好(所有的)(3)各類資源的平衡利用(所有的)符合習慣思維(交互式)具有前瞻預測(實時系統)3.2調度算法3.2.1先來先服務和短作業(進程)優先調度算法1.先來先服務調度算法2.短作業(進程)優先調度算法FCFS的特點比較有利于長作業,而不利于短作業。有利于CPU繁忙的作業,而不利于I/O繁忙的作業。SJF的特點優點:比FCFS改善平均周轉時間和平均帶權周轉時間,縮短作業的等待時間;提高系統的吞吐量;缺點:對長作業非常不利,可能長時間得不到執行;未能依據作業的緊迫程度來劃分執行的優先級;難以準確估計作業(進程)的執行時間,從而影響調度性能。SJF的變型.“最短剩余時間優先”SRT(ShortestRemainingTime)允許比當前進程剩余時間更短的進程來搶占.“最高響應比優先”HRRN(HighestResponseRatioNext)響應比R=(等待時間+要求執行時間)/要求執行時間是FCFS和SJF的折衷3.2.2高優先權優先調度算法1.優先權調度算法的類型1)非搶占式優先權算法2)搶占式優先權調度算法2.優先權的類型1)靜態優先級創建進程時就確定,直到進程終止前都不改變。通常是一個整數。依據:進程類型(系統進程優先級較高)對資源的需求(對CPU和內存需求較少的進程,優先級較高)用戶要求(緊迫程度和付費多少)2)動態優先權在創建進程時賦予的優先級,在進程運行過程中可以自動改變,以便獲得更好的調度性能.在就緒隊列中,等待時間延長則優先級提高,從而使優先級較低的進程在等待足夠的時間后,其優先級提高到可被調度執行進程每執行一個時間片,就降低其優先級,從而一個進程持續執行時,其優先級降低到出讓CPU3.高響應比優先調度算法3.2.3基于時間片的輪轉調度算法1.時間片輪轉法RoundRobinSchedulinglistofrunnableprocesseslistofrunnableprocessesafterBusesupitsquantum2.多級反饋隊列調度算法(RoundRobinwithMultipleFeedback)多級反饋隊列算法是時間片輪轉算法和優先級算法的綜合和發展。優點:為提高系統吞吐量和縮短平均周轉時間而照顧短進程為獲得較好的I/O設備利用率和縮短響應時間而照顧I/O型進程不必估計進程的執行時間,動態調節AschedulingalgorithmwithfourpriorityclassesPS3.多級反饋隊列調度算法的性能(1)終端型作業用戶。(2)短批處理作業用戶。(3)長批處理作業用戶。3.2a實時調度Schedulablereal-timesystem.GivenmperiodiceventseventioccurswithinperiodPiandrequiresCisecondsThentheloadcanonlybehandledifWewilldiscussinthemultimediaOS
3.3產生死鎖的原因和必要條件3.3.1產生死鎖的原因(1)互斥資源分配不當(2)進程間推進順序不當1.競爭資源引起進程死鎖1)可剝奪和非剝奪性資源2)競爭非剝奪性資源3)競爭臨時性資源ResourcesExamplesofcomputerresources–printerstapedrives–tablesProcessesneedaccesstoresourcesinreasonableorderSupposeaprocessholdsresourceAandrequestsresourceBatsametimeanotherprocessholdsBandrequestsAbothareblockedandremainsoResourcesResourcesResourcesTwoprocessresourcetrajectories2.進程推進順序不當引起死鎖IntroductiontoDeadlocksFormaldefinition:AsetofprocessesisdeadlockedifeachprocessinthesetiswaitingforaneventthatonlyanotherprocessinthesetcancauseUsuallytheeventisreleaseofacurrentlyheldresourceNoneoftheprocessescan…–runreleaseresourcesbeawakened3.3.2產生死鎖的四個必要條件(1)互斥條件(2)請求和保持條件(3)不剝奪條件(4)環路等待條件3.3.3處理死鎖的基本方法(1)忽略死鎖(2)檢測和解除死鎖(3)避免死鎖(4)預防死鎖3.4解決死鎖的方法3.4.1忽略死鎖1.鴕鳥算法死鎖發生的概率小解決死鎖的代價太大3.4.2死鎖的檢測與解除死鎖的檢測1.資源分配圖(ResourceAllocationGraph)DetectionwithOneResourceofEachTypeNotetheresourceownershipandrequestsAcyclecanbefoundwithinthegraph,denotingdeadlockT2.死鎖定理3.死鎖檢測中的數據結構DetectionwithMultipleResourceofEachTypeAnexampleforthedeadlockdetectionalgorithm死鎖的解除(1)剝奪資源(2)回溯到還原點(3)撤消進程(4)重起系統3.4.3死鎖的避免.安全和不安全狀態安全狀態之例:假定系統中有三個進程P1、P2和P3,共有12臺磁帶機。進程P1總共要求10臺磁帶機,P2和P3分別要求4臺和9臺。假設在T0時刻,進程P1、P2和P3已分別獲得5臺、2臺和2臺磁帶機,尚有3臺空閑未分配,如下表所示:進程最大需求已分配可用P1P2P310495223利用銀行家算法避免死鎖一個銀行家把他的固定資金(capital)貸給若干顧客。只要不出現一個顧客借走所有資金后還不夠,銀行家的資金應是安全的。銀行家需一個算法保證借出去的資金在有限時間內可收回。3.4.4預防死鎖1.摒棄互斥條件2.摒棄“請求和保持”條件3.摒棄“不剝奪”條件4.摒棄“環路等待”AttackingtheMutualExclusionConditionSomedevices(suchasprinter)canbespooledonlytheprinterdaemonusesprinterresourcethusdeadlockforprintereliminatedNotalldevicescanbespooledPCB,HD.Principle:avoidassigningresourcewhennotabsolutelynecessaryasfewprocessesaspossibleactuallyclaimtheresourceAttackingtheHoldandWaitConditionRequireprocessestorequestresourcesbeforestartingaprocessneverhastowaitforwhatitneeds.ProblemsmaynotknowrequiredresourcesatstartofrunalsotiesupresourcesotherprocessescouldbeusingVariation:processmustgiveupallresourcesthenrequestallimmediatelyneededAttackingtheNoPreemptionConditionThisisnotaviableoptionConsideraprocessgiventheprinterhalfwaythroughitsjobnowforciblytakeawayprinter–!!??AttackingtheCircularWaitConditionNormallyorderedresourcesAresourcegraph9Summaryofapproachestodeadlockprevention預防死鎖的各種分類對策本章重要習題分析第四章存儲器管理4.1定位和重定位4.2簡單連續分配方式4.3基本頁式存儲管理方式4.4基本段式存儲管理方式4.5段頁式存儲管理4.6虛擬存儲器4.7請求式分頁的基本原理4.8頁面置換算法RelocationandProtectionCannotbesurewhereprogramwillbeloadedinmemoryaddresslocationsofvariables,coderoutinescannotbeabsolutemustkeepaprogramoutofotherprocessespartitionsUsebaseandlimitvaluesaddresslocationsaddedtobasevaluetomaptophysicaladdressaddresslocationslargerthanlimitvalueisanerror4.1定位和重定位4.1.1程序的裝入1.絕對裝入方式(AbsoluteLoadingMode)程序中所使用的絕對地址,既可在編譯或匯編時給出,也可由程序員直接賦予。例如:ORG1000Hdfb309adfb309a00f39761b3c44600f39761b3c44600f39762.可重定位裝入方式(RelocationLoadingMode)P1P2P3P4P53.動態運行時裝入方式(dynamicRun-timeLoading)動態運行時的裝入程序,在把裝入模塊裝入內存后,并不立即把裝入模塊中的相對地址轉換為絕對地址,而是把這種地址轉換推遲到程序真正要執行時才進行。因此,裝入內存后的所有地址都仍是相對地址。4.1.2程序的鏈接1.靜態鏈接方式(StaticLinking)在將這幾個目標模塊裝配成一個裝入模塊時,須解決以下兩個問題:(1)對相對地址進行修改。(2)變換外部調用符號。2.裝入時動態鏈接(LoadtimeDynamicLinking)裝入時動態鏈接方式有以下優點:(1)便于修改和更新。(2)便于實現對目標模塊的共享。3.運行時動態鏈接(Run-timeDynamicLinking)在執行過程中,當發現一個被調用模塊尚未裝入內存時,立即由OS去找到該模塊并將之裝入內存,把它鏈接到調用者模塊上。這樣不僅可加快程序的裝入過程,而且可節省大量的內存空間。4.2簡單連續分配方式4.2.1單一連續分配這是最簡單的一種存儲管理方式,但只能用于單用戶、單任務的操作系統中。采用這種存儲管理方式時,可把內存分為系統區和用戶區兩部分,系統區僅提供給OS使用,通常是放在內存的低址部分;用戶區是指除系統區以外的全部內存空間,提供給用戶使用。MonoprogrammingThreesimplewaysoforganizingmemoryanoperatingsystemwithoneuserprocess無分區4.2.2固定分區分配1.劃分分區的方法(1)分區大小相等,即使所有的內存分區大小相等。(2)分區大小不等。2.內存分配等額固定分區差額固定分區MultiprogrammingwithFixedPartitionsFixedmemorypartitionsseparateinputqueuesforeachpartitionsingleinputqueue動態分區4.2.3動態分區分配碎片Hole1.分區分配中的數據結構(1)空閑分區表。(2)空閑分區鏈。MemoryManagementwithBitMapsPartofmemorywith5processes,3holestickmarksshowallocationunitsshadedregionsarefreeCorrespondingbitmapSameinformationasalistMemoryManagementwithLinkedListsFourneighborcombinationsfortheterminatingprocessXFragment碎片2.分區分配算法(1)首次適應算法FF。(2)循環首次適應算法。(3)最佳適應算法。(4)最壞適應算法。(5)快速適應算法。PointerComingaNewprocessis16KWorstfit4.2.4可重定位分區分配1.動態重定位的引入2.動態重定位的實現3.動態重定位分區分配算法4.2.5對換(Swapping)1.對換的引入2.對換空間的管理3.進程的換出與換入(1)進程的換出。每當一進程由于創建子進程而需要更多的內存空間,但又無足夠的內存空間等情況發生時,系統應將某進程換出。(2)進程的換入。系統應定時地查看所有進程的狀態,從中找出就緒狀態但已換出的進程,將其中換出時間(換出到磁盤上)最久的進程作為換入進程,將之換入,直至已無可換入的進程或無可換出的進程為止。4.3基本分頁存儲管理方式4.3.1頁面與頁表1.頁面1)頁面和物理塊2)頁面大小在分頁系統中的頁面其大小應適中。頁面若太小,一方面雖然可使內存碎片減小,從而減少了內存碎片的總空間,有利于提高內存利用率,但另一方面也會使每個進程占用較多的頁面,從而導致進程的頁表過長,占用大量內存;此外,還會降低頁面換進換出的效率。然而,如果選擇的頁面較大,雖然可以減少頁表的長度,提高頁面換進換出的速度,但卻又會使頁內碎片增大。因此,頁面的大小應選擇得適中,且頁面大小應是2的冪,通常為512B~8KB。PageSizeSmallpagesizeAdvantageslessinternalfragmentationbetterfitforvariousdatastructures,codesectionslessunusedprograminmemoryDisadvantagesprogramsneedmanypages,largerpagetables0Pagesizelarge,thefragmentationbigPagesizesmall,thepagetablebigFragmentation內碎片Mostprogram’spiecesarelessthan4KA.0A.1A.2A.3B.0B.1B.2C.0C.1C.2C.3PageSizeOverheadduetopagetableandinternalfragmentation.Wheres=averageprocesssizeinbytesp=pagesizeinbytese=pageentryOptimizedwheninternalfragmentationpagetablespace2.地址結構分頁地址中的地址結構如下:頁號P位移量W3112110對某特定機器,其地址結構是一定的。若給定一個邏輯地址空間中的地址為A,頁面的大小為L,則頁號P和頁內地址d可按下式求得:3.頁表4.3.2地址變換機構1.基本的地址變換機構2.具有快表的地址變換機構4.3.3兩級和多級頁表現代的大多數計算機系統,都支持非常大的邏輯地址空間(232~264)。在這樣的環境下,頁表就變得非常大,要占用相當大的內存空間。可以采用這樣兩個方法來解決這一問題:①采用離散分配方式來解決難以找到一塊連續的大內存空間的問題:②只將當前需要的部分頁表項調入內存,其余的頁表項仍駐留在磁盤上,需要時再調入。1.兩級頁表(Two-LevelPageTable)邏輯地址結構可描述如下:Windows的多級頁表結構2.多級頁表對于32位的機器,采用兩級頁表結構是合適的;但對于64位的機器,如果頁面大小仍采用4KB即212B,那么還剩下52位,假定仍按物理塊的大小(212位)來劃分頁表,則將余下的42位用于外層頁號。此時在外層頁表中可能有4096G個頁表項,要占用16384GB的連續內存空間。必須采用多級頁表,將外層頁表再進行分頁,也是將各分頁離散地裝入到不相鄰接的物理塊中,再利用第2級的外層頁表來映射它們之間的關系。InvertedPageTablesComparisonofatraditionalpagetablewithaninvertedpagetable4.4基本分段存儲管理方式4.4.1分段存儲管理方式的引入引入分段存儲管理方式,主要是為了滿足用戶和程序員的下述一系列需要:1)方便編程2)信息共享3)信息保護4)動態增長5)動態鏈接4.4.2分段系統的基本原理1.分段分段地址中的地址具有如下結構:段號段內地址31161502.段表4.分頁和分段的主要區別(1)頁是信息的物理單位,分頁是為實現離散分配方式,以消減內存的外零頭,提高內存的利用率。或者說,分頁僅僅是由于系統管理的需要而不是用戶的需要。段則是信息的邏輯單位,它含有一組其意義相對完整的信息。分段的目的是為了能更好地滿足用戶的需要。(2)頁的大小固定且由系統決定,由系統把邏輯地址劃分為頁號和頁內地址兩部分,是由機器硬件實現的,因而在系統中只能有一種大小的頁面;而段的長度卻不固定,決定于用戶所編寫的程序,通常由編譯程序在對源程序進行編譯時,根據信息的性質來劃分。(3)分頁的作業地址空間是一維的,即單一的線性地址空間,程序員只需利用一個記憶符,即可表示一個地址;而分段的作業地址空間則是二維的,程序員在標識一個地址時,既需給出段名,又需給出段內地址。4.5段頁式存儲管理方式4.5.1基本原理4.5.2地址變換過程4.6虛擬存儲器的基本概念4.6.1虛擬存儲器的引入1.常規存儲器管理方式的特征(1)一次性。(2)駐留性。2.局部性原理1968年,Denning.P指出:(1)程序執行時,大多數情況下仍是順序執行的。(2)過程調用將會使程序轉移,過程調用的深度在大多數情況下都不超過5。(3)程序中存在許多循環結構,它們將多次執行。(4)程序中還包括許多對數據結構的處理,如對數組進行操作,它們往往都局限于很小的范圍內。局限性又表現在下述兩個方面:(1)時間局限性。如果程序中的某條指令一旦執行,則不久以后該指令可能再次執行;如果某數據被訪問過,則不久以后該數據可能再次被訪問。產生時間局限性的典型原因,是由于在程序中存在著大量的循環操作。(2)空間局限性。一旦程序訪問了某個存儲單元,在不久之后,其附近的存儲單元也將被訪問,即程序在一段時間內所訪問的地址,可能集中在一定的范圍之內,其典型情況便是程序的順序執行。3.虛擬存儲器定義所謂虛擬存儲器,是指具有請求調入功能和置換功能,能從邏輯上對內存容量加以擴充的一種存儲器系統。其邏輯容量由內存容量和外存容量之和所決定,其運行速度接近于內存速度,而每位的成本卻又接近于外存。可見,虛擬存儲技術是一種性能非常優越的存儲器管理技術,故被廣泛地應用于大、中、小型機器和微型機中。CPU及其存儲器的地址線寬度4.6.2虛擬存儲器的實現方法1.分頁請求系統(1)硬件支持。①請求分頁的頁表機制,它是在純分頁的頁表機制上增加若干項而形成的,作為請求分頁的數據結構;②缺頁中斷機構,即每當用戶程序要訪問的頁面尚未調入內存時便產生一缺頁中斷,以請求OS將所缺的頁調入內存③地址變換機構,它同樣是在純分頁地址變換機構的基礎上發展形成的。(2)實現請求分頁的軟件。PageTablesTypicalpagetableentryVirtualtimeandsoonOnlyformemorymappedI/OTheworsepagefaultshappensBeyondfault4.6.3虛擬存儲器的特征1.多次性對換性3.虛擬性4.7請求分頁存儲管理方式4.7.1請求分頁中的硬件支持1.頁表機制2.缺頁中斷機構3.地址變換機構4.7.2內存分配策略和分配算法1.最小物理塊數的確定2.物理塊的分配策略在請求分頁系統中,可采取兩種內存分配策略,即固定和可變分配策略。在進行置換時,也可采取兩種策略,即全局置換和局部置換。于是可組合出以下三種適用的策略。1)固定分配局部置換(FixedAllocation,LocalReplacement)2)可變分配全局置換(VariableAllocation,GlobalReplacement)3)可變分配局部置換(VariableAllocation,LocalReplacemen2)按比例分配算法根據進程的大小按比例分配物理塊的算法。如果系統中共有n個進程,每個進程的頁面數為Si,則系統中各進程頁面數的總和為:又假定系統中可用的物理塊總數為m,則每個進程所能分到的物理塊數為bi,將有:b應該取整,它必須大于最小物理塊數。3.物理塊分配算法1)平均分配算法3)考慮優先權的分配算法在實際應用中,為了照顧到重要的、緊迫的作業能盡快地完成,應為它分配較多的內存空間。通常采取的方法是把內存中可供分配的所有物理塊分成兩部分:一部分按比例地分配給各進程;另一部分則根據各進程的優先權,適當地增加其相應份額后,分配給各進程在有的系統中,如重要的實時控制系統,則可能是完全按優先權來為各進程分配其物理塊的。4.7.3調頁策略1.何時調入頁面1)預調頁策略2)請求調頁策略2.從何處調入頁面在請求分頁系統中的外存分為兩部分:用于存放文件的文件區和用于存放對換頁面的對換區。通常,由于對換區是采用連續分配方式,而事件是采用離散分配方式,故對換區的磁盤I/O速度比文件區的高。這樣,每當發生缺頁請求時,系統應從何處將缺頁調入內存,可分成如下三種情況:(1)系統擁有足夠的對換區空間,這時可以全部從對換區調入所需頁面,以提高調頁速度。為此,在進程運行前,便須將與該進程有關的文件,從文件區拷貝到對換區。(2)系統缺少足夠的對換區空間,這時凡是不會被修改的文件,都直接從文件區調入;而當換出這些頁面時,由于它們未被修改而不必再將它們換出,以后再調入時,仍從文件區直接調入。但對于那些可能被修改的部分,在將它們換出時,便須調到對換區,以后需要時,再從對換區調入。(3)UNIX方式。由于與進程有關的文件都放在文件區,故凡是未運行過的頁面,都應從文件區調入。而對于曾經運行過但又被換出的頁面,由于是被放在對換區,因此在下次調入時,應從對換區調入。由于UNIX系統允許頁面共享,因此,某進程所請求的頁面有可能已被其它進程調入內存,此時也就無須再從對換區調入。Solaris存儲3.頁面調入過程每當程序所要訪問的頁面未在內存時,便向CPU發出一缺頁中斷,中斷處理程序首先保留CPU環境,分析中斷原因后,轉入缺頁中斷處理程序。該程序通過查找頁表,得到該頁在外存的物理塊后,如果此時內存能容納新頁,則啟動磁盤I/O將所缺之頁調入內存,然后修改頁表。如果內存已滿,則須先按照某種置換算法從內存中選出一頁準備換出;如果該頁未被修改過,可不必將該頁寫回磁盤;但如果此頁已被修改,則必須將它寫回磁盤,然后再把所缺的頁調入內存,并修改頁表中的相應表項,置其存在位為“1,并將此頁表項寫入快表中。在缺頁調入內存后,利用修改后的頁表,去形成所要訪問數據的物理地址,再去訪問內存數據。4.8頁面置換算法PagefaultforceschoicewhichpagemustberemovedmakeroomforincomingpageModifiedpagemustfirstbesavedunmodifiedjustoverwrittenBetternottochooseanoftenusedpagewillprobablyneedtobebroughtbackinsoon4.8.1最佳置換算法和先進先出置換算法1.最佳(Optimal)置換算法最佳置換算法是由Belady于1966年提出的一種理論上的算法。其所選擇的被淘汰頁面,將是以后永不使用的,或許是在最長(未來)時間內不再被訪問的頁面。采用最佳置換算法,通常可保證獲得最低的缺頁率。OPT432143543215頁1432111555211頁243333333555頁34444444444xxxx√√x√√xx√共缺頁中斷7次2.先進先出(FIFO)頁面置換算法SecondChancePageReplacementAlgorithmOperationofasecondchancepagessortedinFIFOorderPagelistiffaultoccursattime20,AhasRbitset(numbersabovepagesareloadingtimes)TheClockPageReplacementAlgorithm2.改進型Clock置換算法由訪問位A和修改位M可以組合成下面四種類型的頁面:1類(A=0,M=0):表示該頁最近既未被訪問,又未被修改,是最佳淘汰頁。2類(A=0,M=1):表示該頁最近未被訪問,但已被修改,并不是很好的淘汰頁。3類(A=1,M=0):最近已被訪問,但未被修改,該頁有可能再被訪問。4類(A=1,M=1):最近已被訪問且被修改,該頁可能再被訪問。1.簡單的Clock置換算法4.8.2Clock置換算法NotRecentlyUsedPageReplacementAlgorithmEachpagehasReferencebit,Modifiedbitbitsaresetwhenpageisreferenced,modifiedPagesareclassified1.notreferenced,notmodified2.notreferenced,modified3.referenced,notmodified4.referenced,modifiedNRUremovespageatrandomfromlowestnumberednonemptyclass4.8.3最近最久未使用(LRU)置換算法1.LRU(LeastRecentlyUsed)置換算法的描述2.LRU置換算法的硬件支持4.8.4其它置換算法1.最少使用(LFU:LeastFrequentlyUsed)置換算法2.頁面緩沖算法(PBA:PageBufferingAlgorithm)TheWorkingSetPageReplacementAlgorithmTheworkingsetisthesetofpagesusedbythekmostrecentmemoryreferencesw(k,t)isthesizeoftheworkingsetattime,tLocalityofreferenceTheWorkingSetPageReplacementAlgorithmTheworkingsetalgorithm0TheWSClockPageReplacementAlgorithmOperationoftheWSClockalgorithmReviewofPageReplacementAlgorithms4.8.5其它Belady’sAnomalyStackAlgorithmTheDistanceStringPredictingPageFaultRatesBelady'sAnomalyFIFOwith3pageframesFIFOwith4pageframesP'sshowwhichpagereferencesshowpagefaultsDESIGNISSUESFORPAGINGSYSTEMSLocalversusGlobalAllocationPoliciesLoadControlPageSizeSeparateInstructionandDataSpacesSharedPagesCleaningPolicyVirtualMemoryInterfaceLocalversusGlobalAllocationPoliciesOriginalconfigurationLocalpagereplacementGlobalpagereplacement7framesLocalversusGlobalAllocationPoliciesPagefaultrateasafunctionofthenumberofpageframesassignedLoadControlDespitegooddesigns,systemmaystillthrashWhenPFFalgorithmindicatessomeprocessesneedmorememorybutnoprocessesneedlessSolution:Reducenumberofprocessescompetingformemoryswaponeormoretodisk,divideuppagestheyheldreconsiderdegreeofmultiprogrammingSeparateInstructionandDataSpacesOneaddressspaceSeparateIandDspacesSharedPagesTwoprocessessharingsameprogramsharingitspagetableCleaningPolicyNeedforabackgroundprocess,pagingdaemonperiodicallyinspectsstateofmemoryWhentoofewframesarefreeselectspagestoevictusingareplacementalgorithmItcanusesamecircularlist(clock)asregularpagereplacementalgorithmbutwithdifferencepointerSegmentationwithPaging:PentiumPentiumcodesegmentdescriptorDatasegmentsdifferslightlySegmentationwithPaging:PentiumConversionofa(selector,offset)pairtoalinearaddressSegmentationwithPaging:PentiumMappingofalinearaddressontoaphysicaladdress15SegmentationwithPaging:PentiumProtectiononthePentium本章重要習題分析第五章設備管理5.1I/O系統5.2I/O控制方式5.3緩沖管理5.4設備分配5.5設備處理5.6磁盤存儲空間管理5.7IO管理的其它問題5.1I/O系統5.1.1I/O設備1.I/O設備的類型1)按傳輸速率分類2)按信息交換的單位分類3)按設備的共享屬性分類2.設備與控制器之間的接口PrinciplesofI/OHardwareSometypicaldevice,network,anddatabaseratesDeviceControllersI/Odeviceshavecomponents:mechanicalcomponentelectroniccomponentTheelectroniccomponentisthedevicecontrollermaybeabletohandlemultipledevicesController'stasksconvertserialbitstreamtoblockofbytesperformerrorcorrectionasnecessarymakeavailabletomainmemory5.1.2設備控制器1.設備控制器的基本功能1)接收和識別命令2)數據交換3)標識和報告設備的狀態4)地址識別5)數據緩沖6)差錯控制2.設備控制器的組成Memory-MappedI/O(1)SeparateI/OandmemoryspaceMemorymappedI/O.HybridCache?Memory-MappedI/O(2)(a)Asingle-busarchitecture(b)Adual-busmemoryarchitectureISABusMemory-MappedI/O(3)StructureofalargePentiumsystemNSDirectMemoryAccess(DMA)OperationofaDMAtransferInterruptsRevisitedHowinterruptshappens.Connectionsbetweendevicesandinterruptcontrolleractuallyuseinterruptlinesonthebusratherthandedicatedwires5.1.3I/O通道1.I/O通道(I/OChannel)設備的引入2.通道類型1)字節多路通道(ByteMultiplexorChannel)2)數組選擇通道(BlockSelectorChannel)3)數組多路通道(BlockMultiplexorChannel)3.“瓶頸問題ChannelmodeI/O5.1.4總線系統1.ISA和EISA總線1)ISA(IndustryStandardArchitecture)總線2)EISA(ExtendedISA)總線2.局部總線(LocalBus)1)VESA(VideoElectronicStandardAssociation)總線2)PCI(PeripheralComponentInterface)總線5.2I/O控制方式GoalsofI/OSoftwareDeviceindependenceprogramscanaccessanyI/Odevicewithoutspecifyingdeviceinadvance(floppy,harddrive,orCD-ROM)UniformnamingnameofafileordeviceastringoranintegernotdependingonwhichmachineErrorhandlinghandleasclosetothehardwareaspossible5.2I/O控制方式(續)GoalsofI/OSoftwareSynchronousvs.asynchronoustransfersblockedtransfersvs.interruptdrivenBufferingdatacomingoffadevicecannotbestoredinfinaldestinationSharablevs.dedicateddevicesdisksaresharabletapedriveswouldnotbe5.2.1程序I/O方式5.2.2中斷驅動I/O控制方式WritingastringtotheprinterusinginterruptdrivenI/OCodeexecutedwhenprintsystemcallismadeInterruptserviceprocedure5.2.3直接存儲器訪問DMAI/O控制方式1.DMA(DirectMemoryAccess)控制方式的引入2.DMA控制器的組成5.2.4I/O通道控制方式1.I/O通道控制方式的引入5.3緩沖管理5.3.1緩沖的引入(1)緩和CPU與I/O設備間速度不匹配的矛盾。(2)減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制。(3)提高CPU和I/O設備之間的并行性。5.3.2單緩沖和雙緩沖1.單緩沖(SingleBuffer)2.雙緩沖(DoubleBuffer)5.3.3循環緩沖1.循環緩沖的組成5.3.4緩沖池(BufferPool)1.緩沖池的組成對于既可用于輸入又可用于輸出的公用緩沖池,其中至少應含有以下三種類型的緩沖區:①空(閑)緩沖區;②裝滿輸入數據的緩沖區;③裝滿輸出數據的緩沖區。為了管理上的方便,可將相同類型的緩沖區鏈成一個隊列,于是可形成以下三個隊列:(1)空緩沖隊列emq。(2)輸入隊列inq。(3)輸出隊列outq。2.緩沖區的工作方式5.4設備分配5.4.1設備分配中的數據結構1.設備控制表DCT2.控制器控制表、通道控制表和系統設備表User-SpaceI/OSoftwareSystemDeviceTableDeviceControlTableCOntrollerControlTableCHannelControlTableHardware5.4.2設備分配時應考慮的因素1.設備的固有屬性(1)獨享設備。(2)共享設備。(3)虛擬設備。2.設備分配算法(1)先來先服務。(2)優先級高者優先。3.設備分配中的安全性1)安全分配方式2)不安全分配方式5.4.3設備獨立性1.設備獨立性(DeviceIndependence)的概念為了提高OS的可適應性和可擴展性,在現代OS中都毫無例外地實現了設備獨立性,也稱為設備無關性。其基本含義是:應用程序獨立于具體使用的物理設備。為了實現設備獨立性而引入了邏輯設備和物理設備這兩個概念。在應用程序中,使用邏輯設備名稱來請求使用某類設備;而系統在實際執行時,還必須使用物理設備名稱。因此,系統須具有將邏輯設備名稱轉換為某物理設備名稱的功能,這非常類似于存儲器管理中所介紹的邏輯地址和物理地址的概念。在實現了設備獨立性的功能后,可帶來以下兩方面的好處。1)設備分配時的靈活性2)易于實現I/O重定向Device-IndependentI/OSoftwareFunctionsofthedevice-independentI/OsoftwareUniforminterfacingfordevicedriversBufferingErrorreportingAllocatingandreleasingdedicatedevicesProvidingadeice-independentblocksize2.設備獨立性軟件1)執行所有設備的公有操作2)向用戶層(或文件層)軟件提供統一接口I/OSoftwareLayersLayersoftheI/OSoftwareSystemUser-SpaceI/OSoftwareLayersoftheI/OsystemandthemainfunctionsofeachlayerDeviceDriversLogicalpositionofdevicedriversisshownhereCommunicationsbetweendriversanddevicecontrollersgoesoverthebus5.4.4獨占設備的分配程序1.基本的設備分配程序1)分配設備2)分配控制器3)分配通道2.設備分配程序的改進1)增加設備的獨立性2)考慮多通路情況5.4.5SPOOLing技術1.什么是SPOOLing為了緩和CPU的高速性與I/O設備低速性間的矛盾而引入了脫機輸入、脫機輸出技術。該技術是利用專門的外圍控制機,將低速I/O設備上的數據傳送到高速磁盤上;或者相反。事實上,當系統中引入了多道程序技術后,完全可以利用其中的一道程序,來模擬脫機輸入時的外圍控制機功能,把低速I/O設備上的數據傳送到高速磁盤上;再用另一道程序來模擬脫機輸出時外圍控制機的功能,把數據從磁盤傳送到低速輸出設備上。這樣,便可在主機的直接控制下,實現脫機輸入、輸出功能。此時的外圍操作與CPU對數據的處理同時進行,我們把這種在聯機情況下實現的同時外圍操作稱為SPOOLing(Simultan
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司福利院慰問活動方案
- 公司福利團建旅游活動方案
- 公司自駕游出行活動方案
- 2025年職業生涯規劃與發展考試試卷及答案
- 2025年應急救援與災難管理考試題及答案
- 2025年新興技術與傳統行業融合發展的能力測試試卷及答案
- 2025年水資源管理與可持續發展考試題及答案
- 2025年生物醫學工程專業綜合考試試題及答案
- 2025年農田水利工程師職業資格考試試卷及答案
- 2025年量子物理基礎知識與應用考試試題及答案
- GB/T 43988-2024滑板課程學生運動能力測評規范
- DL-T1069-2016架空輸電線路導地線補修導則
- 江蘇開放大學本科行政管理專業060193國家公務員制度期末試卷
- 山東省青島市嶗山區育才學校2023-2024學年下學期奇點計劃選拔考試八年級物理試卷
- MOOC 基礎工程設計原理-同濟大學 中國大學慕課答案
- 哈密市伊吾縣社工招聘筆試真題
- 紡織非遺:讓世界讀懂中國之美智慧樹知到期末考試答案2024年
- 應急處突知識培訓課件
- JB T 8925-2008滾動軸承汽車萬向節十字軸總成技術條件
- 感悟《亮劍》中的營銷啟示課件
- 八年級歷史下冊 期末考試卷(人教版)(一)
評論
0/150
提交評論