操作系統

http://blog.chinaunix.net/uid-25132162-id-361291.html

線程:進程的一個實體。new,runnable,blocked,waiting,timed waiting,terminated

進程:指程序執行時的一個實例。

進程——資源分配的最小單位,線程——程序執行的最小單位。

 

對比:進程擁有獨立的堆棧空間和數據段,新建和銷燬開銷大,線程共享數據段,進程直接相互獨立,互不影響,線程掛掉一個代表該進程也死掉,一個進程有一個以上線程。

線程通信快,進程需要通過管道,消息隊列等通信

線程又稱爲輕量級進程,進程有進程控制塊,線程有線程控制塊;

 

大量銷燬創建,大量計算頻繁切換,多核心,並行c/s架構,速度快用線程。

 

進程的終止
       1.正常退出(自願)    程序完成任務
       2.出錯退出(自願)    發現了錯誤,如發現文件不存在
       3.嚴重錯誤(非自願)   通常由程序中錯誤導致,非法指令,不存在內存等
       4.被其他進程殺死(非自願)    

進程的狀態   就緒態   阻塞態  運行態

進程的實現
      OS維護着一張表格,進程表。每個進程佔用一個進程表項  包含了 進程狀態信息,程序計數器,堆棧指針,
  內存分配情況,所打開文件狀態,帳號和調度信息,以及狀態轉換必須保存的信息
  
UT   線程切換快,自定義調度算法靈活,缺點是不能直接使用系統調用,一個線程開始運行,該進程中其他線程就不能運行
KLP 創建撤銷線程開銷大

       批處理系統的調度
         FCFS
         SJF(short job first)    最短響應時間
         SRTN(short remain time next)
       交互式系統調度
           輪轉調度(RR round robin)
           優先級調度
         多級隊列(運行一次,優先級降低,運行頻次降低)
         最短進程優先
         保證調度
         彩票調度
         公平分享調度
       實時系統的調度  分爲硬實時(必須滿足絕對的截止時間)與軟實時

死鎖
    發生的必要條件
      1.互斥條件。每個資源要麼已經分配給了一個進程,要麼就是可用的 
      2.佔有和等待條件。已經得到了某個資源的進程可以再請求新的資源
      3.不可搶佔條件。
      4.環路等待條件。系統中一定有兩個或以上的進程組成的一條環路,該環路中每個進程在等待下一個進程佔用的資源
    
    鴕鳥算法,若死鎖發生概率極小。
      
    從死鎖中恢復
        1.搶佔
        2.回退
        3.殺死進程
    避免死鎖
        1.資源軌跡圖
        2.安全狀態和不安全狀態
        3.單個資源的銀行家算法
        4.多個資源的銀行家算法

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章