日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

操作系统(三)| 进程同步详解(主要任务、制约关系、临界资源、临界区、同步机制遵循规则、信号量机制、信号量的应用)

發布時間:2025/4/5 41 豆豆

文章目錄

  • 進程的同步基本概念
    • 進程同步的主要任務
    • 進程間的制約關系
    • 臨界資源
    • 臨界區
    • 同步機制應遵循的規則
  • 信號量機制
    • 整型信號量
    • 記錄型信號量 ???
    • AND型信號量
  • 信號量的應用
    • 實現進程互斥
    • 實現前驅關系
    • 利用記錄型信號量實現同步

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站。點擊這里

進程的同步基本概念

進程同步的主要任務

使并發執行的諸進程之間能有效地共享資源和相互合作,從而使程序的執行具有可再現性。

進程間的制約關系

  • 由于資源共享造成的間接相互制約關系

  • 由于進程合作造成的直接相互制約關系

臨界資源

一次僅允許一個進程訪問的資源叫做臨界資源互斥訪問

臨界區

進程中訪問臨界資源的代碼
設計流程:

  • 檢查臨界資源是否可用
  • 訪問
  • 將正在訪問的標志恢復為未被訪問的標志

同步機制應遵循的規則

  • 空閑讓進
  • 忙則等待(臨界資源占用需等待)
  • 有限等待(等待時間有限)
  • 讓權等待(讓出CPU)

信號量機制

整型信號量

P操作 wait(S)

wait(S):While (S<=0) do no-op;# 會一直占CPU運行,不能做到讓權等待S--;

V操作 signal(S)

signal(S):S++;

注意:P操作和V操作屬于原子操作,不可被中斷

記錄型信號量 ???

typedef struct{int value;struct process_control_block *list }semphore;wait(semaphore *S){S->value--; // 代表可用資源數-1if (S->value<0)block(S->list); // 若減1后小于0,則證明資源缺乏,故阻塞進程 }signal(semphore *S){S->value++; // 代表可用資源數+1if(S->value<=0)wakeup(S->list); // 若加1后小于等于0,證明有阻塞的進程,故喚醒1}

AND型信號量

將進程需要的資源一次性分配,運行完后一次性釋放

Swait(S1,S2,S3...) //同時滿足所有信號量S Ssignal(S1,S2,S3...) //同時釋放所有信號量S

信號量的應用

實現進程互斥

為進程設置初始信號量 mutex = 1 ,將臨界區置于wait(mutex)和signal(mutex)之間

實現前驅關系

設置共享信號量 S = 0,實現先P1,后P2

S = 0 P1:語句1...signal(S) P2:wait(S)語句1...

利用記錄型信號量實現同步

semaphore empty = 1; semaphore full = 0; begin parbeginp1:beginrepeat......wait(full)print(x) # 默認將x打印完后銷毀signal(empty)......untilendp2:beginrepeat......wait(empty);x:=處理結果 # x重新創建賦值signal(full);until false;end ......

總結

以上是生活随笔為你收集整理的操作系统(三)| 进程同步详解(主要任务、制约关系、临界资源、临界区、同步机制遵循规则、信号量机制、信号量的应用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。