進程管理——進程與線程(二)


  1. 引入進程是為了更好地使用多道程序並發執行,以提高資源利用率和系統吞吐量,增加並發程度;引 入線程,則是為了減小程序在並發執行時所付出的時空開銷,提高系統的並發程度。
  2. 線程是進程的一部分。又稱為輕權進程或者輕量級進程,是CPU調度的一個本單位。
  3. 線程的改變只代表了CPU執行過程的改變,而進程所擁有的資源沒有發生變化,線程只能共享它所屬進程的資源。進程是系統所有資源分配時的基本單位,進程不依賴線程而獨立存在。它和進程內的其他進程一起共享分配給該進程的所有資源。
  4. 進程的分類:用戶級線程和內核級線程。
    用戶級線程是全部由用戶程序完成,操作系統內核只對進程進程管理。
    內核級線程是線程所有工作都由內核完成,應用程序沒有進行線程管理的代碼,只有一個到內核級線程的編程接口。
    用戶級線程占用系統開銷最小,內核級線程的開銷則比進程開銷小,但還是要大於用戶級線程的開銷。

  5. 線程的執行特性:
    派生:由其他進程或者線程通過系統調用來創建。
    阻塞(black:線程阻塞后代表該父進程被阻塞。
    激活(unblack):激活就進入就緒隊列。
    調度(schedule):選擇一個就緒線程進入執行狀態。
    結束(finish):結束,則釋放寄存器上下文以及堆棧的內容。
    系統必須為線程提供同步控制機制,以防止線程對資源的操作都會對其他相關線程帶來的影響。

  6. 考點分析
    只有就緒狀態既可以有運行狀態過去也能有阻塞狀態轉變過去。
    線程是處理器調度和分配的單位,線程本身不具備資源,它共享所屬進程的資源。
    在多對一的線程模型中,用戶級的線程的多是對操作系統透明的,即操作系統並不知道用戶有多少線程,故該進程的一個線程阻塞后,該進程就被阻塞了,進程的其他進程當然就被阻塞了。
    進程是操作系統資源分配和獨立的基本單位
    語言編寫的程序在使用內存時一般分為三個段:一般是正文段,即代碼和賦值數據段,數據堆段,數據棧段。二進制代碼和常量存放在正文段,動態分配的存儲區在數據堆段,臨時使用的變量在數據棧段。
    同一個系統的進程(或線程)可以由系統調用的方法,被不同的進程或(線程)多次使用。
    進程間的通信一般有管道,消息傳遞,共享內存,文件映射,套接字。
    管道是一種固定大小的緩存區。管道對於管道兩端的進程而言,就是一個文件,但是不屬於文件系統,而是單獨一種文件系統,可以實現雙向的數據傳輸,而在同一時刻最多有一個方向的傳輸。管道的大小並不是受磁盤容量大小的限制。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com