999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

《操作系統》課程的教學體會

2009-04-29 00:00:00劉國柱杜軍威
電腦知識與技術 2009年4期

摘要:操作系統中,進程同步和互斥問題以及與之相關的信號量機制是教學過程中的重點和難點問題。本文介紹了教學實踐中總結的有關如何用信號量機制解決進程同步與互斥問題的求解規律及教學經驗,旨在提高教學效果,促進學生對操作系統基本原理的理解和掌握。最后針對本課程的特點,提出了操作系統今后的教學研究方向。

關鍵詞:操作系統;教學研究;進程;同步;互斥;信號量

中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2009)04-0898-03

The Teaching Experience of Operating System Course

GE Yan, LIU Guo-zhu, DU Jun-wei, CAO Ling

(Institute of Information Science and Technology, Qingdao University of Science and Technology, Qingdao 266061, China)

Abstract: The process synchronization and process mutual exclusion and semaphore mechanism, which are emphases and difficulty in the Operating System course. This paper introduces some teaching experiences about how to imply the semaphore mechanism to solve process synchronization and process mutual exclusion problems, which are summed up in teaching practice. Those key contents would help university students to understand and master the keystone principle. Finally, according to the character of Operating System Course, the new teaching research direction is improved at the end of this paper.

Key words: Operating system; teaching research; process; synchronization; mutual exclusion; semaphore

1 引言

操作系統是計算機系統的核心和靈魂,是計算機系統必不可少的組成部分。操作系統作為計算機專業的核心課程,不但高校計算機相關專業學習必須學習,也是從事計算機應用人員必不可少的知識[1]。

操作系統課程的內容是由計算機各種操作系統的組成結構、設計思想、方法和理論綜合而形成。該課程具有以下特點:內容龐雜、知識點多、涉及面廣;概念抽象,不易理解;而且實踐性強。學生在學習過程中往往對于一些重要的知識點感到不易理解,難于掌握。因此,需要系統地總結操作系統中重要知識點的教學方法,以提高教學質量。

進程的同步和互斥是操作系統對計算機系統進行管理的核心問題,是操作系統課程的核心知識點,是教學過程中的重點和難點問題,也是考研的重點內容,因此學生能否很好地理解并掌握這些知識點是影響教學效果的關鍵。

本文針對進程同步與互斥問題探討操作系統課程的教學方法,總結教學實踐中的一些經驗,旨在提高學生對用信號量機制實現進程同步與互斥問題的理解和把握。

2 進程同步與互斥

進程是并發執行的程序在執行過程中分配和管理資源的基本單位。并發執行是為了增強計算機系統的處理能力和提高資源利用率所采取的一種同時操作技術。在不考慮資源共享的情況下,各進程的執行是獨立的,執行速度是異步的[2]。但是在計算機系統中,由于資源有限又導致了進程之間的資源競爭和共享。那么,在進程并發執行過程中存在哪些制約呢?

并發進程所受的制約有兩種:直接制約和間接制約。

1) 直接制約,又稱協作關系:某些進程為完成同一任務需要分工協作等待來自其他進程的信息,這種相互制約的關系稱為進程同步。

2) 間接制約:進程間競爭共有資源——獨占分配到的部分或全部共享資源,這種相互制約的關系稱為互斥。

并發進程之間的同步和互斥關系如果處理不好就會產生死鎖。目前最有效的解決方法是信號量機制。

3 信號量機制

信號量機制是由荷蘭科學家E.W.Dijkstra提出的。他將交通管制中多種顏色的信號燈管理交通的方法引入操作系統,讓兩個或多個進程通過特殊變量進行交互。一個進程在某一特殊點上被迫停止執行直到接收到一個對應的特殊變量值,通過特殊變量這一設施,任何復雜的進程交互要求都可得到滿足,這種特殊變量稱為信號量(semaphore)。為了通過信號量傳送信號,進程可以通過P、V兩個特殊的操作來發送和接收信號[1]。

在操作系統中,信號量有如下幾個特點:

1) 信號量必須置一次且只能置一次初值。

2) 信號量的初值不能為負數。

3) 信號量只能通過初始化和兩個標準的PV原語對其進行操作,沒有其他任何方法可以檢查和操作信號量。

4) PV原語是操作系統內核中執行時不可中斷的過程,不受進程調度的打斷。

5) P原語操作的功能:將信號量s減l;若s<0,則調用P(s)的進程被置成等待信號量s的狀態,然后轉進程調度;否則調用P(s)的進程繼續執行。

6) V原語操作的功能:將信號量s加1;若s的值小于或等于0,則喚醒一個等待信號量s的進程,然后再返回原進程繼續執行或轉進程調度;否則調用P(s)的進程繼續執行。

4 用信號量機制實現互斥和同步的方法

用PV操作解決進程同步問題時首先應確定問題的類型。如果并發的進程間涉及到同一共享資源的使用,則為互斥關系;如果并發的進程間執行順序必須遵守某一規則,則為同步關系。當然更多的問題中可能既有相互合作的關系,也有對共享資源的使用,使得進程間的制約關系更為復雜。

4.1 用信號量機制實現進程互斥

在進程互斥問題中,要為多個進程互斥訪問的臨界資源設置一個公用信號量mutex,該信號量與所有的并發進程有關。公用信號量的值反映了可用該公用資源的數量。

在單純的互斥問題中,在每個進程中將臨界區(進程中訪問臨界資源的那段程序代碼)置于P(mutex)和V(mutex)原語之間。其模型如下圖1所示。

圖1中,信號量與PV操作的作用如下:

1) P操作的作用:判斷是否能進入臨界區,申請資源;

2) V操作的作用:退出臨界區,釋放資源;

3) 信號量初值設置為臨界資源的可用個數。

4.2 用信號量機制實現進程同步

與進程互斥不同,進程同步時的信號量只與制約進程及被制約進程有關而不是與整組并發進程有關,所以稱之為私用信號量。

以兩個進程生產者和消費者共用同一個緩沖區發送和接收信息為例,介紹實現進程同步的模型。設置兩個私用信號量:

empty: 表示緩沖區是否為空,初值為1。

full: 表示緩沖區是否為滿,初值為0。

該問題算法描述如圖2所示。

圖2中,P操作的作用是接收信息,判斷是否可以執行;V操作的作用是發送消息告知對方。同一個私用信號量的P操作應在接收信息的進程中,V操作應在發送信息的進程中,只有含有V操作的進程發送消息后,接收進程才能執行。

4.3 用信號量機制實現復雜的進程同步與互斥問題

多個生產者和多個消費者問題是一個典型的既有進程同步又有互斥的混合問題,即:多個生產者,多個消費者,共享多個緩沖區。其中,生產者與消費者之間要同步,而且還必須互斥地訪問緩沖區[3]。以該問題的求解為例分析進程同步與互斥復雜問題的求解模型:

1) 定義三個信號量。

①公用信號量mutex:保證生產者進程和消費者進程之間的互斥,初值為1。

②私用信號量empty:表示緩沖區中的空單元個數,初值為n;

③私用信號量full:表示緩沖區中的非空單元個數,初值為0。

2) 算法描述如圖3。

用信號量機制實現進程同步與互斥的注意事項如下:

不論是求解進程同步還是互斥問題,在一組并發進程中,P、V原語都是成對出現的:

1) 互斥操作時,它們在同一進程中;

2) 同步操作時,它們處于不同進程。

3) 在同步和互斥的混合問題中,應先執行用于同步信號量的P操作,然后再執行互斥信號量的P操作。

5 用信號量機制實現進程互斥和同步的例子

下面以幾個典型的實例,介紹如何利用信號量和PV操作有效地解決進程同步與互斥問題。

問題的分析步驟如下:

1) 分析并發的進程間的制約關系:是互斥、同步還是互斥與同步的混合問題。這一步的分析判斷是至關重要的。

2) 設定信號量的個數、初值和意義。

3) 決定并發進程執行過程中調用P、V操作原語的位置。

5.1 用信號量實現進程互斥的例子

五個哲學家吃通心粉問題是操作系統中經典的進程互斥問題,如圖4所示。有五個哲學家圍坐在一個圓桌旁,桌中央有一盤通心粉,每人面前有一只空盤子,每兩人之間放一只叉子,每個哲學家的行為是思考,感到饑餓,然后吃通心粉。為了吃通心粉,每個哲學家必須拿到兩只叉子,并且每個人只能直接從自己的左邊或右邊去取叉子。

為了防止出現死鎖,要求奇數號的哲學家先取左手邊的叉子,偶數號的哲學家先取右手邊的叉子。

哲學家就餐問題的求解過程如下:

1) 把哲學家看做是進程,進程之間是互斥關系。每一把叉子是相鄰兩個哲學家共享的公用資源。哲學家編號i=0-4。

2) 為每一把叉子設置對應的公用信號量,其初始值為1,規定每個哲學家左右的叉子和哲學家的編號相同。

fork[i]: semaphore; i=0,1,2,3,4

fork[i]=1;

3) 算法描述如下:

Process Pi (i=0,1,2,3,4)

begin

思考;

if i mod 2==0 then//偶數號哲學家

{P(fork[(i+1)mod5]);//拿右手邊的叉子

P(fork[i]); //拿左手邊的叉子 吃通心粉;

V(fork[(i+1)mod5]); //放下右手邊的叉子

V(fork[i]); //放下左手邊的叉子

}

else//奇數號哲學家

{P(fork[i]);//拿左手邊的叉子

P(fork[(i+1)mod5]); //拿右手邊的叉子

吃通心粉;

V(fork[i]);//放下左手邊的叉子

V(fork[(i+1)mod5]); //放下右手邊的叉子

}

end

5.2 用信號量機制實現進程同步的例子

把并發進程的同步和互斥問題一般化,可抽象為一般模型:生產者和消費者問題。該問題可以具體劃分為以下四種情況。

①一個生產者、一個消費者共享一個緩沖區

②一個生產者、一個消費者共享多個緩沖區

③多個生產者、多個消費者共享一個緩沖區

④多個生產者、多個消費者共享多個緩沖區

深入分析生產者和消費者問題將有助于深刻理解如何解決程互斥與同步問題。下面以第二種情況(一個生產者,一個消費者共享多個緩沖區),介紹進程同步問題和進程典型的進程同步問題。該問題的求解過程如下:

1) 定義用于進程同步的私用信號量:

empty: 表示緩沖區是否為空,初值為n。full: 表示緩沖區是否為滿,初值為0。

2) 程序描述如圖5。

5.3 用信號量機制實現復雜的進程同步問題

復雜的生產者——消費者問題:

桌上有一只盤子,只能容納兩個水果,每次只能放入或取出一只水果。爸爸專向盤子中放蘋果(apple),媽媽專向盤子中放桔子(orange),一個兒子專等吃盤子中的桔子,一個女兒專等吃盤子中的蘋果。試用信號量和P、V操作來實現爸爸、媽媽、兒子和女兒之間的同步與互斥關系[4]。

解題思路:

1) 分析:該問題實質上是兩個生產者和兩個消費者被連結到僅能放兩個個產品的緩沖區上。生產者需要指明是給哪個消費者的產品,而消費者取走產品后無需特別通知某個生產者,因為空出的緩沖區(盤子)可以由兩個生產者隨意爭奪。

2) 設置兩個公用信號量(plate, mutex)和兩個私用信號量(orange, apple)。

plate,控制盤子容納水果數目;初值為2。

mutex,控制對盤子的互斥訪問,初值為1。

orange表示盤子里有桔子,初值為0。

apple表示盤子里有蘋果,初值為0。

3) 算法描述如圖6。

在進程同步和互斥的混合問題中,一定要重點提醒學生,每個進程中各個P操作的次序是重要的:先檢查資源數目,再檢查是否互斥(否則可能死鎖)。讓學生思考為什么會產生死鎖,通過思考進一步理解進程的同步和互斥問題的求解方法。

6 總結

信號量機制是操作系統管理并發進程執行的有效方法。用信號量機制解決進程同步與互斥問題是操作系統的重要知識點,是學生學習和理解其他相關知識點的前提和基礎,也是教師講解過程中應加以重視的環節。例如,進程間的消息緩沖通信機制中,需要利用信號量機制實現發送和接收過程的同步與互斥;文件系統中,也需要利用信號量機制實現讀寫控制。

本文著重介紹了在《操作系統》課程的教學過程中對用信號量解決進程同步與互斥問題這一核心知識點的教學體會。該教學方法經過多年的教學實踐,已成為該課程的一個教學亮點。學生普遍感覺利用這些系統歸納總結出的求解思路、求解規律和求解方法.能夠比較熟練地解決這類問題,反映較好。

《操作系統》課程同其他計算機科學技術一樣,其技術也是日新月異,發展很快。因而對教學來說就要緊跟其發展,了解該學科的前沿信息。在教學過程中,充分把握好操作系統課程的特點,歸納出行之有效的教學方法,提高學生的學習興趣,充分提高學生的能力。

參考文獻:

[1] 孫鐘秀. 操作系統教程[M]. 3版. 北京:高等教育出版社, 2005.

[2] 湯子贏. 計算機操作系統[M]. 西安:西安電子科技大學出版社,2000.

[3] 張堯學. 計算機操作系統教程[M]. 北京:清華大學出版社, 2006.

[4] 史湘寧, 凌云翔. 操作系統典型題解析與實戰模擬[M]. 長沙:國防科技大學出版社, 2002.

葛艷(1975-),女,山東泰安人,副教授,主要從事計算機專業教學,智能控制理論與應用研究。

主站蜘蛛池模板: 久久亚洲黄色视频| 亚洲狼网站狼狼鲁亚洲下载| 91精品啪在线观看国产| 日韩精品一区二区深田咏美| 国产欧美日韩18| 亚洲熟女中文字幕男人总站| 伊人久综合| 日本久久免费| 国产在线观看高清不卡| 精品夜恋影院亚洲欧洲| 无码一区中文字幕| 97视频免费看| 99国产精品免费观看视频| 国产成人精品高清不卡在线| 69av免费视频| 国产精品9| a欧美在线| 中文字幕av无码不卡免费| AV在线天堂进入| 亚洲无码日韩一区| 婷婷伊人五月| 色综合久久无码网| 婷婷午夜影院| 国产真实乱子伦精品视手机观看| 免费人成在线观看视频色| 高潮爽到爆的喷水女主播视频 | 国产本道久久一区二区三区| 亚洲一区国色天香| 日韩毛片免费观看| 亚洲swag精品自拍一区| 久久综合九色综合97网| 欧美日韩国产在线播放| 成人中文字幕在线| 国产福利不卡视频| 毛片三级在线观看| 婷婷久久综合九色综合88| 国产97视频在线| 91精品久久久久久无码人妻| 亚洲欧美成人综合| 九九热精品在线视频| 99精品一区二区免费视频| 99福利视频导航| 日韩av资源在线| 真实国产乱子伦视频| 福利在线不卡| 亚洲欧美人成电影在线观看| 91小视频在线观看免费版高清 | 亚洲综合一区国产精品| 国产麻豆aⅴ精品无码| 在线另类稀缺国产呦| 久久永久免费人妻精品| 老熟妇喷水一区二区三区| 国产欧美另类| 国产成人91精品免费网址在线 | 直接黄91麻豆网站| 国产乱子伦一区二区=| 午夜啪啪网| 亚洲天堂网视频| 毛片大全免费观看| 中文字幕色在线| 国产Av无码精品色午夜| 日韩福利视频导航| 99久久精品国产麻豆婷婷| 亚洲天堂首页| 中国国产A一级毛片| 57pao国产成视频免费播放| 国产美女精品一区二区| 日韩精品一区二区三区免费在线观看| 国产乱人伦AV在线A| 青青久久91| 在线观看的黄网| 亚洲天堂视频在线免费观看| 秋霞午夜国产精品成人片| 国产高颜值露脸在线观看| 国产视频一区二区在线观看| 996免费视频国产在线播放| 国产成人1024精品下载| 久久久久国产精品熟女影院| 国产成人精品2021欧美日韩| 免费无遮挡AV| 国产AV无码专区亚洲A∨毛片| 都市激情亚洲综合久久|