国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

操作系統進程與線程筆記

suxier / 2673人閱讀

摘要:進程與線程聲明文章均為本人技術筆記,轉載請注明出處進程線程基本概念進程程序的執行實體,操作系統分配資源的最小單位線程被稱為輕量級進程,是調度分配的最小單位。一個標準的線程由線程,程序計數器,寄存器集合和堆棧組成進程間線程間通信方式進程間通信

進程與線程 聲明

文章均為本人技術筆記,轉載請注明出處https://segmentfault.com/u/yzwall

進程&線程基本概念

進程:程序的執行實體,操作系統分配資源的最小單位;

線程:被稱為輕量級進程,是CPU調度分配的最小單位。一個標準的線程由線程ID,程序計數器(PC),寄存器集合和堆棧組成;

進程間/線程間通信方式 Linux

Linux進程間通信:管道,信號(signal),消息隊列(Message),共享內存(shared memory),信號量(semaphore),套接口(socket)
Linux線程間通信:互斥量(Mutex),信號量(Semaphore),條件變量

Windows

Windows進程間通信:管道(pipe),消息隊列(Message),共享內存(shared memory),信號量(semaphore),套接口(socket)
Windows線程間通信:臨界區(critical section),互斥量(Mutex),信號量(Semaphore),事件(Event)

線程與進程的區別 資源分配與調度

線程是獨立調度的基本單位,進程是擁有資源的基本單位(進程只作為除CPU之外系統資源的分配單元,線程作為CPU的分配單元);
在同一進程中,線程之間的切換不會引起進程的切換,但從一個進程中的線程切換到另一個進程中的線程時,會引起進程的切換;

系統開銷

進程創建和撤銷時,系統開銷遠大于線程開銷;
進程切換時,保存現場開銷和上下文切換開銷遠大于線程開銷;

地址空間

進程之間的地址空間互相獨立,一個進程崩潰不影響其他進程;
線程之間(屬于同一進程)共享進程的地址空間,一個線程死掉相當于整個進程死掉;

通信方面

進程間通信需要借助操作系統;
由于線程共享進程的地址空間,因此線程間同步與通信較容易實現,甚至無需操作系統干預;

多進程和多線程選擇

死鎖與死鎖處理策略 死鎖產生必要條件

死鎖產生必須同時滿足以下四個條件:

互斥條件:一段時間內,某資源僅被一個進程所占有,其他進程只能等待;

不剝奪條件:進程擁有的資源只能由自己釋放,不可被其他進程強行奪走;

請求和保持條件:在申請資源不能全部滿足的條件下,進程占有已申請的資源,等待新的資源分配

循環等待條件:存在系統資源的進程循環等待鏈;

死鎖處理策略

預防死鎖:任意破壞死鎖產生的四個必要條件之一即可;

避免死鎖:在資源動態分配過程中,采用某種算法(比如銀行家算法)防止系統進入”不安全狀態“(系統有可能死鎖);

死鎖檢測和解除:通過系統檢測機制及時檢測出死鎖現象(利用資源分配圖),然后可通過剝奪資源,撤銷進程和回退進程解除死鎖;

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67021.html

相關文章

  • Java多線程筆記(零):進程線程通用概念

    摘要:父進程調用創建子進程。因而,一個進程的第一個線程會隨著這個進程的啟動而創建,這個線程被稱為該進程的主線程。另一方面,線程不可能獨立于進程存在。終止線程線程可以通過多種方式來終結同一個進程中的其他線程。 前言 不積跬步,無以至千里;不積小流,無以成江海。在學習Java多線程相關的知識前,我們首先需要去了解一點操作系統的進程、線程以及相關的基礎概念。 進程 通常,我們把一個程序的執行稱為一...

    blastz 評論0 收藏0
  • (CZ深入淺出Java基礎)線程筆記

    摘要:一個進程如果有多條執行路徑,則稱為多線程程序。這可能拋出在當前線程中。考慮多線程的數據安全問題是否是多線程環境。當前線程必須擁有此對象監視器。此方法導致當前線程稱之為將其自身放置在對象的等待集中,然后放棄此對象上的所有同步要求。 這是劉意老師的JAVA基礎教程的筆記講的賊好,附上傳送門 傳智風清揚-超全面的Java基礎 一、線程的引入 1.多線程概述 進程 a.正在運行的程序,是...

    harryhappy 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<