同期


個人学習の目的を整理することです
注:楊熙載教授:OS
注意:https://velog.io/@conatuseus/OS-%EC%84%B8%EB%A7%88%ED%8F%AC%EC%96%B4%EC%99%80-%EB%AE%A4%ED%85%8D%EC%8A%A4

同期?


プロセスには相互に影響するコラボレーションプロセスがあります.
何の影響もない独立したプロセスがあります.
現代のコンピュータ環境には大量の協同作業過程が存在している.
このような環境の例を挙げると、映画館を例に挙げることができます.複数のプロセスでは、座席の予約のために公開データにアクセスする場合がありますが、誤って予約を繰り返したり、予約をキャンセルしたりしてもキャンセルされる場合があります.
(現在はほとんどの場合、スレッドベースで交換されているため、スレッド同期と呼ばれています)
この点を解決するために、同期と呼ばれています.
では、同期はどうすればいいのでしょうか.
まず,単純な用語で複数のスレッドを整理するシステムでは,各スレッドが共有するデータ(変数,テーブル,ファイルなど)を変更するコード領域を臨界領域と呼ぶ.
上記の例の座席予約区間は、臨界領域と見なすことができる.

臨界領域を解決するためには3つの条件がある。

  • Mutual Exclusion(相互β)→臨界領域は一度に1スレッドしか近づけない.
    즉 , 한 쓰레드가 먼저 접근하여 작업을 공통 변수에 대에 작업을 수행하고 있다면  , 다른 쓰레    드는 이 구역에 접근할 수 없다.
  • 決定
  • Progress(実行)→1つの臨界領域に近いスレッドは限られた時間内に完了しなければならない.
  • Bounded待ち(有限待ち)→臨界領域に入るためには、すべての待ちスレッドが有限時間内にこの臨界領域に入る必要がある.
  • 同期操作は、この臨界領域で発生する可能性のある問題を解決します.
    そのために設計された、代表的なものは細い麻布とMutexです.

    Mutexと細い麻布語の違いは?

  • 細い麻布語は共有リソースです 細い麻布の変数と同じプロセス(またはねじ)にアクセスできます.反対のMutex 1つのプロセス(またはスレッド)にのみアクセスできます.
  • は現在実行中のプロセスではありません 他のプロセスでは、細い麻布が無効になる可能性があります. でもMutexは ロックを取得するプロセスは、ロックを解除する必要があります.