[210630 TIL] OS


SW solution


Dekker's Algorithm


写真ソース—https://youtu.be/lY43KR3IItw
  • 2つのプロセス間で反発する最初のアルゴリズム
  • Peterson's Algorithm


    写真ソース—https://youtu.be/lY43KR3IItw
  • タグは同じですが、譲歩があります
  • N-Process Mutual Exclusion

  • Dijkstra
  • 最初にn個の過程における反発問題をソフトウェアで解決
  • 実行時間が最も短いプロセッサの細い麻布方法を割り当て、最短の平均待ち時間
  • を提供する
    写真ソース—https://youtu.be/lY43KR3IItw
  • want-in:プロセスは重要な部分の第一歩に入り、あなたの意図
  • を明らかにします.
  • in-CS:プロセスに入る前のステップ

  • SW solution

  • SWソリューションの問題点
  • 速度が遅い
  • 実施複雑
  • ME primitive実行時にプリエンプトされる可能性がある
  • 共有データの変更は、暗黙的な割り込みによって解決されます.
  • Overhead具体値
  • Busy waiting
  • Inefficient
  • 私はC言語が分からないので、よくわかりません.

    HW solution


    Synchronization Hardware

  • TestAndSet (TAS) instruction
  • TestとSetが同時に実行する機器
  • Machine instruction
  • Atomicity, Indivisible
  • 運転中に中断されないことを保証します.(プリエンプトなし)
  • Busy waiting
  • Inefficient
  • 写真ソース—https://youtu.be/Zps0ckSvKys
  • 一度に完了
  • target.
  • targetの値をtempに入れ、targetをtrueにします.
  • 写真ソース—https://youtu.be/Zps0ckSvKys
    写真ソース—https://youtu.be/Zps0ckSvKys

    HW Solution

  • メリット
  • 容易実施
  • 欠点
  • Busy waiting
  • Inefficient
  • Busy消去待ち反発技術
  • Semaphore
  • ほとんどのオペレーティングシステムで使用されているテクノロジー
  • OS supported SW solution


    Spinlock

  • 整数変数
  • 初期化、P()およびV()演算のみでアクセス
  • 上記の演算はいずれも不可分(または原子)演算である
  • OS support
  • 命令周期全体
  • 写真ソース—https://youtu.be/33OqgesF-mM
  • マルチプロセッサシステムのみ
  • Busy waiting!
  • Semaphore

  • 1965年Dijkstra提案
  • Busy待機トラブルシューティング
  • 非負の整数変数(S)
  • 初期化演算、P()およびV()のみ
  • P:Probern(検査)
  • V:Verhogen(増加)
  • ready queueは、任意のS変数
  • に割り当てられる
  • Binary semaphore
  • S 0と1の2つの値のみ
  • 反発またはプロセス同期用
  • Counting semaphore
  • Sは0より大きい整数値
  • を有することができる
  • Producer-Consumer問題等
  • 生産者-消費者問題
  • 初期化演算
  • S変数初期値の演算
  • P()、V()演算
  • 全て分割不可演算
  • OS support
  • 命令周期全体
  • Semaphoreが解決できる同期の問題

  • 反発問題
  • Mutual exclusion
  • プロセス同期の問題
  • process synchronization problem
  • processの実行順序
  • プロセスはパラレルで非同期
  • 生産者-消費者問題
  • producer-consumer problem
  • 生産者(Producer)プロセス
  • メッセージを生成するプロセスグループ
  • コンシューマ(Consumer)プロセス
  • メッセージを受信するプロセスグループ
  • Reader-writer問題
  • Dining philosopher problem
  • その他
  • <コメント>
  • https://youtu.be/lY43KR3IItw
  • https://youtu.be/Zps0ckSvKys
  • https://youtu.be/33OqgesF-mM
  •