音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

請教Linux下當前進程和當前程序的問題!

作者:lelee007 欄目:驅動編程
請教Linux下當前進程和當前程序的問題!
進程和程序的關系到底是怎樣的?(我看了很多書了了,都沒找到我能理解并接受的講解)
當前程序和當前進程的關系又是怎樣的?
是不是當前進程就是在當前程序執(zhí)行之前為當前程序限定執(zhí)行環(huán)境(CPU寄存器,以及各種硬件環(huán)境)?
如果是這樣,是不是說程序在執(zhí)行時,如果需要新任務的話,在創(chuàng)建了新進程并修改新進程屬性之后,當前程序就要換一個執(zhí)行環(huán)境了?

2樓: >>參與討論
lelee007
郁悶啊,難道高手對這樣的問題很不屑嗎?
這個問題很弱嗎?

我真的沒找到能讓我理解的講解,所以才來求助.

希望能有人把這個問題講的透徹一些.

3樓: >>參與討論
lelee007
郁悶
昏迷啊,昨天在一個群里有個高手說可以這樣理解,不過我還是沒找到權威點的描述.

4樓: >>參與討論
kyokyxxj
去查看LINUX典籍
去查看LINUX典籍

5樓: >>參與討論
yuyixuanta
兩種方法
兩種方法:
1.讀一下內核代碼
2.查閱任何一本經典的linux書籍
你很快就會明白
祝你好運

6樓: >>參與討論
computer00
進程是動態(tài)的,程序是靜態(tài)的。
當前進程指正在執(zhí)行的進程。而進程是程序的一次執(zhí)行。

7樓: >>參與討論
lelee007
謝謝樓上所有大俠
當程序被系統調用到內存以后,系統會給程序分配一定的資源(內存,設備等等)然后進行一系列的復雜操作,使程序變成進程以供系統調用.進程是為程序服務的,而程序是為了用戶服務的.
之前對這個不是很理解主要是沒找到fork和exec函數族的用法,現在基本了解,這個問題現在已經不是我繼續(xù)看書的障礙了.謝謝樓上所有大俠.

8樓: >>參與討論
fineamy
程序,進程,線程
關于進程,程序,上面有幾位已經說到了,再補充一下.
1.單進程,單線程:
設想這樣一個情景,只有一個CPU(比如大家熟悉的單片機),要運行一個程序,如果僅僅只是這個程序占有這個CPU,那么很好想象,從這個程序開使運行,到程序結束運行,我們可以認為這是一個進程.事實上,現在大多單片機編程者都是使用這種方式進行單片機編程的.
2.多進程,單線程:
還是上面的情景,但是我們可以想象得到有這樣一種情況,這個程序在運行過程中總是要依賴(等待)一定的條件才能繼續(xù)運行.比如一個鍵盤的響應程序,其中很多時間都是在等待用戶的按鍵動作.這個時間顯然CPU是在做"無用功"的(它只是在空閑的等待著對它來說千年一遇的用戶的動作),那么這個時間CPU完全可以暫時將這個等待扔在一邊,轉而可以利用這些時間去處理一些其它的事情.比如此時它還可以"抽空"來運行其它程序,比如顯示程序....這樣的處理方式顯然是與前一種不同的,它帶來了一種新的技術,即多進程設計.進程這個詞來自"PROCESS",從詞意本身就可看出其有"過程",進行等之意.
3.多進程,多線程:
類似的,現在假設我們的程序運行平臺是多處理器(SMP)的(多核,或INTEL的超線程均類似).此時,我們當然可以按照"多進程,單線程"的方式讓程序在這樣的平臺上運行,雖然有點浪費.但是,你可以想象一下,當一個程序在一個CPU上運行時,是不是其它的CPU我們也可以讓它加入進來,別忘了,我們可不止一個CPU哦,為什么讓它空閑在那呢!于是,我們想象者本來在一個進程中的任務,我們現在將其分成了多個子任務,讓每個空閑的CPU去執(zhí)行若干不同的子任務,當這些子任務完成后,整個任務也就完成了.于是,這又帶來了多線程技術.線程這個詞來自"THREAD",我不知道線程這個詞翻譯的好不好,反正也不明其意."THREAD"英文有"遍布,到處發(fā)生"之意,正說明了其線程的并發(fā)性.

無論進程,還是線程,其最終目的就是最大限度的提高程序的并行性(或著系統的吞吐量).對"單進程,單線程",一段時間段內,每個時刻都只有一個程序在運行,對"多進程,單線程",盡管在每個時刻,只有一個程序在運行,但是在一段時間段內,卻有多個程序在運行,對"多進程,多線程",對每個時刻,每個時間段,都可能有多個程序在運行.它們的并行性程度大小為"單進程,單線程"<"多進程,單線程"<"多進程,多線程".

進程,線程技術如何實現,這些都離不了調度,而調度的可操作性,就需要將進程,線程抽象為可操作的數據結構,比如(進程描述符),而幸運的是這些進程,線程并非不可捉摸,在一定的時間,它都唯一的對應著一些"資源",比如(寄存器內容等等),這樣對進程的操作(掛起,睡眠等)就轉而成了對這些數據結構的操作了.
另外,linux中似乎并沒有線程,而是全做進程看待。正在學習中。。。
以上純屬個人觀點,難免有誤,僅供參考。

* - 本貼最后修改時間:2006-11-10 14:25:36 修改者:fineamy

9樓: >>參與討論
lelee007
樓上的,不知道你進程調度和切換看的怎么樣了
還希望不吝賜教

10樓: >>參與討論
wwwshenjie
不錯不錯
不錯不錯,解釋的夠詳細

11樓: >>參與討論
computer00
Linux中當然有線程了。
由于線程是在進程中的,而進程是擁有資源的基本單位,在同一個進程中的線程共享大部分資源,
在做線程切換時,只需要保護少量寄存器內容,因而線程切換時系統開銷比進程切換時開銷要小得多。
創(chuàng)建線程時也是如此,開銷比創(chuàng)建進程要小。

12樓: >>參與討論
xlt169
大家一起進步啊
fineamy 夠熱心,computer00夠精辟!

13樓: >>參與討論
lelee007
受益非淺
謝謝樓上各位大哥

14樓: >>參與討論
471908737
程序,進程,線程
謝謝 各位 大哥 帖子收下了

參與討論
昵稱:
討論內容:
 
 
相關帖子
請教大俠在linux上有類似VB.VC這樣的軟件開發(fā)環(huán)境嗎?
搞掂了,裝tftp-0.42-3.1.i386.rpm
新手請教~~~
linux-2.6.11.8的config.in怎么找不到呢
驅動程序的執(zhí)行問題
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號