日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统进程同步例题(三)汽车过桥2

發布時間:2024/1/1 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统进程同步例题(三)汽车过桥2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

操作系統進程同步例題(三)汽車過橋2

題目1: 在一個只允許單向行駛的十字路口,分別有若干由東向西,由南向北的車輛在等待通過十字路口。為了安全,每次只允許一輛車通過(比如:東到西或南到北)。當有車輛通過時其它車輛必須等待,當無車輛在路口行駛時則允許一輛車(東到西或南到北) 進入。請畫出能保證安全行駛自動管理系統的邏輯框圖,或者用P、V操作實現正確安全駕駛自動管理系統的偽代碼。

PV操作題目分析步驟:

  • 關系分析。找出題目中描述的各個進程,分析它們之間的同步、互斥關系。
  • 整理思路。根據各進程的操作流程確定P、V操作的大致順序。
  • 設置信號量。并根據題目條件確定信號量初值。(互斥信號量初值一般為1,同步信號量的初始值要看對應資源的初始值是多少)
  • 1、分析

    允許單向行駛的十字路口,有由東向西和由南向北的車輛,每次只允許一輛車通過,分為兩個進程,為互斥關系,需要互斥信號量mutex

    2、偽代碼

    seamphore mutex = 1; //十字路口的互斥信號量 //從東到西 EastToWest() {while(1) {P(mutex); //申請通過由東向西通過;V(mutex); //釋放} } //從南到北 SouthToNorth() {while(1) {P(mutex); //申請通過由南向b通過;V(mutex); //釋放} }

    題目2:一條小河上有一座獨木橋(如圖),規定每次只允許一個人過橋。現河東和河西都有相等的人數在等待過橋,為了使兩邊的人都有同樣的過橋機會,規定某邊的一個人過橋后要讓另一邊的一個人過橋,即兩邊的人交替過橋。如果把每個過橋者看做一個進程,為保證安全,可用PV操作來管理。

    (1)寫出應定義的信號量及其初值。

    (2)假定開始時讓河東的一一個人先過橋,然后交替過橋。請用適當的PV操作,達到上述管理要求。

    1、分析

    一條小河上有一座獨木橋,河東和河西等待過橋,每次只允許一個人過橋,分為兩個進程,為互斥關系,兩邊的人交替過橋,需要兩個互斥信號量mutex1和mutex2,分別表示河東和河西兩邊,開始時先讓河東一人先過橋,故mutex1 = 1,mutex2 = 0;

    2、偽代碼

    seamphore mutex1 = 1; //河東信號量,開始先讓河東一人先過 seamphore mutex2 = 0; //河西信號量 //從東到西 EastToWest() {while(1) {P(mutex1); //河東申請通過由東向西通過;V(mutex2); //釋放河西信號量} }//從西到東 WestToEast() {while(1) {P(mutex2); //河東申請通過由南向b通過;V(mutex1); //釋放河西信號量} }

    總結

    以上是生活随笔為你收集整理的操作系统进程同步例题(三)汽车过桥2的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。