coursera 《現代操作系統》 -- 第五周 同步機制(1)

臨界區塊Critical section)指的是一個訪問共用資源(例如:共用設備或是共用存儲器)的程序片段,而這些共用資源有無法同時被多個線程訪問的特性。(不是字面意思的一個區域,是程序片段的集合)

?

1. 為了完成一件事,匯編有時會分成多條指令進行執行。

2.進程有一定的時間片,用完了自己的時間片就會被切換下去。

這就帶來了問題:如果沒有執行完,就被切換下CPU,會造成意想不到的問題。

處理方法:

加鎖

使用原語操作,不允許被中斷(即使用完了時間片,也不下來;忽視搶占)

?

為什么需要同步?

1. 進程間的時序關系。但是初始狀態下,任意進程都可能上CPU,它們是無序的

錯題

3。

以下是解決進程互斥進入臨界區的一種解法。

P:

???? … …

???? pturn = true;

???? while (qturn) ;

???????? 臨界區操作

???? pturn = false;

???? … …

Q:

???? … …

???? qturn = true;

???? while (pturn) ;

???????? 臨界區操作

???? qturn = false;

???? … …

其中,pturn、qturn的初值為false

如果P、Q兩個進程同時想進入臨界區,那么會發生下面哪一種情形?

條件并不是代碼中寫的那樣,應該是:

所以答案是兩者都不能進入

?

下列描述的四個現象中,哪一項既具有同步關系又具有互斥關系?

多個不同的用戶進程一起玩麻將電子游戲

多個不同的用戶進程編譯自己的程序

多個不同的用戶進程一起玩踢足球電子游戲

多個不同的用戶訂票進程訪問票額數據庫

?

互斥:兩個或多個進程?在讀寫某些共享數據的時候,像這個 in?就是共享數據 而最后的結果取決于進程運行的一個精確的時序?就是時間序列,就是它一跟時間是相關的 那么這就是帶來了競爭條件?所以競爭條件呢,是由于有這樣一個共享的資源,共享的數據,而多個進程?都對這個數據進行相應的操作帶來的 那么這樣就產生了這樣一個概念--進程互斥?由于在一個并發環境里頭 多個進程,都要使用一些共享資源,像?一些變量啊,像一些文件啊,而這些資源呢 具有這樣一個性質,它需要排他性的使用,也就是說我用?那么另外一個進程就不能用,這是一種排他性的使用 因此,各個進程之間對這個資源的使用?是一種競爭,是一種競爭,而這種競爭呢 我們就稱之為進程的互斥

同步:互斥?它指的是進程之間具有一種競爭關系?而進程的同步呢實際上是指的多個進程之間的協作關系?那么什么是進程的同步呢??它是指的在多個進程中 發生的事件存在著某種時序關系?需要這些進程相互合作,共同完成一項任務?更具體的一點來說,就是 有多個進程,其中一個進程執行到了某一點?它要求另外一個進程為它提供消息?而另外這個進程呢由于它們是相互合作的,所以是它的一個伙伴進程?因此第一個進程需要第二個進程給它提供消息?在沒有獲得這個消息的時候,也就是消息沒有到達?那么這個事件還沒有發生,那么前一個進程?就要進入阻塞態,就要等這個消息,一旦這個消息到達,也就是說這個事件發生了?就把前面這個進程喚醒,讓它?重新就緒,實際上我們所談的是一個進程之間的一個協作關系

?

感覺這個題目不嚴謹

足球游戲:

互斥:球是互斥的。只能被一個進程使用

同步:足球傳遞過來,才能進行下一步?

麻將游戲:

互斥:

同步:

6。

在使用信號量及P、V操作機制解決問題時,進程執行一次P操作,意味著該進程

準備釋放一個資源

正在使用一個資源

申請分配一個資源

需要共享一個資源

轉載于:https://www.cnblogs.com/jay54520/p/6562421.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372645.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372645.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372645.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java.lang.NoClassDefFoundError:如何解決–第2部分

本文是我們的NoClassDefFoundError故障排除系列的第2部分。 看一下第1部分 。 它將重點介紹最簡單的NoClassDefFoundError問題類型。 本文對于Java初學者來說是理想的選擇,我強烈建議您自己編譯并運行示例Java程序。 今后將使用以下書寫格式,并為您提供&…

Android開發技術周報 Issue#34

教程 Google Develop for Android 系列 前幾天在G上看到Google Developers站點,有一個Android系列的文章,分享到個人微博,周末閑來沒事就學寫了下,把它們簡單的翻譯了下,沒想到一發不可收拾,六篇文章全部都…

php進度條插件,分享8款優秀的 jQuery 加載動畫和進度條插件_jquery

加載動畫和進度條在網站和 Web 應用中的使用非常流行。雖然網速越來越快,但是我們的網站越來越復雜,同時用戶對網站的使用體驗的要求也越來越高。在內容加載緩慢的時候,使用時尚的加載動畫和進度條告訴用戶還有內容正在加載是一種非常好的方式…

卷積神經網絡(CNN)與特殊的卷積

各種卷積操作的可視化的顯示形式:GitHub - vdumoulin/conv_arithmetic: A technical report on convolution arithmetic in the context of deep learning1. fractionally-strided 卷積 如上圖示,輸入為 33 ,想要卷積上采樣成 55 的輸出。需要…

JBoss AS 7:自定義登錄模塊

JBoss AS 7很整潔,但是仍然缺少文檔(錯誤消息沒有那么有用)。 這篇文章總結了如何創建自己的兼容JavaEE的登錄模塊,以對部署在JBoss AS上的Web應用程序的用戶進行身份驗證。 提供了一個工作的基本用戶名密碼模塊。 為什么要使用Ja…

MySQL安裝步驟及相關問題解決

1. 下載MySQL Server,網址:http://dev.mysql.com/downloads/mysql/ 2. 點擊MySQL5.5.21的安裝文件,出現安裝向導界面,單擊“next”繼續安裝: 3. 選擇接受協議,單擊“next”繼續安裝: 4. 在出現選…

matlab的數學函數,matlab中常見數學函數的使用

matlab中常見數學函數的使用 MATLAB 基本知識 Matlab 的內部常數 pi 圓周率 exp(1) 自然對數的底數 e i 或 j 虛數單位 Inf 或 inf 無窮大 Matlab 的常用內部數學函數 指數函數 exp(x) 以 e 為底數 log(x) 自然對數,即以 e 為底數的對數 log10(x) 常用對數&#xff…

C++中 list與vector的區別

C中 list與vector的區別 引用http://www.cnblogs.com/shijingjing07/p/5587719.html C vector和list的區別 1.vector數據結構vector和數組類似,擁有一段連續的內存空間,并且起始地址不變。因此能高效的進行隨機存取,時間復雜度為o(1);但因為內…

使用Struts 2的查詢網格(無插件)

當將jQuery與struts 2一起使用時,開發人員被說服使用struts2-jQuery插件 。 因為大多數論壇和其他Internet資源都支持struts2 jQuery插件。我有這種經驗。 我想將Struts 2使用jQuery Grid插件,但不使用struts2 jQuery插件。 對于我而言,很難找…

php reflectionmethod,PHP ReflectionMethod getClosure()用法及代碼示例

ReflectionMethod::getClosure()函數是PHP中的一個內置函數,用于為該方法返回動態創建的閉包,否則,在出現錯誤的情況下返回NULL。用法:Closure ReflectionMethod::getClosure ( $object )參數:該函數接受參數對象,該參…

java學習筆記--IO流

第十二章大綱: I/O input/output 輸入/輸出 一、創建文件,借助File類來實現 file.createNewFile() : 創建文件 file.exists() : 判斷文件是否存在,如果存在,則返回true delete() : 刪除文件&…

linux命令之kill篇

作業四:查詢firewall進程,然后殺死 [rootlocalhost 桌面]# ps -aux |grep firewall root 772 0.0 2.0 327912 20704 ? Ssl 15:23 0:00 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid root 5323 0.0 0.0 112660…

ActiveMQ網絡連接器

這篇文章對我和任何對網絡連接器如何為ActiveMQ工作感興趣的ActiveMQ貢獻者而言都是更多的內容。 我最近花了一些時間查看代碼,并認為最好畫一些快速的圖表來幫助我記住我學到的東西,并在將來發現問題時幫助將來確定在哪里進行調試。 如果我輸入有誤&…

《程序設計與數據結構》第3周學習總結

學號 20162317 《程序設計與數據結構》第3周學習總結 教材學習內容總結 第三章的內容相比之前兩章更為具體,介紹的內容更為集中,主要說到了類和對象的問題,其中也仔細介紹了String類、Random類、Math類、NumberFormat類等類。此外也說到了與類…

Java中帶有JWebSocket的WebServerSocket

首先&#xff0c;轉到http://jwebsocket.org/下載2個軟件包Server and Client。 如果要查看源代碼&#xff0c;請下載源代碼包。 服務器 解壓縮服務器程序包。 轉到“ conf”文件夾 選擇“ jWebSocket.xml”文件打開 編輯“ jWebSocket.xml”文件&#xff0c;在標簽<dom…

OpenCV入門指南----人臉檢測

本篇介紹圖像處理與模式識別中最熱門的一個領域——人臉檢測&#xff08;人臉識別&#xff09;。人臉檢測可以說是學術界的寵兒&#xff0c;在不少EI&#xff0c;SCI高級別論文都能看到它的身影。甚至很多高校學生的畢業設計都會涉及到人臉檢測。當然人臉檢測的巨大實用價值也讓…

matlab提取艾里斑,艾里斑:我不是雀斑

正是艾里斑&#xff0c;限制了光學儀器的精度我們知道凸透鏡能把入射光會聚到它的焦點上&#xff0c;由于透鏡的口徑有一定大小&#xff0c;限制了光線的傳播&#xff0c;所以凸透鏡也會發生衍射。這導致透鏡無法把光線會聚成無限小的點&#xff0c;而只會在焦點上形成具有一定…

mysql啟動錯誤排查-無法申請足夠內存

一般情況下mysql的啟動錯誤還是很容易排查的&#xff0c;但是今天我們就來說一下不一般的情況。拿到一臺服務器&#xff0c;安裝完mysql后進行啟動&#xff0c;啟動錯誤如下&#xff1a; 有同學會說&#xff0c;哥們兒你是不是buffer pool設置太大了&#xff0c;設置了96G內存。…

Spring vs Guice:重要的一個關鍵區別

根據彈簧對象的名稱識別它們 不管使用XML還是Java配置都沒有關系&#xff0c;Spring范圍大致類似于Map <String&#xff0c;Object>結構。 這意味著您不能有兩個名稱相同的對象 。 為什么這是一件壞事&#xff1f; 如果您的大型應用程序包含許多Configuration類或XML文件…

php 批量更新死鎖,php – 在嘗試獲取鎖定時,哪個查詢導致死鎖;嘗試重新啟動事務...

我無法弄清楚哪個Query在嘗試獲取鎖定時導致死鎖;嘗試重新啟動事務.我的mysql包裝器有以下幾行if (mysql_errno($this->conn) 1213) {$this->bug_log(0,"Deadlock. SQL:".$this->sql);}bug_log寫入文件的位置.錯誤日志文件沒有死鎖錯誤,但/var/log/mysqld.…