[ソフ技] OSの基本①

woody_1227 オーナー 公式アカウント

夢が欲しけりゃ金払え
ログインすると、チェック機能を利用できるようになります。
・OSの基本目的とは
 時々刻々と するコンピュータシステム自身の し、
 資源の をはかる
 ・資源( )とは … コンピュータシステムの構成要素

  資源一覧
資源OSの機能
CPU
( )
メモリ(主記憶装置)
補助記憶装置 ( )
入出力装置
ユーザインターフェース


  ・CPU管理 … どのタスクにCPUを割り当てるかを制御する
  ➢ タスク(プロセス)とは
   メモリ上にロードされている (命令列とデータ)と
   それを実行するのに必要な (プログラムカウンタ、スタック etc...)
  ・記憶管理 …
          管理

  ・データ管理 … 補助記憶装置の に左右されないようにファイルや
          ディレクトリを扱えるようにする(ファイルシステムの構成)
  ・入出力管理 … の制御
          入出力装置への
          入出力装置の
  ・ユーザインターフェース管理 … OSの顔を作る( の構築)

・CPU管理
 ・
   から見た に与えるまとまった仕事の単位
  1個以上の から構成される
 ・
   から見た仕事の単位や を割り当てる単位
  (タスクとプロセスは同義語)
  ・タスク  … マニュアルなどで使う実用上の表現
  ・プロセス … 学術的な表現

 ・ジョブとタスクの例
  
  ① …
  ② …

 ・OSの種類
  ・ OS
    一時に一個のタスクのみを実行
   

  ・ OS
    複数のタスクを並列処理
   

  ・ジョブの種類
   ・ 処理 … 複数の事象をまとめて1つの入力にする処理
   ・ 処理 … ある事象の発生に伴い、直ちに対応を行う処理

 ・ジョブとタスクの関係
  ・次のA,B,Cの作業を順に行うジョブを考える
    A ランダムな信号により計測を開始データを収集する
    B 収集したデータに処理を加える
    C 処理結果を印刷する
   A,B,Cを1つのタスクで実現する場合と、3つのタスクで実現する場合で
   どちらが効率がいいか

   ➢ シングルタスクOS …
    
   ➢ マルチタスクOS
    ・1つのタスクで実現する場合… に依存
    ・3つのタスクで実現する場合… に依存
    
    シングルタスクよりも …

   厳密には…
   ➢ 複数タスクの場合は、タスク間のオーバーヘッドがある
    → 最大処理量は1タスクに及ばない
   ➢ 平均処理サイクルが最大処理量を超えなければ
    応答の早い方が計測範囲は広い

 ・ジョブとタスク
  ・タスクの分割は
   … ジョブがタスクに
  ・実際には … この例では が使われるのが一般的
   ➢ プロセス … を割り当てる単位
   ➢ を使う単位、CPU以外はプロセスの物を共用

  ・プロセス管理
   ・主に3つの状態に分けて管理

    プロセスの状態
    
    ① …  ② …  ③ …  ④ …
    ⑤ …  ⑥ …  ⑦ …

  ・スケジューリング
   
  ・スケジューリングの目標
   ・ の向上
   ・ 短縮
   ・公平な
   ・応答時間の
   ・ の処理
   ・特定プロセスの

  ・スケジューリングの種類
   ➢ 到着順
    
   ➢ ラウンドロビン
    
   ➢ 処理時間順
    
   ➢ デッドライン時間順
    
   ➢ 優先度順
    
   ➢ 多重フィードバック
    

  ・プログラムによる負荷
  ・I/Oに負荷をかけるプログラム
   (I/Oバウンドなプログラム)
   ・処理時間が に拘束される
   ・ は連続して 状態
    CPUは

  ・CPUに負荷をかけるプログラム
   (CPUバウンドなプログラム)
   ・処理時間が に拘束される
   ・重たい計算などでCPUは
    入出力装置は

  ・具体的に
   ➢ CPUバウンド優先だと...
    

   ➢ I/Oバウンド優先だと...
    

  ・CPUに着目して比較
   ➢ CPUバウンド優先 …
   ➢ I/Oバウンド優先 …
   ・割り込みができるとさらに効率UP

  ・優先順位が同じ場合は?
   ➢ 均等に割り当て
    ・ 等で平等に時間を配分する
   ➢ 実行権の取得
    ・ を得たタスクが動く

  ・実行権方式のデメリット
   ➢ 早くとったタスクがかなり長い処理だったら?
        … そのタスクの が回らない

  ・対応策
   ➢ タスク自らが になる
   ➢
   ➢

  ・資源の管理
   ➢ タスクが資源を使用する場合
    ・
    ・
    ・

  ・資源の競合
   ➢ マルチタスクの場合、 を使用したい場合がある。
    例)
    ・タスクA → 計算結果をバッファに保存
    ・タスクB → ファイルのデータを加工してバッファに保存

  ・排他制御
   ➢ 使用している場合は など、 ようにする

  ・ロック
   データの読み書きを する

   ➢ ロックの種類(
    ・ ロック
     他のプロセスが
    ・ ロック
     他のプロセスが

   ➢ 実装による違い
     により2つの区別がある

    ・ ロック
     データの読み出し時に し、
     データ更新の
     − 変更なし →
     − 変更あり →

    ・ ロック
     データの読み出し時に
     ※ロックのモード選択は 次第

  ・セマフォ
   

 ・ロックの考察
  次の観点で各自考察してみよう

  ・ロックのメリット
   ・ を保てる
   ・モードによっては

  ・ロックのデメリット
   ・ロックされていると、
   ・ わからない
   ・タイミングによっては

   ➢
    
    ・例
     − プロセスA … ファイルaに情報を加工し、ファイルbに書き込む
     − プロセスB … ファイルbの情報を加工し、ファイルaに書き込む
     問)プロセスAとBを同時に走らせた場合どうなるか?
      

     ・回避方法
      − を付ける
      − どちらかのプロセスを
      − 開始時に

  ・ロックのその他の活用法
   ➢
    例)速いプロセスAと遅いプロセスBの同期
     - に必要なリソース(X)を
     - は(X)の処理で
     - が追い付いたら(X)の

   ➢ の利用
     には を利用するのが一般的
    例)速いプロセスAと遅いプロセスBの同期
     - が使用するリソース(X)のセマフォを にする
     - は(X)の処理で
     - が追い付いたら(X)のセマフォを にする