蔦のロゴ

書籍「オペレーティングシステム」のサポート

コロナ社刊 コンピュータサイエンス教科書シリーズ 7 OS

章の扉の設問

章の最初に身近なこととOSとに関連した設問を入れることを計画しましたが、書籍「オペレーティングシステム」では紙幅の関係から省略しました。参考までに、計画していた設問を下に示します。

第1章 オペレーティングシステムとは

さまざまな機能を有する行政機関などの複雑な組織の場合に、利用者がたらい回しにされることなく、サービスを受けることができるようにするには、窓口をどのようにすれば良いか?また、長く待たされることなくサービスを受けることができるようにするためにはどうすればよいか?そのような効率的なサービスを提供するために、複雑な処理をより管理しやすくするためにはどのような組織構造にするようにすれば良いか。

第2章 実行管理

学期末で講義のレポート締切が迫っているが、A君はまだ書けていない。レポートを書くために必要な見込み時間や締切の時期はそれぞれ異なっている。どのレポートの単位数も同じで、できるだけ取得単位数を増やすことが目的とした場合に、A君はどのような順序でレポートを書くべきか?

第3章 同期通信

偏屈者が集まるちょっと変わった人里離れたキャンプ場でのこと。調理・配膳道具は、ガスコンロ1口、鍋釜類1式、食器類1式しかない。ここで集まってきた人が食事を作るために道具を使い始めた。集まって来ている人はキャンプ場のルールには従順に従うが、一度確保した道具類は、自分の料理が済むまで手放さない。このため、Aさんが調理をするためにガスコンロ、Bさんが鍋釜類、Cさんが食器類とばらばらに確保すると、誰も料理が進まない三すくみになってしまう。このような状況で料理が進み、なおかつ各道具類の利用効率を高めるにはどのようなキャンプ場のルールを定めればよいか?

第4章 デバイス管理

エレベータが1基しかない10,000階建ての不思議なビルでのこと。各階でエレベータがさまざまなタイミングで呼ばれる。不思議なエレベータに上下の呼び出しボタンはなく、呼ぶことしかできない。呼んだ人は、エレベータに乗れば満足する。エレベータの箱には何人でも人が載れる。このような場合に、エレベータを動かして呼ばれた階で人を載せる必要があるが、どのようにエレベータを動かせば、人をエレベータに載せるためにかかる時間を短くできるか?また、どのようにエレベータを動かせば、省エネのためにエレベータの移動を少なくすることができるか?

第5章 記憶領域管理

カウンター席がずらっと1万席以上並んだ不思議な食堂。大変繁盛しているが、ここにグループで来たお客さんは、全員が並んで席がとれないと満足しない。連続した席が取れるまで待っている。各グループは一斉に着席し、食事が終わったら皆一緒に帰って行く。受付係のあなたは、お客さんを全員満足させるように席を割り振らなければならない。どのように割り振ればよいか?割り振り方によって効率に差が出るか?すべての席を見通せないので、空いている席を管理しなければならないが、どのように管理すれば効率的か?また、連続していないからという理由で空いている席が無駄になっていることは営業上の理由から避けたい。どのようにすればそのような空きの席を少なくできるか?

第6章 仮想記憶

あなたは不思議な作業場で働いている。手順に従って沢山の部品を使って作業をしなければならないが、あなたには机が一つしか与えられておらず、部品を机の上以外に置いてはいけない。このために机の上における部品の数には上限がある。部品を倉庫に戻したり、倉庫から持ってきてもらったりすることはできるが、倉庫は遠い海外にあり、あなたが机の上の部品を使い、手順に従って1つの作業する時間を1秒とすると、倉庫との間の運搬には1週間以上かかる。できるだけ手順に従ってすべての作業を完了するためには、倉庫との間でどのように部品を移動するように指示を出せばよいか?

第7章 ファイルシステム

あなたは不思議な会社の顧客管理係。会社では、コンピュータは使えず、顧客名簿は100人の名前が書ける定型の紙に書いて管理しなければならない。名前を言われたら、素早くその人の情報を取り出せる必要がある。また、新しい顧客が増えたら、効率よくその情報を追加できなければならない。取引を望まなくなった顧客からの連絡があれば名簿からすぐに削除しなければならない。現在、顧客は10万人いる。どのように顧客名簿を管理するのが効率的か?

第8章 ネットワーク

あなたは、沢山の荷物を扱う全国規模の運送会社の管理者。その会社では、荷物はさまざまな配送拠点を経由して届けられるが、稀に荷物が紛失する。荷物の紛失を検出するにはどのようにすれば良いか?

第9章 並列分散処理

人が集まって力を合わせて仕事を完了したい。仕事をいくつかの段階に分けることができる場合はどのように仕事を割り振ればよいか?仕事が容易に分割可能な場合にどのようにすればよいか?また、仕事を分割した際の問題点は何か?

第10章 ユーザインタフェース

あなたは作成しているソフトウェアをさまざまな地域の文化や言語に対応させたい。アプリケーション単独でするとしたらどのような方法をとるか?複数のアプリケーションが容易にさまざまな文化や言語に対応できるようにするためには、オペレーティングシステムにどのような支援を求めるか?

第11章 保護とセキュリティ

異なる入室システムを採るマンションが3棟。ある棟では、入室の許可証が個人に発行され、許可証を持った人は入ることができるが、対応する許可証を持ってないと入れない。別の棟では、各部屋に入れる人のリストがあり、リストに載っている人は入れるが、リストにない人は入れない。もう1つの棟では、扉に複数の錠があり、そのどれか一つの錠に合う鍵を持っている人が入れる。それぞれのシステムを機能させるためにはどのようにすれば良いか?また、部屋に入室できる人を変えたい場合には、それぞれどのようにすれば良いか?

第12章 構成法と事例

大きな会社組織が1棟のビルに入って仕事をしていた。この会社が部門毎に分社化され、分社化された各会社は別のビルに移動し、各会社間は小さくなった本社(親会社)を介してしか連絡が取れなくなった。また、分社化された各会社は親会社からのみ仕事を受けるようにした。分社化前と比べてよくなった点、悪くなった点は何か?