ピクシブ百科事典は2024年5月28日付でプライバシーポリシーを改定しました。改訂履歴

マルチタスク

まるちたすく

同時並行で複数の仕事を進めること。ここではコンピューターのタスク管理全般について扱います。

概要編集

コンピューターにおけるマルチタスク(multi tasking) は、複数の処理タスク)を同時に進める(並列実行)仕組みのこと。タスク管理は、オペレーティングシステム(OS)の基本的な機能の一つである。


マルチタスクを実装したOSは、各タスクの優先順位に従って実行中のプロセスの処理を一時中断(プリエンプション)するなどして、効率的な処理を実現する。


対義語はシングルタスク(single tasking)。


関連する概念編集

ジョブ

ユーザーがコンピューターにさせる仕事のステップである。たとえば、ファイルのコピーや削除、文書の保存、計算の実行、印刷といったことである。ジョブを受け付けたOSは、1つまたは複数のプロセスやスレッドを立ち上げてこれを実行する。

タスク

タスクは、コンピューターが実行する特定の作業や操作の単位。ジョブがユーザー側から見た仕事の単位なのに対し、タスクはコンピューター側から見た仕事の単位である。タスクの実体はプロセスである場合もスレッドである場合もある。

プロセス

プロセスは、OSが実行中のプログラムのまとまり。基本的に個々のプロセスは独立したメモリ空間を持っていて、エラーを起こしたり暴走しても他のプロセスに影響が及ばないようになっている(メモリ保護)。

今日のモダンなOSのユーザーインターフェースウィンドウシステムなど)は、処理本体とは独立したプロセスで動作している。メモリ空間がプロセスごとに独立していなかった昔のClassicMacOSMS-DOSWindows9xも)では、特定のプログラムがエラーを起こすとOS本体もユーザーの入力を受け付けなくなり、そのままフリーズしてしまうことがよくあったが、今のmacOSではそんなことはまず起こらない。

スレッド

スレッドは、プロセス内で動作する細かい処理の単位のこと。多くのプロセスは複数のスレッドを含む(マルチスレッド)。スレッドを利用することで、並列処理を効率的に実行できる。マルチコアCPUのような並列動作を前提としたハードウェアを効率的に利用できる上、(うまくいけば)応答性がよくなる。個々のスレッドはメモリ保護されていないため、同じプロセス内の他のスレッドの影響を受けるが、そのかわりタスクの切り替えが非常に高速である。

一方で、デッドロック(スレッドが別のスレッドの完了を待ち合って、結果的にすべてのスレッドが停止してしまう状態)を起こしてプロセスが完全に止まってしまったり、複数のスレッドが1つのデータに対して同時にアクセスすることによりデータ整合性が破綻してしまうというリスクがある。開発者は安全にマルチスレッドプログラムが動作する(スレッドセーフ)よう注意を払わないといけない。

割り込み

割り込みは、処理を一時中断し、重要なタスクを優先的に処理する仕組みである。キーボードの入力、マウスカーソルの動きなどにレスポンスを返すハードウェア割り込み(外部割り込み)と、実行中のプログラムがエラーを起こしたり、書き込み禁止のメモリ領域へ書き込もうとしたりした場合などに処理を中断するソフトウェア割り込み(内部割り込み)に分けられる。プログラム自身がスーパーバイザコールを発行してあえて割り込みを発生させることもあるが、これは保護されたCPUモードでは実行できないタスクを実行したい際に、特権モードにアクセスできるカーネルに処理を依頼するのに用いられ、セキュリティ上のリスクが高い行為である。

関連記事

親記事

オペレーティングシステム おぺれーてぃんぐしすてむ

兄弟記事

pixivに投稿されたイラスト pixivでイラストを見る

このタグがついたpixivの作品閲覧データ 総閲覧数: 18803

コメント

問題を報告

0/3000

編集可能な部分に問題がある場合について 記事本文などに問題がある場合、ご自身での調整をお願いいたします。
問題のある行動が繰り返される場合、対象ユーザーのプロフィールページ内の「問題を報告」からご連絡ください。

報告を送信しました

見出し単位で編集できるようになりました