ikemonn's blog

技術ネタをちょこちょこと

はじめて読む486 8章

タスク

  • タスク(プロセス)とは

    • 独立した資源を保持するプログラムの実行単位
      • 実行単位 = プログラムが起動して処理を行い、終了するまでの一連の流れの実行
      • 資源 = メモリ空間やファイルやデバイスの操作状況、それらを処理するプログラムの実行時間
    • 各タスクは実行単位を持ち、CPUが割り当てられている間は実行を進めることができる
  • 486のタスク機能

    • タスク切り替え機能
    • メモリ空間の分離保護機能
  • タスクとスレッド

    • スレッド = 資源を共有する実行単位のこと
    • 同じメモリ空間の中で複数の処理を並列実行するしくみ
    • 1つのタスクを複数のスレッドに分割して、各スレッドを並列に実行させる
      - 1つのタスク内で、キーボード入力スレッド・受信データ入力スレッドが動いているみたいな感じ
      

マルチタスクの仕組み

  • CPUはある瞬間をとれば、1つのタスクしか実行していない
  • 各タスクは僅かな時間実行されては中断し、別のタスクに切り替わるという流れを繰り返す

  • タスクAがBに切り替わる仕組み

    • タスクAの実行状態、つまりCPU内のレジスタの内容をメモリに保存する
    • メモリに保存してあったBの実行状態をレジスタに読み込む

TSS

  • タスク状態の保存・復元に使用するデータ領域の構造
    • Task State Segment
  • TSSはタスク1つにつき必ず1つ用意しなければならない
  • 486はタスク状態の中でもCPUの状態の保存と復元を担当
  • OSはそれ以外のタスク状態の管理を担当する
  • TSSは下記の3つの部分に分けられる

    • レジスタ保存部
    • OS用タスク管理情報部
    • I/O許可マップ
  • レジスタ保存部

  • OSシステム用タスク管理情報部

    • ファイルやデバイスの操作状況などタスクの持つ資源の状態が変化した時にその内容を記憶する
    • 486は関知しない
  • I/O許可マップ

    • 特定のI/Oポートのアクセスを許可するもの

TSSディスクリプタ

参考