ゼロからの情報システム

  現代社会の情報インフラの仕組みをゼロから学べます.

タスクマネージャ

情報社会に生きるアナタ.
自動車社会で自動車や高速道路や宅配便のこと知らないで生きていけますか.
情報社会では,スマホやパソコンやインターネットやウェブが,自動車や高速道路や宅配便に相当します.
このサイトは,パソコン使いのパソコン知らず,を対象に情報社会の基盤技術を説明します.

2.49 コマンドでファイルの内容を表示してみる

前項の最後で作ったファイルは拡張子がtxtであることからわかるようにテキストファイルです.その内容をメモ帳で見てみましょう.

          \windows\system32\notepad task.txt(エンター)

と絶対パスでメモ帳のプログラムnotepad.exeの起動と,起動の時にカレントフォルダのファイルtask.txtを読み出して開くことを指示します.

メモ帳のウィンドウが作られて,そこにtask.txtの内容,つまり,tasklistコマンドの出力であるプロセスの一覧表が表示されます.

メモ帳はテキスト エディタですから,task.txtファイルを編集できます.tasklistコマンドがタスクマネージャ(2.16参照)のプロセスタブを選択した時と同じ情報の提供を指示するものなのが判りましたね.

タスクマネージャはtasklistを実行してその出力をGUIで表示しているのです.

同じようにしてインターネットエクスプローラIEを起動することもできます.cdコマンドを使って\Program Files\Internet Explorerへカレントフォルダを移動してから次のように入力すれば,指定したHPを閲覧できます.

          iexplorer www.do-johodai.ac.jp(エンター)

他のコマンドを利用すれば,利用中のパソコンのインターネット環境に関する情報を得ることもできますが,それをやってみることは第5部でのお楽しみとしましょう.

いくつかのコマンドを紹介しました.すでに述べたように150以上ものコマンドがありますから,GUIでできるたいがいのことはできるのです.

これらのコマンドを利用すれば,OSが行う処理のプログラムを書くことも可能です.もちろん,プログラミングのルールがありますから,それに従わなければなりません.

そのようなプログラムをバッチプログラムと呼び,それを保存するファイルをバッチファイルと呼びます.このファイルの拡張子はbatです.

 ただし,この話題に深く立ち入ることはしませんので,興味のある読者は,MS-DOSの解説書などを参考にして下さい.

2.24 次に実行するプロセスは実行可能状態にあるものから選びます

前項では,プロセスを切り替える際に候補とするプロセスは,実行中のプロセスの中で優先度が最も高いものであることを述べました.しかし,実行中のプロセスすべてが選択の対象になるのではありません.そこで,どうやって次に実行するプロセスの候補を絞り込むのかが,T3の問題(2.21参照)です.

図13はタスクが開始されて生成されたプロセスが終了するまでにとる可能性のある状態とそれらの間の移行関係を整理したものです.


図13

 

13 プロセスの状態の推移

実行状態(=CPUが処理中)のプロセスはタイムスライスで他のプロセスに横取りされて中断されると,次に実行の順番が来るのを待ちます.つまり,図13の「実行可能状態」になります.実行可能状態とは,OSに選択された場合,続きの処理を即座に再開する準備がすでに整っている状態を指します.

プロセスは次項で説明するような事情で「待ち状態」になることがあります.この時,この原因となった事情が解消されると実行可能状態に移行します.

待ち状態にあるプロセスは,次項で説明するような理由のために,次に実行するものとして選択されて実行状態に直接移行することはありません.

つまり,待ち状態にあるプロセスは2.22で説明した,次に処理するプロセスの候補にはなりません.

したがってOSは,実行可能状態にあって,優先度が最も高いプロセスだけを処理の対象にするのです.そのようなプロセスは,開始(生成)したばかりか,CPUを横取りされて中断中(実行可能状態)か,待ち状態から解放されて実行可能状態に移行したか,のどれかです.

以上が特定の極めて少数のプロセスだけにゼロでない「CPU」値が,タスクマネージャのプロセスタブ(図11)で表示される理由です.

パソコンでは,多数のプロセスを実行中であるにもかかわらず,快適に作業ができる秘密がここにあります.

2.23 最高優先度のプロセスが次に実行される

OSは実行すべき多数のプロセスを抱えています.それらのプロセスの内,現に実行中のプロセスと交代に次に実行すべきものはどれかを決めるのが,T2の問題(2.21参照)です.

たくさんあるプロセスの中には,即時の対応が必要なもの,遅れても支障のないものというように,さまざまな緊急度のものがあります.

そこで,ウィンドウズのOSでは,各タスク,サービスに対して,処理の優先度を割り振っています.優先度32段階あります.

起動中のプロセスの中で最も優先度の高いタスクやサービスのものに対してCPUを優先的に割り当て,それらのタスクやサービスがCPUを必要としなくなったら,次の優先度のタスクやサービスにCPUを割り当てる,という方法をOSは採用しています.

優先度が最も高いタスクが複数ある場合には,割り当てたクオンタムずつそれらのタスクを順番に処理します.割り当てるクオンタムを,同じ優先度でもフォアグラウンドのタスクには多く,バックグランドのものには少なくすれば,CPUを使用する割合を変化させることができます.

優先度の高いタスク,サービスから処理する方法だと,優先度の低いプロセスはいつまでもCPUを割り当ててもらえないという状況が発生する可能性があります.そこで,長期間(例えば数分間)CPUが割り当てられないプロセスがあれば,その優先度を自動的に高めるという仕組みがOSには組み込まれています.

図11のタスクマネージャの「プロセス」タブの表示には,「CPU」欄があります.これはCPUの処理能力の何%が,そのプロセスによって消費されているかを示します.

   大部分のプロセスのCPU欄はゼロで,少数のプロセスにだけCPUが割り当てられているのが判ります.これはT3の問題への解答を示していますので,次項で説明します.

2.18 プロセスは1つ以上のスレッドで実行される

プロセスはプログラム(とデータ)ですから,CPUに対するデータ処理の一連の指示を並べたものなのですが,この一連の指示には,並行して実行することが可能な部分が含まれている場合があります.

そのような部分の処理を並行して進めると,プロセスはあたかも複数のプログラムを同時に処理しているような様相になります.1つのものが実は2つである,という変な状況になるのです.それで,それらを区別するために新しい言葉を使います.

プロセスに対応するプログラムを,並行して実行できる部分ごとに分けて,それぞれをスレッドと呼ぶことにします.つまり,1つのプロセスには1つか,それ以上の個数のスレッドと呼ぶプログラムのまとまりが対応します.

例えば,ワープロを使う場合に,2つの文書の処理を同時に進める場合があります.一方の文書は報告書で,もう1つの文書はそれを郵送するための挨拶の手紙である,というような状況です.

この場合,報告書を作る仕事は1つのタスクであり,挨拶文を作るのはもう1つのタスクになります.しかし,同じワープロのプログラムを使いますので,プロセスは1つです.そして,報告書と挨拶文の処理は異なるスレッドとして実行されます.


図12

 

12 タスク-プロセス-スレッド

ですから,タスク,プロセス,スレッドの関係は,一般的には図12のように多対多になります.したがって,タスクを管理するためには,プロセスばかりでなくスレッドを管理することも必要になります.

 なお,プロセスにスレッドが対応している状況は,図11に示したタスクマネージャのウィンドウの上端のメニューバーにある「表示」メニューを選択した時に現れる選択肢「列の選択」によって,表示させることができます.

2.16 多数のタスクの実行状況はタスクマネージャで観察する

マルチウィンドウは,デスクトップに表示されるウィンドウを観察することで実感することができますが,マルチタスクはどうでしょう.「何のこっちゃ」という感じがあるかも知れませんね.なにせ,タスクはパソコンの内部に存在し,目で具体的に見ることができませんから.

多数のタスクの実行を管理するためのツールがタスクマネージャと呼ばれるソフトウェアです.これを使えば,タスクを見ることができます.

タスク管理OSの重要機能の1つでした(2.11参照).このことから,タスクマネージャは制御プログラムの一部であることが判ります.

タスクマネージャのウィンドウを表示する方法の1つは,タスクバーの空白部分にマウスポインタを移動して右クリックすることです.こうすると現れるポップアップメニューにタスクマネージャを起動する選択肢があります.これを選択するとウィンドウがポップアップしてきます.

図11

11 タスクマネージャとプロセス一覧

そこにはタブがいくつか表示されています.その中の「アプリケーション」タブを左クリックしてみましょう.すると,そこには今タスクバーに表示されているウィンドウボタンに対応するタスクが一覧表示されます.図11の左上の方にそのタブが見えます.

  「アプリケーション」のタブで,「タスク」の情報が表示されるのは,タスクが利用中の応用プログラムすなわちアプリケーションに対応しているからです.
プロフィール

ヤッキー

カテゴリ別アーカイブ
タグクラウド
QRコード
QRコード
  • ライブドアブログ