組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて

池崎 史生

tag: 組み込み

技術解説 2001年6月19日

●OS上での仕事の仕切りかた...スケジューリング

 計算機に関わる仕事をしている人の世界では,計算機に行わせる「仕事」について,いろいろな名前がつけられています.ここに一例を挙げてみましょう(表1).これらの呼びかたをなんの定義もなく使うことは,あとあと誤解を招く元になります.この項ではUNIX系のOSで使われているプロセス(process)という用語を使います.

[表1]計算機が管理する仕事の呼びかた

計算機科学用語
IBM360
UNIX
Mach
Windows NT/2000
ジョブ
ジョブ
ジョブ・ステップ
ジョブ・ステップ
タスク
タスク
タスク
プロセス
プロセス
プロセス
プロセス
スレッド
(スレッド)
スレッド
スレッド

 Windowsの世界では,「タスク・マネージャ」というプログラムがあるにもかかわらず,プログラミングの解説書では,基本の実行単位を「プロセス」であると称している.UNIX系OSにもスレッドは存在するが,Machカーネルで実現されたスレッドとは違い,疑似的にスレッドの機能を実現しているにすぎない.計算機が管理する呼称については,たとえ同じ名称を使っていても,このように,各OSごとに実際の機能が違う場合があるので注意が必要.

 ちなみにIBM360とは,往年の汎用計算機のことである.

 プロセスとは,UNIX系OSにおける基本の実行単位です.UNIX上でプログラムが動くときには,少なくとも1個のプロセスとしてUNIXのプロセス管理台帳(のようなもの)に載っていなくてはなりません.これが実行単位の意味です.会社の仕事を例にとれば,プロジェクトの進捗表の,ある一つの仕事の中には少なくとも1人の担当者がいなければいけないのが普通ですね.それと同じようなことをOSも行っているわけです.

 OSがプロセスを管理するときに大事な機能の一つにスケジューリングがあります.要するに「仕事の段取り」と同じだと考えていただいてよいでしょう.OSが多数のプロセスを実行するときには,各プロセスの実行に不都合が起こらないよう,順番に計算機環境を使えるよう段取りを行わなければなりません.そのために数多くの段取りのしかたが考案されました.それをスケジューリング・アルゴリズム(scheduling algorithm)と呼びます.スケジューリング・アルゴリズムに基づいてプロセスの実行タイミングを計るためのシステム・プログラムをスケジューラと呼びます.そしてスケジューラで決められた時刻どおりにプロセスを実際にCPUに割り当てる作業を受け持つのがディスパッチャなのです.

 余談ですが,筆者はこうしたOSのプロセス管理機能に対する名付けかたが,航空機管理システムのそれと非常によく似ていると思います.実際,英語では用語になんら変わることはありません.例えば,航空機の「運行管理責任者」のことを英語では「ディスパッチャ」と呼びます.その果たす役割も似ています.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日