91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

進(jìn)程與線(xiàn)程的區(qū)別和聯(lián)系

454398 ? 來(lái)源:alpha007 ? 作者:alpha007 ? 2022-12-05 18:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

進(jìn)程(process)和線(xiàn)程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。

最近,我讀到一篇材料,發(fā)現(xiàn)有一個(gè)很好的類(lèi)比,可以把它們解釋地清晰易懂。

1、計(jì)算機(jī)的核心是 CPU,它承擔(dān)了所有的計(jì)算任務(wù)。它就像一座工廠,時(shí)刻在運(yùn)行。

2、假定工廠的電力有限,一次只能供給一個(gè)車(chē)間使用。也就是說(shuō),一個(gè)車(chē)間開(kāi)工的時(shí)候,其他車(chē)間都必須停工。背后的含義就是,單個(gè) CPU 一次只能運(yùn)行一個(gè)任務(wù)。

3、進(jìn)程就好比工廠的車(chē)間,它代表 CPU 所能處理的單個(gè)任務(wù)。任一時(shí)刻,CPU 總是運(yùn)行一個(gè)進(jìn)程,其他進(jìn)程處于非運(yùn)行狀態(tài)。

4、一個(gè)車(chē)間里,可以有很多工人。他們協(xié)同完成一個(gè)任務(wù)。

5、線(xiàn)程就好比車(chē)間里的工人。一個(gè)進(jìn)程可以包括多個(gè)線(xiàn)程。

6、車(chē)間的空間是工人們共享的,比如許多房間是每個(gè)工人都可以進(jìn)出的。這象征一個(gè)進(jìn)程的內(nèi)存空間是共享的,每個(gè)線(xiàn)程都可以使用這些共享內(nèi)存。

7、可是,每間房間的大小不同,有些房間最多只能容納一個(gè)人,比如廁所。里面有人的時(shí)候,其他人就不能進(jìn)去了。這代表一個(gè)線(xiàn)程使用某些共享內(nèi)存時(shí),其他線(xiàn)程必須等它結(jié)束,才能使用這一塊內(nèi)存。

8、一個(gè)防止他人進(jìn)入的簡(jiǎn)單方法,就是門(mén)口加一把鎖。先到的人鎖上門(mén),后到的人看到上鎖,就在門(mén)口排隊(duì),等鎖打開(kāi)再進(jìn)去。這就叫“互斥鎖”(Mutual exclusion,縮寫(xiě) Mutex),防止多個(gè)線(xiàn)程同時(shí)讀寫(xiě)某一塊內(nèi)存區(qū)域。

9、還有些房間,可以同時(shí)容納 n 個(gè)人,比如廚房。也就是說(shuō),如果人數(shù)大于 n,多出來(lái)的人只能在外面等著。這好比某些內(nèi)存區(qū)域,只能供給固定數(shù)目的線(xiàn)程使用。

10、這時(shí)的解決方法,就是在門(mén)口掛 n 把鑰匙。進(jìn)去的人就取一把鑰匙,出來(lái)時(shí)再把鑰匙掛回原處。后到的人發(fā)現(xiàn)鑰匙架空了,就知道必須在門(mén)口排隊(duì)等著了。這種做法叫做“信號(hào)量”(Semaphore),用來(lái)保證多個(gè)線(xiàn)程不會(huì)互相沖突。

不難看出,mutex 是 semaphore 的一種特殊情況(n=1 時(shí))。也就是說(shuō),完全可以用后者替代前者。但是,因?yàn)?mutex 較為簡(jiǎn)單,且效率高,所以在必須保證資源獨(dú)占的情況下,還是采用這種設(shè)計(jì)。

11、操作系統(tǒng)的設(shè)計(jì),因此可以歸結(jié)為三點(diǎn):

(1)以多進(jìn)程形式,允許多個(gè)任務(wù)同時(shí)運(yùn)行;

(2)以多線(xiàn)程形式,允許單個(gè)任務(wù)分成不同的部分運(yùn)行;

(3)提供協(xié)調(diào)機(jī)制,一方面防止進(jìn)程之間和線(xiàn)程之間產(chǎn)生沖突,另一方面允許進(jìn)程之間和線(xiàn)程之間共享資源。

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 線(xiàn)程
    +關(guān)注

    關(guān)注

    0

    文章

    509

    瀏覽量

    20829
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    211

    瀏覽量

    14543
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    飛凌嵌入式ElfBoard-進(jìn)程之什么是進(jìn)程

    在Linux系統(tǒng)中,有些基本命令能夠查看到進(jìn)程的信息。例如ps、top、pgrep、pstree等;這些命令為用戶(hù)提供了查看和管理Linux進(jìn)程信息的多種功能。通過(guò)合理使用這些命令,用戶(hù)可以監(jiān)控
    發(fā)表于 03-02 08:49

    飛凌嵌入式ElfBoard-進(jìn)程之什么是進(jìn)程

    ID,用戶(hù)ID,組ID以及終止?fàn)顟B(tài)等)。4.1.1 進(jìn)程和程序的區(qū)別程序是一個(gè)靜態(tài)的代碼集合,是一組指令的集合,用于執(zhí)行特定的任務(wù)。程序通常以文件的形式存在,存儲(chǔ)在硬盤(pán)、閃存或其他存儲(chǔ)介質(zhì)上。程序
    發(fā)表于 01-26 08:42

    進(jìn)程概念和特征

    進(jìn)程的概念   在多道程序環(huán)境下,允許多個(gè)程序并發(fā)執(zhí)行,此時(shí)它們將失去封閉性,并具有間斷性及不可再現(xiàn)性的特征。為此引入了進(jìn)程(Process)的概念,以便更好地描述和控制程序的并發(fā)執(zhí)行,實(shí)現(xiàn)操作系統(tǒng)
    發(fā)表于 01-15 06:39

    進(jìn)程通信

    空間一般都是獨(dú)立的,要想讓兩個(gè)用戶(hù)進(jìn)程共享空間必須通過(guò)特殊的系統(tǒng)調(diào)用實(shí)現(xiàn),而進(jìn)程內(nèi)的線(xiàn)程是自然共享進(jìn)程空間的。   消息傳遞   在消息傳遞系統(tǒng)中,
    發(fā)表于 01-15 06:16

    進(jìn)程的控制

    進(jìn)程控制的主要功能是對(duì)系統(tǒng)中的所有進(jìn)程實(shí)施有效的管理,它具有創(chuàng)建新進(jìn)程、撤銷(xiāo)已有進(jìn)程、實(shí)現(xiàn)進(jìn)程狀態(tài)轉(zhuǎn)換等功能。在操作系統(tǒng)中,一般把
    發(fā)表于 01-15 06:05

    解析Linux的進(jìn)程、線(xiàn)程和協(xié)程

    系統(tǒng)的穩(wěn)定性和安全性。 (3)創(chuàng)建與銷(xiāo)毀:Linux使用fork()系統(tǒng)調(diào)用來(lái)創(chuàng)建新進(jìn)程,通過(guò)exit()來(lái)終止進(jìn)程。 線(xiàn)程(Thread) 線(xiàn)程
    發(fā)表于 12-22 11:00

    線(xiàn)程的系統(tǒng)

    線(xiàn)程系統(tǒng)的事件響應(yīng)也是在中斷中完成的,但事件的處理是在線(xiàn)程中完成的。在多線(xiàn)程系統(tǒng)中,線(xiàn)程跟中斷一樣,也具有優(yōu)先級(jí),優(yōu)先級(jí)高的線(xiàn)程會(huì)被優(yōu)先執(zhí)
    發(fā)表于 12-08 07:55

    Linux多線(xiàn)程對(duì)比單線(xiàn)程的優(yōu)勢(shì)

    在Linux系統(tǒng)中,線(xiàn)程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。線(xiàn)程被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)行單位。一個(gè)進(jìn)程可以擁有多個(gè)
    發(fā)表于 12-01 06:11

    數(shù)字化與信息化有什么區(qū)別聯(lián)系

    數(shù)字化與信息化是緊密相關(guān)但又有區(qū)別的兩個(gè)概念,它們?cè)谕苿?dòng)社會(huì)和經(jīng)濟(jì)發(fā)展中扮演著不同角色。以下從定義、核心目標(biāo)、技術(shù)基礎(chǔ)、應(yīng)用范圍、實(shí)施路徑及相互聯(lián)系六個(gè)方面進(jìn)行詳細(xì)分析: 一、定義差異 數(shù)字化
    的頭像 發(fā)表于 10-11 16:48 ?1477次閱讀
    數(shù)字化與信息化有什么<b class='flag-5'>區(qū)別</b>和<b class='flag-5'>聯(lián)系</b>

    線(xiàn)程與多處理有何區(qū)別

    多處理也稱(chēng)為進(jìn)程,進(jìn)程是一個(gè)在自己的內(nèi)存空間中運(yùn)行的獨(dú)立程序。
    的頭像 發(fā)表于 09-16 14:21 ?562次閱讀

    【HZ-T536開(kāi)發(fā)板免費(fèi)體驗(yàn)】—— linux創(chuàng)建線(xiàn)程

    線(xiàn)程進(jìn)程 一個(gè)進(jìn)程指的是一個(gè)正在執(zhí)行的應(yīng)用程序,而線(xiàn)程的功能是執(zhí)行應(yīng)用程序中的某個(gè)具體任務(wù)。線(xiàn)程具有傳統(tǒng)
    發(fā)表于 09-01 21:31

    知識(shí)分享 | 功能安全vsSOTIF:區(qū)別聯(lián)系

    )在確保出行安全方面發(fā)揮著至關(guān)重要的作用。那么,功能安全和SOTIF之間有什么區(qū)別?它們?cè)谀男┨匦陨嫌执嬖?b class='flag-5'>聯(lián)系?
    的頭像 發(fā)表于 08-06 13:53 ?1697次閱讀
    知識(shí)分享 | 功能安全vsSOTIF:<b class='flag-5'>區(qū)別</b>與<b class='flag-5'>聯(lián)系</b>

    什么是工作電壓?什么是耐電壓??jī)烧叩?b class='flag-5'>區(qū)別和聯(lián)系

    在對(duì)連接器進(jìn)行選型時(shí),電壓是一個(gè)關(guān)鍵考量因素。通常,連接器有工作電壓和耐電壓兩種電壓參數(shù),二者存在顯著區(qū)別。 那工作電壓和耐電壓是如何定義的呢? 工作電壓:指的是設(shè)備正常運(yùn)行過(guò)程中,允許持續(xù)施加
    的頭像 發(fā)表于 04-11 16:14 ?3964次閱讀

    進(jìn)程、線(xiàn)程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!

    各位程序員朋友(和假裝懂技術(shù)的同事):如果你在面試時(shí)被問(wèn)到:\"請(qǐng)用奶茶店類(lèi)比進(jìn)程、線(xiàn)程和協(xié)程\",而你回答:\"進(jìn)程是老板,線(xiàn)程是員工,協(xié)程是兼職...\"
    發(fā)表于 03-26 09:27

    請(qǐng)問(wèn)如何在Python中實(shí)現(xiàn)多線(xiàn)程與多進(jìn)程的協(xié)作?

    大家好!我最近在開(kāi)發(fā)一個(gè)Python項(xiàng)目時(shí),需要同時(shí)處理多個(gè)任務(wù),且每個(gè)任務(wù)需要不同的計(jì)算資源。我想通過(guò)多線(xiàn)程和多進(jìn)程的組合來(lái)實(shí)現(xiàn)并發(fā),但遇到了一些問(wèn)題。 具體來(lái)說(shuō),我有兩個(gè)任務(wù),一個(gè)是I/O密集型
    發(fā)表于 03-11 06:57