操作系統(tǒng)重點(diǎn)

進(jìn)程,線程

  • 進(jìn)程具有獨(dú)立功能程序在某個(gè)數(shù)據(jù)集合上的一次執(zhí)行過程。
  • 線程進(jìn)程內(nèi)的一個(gè)執(zhí)行實(shí)體或執(zhí)行單元。

區(qū)別:

  • 不同進(jìn)程的地址空間是獨(dú)立的,而同一進(jìn)程內(nèi)的線程共享同一地址空間。一個(gè)進(jìn)程的線程在另一個(gè)進(jìn)程內(nèi)是不可見的。
  • 進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。線程是進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,是CPU調(diào)度和分派的基本單位。資源是分配給進(jìn)程的,線程只擁有很少資源,因而切換代價(jià)比進(jìn)程切換低。

進(jìn)程的三種狀態(tài)之間的轉(zhuǎn)換

Paste_Image.png

進(jìn)程通信方式

  • 管道
  • 消息隊(duì)列,消息隊(duì)列是用創(chuàng)建文件的方式建立的,保存的數(shù)據(jù)不會消失??!
  • 信號量,Semaphore
  • 共享內(nèi)存
  • 套接字,Socket

線程同步方式

  • 臨界區(qū)
  • 互斥量
  • 信號量,Semaphore
  • 事件,Event

Linux常用命令

基礎(chǔ):date,cal,bc,man,
目錄:ls,cd,pwd,mkdir,rmdir,
文件:rm,cp,mv,
讀取文件內(nèi)容:cat,less,more,head,tail,
更改文件的屬性:chgrp,chown,chmod

其中 chmod能改變文件屬性

  • chmod u+rw aaa.txt 給aaa.txt添加讀寫屬性
  • chmod 777 bbb 給bbb添加rwx讀寫運(yùn)行三種權(quán)限

臨界區(qū)

每個(gè)進(jìn)程中訪問臨界資源的那段程序稱為臨界區(qū),每次只準(zhǔn)許一個(gè)進(jìn)程進(jìn)入臨界區(qū),進(jìn)入后不允許其他進(jìn)程進(jìn)入。

  1. 如果有若干進(jìn)程要求進(jìn)入空閑的臨界區(qū),一次僅允許一個(gè)進(jìn)程進(jìn)入;
  2. 任何時(shí)候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個(gè)。如已有進(jìn)程進(jìn)入自己的臨界區(qū),則其它所有試圖進(jìn)入臨界區(qū)的進(jìn)程必須等待;
  3. 進(jìn)入臨界區(qū)的進(jìn)程要在有限時(shí)間內(nèi)退出,以便其它進(jìn)程能及時(shí)進(jìn)入自己的臨界區(qū);
  4. 如果進(jìn)程不能進(jìn)入自己的臨界區(qū),則應(yīng)讓出CPU,避免進(jìn)程出現(xiàn)“忙等”現(xiàn)象。

死鎖

在兩個(gè)或多個(gè)并發(fā)進(jìn)程中,如果每個(gè)進(jìn)程都占用了一定的資源但是又都等待別的進(jìn)程釋放它們現(xiàn)在保持著的資源不能向前推進(jìn),稱這一組進(jìn)程產(chǎn)生了死鎖。

產(chǎn)生死鎖的根本原因是資源分配不當(dāng)和資源數(shù)量不足

必要條件:

  • 互斥條件(Mutual exclusion):資源不能被共享,只能由一個(gè)進(jìn)程使用。
  • 請求與保持條件(Hold and wait):已經(jīng)得到資源的進(jìn)程可以再次申請新的資源。
  • 非剝奪條件(No pre-emption):已經(jīng)分配的資源不能從相應(yīng)的進(jìn)程中被強(qiáng)制地剝奪。
  • 循環(huán)等待條件(Circular wait):系統(tǒng)中若干進(jìn)程組成環(huán)路,改環(huán)路中每個(gè)進(jìn)程都在等待相鄰進(jìn)程正占用的資源。

死鎖的處理策略:鴕鳥策略、預(yù)防策略、避免策略、檢測與恢復(fù)策略。

頁式管理

頁式管理的基本原理是什么?
(1)進(jìn)程的虛擬空間被劃分成長度相等的頁。
(2)內(nèi)存空間也按頁的大小劃分成長度相等的頁面。
(3)采用請求調(diào)頁或預(yù)調(diào)技術(shù)實(shí)現(xiàn)內(nèi)外存儲器的統(tǒng)一管理。

分頁和分段

  • 頁是信息的物理單位,分頁是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率;或者說,分頁僅僅是由于系統(tǒng)管理的需要,而不是用戶的需要。
    段是信息的邏輯單位,它含有一組其意義相對完整的信息。分段的目的是為了能更好的滿足用戶的需要。

  • 頁的大小固定且由系統(tǒng)確定,把邏輯地址劃分為頁號和頁內(nèi)地址兩部分,是由機(jī)器硬件實(shí)現(xiàn)的,因而一個(gè)系統(tǒng)只能有一種大小的頁面。
    段的長度卻不固定,決定于用戶所編寫的程序,通常由編輯程序在對源程序進(jìn)行編輯時(shí),根據(jù)信息的性質(zhì)來劃分。

  • 分頁的作業(yè)地址空間是維一的,即單一的線性空間,程序員只須利用一個(gè)記憶符,即可表示一地址。
    分段的作業(yè)地址空間是二維的,程序員在標(biāo)識一個(gè)地址時(shí),既需給出段名,又需給出段內(nèi)地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容