• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 200, comments - 8, trackbacks - 0, articles - 0

            進程(英語:Process,中國大陸譯作進程,臺灣譯作行程) 是具有一定獨立功能的程序關于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。
            程序是一組指令的有序集合,它本身沒有任何運行的含義,只是一個靜態(tài)實體。進程是程序在某個數(shù)據(jù)集上的執(zhí)行,是一個動態(tài)實體(進程本身不會運行,是線程的容器。)。它因創(chuàng)建而產(chǎn)生,因調(diào)度而運行,因等待資源或事件而被處于等待狀態(tài),因完成任務而被撤消,反映了一個程序在一定的數(shù)據(jù)集上運行的全部動態(tài)過程。
            若干進程有可能與同一個程序相關系,且每個進程皆可以同步(循序)或不同步(平行)的方式獨立運行。進程為現(xiàn)今分時系統(tǒng)的基本運作單位。


            線程
            (英語:thread,臺灣譯為運行緒),操作系統(tǒng)技術中的術語,是操作系統(tǒng)能夠進行運算調(diào)度的最小單位。它被包涵在進程之中,一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務。在Unix System V及SunOS中也被稱為輕量進程(lightweight processes),但輕量進程更多指內(nèi)核線程(kernel thread),而把用戶線程(user thread)稱為線程。

            線程是獨立調(diào)度和分派的基本單位。線程可以操作系統(tǒng)內(nèi)核調(diào)度的內(nèi)核線程,如Win32 線程;由用戶進程自行調(diào)度的用戶線程,如Linux Portable Thread; 或者由內(nèi)核與用戶進程,如Windows 7的線程,進行混合調(diào)度。

            同一進程中的多條線程將共享該進程中的全部系統(tǒng)資源,如虛擬地址空間,文件描述符和信號處理等等。但同一進程中的多個線程有各自的調(diào)用棧(call stack),自己的寄存器環(huán)境(register context),自己的線程本地存儲(thread-local storage)。

            一個進程可以有很多線程,每條線程并行執(zhí)行不同的任務。

            在多核或多CPU,或支持Hyper-threading的CPU上使用多線程程序設計的好處是顯而易見,即提高了程序的執(zhí)行吞吐率。在單CPU單核的計算機上,使用多線程技術,也可以把進程中負責IO處理、人機交互而常備阻塞的部分與密集計算的部分分開來執(zhí)行,編寫專門的workhorse線程執(zhí)行密集計算,從而提高了程序的執(zhí)行效率。(摘自:http://zh.wikipedia.org/wiki/線程)


            進程是資源分配的最小單位,線程是CPU調(diào)度的最小單位。線程和進程的區(qū)別在于,子進程和父進程有不同的代碼和數(shù)據(jù)空間,而多個線程則共享數(shù)據(jù)空間,每個線程有自己的執(zhí)行堆棧和程序計數(shù)器為其執(zhí)行上下文.多線程主要是為了節(jié)約CPU時間,發(fā)揮利用,根據(jù)具體情況而定. 線程的運行中需要使用計算機的內(nèi)存資源和CPU。


            多進程: 進程是程序在計算機上的一次執(zhí)行活動。當你運行一個程序,你就啟動了一個進程。顯然,程序是死的(靜態(tài)的),進程是活的(動態(tài)的)。進程可以分為系統(tǒng)進程和用戶進程。凡是用于完成操作系統(tǒng)的各種功能的進程就是系統(tǒng)進程,它們就是處于運行狀態(tài)下的操作系統(tǒng)本身;所有由用戶啟動的進程都是用戶進程。進程是操作系統(tǒng)進行資源分配的單位。 進程又被細化為線程,也就是一個進程下有多個能獨立運行的更小的單位。在同一個時間里,同一個計算機系統(tǒng)中如果允許兩個或兩個以上的進程處于運行狀態(tài),這便是多任務。現(xiàn)代的操作系統(tǒng)幾乎都是多任務操作系統(tǒng),能夠同時管理多個進程的運行。 多任務帶來的好處是明顯的,比如你可以邊聽mp3邊上網(wǎng),與此同時甚至可以將下載的文檔打印出來,而這些任務之間絲毫不會相互干擾。那么這里就涉及到并行的問題,俗話說,一心不能二用,這對計算機也一樣,原則上一個CPU只能分配給一個進程,以便運行這個進程。我們通常使用的計算機中只有一個CPU,也就是說只有一顆心,要讓它一心多用,同時運行多個進程,就必須使用并發(fā)技術。實現(xiàn)并發(fā)技術相當復雜,最容易理解的是“時間片輪轉進程調(diào)度算法”,它的思想簡單介紹如下:在操作系統(tǒng)的管理下,所有正在運行的進程輪流使用CPU,每個進程允許占用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來 CPU是在輪流為多個進程服務,就好象所有的進程都在不間斷地運行一樣。但實際上在任何一個時間內(nèi)有且僅有一個進程占有CPU。 如果一臺計算機有多個CPU,情況就不同了,如果進程數(shù)小于CPU數(shù),則不同的進程可以分配給不同的CPU來運行,這樣,多個進程就是真正同時運行的,這便是并行。但如果進程數(shù)大于CPU數(shù),則仍然需要使用并發(fā)技術。 進行CPU分配是以線程為單位的,一個進程可能由多個線程組成,這時情況更加復雜,但簡單地說,有如下關系: 

            總線程數(shù)<= CPU數(shù)量:并行運行 

            總線程數(shù)> CPU數(shù)量:并發(fā)運行 

            并行運行的效率顯然高于并發(fā)運行,所以在多CPU的計算機中,多任務的效率比較高。但是,如果在多CPU計算機中只運行一個進程(線程),就不能發(fā)揮多CPU的優(yōu)勢。 這里涉及到多任務操作系統(tǒng)的問題,多任務操作系統(tǒng)(如Windows)的基本原理是:操作系統(tǒng)將CPU的時間片分配給多個線程,每個線程在操作系統(tǒng)指定的時間片內(nèi)完成(注意,這里的多個線程是分屬于不同進程的).操作系統(tǒng)不斷的從一個線程的執(zhí)行切換到另一個線程的執(zhí)行,如此往復,宏觀上看來,就好像是多個線程在一起執(zhí)行.由于這多個線程分屬于不同的進程,因此在我們看來,就好像是多個進程在同時執(zhí)行,這樣就實現(xiàn)了多任務.(摘自:http://zhidao.baidu.com/question/2601473)


            多線程
            :在計算機編程中,一個基本的概念就是同時對多個任務加以控制。許多程序設計問題都要求程序能夠停下手頭的工作,改為處理其他一些問題,再返回主進程。可以通過多種途徑達到這個目的。最開始的時候,那些掌握機器低級語言的程序員編寫一些“中斷服務例程”,主進程的暫停是通過硬件級的中斷實現(xiàn)的。盡管這是一種有用的方法,但編出的程序很難移植,由此造成了另一類的代價高昂問題。中斷對那些實時性很強的任務來說是很有必要的。但對于其他許多問題,只要求將問題劃分進入獨立運行的程序片斷中,使整個程序能更迅速地響應用戶的請求。  
            最開始,線程只是用于分配單個處理器的處理時間的一種工具。但假如操作系統(tǒng)本身支持多個處理器,那么每個線程都可分配給一個不同的處理器,真正進入“并行運算”狀態(tài)。從程序設計語言的角度看,多線程操作最有價值的特性之一就是程序員不必關心到底使用了多少個處理器。程序在邏輯意義上被分割為數(shù)個線程;假如機器本身安裝了多個處理器,那么程序會運行得更快,毋需作出任何特殊的調(diào)校。根據(jù)前面的論述,大家可能感覺線程處理非常簡單。但必須注意一個問題:共享資源!如果有多個線程同時運行,而且它們試圖訪問相同的資源,就會遇到一個問題。舉個例子來說,兩個線程不能將信息同時發(fā)送給一臺打印機。為解決這個問題,對那些可共享的資源來說(比如打印機),它們在使用期間必須進入鎖定狀態(tài)。所以一個線程可將資源鎖定,在完成了它的任務后,再解開(釋放)這個鎖,使其他線程可以接著使用同樣的資源。 
            多線程是為了同步完成多項任務,不是為了提高運行效率,而是為了提高資源使用效率來提高系統(tǒng)的效率。線程是在同一時間需要完成多項任務的時候?qū)崿F(xiàn)的。
            一個采用了多線程技術的應用程序可以更好地利用系統(tǒng)資源。其主要優(yōu)勢在于充分利用了CPU的空閑時間片,可以用盡可能少的時間來對用戶的要求做出響應,使得進程的整體運行效率得到較大提高,同時增強了應用程序的靈活性。更為重要的是,由于同一進程的所有線程是共享同一內(nèi)存,所以不需要特殊的數(shù)據(jù)傳送機制,不需要建立共享存儲區(qū)或共享文件,從而使得不同任務之間的協(xié)調(diào)操作與運行、數(shù)據(jù)的交互、資源的分配等問題更加易于解決(摘自:http://baike.baidu.com/view/65706.htm)
            通常由操作系統(tǒng)負責多個線程的調(diào)度和執(zhí)行。


            進程間通信IPCInter-Process Communication),指至少兩個進程線程間傳送數(shù)據(jù)或信號的一些技術或方法。進程是計算機系統(tǒng)分配資源的最小單位。每個進程都有自己的一部分獨立的系統(tǒng)資源,彼此是隔離的。為了能使不同的進程互相訪問資源并進行協(xié)調(diào)工作,才有了進程間通信。這些進程可以運行在同一計算機上或網(wǎng)絡連接的不同計算機上。

            進程間通信技術包括消息傳遞、同步、共享內(nèi)存和遠程過程調(diào)用。IPC是一種標準的Unix通信機制。

            使用IPC 的理由:

            • 信息共享
            • 加速;
            • 模塊化;
            • 方便以及
            • 私有權分離.

            主要的 IPC 方法

            方法

            提供方(操作系統(tǒng)或其他環(huán)境)

            文件

            多數(shù)操作系統(tǒng)

            信號

            多數(shù)操作系統(tǒng)

            Socket

            多數(shù)操作系統(tǒng)

            消息隊列(en:Message queue)

            多數(shù)操作系統(tǒng)

            管道(en:Pipe)

            所有的 POSIX systems, Windows.

            具名管道(en:Named Pipe)

            所有的 POSIX 系統(tǒng), Windows.

            信號量(en:Semaphore)

            所有的 POSIX 系統(tǒng), Windows.

            共享內(nèi)存

            所有的 POSIX 系統(tǒng), Windows.

            Message passing(en:Message passing)
            (
            不共享)

            用于 MPI規(guī)范,Java RMI, CORBA, MSMQ, MailSlot以及其他.

            Memory-mapped file(en:Memory-mapped file)

            所有的 POSIX 系統(tǒng), Windows.

            (摘自:http://zh.wikipedia.org/wiki/行程間通訊) 

            轉自:http://blog.chinaunix.net/uid-20556054-id-3060696.html
            久久九九亚洲精品| 亚洲国产小视频精品久久久三级| 久久国产免费直播| 久久久亚洲精品蜜桃臀| 久久一区二区三区免费| 久久人人爽人人爽人人av东京热| 免费精品国产日韩热久久| 亚洲国产另类久久久精品| av国内精品久久久久影院| 久久久久亚洲AV成人网人人网站| 久久综合亚洲色HEZYO国产| 97久久国产露脸精品国产| 久久国产精品一区二区| 伊人久久五月天| 久久不射电影网| 久久国语露脸国产精品电影 | jizzjizz国产精品久久| 国产综合免费精品久久久| 久久久久久亚洲AV无码专区| www亚洲欲色成人久久精品| 中文字幕日本人妻久久久免费| 久久免费高清视频| 久久亚洲精品中文字幕| 亚洲中文字幕伊人久久无码| 久久天天躁狠狠躁夜夜网站 | 亚洲伊人久久综合中文成人网| 久久精品天天中文字幕人妻 | 国内精品久久久久久麻豆| 久久综合香蕉国产蜜臀AV| 思思久久99热免费精品6| 久久99国产精品久久99| 一本色综合网久久| 久久亚洲精品无码aⅴ大香| 久久精品国产一区二区三区 | 久久一本综合| 久久国产成人| 办公室久久精品| 国产精品无码久久四虎| 亚洲国产精品久久66| 国产精品一区二区久久| 99久久人妻无码精品系列蜜桃 |