国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

操作系統(tǒng)中的進(jìn)程與線(xiàn)程

開(kāi)發(fā) 開(kāi)發(fā)工具
在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程擁有獨(dú)立的內(nèi)存地址空間和一個(gè)用于控制的線(xiàn)程。但是,現(xiàn)在的情況更多的情況下要求在同一地址空間下?lián)碛卸鄠€(gè)線(xiàn)程并發(fā)執(zhí)行。因此線(xiàn)程被引入操作系統(tǒng)。

為什么需要線(xiàn)程?

如果非要說(shuō)是為什么需要線(xiàn)程,還不如說(shuō)為什么需要進(jìn)程中還有其它進(jìn)程。這些進(jìn)程中包含的其它迷你進(jìn)程就是線(xiàn)程。

線(xiàn)程之所以說(shuō)是迷你進(jìn)程,是因?yàn)榫€(xiàn)程和進(jìn)程有很多相似之處,比如線(xiàn)程和進(jìn)程的狀態(tài)都有運(yùn)行,就緒,阻塞狀態(tài)。這幾種狀態(tài)理解起來(lái)非常簡(jiǎn)單,當(dāng)進(jìn)程所需的資源沒(méi)有到位時(shí)會(huì)是阻塞狀態(tài),當(dāng)進(jìn)程所需的資源到位時(shí)但CPU沒(méi)有到位時(shí)是就緒狀態(tài),當(dāng)進(jìn)程既有所需的資源,又有CPU時(shí),就為運(yùn)行狀態(tài)。

下面我們來(lái)看一個(gè)具體的例子:

就拿我寫(xiě)博客的LiveWriter來(lái)說(shuō),LiveWriter需要監(jiān)聽(tīng)我打字輸入的狀態(tài),還需要每隔5分鐘對(duì)草稿進(jìn)行自動(dòng)保存。假設(shè)如果這個(gè)進(jìn)程只有一個(gè)線(xiàn)程的話(huà),那么當(dāng)對(duì)草稿進(jìn)行保存時(shí),因?yàn)榇藭r(shí)需要訪問(wèn)硬盤(pán),而訪問(wèn)硬盤(pán)的時(shí)間線(xiàn)程是阻塞狀態(tài)的,這時(shí)我的任何輸入都會(huì)沒(méi)有響應(yīng),這種用戶(hù)體驗(yàn)是無(wú)法接受的,或許我們可以通過(guò)鍵盤(pán)或者鼠標(biāo)的輸入去中斷保存草稿的過(guò)程,但這種方案也并不討好。而使用多線(xiàn)程,每個(gè)線(xiàn)程僅僅需要處理自己那一部分應(yīng)該完成的任務(wù),而不用去關(guān)心和其它線(xiàn)程的沖突。因此簡(jiǎn)化了編程模型。如圖1所示。

1

圖1.兩條線(xiàn)程滿(mǎn)足各自的功能

更具體的說(shuō),線(xiàn)程的好處如下:

1.在很多程序中,需要多個(gè)線(xiàn)程互相同步或互斥的并行完成工作,而將這些工作分解到不同的線(xiàn)程中去無(wú)疑簡(jiǎn)化了編程模型。

2.因?yàn)榫€(xiàn)程相比進(jìn)程來(lái)說(shuō),更加的輕量,所以線(xiàn)程的創(chuàng)建和銷(xiāo)毀的代價(jià)變得更小。

3.線(xiàn)程提高了性能,雖然線(xiàn)程宏觀上是并行的,但微觀上卻是串行。從CPU角度線(xiàn)程并無(wú)法提升性能,但如果某些線(xiàn)程涉及到等待資源(比如IO,等待輸入)時(shí),多線(xiàn)程允許進(jìn)程中的其它線(xiàn)程繼續(xù)執(zhí)行而不是整個(gè)進(jìn)程被阻塞,因此提高了CPU的利用率,從這個(gè)角度會(huì)提升性能。

4.在多CPU或多核的情況下,使用線(xiàn)程不僅僅在宏觀上并行,在微觀上也是并行的。

這里值得注意的是,上面的兩個(gè)線(xiàn)程如果改成兩個(gè)進(jìn)程,那么達(dá)不到所要的效果,因?yàn)檫M(jìn)程有自己獨(dú)立的內(nèi)存地址空間,而線(xiàn)程共享進(jìn)程的內(nèi)存地址空間。

經(jīng)典線(xiàn)程模型

另一個(gè)看進(jìn)程和線(xiàn)程的角度是進(jìn)程模型基于兩類(lèi)不同的概念:資源的組織和執(zhí)行。在過(guò)去沒(méi)有線(xiàn)程的操作系統(tǒng)中,資源的組織和執(zhí)行都是由進(jìn)程完成的。但區(qū)分這兩者很多時(shí)候需要加以區(qū)分,這也是為什么需要引入線(xiàn)程。

進(jìn)程是用于組織資源的單位,進(jìn)程將相關(guān)的資源組織在一起,這些資源包括:內(nèi)存地址空間,程序,數(shù)據(jù)等,將這些以進(jìn)程的形式組織起來(lái)可以使得操作系統(tǒng)管理這些資源更為容易。

而線(xiàn)程,是每一個(gè)進(jìn)程中執(zhí)行的一個(gè)條線(xiàn)。線(xiàn)程雖然共享進(jìn)程中的大多數(shù)資源,但線(xiàn)程也需要自己的一些資源,比如:用于標(biāo)識(shí)下一條執(zhí)行指令的程序計(jì)數(shù)器,一些容納局部變量的寄存器,以及用于表示執(zhí)行的歷史的棧。

總而言之:進(jìn)程是組織資源的最小單位,而線(xiàn)程是安排CPU執(zhí)行的最小單位。

其實(shí)在一個(gè)進(jìn)程中多個(gè)線(xiàn)程并行和在操作系統(tǒng)中多個(gè)進(jìn)程并行非常類(lèi)似,只是線(xiàn)程共享的是地址空間,而進(jìn)程共享的是物理內(nèi)存,打印機(jī),鍵盤(pán)等資源……

每一個(gè)進(jìn)程和線(xiàn)程所獨(dú)自占有的資源如表1所示。

進(jìn)程占有的資源 線(xiàn)程占有的資源
地址空間
全局變量
打開(kāi)的文件
子進(jìn)程
信號(hào)量
賬戶(hù)信息

寄存器
狀態(tài)
程序計(jì)數(shù)器

表1.進(jìn)程和線(xiàn)程所獨(dú)占的資源

其中,線(xiàn)程可以共享進(jìn)程獨(dú)占的資源。

我們常用的術(shù)語(yǔ)“多線(xiàn)程”一般指的是在同一個(gè)進(jìn)程中多個(gè)線(xiàn)程的并發(fā)執(zhí)行。如圖2所示。

2

圖2.沒(méi)有多線(xiàn)程的系統(tǒng)一個(gè)進(jìn)程只能由一個(gè)線(xiàn)程

在多線(xiàn)程的進(jìn)程中,每個(gè)線(xiàn)程輪流使用CPU,因此實(shí)際上線(xiàn)程并不是并行的,但從宏觀上看,是并行的。

在多線(xiàn)程模型中,每一個(gè)進(jìn)程初始創(chuàng)建時(shí)只有一個(gè)線(xiàn)程。這個(gè)線(xiàn)程可以通過(guò)調(diào)用系統(tǒng)的庫(kù)函數(shù)去創(chuàng)建其它線(xiàn)程。線(xiàn)程創(chuàng)建的線(xiàn)程并必須要為其指定地址,因?yàn)樾碌木€(xiàn)程自動(dòng)在創(chuàng)建它的地址空間內(nèi)工作。雖然一個(gè)線(xiàn)程可以創(chuàng)建另一個(gè)線(xiàn)程,但通常來(lái)講,線(xiàn)程之間是并列的,并不存在層級(jí)關(guān)系。

當(dāng)一個(gè)進(jìn)程完成其工作后,可以通過(guò)調(diào)用系統(tǒng)庫(kù)函數(shù)進(jìn)行銷(xiāo)毀。

操作系統(tǒng)實(shí)現(xiàn)線(xiàn)程的幾種模式

在操作系統(tǒng)中,線(xiàn)程可以實(shí)現(xiàn)在用戶(hù)模式下,也可以實(shí)現(xiàn)在內(nèi)核模式下,也可以?xún)烧呓Y(jié)合實(shí)現(xiàn)。

線(xiàn)程實(shí)現(xiàn)在用戶(hù)空間下

當(dāng)線(xiàn)程在用戶(hù)空間下實(shí)現(xiàn)時(shí),操作系統(tǒng)對(duì)線(xiàn)程的存在一無(wú)所知,操作系統(tǒng)只能看到進(jìn)程,而不能看到線(xiàn)程。所有的線(xiàn)程都是在用戶(hù)空間實(shí)現(xiàn)。在操作系統(tǒng)看來(lái),每一個(gè)進(jìn)程只有一個(gè)線(xiàn)程。過(guò)去的操作系統(tǒng)大部分是這種實(shí)現(xiàn)方式,這種方式的好處之一就是即使操作系統(tǒng)不支持線(xiàn)程,也可以通過(guò)庫(kù)函數(shù)來(lái)支持線(xiàn)程。

在這種模式下,每一個(gè)進(jìn)程中都維護(hù)著一個(gè)線(xiàn)程表來(lái)追蹤本進(jìn)程中的線(xiàn)程,這個(gè)表中包含表1中每個(gè)線(xiàn)程獨(dú)占的資源,比如棧,寄存器,狀態(tài)等,如圖3所示。

3

圖3.在用戶(hù)空間中實(shí)現(xiàn)線(xiàn)程

這種模式當(dāng)一個(gè)線(xiàn)程完成了其工作或等待需要被阻塞時(shí),其調(diào)用系統(tǒng)過(guò)程阻塞自身,然后將CPU交由其它線(xiàn)程。

這種的模式的好處,首先,是在用戶(hù)空間下進(jìn)行進(jìn)程切換的速度要遠(yuǎn)快于在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn)。其次,在用戶(hù)空間下實(shí)現(xiàn)線(xiàn)程使得程序員可以實(shí)現(xiàn)自己的線(xiàn)程調(diào)度算法。比如進(jìn)程可以實(shí)現(xiàn)垃圾回收器來(lái)回收線(xiàn)程。還有,當(dāng)線(xiàn)程數(shù)量過(guò)多時(shí),由于在用戶(hù)空間維護(hù)線(xiàn)程表,不會(huì)占用大量的操作系統(tǒng)空間。

有好處就有壞處,這種模式最致命的缺點(diǎn)也是由于操作系統(tǒng)不知道線(xiàn)程的存在,因此當(dāng)一個(gè)進(jìn)程中的某一個(gè)線(xiàn)程進(jìn)行系統(tǒng)調(diào)用時(shí),比如缺頁(yè)中斷而導(dǎo)致線(xiàn)程阻塞,此時(shí)操作系統(tǒng)會(huì)阻塞整個(gè)進(jìn)程,即使這個(gè)進(jìn)程中其它線(xiàn)程還在工作。還有一個(gè)問(wèn)題是假如進(jìn)程中一個(gè)線(xiàn)程長(zhǎng)時(shí)間不釋放CPU,因?yàn)橛脩?hù)空間并沒(méi)有時(shí)鐘中斷機(jī)制,會(huì)導(dǎo)致此進(jìn)程中的其它線(xiàn)程得不到CPU而持續(xù)等待。

線(xiàn)程實(shí)現(xiàn)在操作系統(tǒng)內(nèi)核中

在這種模式下,操作系統(tǒng)知道線(xiàn)程的存在。此時(shí)線(xiàn)程表存在操作系統(tǒng)內(nèi)核中,如圖4所示。

4

圖4.線(xiàn)程在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn)

在這種模式下,所有可能阻塞線(xiàn)程的調(diào)用都以系統(tǒng)調(diào)用(System Call)的方式實(shí)現(xiàn),相比在用戶(hù)空間下實(shí)現(xiàn)線(xiàn)程造成阻塞的運(yùn)行時(shí)調(diào)用(System runtime call)成本會(huì)高出很多。當(dāng)一個(gè)線(xiàn)程阻塞時(shí),操作系統(tǒng)可以選擇將CPU交給同一進(jìn)程中的其它線(xiàn)程,或是其它進(jìn)程中的線(xiàn)程,而在用戶(hù)空間下實(shí)現(xiàn)線(xiàn)程時(shí),調(diào)度只能在本進(jìn)程中執(zhí)行,直到操作系統(tǒng)剝奪了當(dāng)前進(jìn)程的CPU。

因?yàn)樵趦?nèi)核模式下實(shí)現(xiàn)進(jìn)程的成本更高,一個(gè)比較好的做法是另線(xiàn)程回收利用,當(dāng)一個(gè)線(xiàn)程需要被銷(xiāo)毀時(shí),僅僅是修改標(biāo)記位,而不是直接銷(xiāo)毀其內(nèi)容,當(dāng)一個(gè)新的線(xiàn)程需要被創(chuàng)建時(shí),也同樣修改被“銷(xiāo)毀”的線(xiàn)程其標(biāo)記位即可。

這種模式下同樣還是有一些弊端,比如接收系統(tǒng)信號(hào)的單位是進(jìn)程,而不是線(xiàn)程,那么由進(jìn)程中的哪一個(gè)線(xiàn)程接收系統(tǒng)信號(hào)呢?如果使用了表來(lái)記錄,那么多個(gè)線(xiàn)程注冊(cè)則通過(guò)哪一個(gè)線(xiàn)程處理系統(tǒng)信號(hào)?

混合模式

還有一種實(shí)現(xiàn)方式是將上面兩種模式進(jìn)行混合,用戶(hù)空間中進(jìn)程管理自己的線(xiàn)程,操作系統(tǒng)內(nèi)核中有一部分內(nèi)核級(jí)別的線(xiàn)程,如圖5所示。

5

圖5.混合模式

在這種模式下,操作系統(tǒng)只能看到內(nèi)核線(xiàn)程。用戶(hù)空間線(xiàn)程基于操作系統(tǒng)線(xiàn)程運(yùn)行。因此,程序員可以決定使用多少用戶(hù)空間線(xiàn)程以及操作系統(tǒng)線(xiàn)程,這無(wú)疑具有更大的靈活性。而用戶(hù)空間線(xiàn)程的調(diào)度和前面所說(shuō)的在用戶(hù)空間下執(zhí)行實(shí)現(xiàn)線(xiàn)程是一樣的,同樣可以自定義實(shí)現(xiàn)。

原文鏈接:http://www.cnblogs.com/CareySon/archive/2012/05/04/ProcessAndThread.html

【編輯推薦】
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2010-04-22 13:56:21

Aix操作系統(tǒng)

2021-08-12 14:49:44

操作系統(tǒng)線(xiàn)程進(jìn)程

2019-06-26 09:10:07

操作系統(tǒng)調(diào)度算法

2010-04-14 13:59:45

Unix操作系統(tǒng)

2010-04-16 18:19:32

Unix操作系統(tǒng)

2023-03-13 14:08:00

系統(tǒng)抽象操作系統(tǒng)大型系統(tǒng)

2010-04-14 16:45:15

Unix操作系統(tǒng)

2010-04-30 17:27:59

Unix操作系統(tǒng)

2010-04-09 17:25:13

Unix操作系統(tǒng)

2010-04-19 16:47:40

Unix操作系統(tǒng)

2010-04-14 13:20:29

Unix操作系統(tǒng)

2010-04-19 09:08:20

Unix操作系統(tǒng)

2010-04-14 15:58:25

Unix操作系統(tǒng)

2025-09-05 03:11:00

2021-04-19 09:27:03

Java線(xiàn)程操作系統(tǒng)

2009-12-15 18:27:51

Linux操作系統(tǒng)

2025-04-03 01:45:00

2010-04-14 14:52:14

Unix操作系統(tǒng)

2020-03-10 19:34:08

CPU虛擬化調(diào)度

2025-05-12 09:12:59

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

韩国精品主播一区二区在线观看| 精品福利视频导航大全| 免费一区二区三区四区| 国产精品乱码久久久久久| 国产精品久久久久久一区二区| 日韩私人影院| 久久99精品久久久久久动态图 | 国产女同性恋一区二区| 91av在线不卡| 91精彩视频在线观看| 国产激情视频一区二区在线观看 | avtt天堂资源网站| 亚洲先锋影音| 精品乱码亚洲一区二区不卡| 欧美黄色一级片视频| 欧美成人日本| 一区二区三区在线播放欧美| 超碰在线一区二区三区| 久久99热这里只有精品| 日本高清久久天堂| 亚洲欧洲高清| 精品久久久久久久久久久久| 成人黄色片免费| 国产欧美日韩在线一区二区| 日韩精品免费电影| 一个人看的www一区| 丁香婷婷综合激情五月色| 国产欧美久久久久久| 国产精品25p| 天天综合天天综合色| 免费在线激情视频| 日韩电影在线一区二区三区| 国产精品久久久久久久午夜| 亚洲第一二三四区| 欧美午夜片在线观看| 日本超碰在线观看| 国产麻豆9l精品三级站| 国产激情一区二区三区在线观看| 9999在线精品视频| 亚洲电影在线观看| 番号集在线观看| 国产精品不卡一区二区三区| av 日韩 人妻 黑人 综合 无码| 黄色成人91| 538国产精品一区二区在线| 性欧美freehd18| 欧美一区二区黄| 中文有码在线观看| 欧美国产1区2区| 亚洲AV无码成人精品一区| 欧美日韩精品免费观看视频完整| 国产成人高潮免费观看精品| 日韩国产在线不卡视频| 国产午夜精品视频免费不卡69堂| 人人超在线公开视频| 欧美日韩小视频| 中文字幕在线观看第一页| 欧美激情自拍偷拍| 日韩av资源在线| 成熟亚洲日本毛茸茸凸凹| 国产又爽又黄ai换脸| 日韩高清国产一区在线| 欧美凹凸一区二区三区视频| 国户精品久久久久久久久久久不卡| 欧美在线国产精品| 国产66精品| 欧美夫妻性视频| 成人在线日韩| 久久久999国产精品| 国产精品一区二区免费福利视频| 日韩精品999| 17videosex性欧美| 亚洲精品福利资源站| bbw在线视频| 欧美成人女星排名| 久草在线资源站手机版| 亚洲黄色在线看| 性xxxxfreexxxxx欧美丶| 亚洲人成电影网站色| 日本精品在线中文字幕| 丝袜一区二区三区| y111111国产精品久久久| 午夜精品久久久久久久久久久久久 | 精品久久久久久中文字幕| 国产不卡视频| 久久久久久久久久久久久久久99 | 久草在在线视频| 日韩欧美在线免费| 久久一级大片| 豆国产97在线| 中文字幕在线观看不卡视频| 亚洲影院污污.| 第一视频专区在线| 亚洲一区二区三区四区五区黄| 99免费视频观看| 国产成人免费xxxxxxxx| 久久久www成人免费精品| 日本不卡1区2区3区| 蜜臀av性久久久久蜜臀av麻豆| 中文字幕日韩av电影| 偷窥自拍亚洲色图| 福利一区二区在线| 欧美猛交ⅹxxx乱大交视频| 天堂在线中文资源| 国产九九视频一区二区三区| 久久久精品影视| 国产日韩精品在线| 色琪琪原网站亚洲香蕉| 在线成人av观看| 亚洲色图15p| 国产亚洲人成a在线v网站| 欧美激情一区二区三级高清视频| 日韩av系列| 粉嫩av四季av绯色av第一区| 极品美女销魂一区二区三区| 欧美黑人又粗又大又爽免费| 亚洲国产精品久久久男人的天堂| av色综合久久天堂av色综合在| 日韩在线免费高清视频| 999久久久91| 在线观看国产一区| 中文字幕五月欧美| 午夜羞羞小视频在线观看| 久久久日本电影| 亚洲黄色av| 国产成人永久免费视频| 亚洲国产三级在线| 末成年女av片一区二区下载| 日韩av免费网站| 国产精品毛片在线| 久热精品在线播放| 91麻豆精品国产91久久久 | 网曝91综合精品门事件在线| 91视频8mav| 韩国av一区二区三区在线观看| 四虎最新地址发布| 欧美一区二区美女| 国产成人tv| 免费毛片一区二区三区久久久| 久久综合色之久久综合| 婷婷五月在线视频| 91精品国产91久久| 寂寞少妇一区二区三区| 色播在线观看| 在线观看国产精品日韩av| 欧美成人首页| 能看的毛片网站| 日韩午夜激情电影| 久久人人99| 天堂…中文在线最新版在线| 91精品一区二区三区久久久久久| 美国成人xxx| 久久国产精品99国产| 国产女大学生av| 欧美日韩免费视频| 国产日产精品一区二区三区四区的观看方式 | 久久久久免费看黄a片app| 精品久久久久久久久久久| 亚洲国产伊人| 美女亚洲精品| 夜夜亚洲天天久久| 免费精品一区| 欧美一区二区福利| 懂色av一区二区三区| 国产suv精品一区二区四区视频| 一本二本三本亚洲码| 欧美性高清videossexo| 国产一区不卡| 激情网站五月天| 日韩成人高清在线| 久久成人免费| 激情在线视频| 国产精品美女呻吟| 亚洲精品中文在线影院| 99久久人爽人人添人人澡| 国产极品尤物在线| 亚洲欧洲日产国产网站| 久久精品国产精品亚洲精品| 国产婷婷视频在线 | 色婷五月综激情亚洲综合| 日韩av在线免费| 影音先锋日韩资源| 男女污污视频在线观看| 国产精品一区二区三区在线播放| 国产精品你懂的在线| silk一区二区三区精品视频| 久久精品视频16| 国产亚洲欧美日韩精品| 国产伦精一区二区三区| 综合日韩av| 一区二区三区四区五区精品 | 亚欧黄色av| 欧美国产高跟鞋裸体秀xxxhd| 国产999精品久久久久久绿帽| www.超碰在线| 日本在线播放一区| 日韩欧美另类在线| 免费在线观看日韩欧美| 99riav视频在线观看| 91制片厂免费观看|