ソフトウェア
問題一覧
1
主記憶装置上に常駐する制御プログラムモジュール群で、スケジューリング、資源の割振など、すべてのプログラムの実行を制御する機能を持つ、OSの中核をなす部分と言える
主な機能は、ジョブ管理、タスク管理、記憶管理、割込管理、入出力管理など
カーネル
2
利用者から見た仕事の単位、つまりコンピュータで実行される人まとまりの処理
ジョブ
3
CPUの割り当て単位であるタスクを管理し、同時に実行される複数のタスクにCPU効率を考慮した適切な順番でCPU時間を与えること
CPU管理
4
が「デバイスドライバ」です。
デバイスドライバがコンピュータの中に入ることでデバイスが動きます。
例えば、そうですね。
ここにピヨ太君がいました。
ピヨ太君は手が2本しかないことに不便を感じ、そこら辺から拾ってきた木の枝を2つくっつけて4本にしました。
そうです。
ピヨ太君は木の枝を手の代わりに使うことにしたのです。
拾ってきた木の枝(腕)はセロテープでくっつけてあります。
しかし残念でした。
セロテープでくっつけた2本の腕(元・木の枝)はピヨ太君の意志通りに……どころか、まったく、これっぽっちも動きません。
おーまいがっ!
ん?
当たり前ですか?
当たり前ですね。
木の枝は取りあえずくっつけただけです。
ピヨ太君の身体は新しい腕(元・木の枝)をピヨ太君の腕として認識していません。
これを本当の意味でピヨ太君の腕にするには、神経をつなぐかグ○メ細胞の力を借りる必要があるでしょう。
コンピュータの世界も同じです。
マウスでもキーボードでもモニタでも、ただ単に接続しただけでは動きません。
コンピュータさんが「あぁ、こいつがくっついたんだな。これからは俺の一部として動くんだな」と理解しないと動かないのです。
コンピュータさんが「あっ、こいつがくっついたんだな」と認識するには専用のソフトが必要です。
デバイスを動かすためのソフトがコンピュータの中に入ることで、はじめてデバイスは動きます。
この
デバイスを動かすためのソフト
がデバイスドライバです。
ここまでの説明を読んで「えっ?わざわざデバイスドライバを入れなくても普通に使えているよ?」と思う人もいるでしょう。
デバイスドライバを入れなくても使えるのは、よく使いそうなデバイスドライバが最初からコンピュータに入っているからです。
デバイスドライバは「なくても使える」では、ありません。
なくても使えるように見える場合は「すでに(最初から)入っている」のです。
デバイスドライバ
5
タスクのスケジューリング方式
1.タスクには優先順位をもたせず、実行可能状態になった順番から実行する方式
2.現在実行しているタスクよりも優先順位の高いタスクが実行可能状態になると、そっちを優先する方式
3.一定時間内に終了しないタスクは途中でやめて後ろに回す方式
1.到着順方式(FCFS) 2.プリエンプション方式 3.ラウンドロビン方式うしき
6
詳しく書くよ
サクッと一言で説明すると
タスクやプロセスより細かい処理の実行単位
が「スレッド」です。
何を言ってるのか、さっぱり分かりませんね。
例えば、カレー作成プログラムを作るとします。
やるべき処理は
1.ご飯を炊く
2.カレーを煮込む
3.お皿に盛る
の3つです。
他にも、らっきょうを買ってくるとかお水を用意するとかいろいろあるでしょうが、一先ず気にしないでください。
この3つの処理をやるプログラムを作ります。
一番単純な作りのプログラムは、3つの処理を続けて書いたプログラムです。
処理が開始したら、ご飯を炊いて、カレーを煮込んで、お皿に盛ります。これで完了です。
このプログラムを、仮に「プログラム1」としましょう。
でも、ご飯を炊くのと、カレーを煮込むのは並行して行えますよね?
ということは、処理が開始したら、ご飯を炊くと同時にカレーを煮込んで、両方終わったらお皿に盛る、でもカレーは出来あがります。
こちらのプログラムは「プログラム2」としましょう。
プログラム1もプログラム2も立派なカレー作成プログラムです。
どちらを動かしても美味しいカレーが出来上がります。
それでは、実際にカレー作成プログラムを動かしてみましょう。
カレー作成プログラムは1つのタスクです。
動かすと、プロセスが1つ立ち上がります。
カレー作成プログラムが処理を開始しました。
プログラム1の方では「ご飯を炊く」処理が動きます。
プログラム2の方では「ご飯を炊く」処理と「カレーを煮込む」処理が動きます。
このとき動いている、それぞれの処理(の単位)が「スレッド」です。
プログラム1では1つのタスク、1つのプロセス、1つのスレッドが動いています。
プログラム2では1つのタスク、1つのプロセス、2つのスレッドが動いています。
イメージしづらければ、処理開始から処理終了までの流れを線で引いて、その線一本一本がスレッドだと思っても構いません。
プログラム1は、処理開始から処理終了まで一本の線です。
プログラム2は、途中で一時的に二本に枝分かれしています。
このそれぞれの線がスレッドです。
余談ですが、プログラム1のように流れが1つの処理は「シングルスレッド」と呼ばれます。
プログラム2のように流れが複数に枝分かれして並行処理が発生している処理は「マルチスレッド」です。
併せて覚えてあげてください。
これが、プログラムにおけるスレッドです。
あとは、掲示板なんかでも「スレッド」という表現が出てくる場合があります。
こちらの「スレッド」は
話題、トピックスごとのまとまり
です。
2ちゃんねるのような形式の掲示板では、1つの話題ごとに1つのエリアが用意され、そのエリア内で返信を付ける形で、あーだこーだとコミュニケーションを取ります。
その話題ごとのまとまりをスレッドと言います。
まぁ「スレッド」って単語が出てきたら「プログラムの処理の実行単位、もしくは、掲示板におけるトピックス毎のまとまりなんだな~」と、お考えください。
スレッド
問題一覧
1
主記憶装置上に常駐する制御プログラムモジュール群で、スケジューリング、資源の割振など、すべてのプログラムの実行を制御する機能を持つ、OSの中核をなす部分と言える
主な機能は、ジョブ管理、タスク管理、記憶管理、割込管理、入出力管理など
カーネル
2
利用者から見た仕事の単位、つまりコンピュータで実行される人まとまりの処理
ジョブ
3
CPUの割り当て単位であるタスクを管理し、同時に実行される複数のタスクにCPU効率を考慮した適切な順番でCPU時間を与えること
CPU管理
4
が「デバイスドライバ」です。
デバイスドライバがコンピュータの中に入ることでデバイスが動きます。
例えば、そうですね。
ここにピヨ太君がいました。
ピヨ太君は手が2本しかないことに不便を感じ、そこら辺から拾ってきた木の枝を2つくっつけて4本にしました。
そうです。
ピヨ太君は木の枝を手の代わりに使うことにしたのです。
拾ってきた木の枝(腕)はセロテープでくっつけてあります。
しかし残念でした。
セロテープでくっつけた2本の腕(元・木の枝)はピヨ太君の意志通りに……どころか、まったく、これっぽっちも動きません。
おーまいがっ!
ん?
当たり前ですか?
当たり前ですね。
木の枝は取りあえずくっつけただけです。
ピヨ太君の身体は新しい腕(元・木の枝)をピヨ太君の腕として認識していません。
これを本当の意味でピヨ太君の腕にするには、神経をつなぐかグ○メ細胞の力を借りる必要があるでしょう。
コンピュータの世界も同じです。
マウスでもキーボードでもモニタでも、ただ単に接続しただけでは動きません。
コンピュータさんが「あぁ、こいつがくっついたんだな。これからは俺の一部として動くんだな」と理解しないと動かないのです。
コンピュータさんが「あっ、こいつがくっついたんだな」と認識するには専用のソフトが必要です。
デバイスを動かすためのソフトがコンピュータの中に入ることで、はじめてデバイスは動きます。
この
デバイスを動かすためのソフト
がデバイスドライバです。
ここまでの説明を読んで「えっ?わざわざデバイスドライバを入れなくても普通に使えているよ?」と思う人もいるでしょう。
デバイスドライバを入れなくても使えるのは、よく使いそうなデバイスドライバが最初からコンピュータに入っているからです。
デバイスドライバは「なくても使える」では、ありません。
なくても使えるように見える場合は「すでに(最初から)入っている」のです。
デバイスドライバ
5
タスクのスケジューリング方式
1.タスクには優先順位をもたせず、実行可能状態になった順番から実行する方式
2.現在実行しているタスクよりも優先順位の高いタスクが実行可能状態になると、そっちを優先する方式
3.一定時間内に終了しないタスクは途中でやめて後ろに回す方式
1.到着順方式(FCFS) 2.プリエンプション方式 3.ラウンドロビン方式うしき
6
詳しく書くよ
サクッと一言で説明すると
タスクやプロセスより細かい処理の実行単位
が「スレッド」です。
何を言ってるのか、さっぱり分かりませんね。
例えば、カレー作成プログラムを作るとします。
やるべき処理は
1.ご飯を炊く
2.カレーを煮込む
3.お皿に盛る
の3つです。
他にも、らっきょうを買ってくるとかお水を用意するとかいろいろあるでしょうが、一先ず気にしないでください。
この3つの処理をやるプログラムを作ります。
一番単純な作りのプログラムは、3つの処理を続けて書いたプログラムです。
処理が開始したら、ご飯を炊いて、カレーを煮込んで、お皿に盛ります。これで完了です。
このプログラムを、仮に「プログラム1」としましょう。
でも、ご飯を炊くのと、カレーを煮込むのは並行して行えますよね?
ということは、処理が開始したら、ご飯を炊くと同時にカレーを煮込んで、両方終わったらお皿に盛る、でもカレーは出来あがります。
こちらのプログラムは「プログラム2」としましょう。
プログラム1もプログラム2も立派なカレー作成プログラムです。
どちらを動かしても美味しいカレーが出来上がります。
それでは、実際にカレー作成プログラムを動かしてみましょう。
カレー作成プログラムは1つのタスクです。
動かすと、プロセスが1つ立ち上がります。
カレー作成プログラムが処理を開始しました。
プログラム1の方では「ご飯を炊く」処理が動きます。
プログラム2の方では「ご飯を炊く」処理と「カレーを煮込む」処理が動きます。
このとき動いている、それぞれの処理(の単位)が「スレッド」です。
プログラム1では1つのタスク、1つのプロセス、1つのスレッドが動いています。
プログラム2では1つのタスク、1つのプロセス、2つのスレッドが動いています。
イメージしづらければ、処理開始から処理終了までの流れを線で引いて、その線一本一本がスレッドだと思っても構いません。
プログラム1は、処理開始から処理終了まで一本の線です。
プログラム2は、途中で一時的に二本に枝分かれしています。
このそれぞれの線がスレッドです。
余談ですが、プログラム1のように流れが1つの処理は「シングルスレッド」と呼ばれます。
プログラム2のように流れが複数に枝分かれして並行処理が発生している処理は「マルチスレッド」です。
併せて覚えてあげてください。
これが、プログラムにおけるスレッドです。
あとは、掲示板なんかでも「スレッド」という表現が出てくる場合があります。
こちらの「スレッド」は
話題、トピックスごとのまとまり
です。
2ちゃんねるのような形式の掲示板では、1つの話題ごとに1つのエリアが用意され、そのエリア内で返信を付ける形で、あーだこーだとコミュニケーションを取ります。
その話題ごとのまとまりをスレッドと言います。
まぁ「スレッド」って単語が出てきたら「プログラムの処理の実行単位、もしくは、掲示板におけるトピックス毎のまとまりなんだな~」と、お考えください。
スレッド