【南京大学jyy操作系统(蒋炎岩)】(四)并发控制: 同步 | 真实世界的并发编程
生活随笔
收集整理的這篇文章主要介紹了
【南京大学jyy操作系统(蒋炎岩)】(四)并发控制: 同步 | 真实世界的并发编程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 同步
- 什么是同步??
- 生產者-消費者模式
- 條件變量
- 分析
- 條件變量
- API
- 條件變量:實現生產者-消費者
- 信號量
- 復習:互斥鎖和更衣室管理
- 哲學家吃飯問題
- 總結
- 真實世界的并發編程
- 高性能計算中的并發編程
- 數據中心里的并發編程
- go
- 我們身邊的并發編程
- 并發 Bug 和應對
- 總結
前言
學習鏈接 : 鏈接點擊跳轉
同步
- ppt
什么是同步??
- 例子
生產者-消費者模式
- 測試代碼的正確性
條件變量
分析
- 把 pc.c 中的自旋變成睡眠
- 測試不通過
- 嘗試在完成操作時喚醒
- 嘗試在完成操作時喚醒
條件變量
API
條件變量:實現生產者-消費者
- 解決方案 ; 設置倆個不同類型的 條件變量
- 多一點線程
- 10
信號量
復習:互斥鎖和更衣室管理
操作系統 = 更衣室管理員
先到的人 (線程)
成功獲得手環,進入游泳館
*lk = 🔒,系統調用直接返回
后到的人 (線程)
不能進入游泳館,排隊等待
線程放入等待隊列,執行線程切換 (yield)
洗完澡出來的人 (線程)
交還手環給管理員;管理員把手環再交給排隊的人
如果等待隊列不空,從等待隊列中取出一個線程允許執行
如果等待隊列為空,*lk = ?
管理員 (OS) 使用自旋鎖確保自己處理手環的過程是原子的
-
更衣室管理
完全沒有必要限制手環的數量——讓更多同學可以進入更衣室
管理員可以持有任意數量的手環 (更衣室容量上限)
先進入更衣室的同學先得到
手環用完后才需要等同學出來 -
“手環” = “令牌” = “一個資源” = “信號量” (semaphore)
-
pc-sem.c
哲學家吃飯問題
初始的時候 每個哲學家只有一把叉子
因為每人都只拿左手的叉子 , 導致
總結
真實世界的并發編程
高性能計算中的并發編程
- 超級計算(目前) : 把同多個步操作 分給多個cpu 然后匯總起來 (eg 。 拓撲結構 計算二維dp)
- 超級計算機 : 分哪些機器 , 再想機器上有哪些進程 最后線程是如何通信的
- MPI接口 同步的庫: 多節點程序 如何保證多節點發消息通信同步
數據中心里的并發編程
- 特點
- 在倆個數據中間是有延遲的 ,CAP是不可能同時三個都做到的
- such 1 second 完成 1w的請求??
- . QPS:全名 Queries Per Second,意思是“每秒查詢率”
- tail latency 尾延遲
- 實現切換 存在代價
go
- go的 canal 相對于隊列 (也可以實現容量)
- go : 不用和c 一樣去約束 ,實現 xx并發協議 (貼紙 。。) , 直接做就就可以 (PC 模式) 解決高并發 IO的問題
我們身邊的并發編程
并發 Bug 和應對
總結
總結
以上是生活随笔為你收集整理的【南京大学jyy操作系统(蒋炎岩)】(四)并发控制: 同步 | 真实世界的并发编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WSF操作系统抽象层学习笔记(二)---
- 下一篇: EXSI搭建流程