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

資訊專(zhuān)欄INFORMATION COLUMN

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

suxier / 2670人閱讀

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

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

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

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

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

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

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

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

Windows

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

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

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

系統(tǒng)開(kāi)銷(xiāo)

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

地址空間

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

通信方面

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

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

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

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

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

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

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

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

死鎖處理策略

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67021.html

相關(guān)文章

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

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

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

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

    harryhappy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<