成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

操作系統(tǒng)進(jìn)程與線程筆記

suxier / 2690人閱讀

摘要:進(jìn)程與線程聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處進(jìn)程線程基本概念進(jìn)程程序的執(zhí)行實體,操作系統(tǒng)分配資源的最小單位線程被稱為輕量級進(jìn)程,是調(diào)度分配的最小單位。一個標(biāo)準(zhǔn)的線程由線程,程序計數(shù)器,寄存器集合和堆棧組成進(jìn)程間線程間通信方式進(jìn)程間通信

進(jìn)程與線程 聲明

文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處https://segmentfault.com/u/yzwall

進(jìn)程&線程基本概念

進(jìn)程:程序的執(zhí)行實體,操作系統(tǒng)分配資源的最小單位;

線程:被稱為輕量級進(jìn)程,是CPU調(diào)度分配的最小單位。一個標(biāo)準(zhǔn)的線程由線程ID,程序計數(shù)器(PC),寄存器集合和堆棧組成;

進(jìn)程間/線程間通信方式 Linux

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

Windows

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

線程與進(jìn)程的區(qū)別 資源分配與調(diào)度

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

系統(tǒng)開銷

進(jìn)程創(chuàng)建和撤銷時,系統(tǒng)開銷遠(yuǎn)大于線程開銷;
進(jìn)程切換時,保存現(xiàn)場開銷和上下文切換開銷遠(yuǎn)大于線程開銷;

地址空間

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

通信方面

進(jìn)程間通信需要借助操作系統(tǒng);
由于線程共享進(jìn)程的地址空間,因此線程間同步與通信較容易實現(xiàn),甚至無需操作系統(tǒng)干預(yù);

多進(jìn)程和多線程選擇

死鎖與死鎖處理策略 死鎖產(chǎn)生必要條件

死鎖產(chǎn)生必須同時滿足以下四個條件:

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

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

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

循環(huán)等待條件:存在系統(tǒng)資源的進(jìn)程循環(huán)等待鏈;

死鎖處理策略

預(yù)防死鎖:任意破壞死鎖產(chǎn)生的四個必要條件之一即可;

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67021.html

相關(guān)文章

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

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

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

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

    harryhappy 評論0 收藏0

發(fā)表評論

0條評論

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