• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      嵌入式linUX多進程應用程序的設計與實現(xiàn)

      2017-07-10 07:00張錯玲孫寶法
      電腦知識與技術 2017年14期
      關鍵詞:線程程序設計進程

      張錯玲+孫寶法

      摘要:文章首先介紹了進程的概念,接著進行了多進程與多線程的比較,重點描述了多進程在linux系統(tǒng)下程序設計實現(xiàn)及實驗結果,最后進行總結并對未來課題的研究進行了展望。Keywords:多進程;多線程;庫函數(shù);linux;fork函數(shù)

      中圖分類號:TP316 文獻標識碼:A 文章編號:1009-3044(2017)14-0081-02

      1概述

      近年來,一些調查數(shù)據(jù)顯示,linux操作系統(tǒng)發(fā)展十分迅速,雖然在桌面平臺占有量不是很高,但在超級計算機領域linux操作系統(tǒng)占據(jù)89%左右的市場份額;在嵌入式產品領域,由于Linux自身的優(yōu)良特性,以55%的市場份額遙遙領先于其他嵌入式開發(fā)軟件平臺成為最適合嵌入式開發(fā)的操作系統(tǒng)。

      進行l(wèi)inux系統(tǒng)下的高級編程,我們必然要談到進程。所謂進程是指可并發(fā)執(zhí)行的、具有獨立功能的程序在一個數(shù)據(jù)集合上的運行過程,是操作系統(tǒng)進行資源分配和保護的基本單位。進程的概念是針對系統(tǒng)而不是針對用戶的,與普通程序相比,進程是一個動態(tài)實體,它因創(chuàng)建而產生,因調度而運行,因等待資源或事件而處于等待狀態(tài),因完成任務而被撤消,所以進程具有一定的生命周期。

      2多進程與多線程

      很多人在學習linux編程時存在認識上的誤區(qū),認為用多線程好、比多進程快、可靠性高,這是非常錯誤的。網絡上有人把多進程比喻成是立體交通系統(tǒng),雖然造價高,上坡下坡多耗點油,但是不堵車;多線程是平面交通系統(tǒng),造價低,但紅綠燈太多,老堵車。我認為這比喻是非常形象、恰當?shù)?。線程和進程有各自的優(yōu)缺點,具體表現(xiàn)如下:

      多進程:進程之間不共享數(shù)據(jù),沒有鎖問題,結構簡單,一個進程崩潰不影響全局,比較可靠;每個子進程都有2GB地址空間和相關資源,總體能夠達到的性能上限非常大;通過增加CPU,就可以容易擴充性能。

      多線程:它們彼此之間使用相同的地址空間,共享大部分數(shù)據(jù),啟動一個線程所花費的空間遠遠小于啟動一個進程所花費的空間,而且,線程間彼此切換所需的時間也遠遠小于進程間切換所需要的時間;線程間具有非常方便的通信機制。但線程受限于2GB地址空間;線程之間的同步和加鎖控制比較麻煩;一個線程的崩潰可能影響到整個程序的穩(wěn)定性。

      綜上表述可知,在我們進行編程的時候,要根據(jù)實際情況進行判斷,更適合使用哪種方法。

      3 Linux下多進程程序設計

      以上程序是用C語言編寫的linux下的多進程程序,下面來運行并觀察程序的運行結果。

      4多進程實驗結果

      在linux系統(tǒng)的命令行輸入以下命令:

      #gcc-0 process process.c

      #./process

      得到以下結果,如下圖1所示:

      保證程序./process在正常運行的前提下,在linux中新建一個標簽,使用ps aux命令進行觀察,發(fā)現(xiàn)窗口中有兩個進程同時在運行,如下圖2所示。因此,該程序實現(xiàn)了在linux下的多進程程序的模擬。

      5總結與展望

      本課題的研究較好的完成了linux下多進程程序設計的模擬,并得出了運行結果(說明:文章中的所有實驗數(shù)據(jù)有環(huán)境約束)。筆者認為對多線程在linux系統(tǒng)中編程的研究也具有一定的意義,故打算在多線程的研究上下一番功夫,并希望未來能取得一定的成果。

      猜你喜歡
      線程程序設計進程
      基于Visual Studio Code的C語言程序設計實踐教學探索
      債券市場對外開放的進程與展望
      從細節(jié)入手,談PLC程序設計技巧
      淺談linux多線程協(xié)作
      高職高專院校C語言程序設計教學改革探索
      PLC梯形圖程序設計技巧及應用
      社會進程中的新聞學探尋
      我國高等教育改革進程與反思
      基于上下文定界的Fork/Join并行性的并發(fā)程序可達性分析*
      Linux僵死進程的產生與避免
      象州县| 海兴县| 中牟县| 任丘市| 曲靖市| 彭泽县| 山阴县| 通渭县| 南城县| 历史| 灌阳县| 内黄县| 章丘市| 德令哈市| 宁远县| 额尔古纳市| 镇宁| 原平市| 武夷山市| 泰来县| 浠水县| 顺义区| 南江县| 印江| 元江| 泾阳县| 华容县| 兰坪| 虹口区| 青州市| 龙川县| 调兵山市| 界首市| 辰溪县| 贞丰县| 峨眉山市| 千阳县| 镇巴县| 疏附县| 东宁县| 丰都县|