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

正文內(nèi)容

操作系統(tǒng)的開發(fā)與設(shè)計方案(編輯修改稿)

2025-05-25 05:15 本頁面
 

【文章內(nèi)容簡介】 用等運行在內(nèi)核模式下。Linux的task_struct結(jié)構(gòu)相當(dāng)于其進(jìn)程控制塊。Linux系統(tǒng)對進(jìn)程的操作常用命令有:ps、kill、sleep等。常用的系統(tǒng)調(diào)用有:fork,exec,wait,exit,getpid,sleep,nice等。(3)進(jìn)程通信進(jìn)程通信是指進(jìn)程間的信息交換。根據(jù)進(jìn)程間交換信息量的多少,分為高級進(jìn)程通信和低級進(jìn)程通信。進(jìn)程的同步與互斥是指進(jìn)程在推進(jìn)時的相互制約關(guān)系,屬于低級進(jìn)程通信。一般來說同步反映了進(jìn)程之間的協(xié)作關(guān)系,往往指有幾個進(jìn)程共同完成一個任務(wù)時在時間次序上的某種限制,進(jìn)程相互之間各自的存在及作用,通過交換信息完成通信。如接力比賽中一組隊員使用接力棒等。進(jìn)程互斥體現(xiàn)了進(jìn)程之間對資源的競爭關(guān)系,這時進(jìn)程相互之間不一定清楚其它進(jìn)程的情況,往往指多個任務(wù)多個進(jìn)程間的通訊制約,因而使用更廣泛。如打籃球時雙方掙搶籃板球等。我們用信號量(Semaphore)及P,V操作來實現(xiàn)進(jìn)程的同步和互斥。生產(chǎn)者消費者問題是經(jīng)典的進(jìn)程同步和互斥問題。(4)死鎖死鎖是指多個進(jìn)程循環(huán)等待他方占有的資源而無限期地僵持下去的局面。計算機(jī)系統(tǒng)產(chǎn)生死鎖的根本原因就是資源有限且操作不當(dāng)。一種原因是競爭資源引起的死鎖,另一種原因是由于進(jìn)程推進(jìn)順序不合適引發(fā)的死鎖。產(chǎn)生死鎖的四個必要條件是:互斥條件,不可搶占條件,占有且申請條件,循環(huán)等待條件。如果在計算機(jī)系統(tǒng)中同時具備這四個必要條件時,那么會發(fā)生死鎖。一般地,解決死鎖的方法分為死鎖的預(yù)防、避免、檢測與恢復(fù)三種。 典型例題解析【例1】判斷題:并發(fā)是并行的不同表述,其原理相同。( )答案 。分析 并發(fā)是指多道程序的執(zhí)行在時間上是重疊的,一個程序的執(zhí)行尚未結(jié)束,另一個程序的執(zhí)行已經(jīng)開始。但對單CPU系統(tǒng)而言,每一時刻只有一個程序在CPU上運行(有可能此時其他的程序在進(jìn)行輸入、輸出)。也就是說,占有CPU的只能有一個程序。因此,并發(fā)實際上是“在宏觀上并行執(zhí)行,在微觀上串行執(zhí)行”。而并行是真正意義上的并行執(zhí)行,因此兩者的含義是不同的?!纠?】在操作系統(tǒng)中引入“進(jìn)程”概念的主要目的是( )。A.改善用戶編程環(huán)境 B.提高程序的運行速度C.描述程序動態(tài)執(zhí)行過程的性質(zhì) D.使程序與計算過程一一對應(yīng)答案 C分析 操作系統(tǒng)中多道程序的引入,使得它們在并發(fā)執(zhí)行時共享系統(tǒng)資源,共同決定這些資源的狀態(tài),因此系統(tǒng)中各道程序在執(zhí)行過程中就出現(xiàn)了相互制約的新關(guān)系,程序的執(zhí)行出現(xiàn)“走走停?!钡男聽顟B(tài)。這些都是在程序的動態(tài)過程中發(fā)生的。而程序本身是機(jī)器能夠翻譯或執(zhí)行的一組動作或指令,它或者寫在紙面上,或者存放在磁盤等介質(zhì)上,是靜止的。很顯然,直接從程序的字面上無法看出它什么時候運行、什么時候停頓,也看不出它是否影響其它程序或者一定受其它程序的影響。因此,用程序這個靜態(tài)概念已不能如實反映程序并發(fā)執(zhí)行過程中的這些特征。為此,人們引入進(jìn)程的概念來描述程序動態(tài)執(zhí)行過程的性質(zhì),這是引入“進(jìn)程”概念的主要目的?!纠?】下列進(jìn)程狀態(tài)的轉(zhuǎn)換中,不正確的是( )。A.就緒174。阻塞 B.運行174。就緒 C.就緒174。運行 D.阻塞174。就緒答案 A分析 回答這道題要知道進(jìn)程的3種基本狀態(tài),以及它們之間的轉(zhuǎn)換關(guān)系。通過下圖可以看到,凡是圖中有箭頭指向的轉(zhuǎn)換都是可行的,而沒有箭頭指向的則不可能。因此A是不正確的。運行態(tài)分配到CPU時間片到等待某事件發(fā)生所等待的事件發(fā)生阻塞態(tài)就緒態(tài)圖 進(jìn)程狀態(tài)及其轉(zhuǎn)換如果有的同學(xué)記不住這張圖,那就從理解的角度進(jìn)行思考。首先要理解3種狀態(tài)的含義,然后再理解它們之間的轉(zhuǎn)換。例如:運行的進(jìn)程能變成就緒嗎?可以,如果運行進(jìn)程的時間片到了,就必修讓出CPU,轉(zhuǎn)換為就緒態(tài)。就緒的進(jìn)程能變成阻塞嗎?不可以,就緒態(tài)的進(jìn)程已經(jīng)具備了運行條件,只在等待CPU,怎么可能還退回到還不具備運行條件的阻塞態(tài)呢?因此,如果理解了,這張圖就可以自己畫出來,并不需要死記硬背?!纠?】進(jìn)程控制塊是描述進(jìn)程狀態(tài)和特性的數(shù)據(jù)結(jié)構(gòu),一個進(jìn)程( )。A.可以有多個進(jìn)程控制塊 B.可以和其他進(jìn)程共用一個進(jìn)程控制塊C.可以沒有進(jìn)程控制塊 D.只能有唯一的進(jìn)程控制塊答案 D分析 進(jìn)程控制塊(PCB)是一個用于描述進(jìn)程動態(tài)性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。操作系統(tǒng)根據(jù)PCB對進(jìn)程實施控制和管理。進(jìn)程的動態(tài)、并發(fā)等特征也是通過PCB表現(xiàn)出來的。進(jìn)程由程序、數(shù)據(jù)、棧和PCB構(gòu)成。構(gòu)成進(jìn)程的有關(guān)程序和數(shù)據(jù)集合是進(jìn)程得以存在的物質(zhì)基礎(chǔ),它們是進(jìn)程的實體;PCB用于標(biāo)識和刻畫實體的存在和變化,是進(jìn)程存在的唯一標(biāo)志。當(dāng)系統(tǒng)創(chuàng)建一個新進(jìn)程時,就為它建立一個PCB;當(dāng)進(jìn)程終止后,系統(tǒng)回收為其分配的PCB,該進(jìn)程在系統(tǒng)中就不存在了。【例5】在執(zhí)行V操作時,當(dāng)信號量的值( ),應(yīng)釋放一個等待該信號量的進(jìn)程。 A.小于0 B.大于0 C.小于等于0 D.大于等于0答案 C分析 P,V操作能夠?qū)崿F(xiàn)對臨界區(qū)的管理要求。它由P操作原語和V操作原語組成(原語是不可中斷的過程),對信號量進(jìn)行操作,具體定義如下: P(S):①將信號量S的值減1,即S=S1; ②如果S179。0,則該進(jìn)程繼續(xù)執(zhí)行;否則該進(jìn)程置為阻塞狀態(tài),排入阻塞隊列。 V(S):①將信號量S的值加1,即S=S+1; ②如果S0,則該進(jìn)程繼續(xù)執(zhí)行;否則釋放隊列中第一個等待信號量的進(jìn)程。 信號量的數(shù)據(jù)結(jié)構(gòu)為一個值和一個指針,指針指向等待該信號量的下一個進(jìn)程。信號量的值與相應(yīng)資源的使用情況有關(guān)。當(dāng)它的值大于0時,表示當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于0時,其絕對值表示等待使用該資源的進(jìn)程個數(shù)。注意,信號量的值僅能由P,V操作來改變。一般來說,信號量S179。0時,S表示可用資源的數(shù)量。執(zhí)行一次P操作意味著請求分配一個單位資源,因此S的值減1;當(dāng)S0時,表示已經(jīng)沒有可用資源,請求者必須等待別的進(jìn)程釋放該類資源,它才能運行下去。而執(zhí)行一個V操作意味著釋放一個單位資源,因此S的值加1;若S163。0,表示有某些進(jìn)程正在等待該資源,因此要喚醒一個等待狀態(tài)的進(jìn)程,使之運行下去。【例6】有9個生產(chǎn)者,6個消費者,共享容量為8的緩沖區(qū)。在這個生產(chǎn)者消費者問題中,互斥使用緩沖區(qū)的信號量mutex的初值應(yīng)該為( )。 A.1 B.6 C.8 D.9答案 A分析 進(jìn)程的互斥是指當(dāng)有若干個進(jìn)程都要使用某一共享資源時,任何時刻最多只允許一個進(jìn)程去使用,其它要使用該資源的進(jìn)程必須等待,直到占用資源者釋放了該資源。 進(jìn)程的互斥體現(xiàn)了并發(fā)進(jìn)程之間訪問共享資源時存在的競爭關(guān)系。在計算機(jī)系統(tǒng)中必須互斥使用的資源很多,如讀卡機(jī)、磁帶機(jī)、打印機(jī)等硬件資源和一些公共變量、表格、隊列、數(shù)據(jù)等軟件資源。 利用信號量和P,V操作實現(xiàn)進(jìn)程互斥的一般模型是:進(jìn)程P1 進(jìn)程P2 …… 進(jìn)程Pn…… …… ……P(mutex); P(mutex); P(mutex);臨界區(qū); 臨界區(qū); 臨界區(qū);V(mutex); V(mutex); V(mutex);…… …… …… …… 其中信號量mutex用于互斥,初值為1。 使用P,V操作實現(xiàn)進(jìn)程互斥時應(yīng)該注意的是: (1)每個程序中用戶實現(xiàn)互斥的P、V操作必須成對出現(xiàn),先做P操作,進(jìn)臨界區(qū),后做V操作,出臨界區(qū)。若有多個分支,要認(rèn)真檢查其成對性。 (2)互斥信號量的初值一般為1。 此外,P、V操作應(yīng)分別緊靠臨界區(qū)的頭尾部,臨界區(qū)的代碼應(yīng)盡可能短,不能有死循環(huán)。 在本題中,既然是問互斥信號量,其初值應(yīng)為1,選項中的6,8,9都是迷惑答題者的,如果對同步和互斥不能很好地理解,就很難選擇。【例7】兩個進(jìn)程合作完成一個任務(wù),在并發(fā)執(zhí)行中,一個進(jìn)程要等待其合作伙伴發(fā)來信息,或者建立某個條件后再向前執(zhí)行,這種關(guān)系是進(jìn)程間的( )關(guān)系。 A.同步 B.互斥 C.競爭 D.合作答案 A分析 進(jìn)程的同步是指并發(fā)進(jìn)程之間存在一種制約關(guān)系,一個進(jìn)程的執(zhí)行依賴另一個進(jìn)程的消息,當(dāng)一個進(jìn)程沒有得到另一個進(jìn)程的消息時應(yīng)等待,直到消息到達(dá)才被喚醒。 同步是進(jìn)程間共同完成一項任務(wù)時直接發(fā)生相互作用的關(guān)系。這樣的例子在日常生活中不勝枚舉,比如接力比賽中運動員的默契配合,工業(yè)生產(chǎn)中流水作業(yè)的每道工序的先后執(zhí)行,以及計算機(jī)系統(tǒng)中對一個緩沖區(qū)的讀和寫等等。當(dāng)并發(fā)進(jìn)程存在協(xié)作的關(guān)系時,必須互通消息,完成進(jìn)程的同步。 能實現(xiàn)進(jìn)程同步的機(jī)制稱為同步機(jī)制,該機(jī)制能把其他進(jìn)程需要的消息發(fā)送出去,也能測試自己需要的消息是否到達(dá)。 P,V操作是典型的同步機(jī)制之一。用一個信號量與一個消息聯(lián)系起來,當(dāng)信號量的值為0時,表示期望的消息尚未產(chǎn)生;當(dāng)信號量的值非0時,表示期望的消息已經(jīng)存在。用P,V操作實現(xiàn)進(jìn)程同步時,調(diào)用P操作測試消息是否到達(dá),調(diào)用V操作發(fā)送消息。 使用PV操作實現(xiàn)進(jìn)程同步時應(yīng)該注意的是: (1)分析進(jìn)程間的制約關(guān)系,確定信號量種類。在保持進(jìn)程間有正確的同步關(guān)系情況下,哪個進(jìn)程先執(zhí)行,哪些進(jìn)程后執(zhí)行,彼此間通過什么資源(信號量)進(jìn)行協(xié)調(diào),從而明確要設(shè)置哪些信號量。 (2)信號量的初值與相應(yīng)資源的數(shù)量有關(guān),也與P、V操作在程序代碼中出現(xiàn)的位置有關(guān)。(3)同一信號量的P、V操作要成對出現(xiàn),但它們分別在不同的進(jìn)程代碼中。本題中進(jìn)程的同步體現(xiàn)的是合作關(guān)系,但答案不能選D,要使用操作系統(tǒng)的術(shù)語“同步”。【例8】設(shè)有一臺計算機(jī),有兩條I/O通道,分別接一臺卡片輸入機(jī)和一臺打印機(jī)??ㄆ瑱C(jī)把一疊卡片逐一輸入到緩沖區(qū)B1中,加工處理后再搬到緩沖區(qū)B2中,并在打印機(jī)上打印結(jié)果。問:① 系統(tǒng)要設(shè)幾個進(jìn)程來完成這個任務(wù)?各自的工作是什么?② 這些進(jìn)程間有什么樣的相互制約關(guān)系?③ 用P、V操作寫出這些進(jìn)程的同步算法。分析 我們畫一個草圖來幫助我們理解這道題:卡片機(jī)緩沖區(qū)B1打印機(jī)緩沖區(qū)B2輸入處理輸出從圖中可以看出,從“卡片機(jī)”到“打印機(jī)”共需要3個操作,即輸入、處理、輸出。這3個動作就是完成任務(wù)的3個進(jìn)程。下面我們看看這些進(jìn)程之間有什么樣的制約關(guān)系??梢钥闯觯@3個進(jìn)程之間是同步關(guān)系,合作完成從輸入到輸出的工作任務(wù)。對其中任何一個進(jìn)程,要處理好與其關(guān)聯(lián)的兩端設(shè)備的協(xié)調(diào)工作。以“輸入進(jìn)程”為例,它與卡片機(jī)和緩沖區(qū)B1關(guān)聯(lián),將卡片機(jī)的卡片輸入到緩沖區(qū)B1,在不考慮卡片機(jī)的情況下,就要考慮緩沖區(qū)的情況,即是滿還是空,是空緩沖區(qū),輸入進(jìn)程就可以輸入信息,如果緩沖區(qū)滿,則要等待“處理進(jìn)程”將B1中的信息取走,使之為空,輸入進(jìn)程才能繼續(xù)工作。依此類推,可以找出另外2個進(jìn)程的制約關(guān)系。一般來說,處理進(jìn)程同步需要2個信號量,“輸入進(jìn)程”和“處理進(jìn)程”同步,需要2個信號量,解決緩沖區(qū)B1的協(xié)調(diào)操作問題;而“處理進(jìn)程”和“輸出進(jìn)程”同步,還需要2個信號量,解決緩沖區(qū)B2的協(xié)調(diào)操作問題。因此,共需要4個信號量。本題中“處理進(jìn)程”的算法有一些難度,因為它需要協(xié)調(diào)兩個緩沖區(qū)的工作,考慮的因素比較多,算法復(fù)雜些。答案①系統(tǒng)可設(shè)三個進(jìn)程來完成這個任務(wù):R進(jìn)程負(fù)責(zé)從卡片輸入機(jī)上讀入卡片信息,輸入到緩沖區(qū)B1中;C進(jìn)程負(fù)責(zé)從緩沖區(qū)B1中取出信息,進(jìn)行加工處理,之后將結(jié)果送到緩沖區(qū)B2中;P進(jìn)程負(fù)責(zé)從緩沖區(qū)B2中取出信息,并在打印機(jī)上印出。②R進(jìn)程受C進(jìn)程影響,B1放滿信息后R進(jìn)程要等待——等C進(jìn)程將其中信息全部取走,才能繼續(xù)讀入信息;C進(jìn)程受R進(jìn)程和P進(jìn)程的約束:B1中信息放滿后C進(jìn)程才可從中取出它們,且B2被取空后,C進(jìn)程才可將加工結(jié)果送入其中;P進(jìn)程受C進(jìn)程的約束:B2中信息放滿后P進(jìn)程才可從中取出它們,進(jìn)行打印。③信號量含義及初值:B1full—— 緩沖區(qū)B1滿,初值為0;B1empty——緩沖區(qū)B1空,初值為1;B2full—— 緩沖區(qū)B2滿,初值為0;B2empty——緩沖區(qū)B2空,初值為1; 說明 前面我們說過:信號量的初值與相應(yīng)資源的數(shù)量有關(guān),也與P、V操作在程序代碼中出現(xiàn)的位置有關(guān)。以本題為例,如果R進(jìn)程的算法如下:則信號量B1empty初值應(yīng)為1。表示B1緩沖區(qū)初始為空閑狀態(tài)。 如果C進(jìn)程的算法如下: 則信號量B2empty初值應(yīng)為1。表示B2緩沖區(qū)初始為空閑狀態(tài)?!纠?】死鎖的四個必要條件中,無法破壞的是( )。A.互斥條件 B.不可搶占條件C.占有且申請條件 D.循環(huán)等待條件答案 A分析 互斥條件、不可搶占條件、占有且申請條件和循環(huán)等待條件是死鎖發(fā)生時的4個必要條件,我們知道,只要破壞這4個必要條件中的任意一個條件,死鎖就不會發(fā)生。打破互斥條件,就是允許進(jìn)程同時訪問某些資源。但是,有的資源是不允許被同時訪問的,如打印機(jī)等,這是由資源本身的屬性所決定的,因此這種方法并無實用價值。而其他三個條件是完全可以破壞的。 練習(xí)題一、選擇題(選擇一個正確答案的代碼填入括號中)
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1