☆極めて自己流なので、間違ってても許してちょんまげ(山崎美子&けーこ)
- ユーザのプログラムとは何か?
- アプリケーションソフトウェア(表計算ソフト、文書処理ソフト等)
エディタのようなシンプルなものから高度な文書処理のソフトまで。OSの制御をうけて動くプログラム。
- 情報とは何か?
- プログラムとプログラムが使うデータ
- 入力装置と出力装置の脇
- CPUになぜ制御装置と演算装置が入っているのか?
- 演算装置はコンピュータの中で最も高速に動作する部分であり、制御装置は演算装置と周辺機器を接続しなければならないので高速に動作することが求められるから。
- 主記憶装置の媒体は何か?
- 補助記憶装置の媒体は何か?
- 入出力チャネルとは何か?
- 周辺装置はなぜ周辺というのか?
- ハードウェアとは何か?
- コンピュータを構成している電子回路や周辺機器などの物理的実体のこと。
- 利用環境とは何か?
- コマンド、Xwindowシステム、ファイルシステム、システム管理
- ユーザとは誰か?
- ジョブとは何か?
- プログラムとデータを合わせたもの。
(今…FD、CD等。昔…カード、紙テープ)
- 入力装置とは何か?
- 出力装置とは何か?
- オペレータを不要にするにはどうしたらよいか?
- プログラムの実行とは何か?
- プログラムとは様々な命令とデータの集合体である。プログラムを実行するということはその命令を実行すること。その命令には主に、四則演算、論理演算、入出力などがある。
- プログラムが実行できないとはどんなことか?
- OSが一つのプログラムしか管理できないと、1つの作業をしている間他の作業が出来ない。つまりその間プログラムが実行できない。
- 多重プログラミングでは、どんな困った問題が起こるか。
- メモリをたくさん使う。
- CPU負荷の高いプログラムを実行すると、プログラムがメモリに残ってしまう
- 端末とは何か?
- 入力…キーボード
- 出力…(今)ディスプレイ (昔)プリンタ
- なぜTSSというのか?
- オンラインリアルタイム処理とTSSの違いは何か?
- TSSはやれることに制限がない。何でもできる。
- 形態は同じ。端末の種類が違う
- (専用か汎用かってことかな?)
- 実メモリとは何か?
- 補助メモリとは何か?
- 仮想的とはどんなことか?
- メインメモリと磁気ディスクを組み合わせて、あたかもメインメモリが無限にあるように見える(=仮想)こと。(プログラムから見たとき、無限に近いメインメモリがあるように見える)
- なぜ仮想計算機が必要か?
- 同じコンピュータを多人数が同時に使用してても相手を意識しなくていい
- 改良されたOSのテストをする場合に、 OSのテストと従来の仕事を同時に進めなければならない場合、互いに影響がないように仮想計算機を使用してうまく作業する。
- 仮想計算機とOSの関係を述べよ。
- リアルタイム処理はどんなところで使われるか?
- レスポンスタイム(処理が始まるまでの時間、応答時間)が重視されるところ
- 例えば、機械の状況や環境を車に取り込んで、ぶつかりそうになったら勝手にブレーキを踏むとか。ABSとか。(注:エアバックシステムではありません!!)
- 外界の信号とは何か?
- 例えば、工場のパイプの中の圧力や温度など。圧力が上がったら圧力を逃がす。決められた時間内に制御信号を出してあげる。
- メモリ共有型でないマルチプロセッサはどんなものか?
- マルチプロセッサの利点と問題点は何か?
- 利点:計算能力が上がる(CPUがたくさんついてるから)
- 問題点:メインメモリは一つしかないので、別のCPUが同時に処理をしようとしたら待たされるので、効率が良くない。
※CPUがたくさんあるのがマルチプロセッサ。1個しかないのはシングルプロセッサ。
- アセンブラ言語の利点はなにか?
- 機械語と1:1で対応しているので、効率が良い=処理が速い。(コンピュータにとって)
- 真空管にはどんな働きがあるか?
- プログラムの外付け方式とはどんなことか?
- メインメモリにプログラムがない=フォンノイマン型ではない
(フォンノイマン型:メインメモリの中にプログラムを置いておく方法)
- delay storageとはどういう意味か?
- 遅延メモリ
(水銀と超音波を使ってデータを記憶する→シーケンシャルアクセスメモリ)
- 高水準言語の特徴は何か?
- 自然言語に近いので、人にとって使いやすい
- 移植性が高い
(移植性:あるコンピュータで動くプログラムを他のコンピュータに持っていっても動くかどうか)
- ユーザはハードウェアをあまり意識しなくていい
- ユーザ団体はなぜ必要か?
- (メーカーにとって)ユーザを囲い込んで逃がさない
- (ユーザにとって)メーカーは優先的に情報を提供してくれる
- ユーザ同士で、情報を交換することができる
- ユーザがメーカーに対する圧力団体になる
→ユーザの団体としてメーカーに提案できる。協力関係
- 入出力装置とは何か?
- 入出力とは、どことどこの間のデータのやりとりか?
- メインメモリとその他の装置(ディスクやプリンタなど)
- 入出力割込みとは何か?
- 入出力が終わった(正常終了とは限らない)ことを知らせる割込み
- 1と2では何が違うか?(図参照)
- 1は、バッファが一つしかないので、入力か出力かのどちらかしかできない
- 2は、バッファを2つ用意することによって、入力と出力を同時に行うことができる。
- プログラムの誤りには、文法的なものと、論理的なものとがあるが、両者を説明せよ。
- 文法的なもの
- つづり間違いや変数の定義忘れ
- 文法が合っていない など
- あやまりの検出はコンパイラでする
- 論理的なもの
- プログラムが走ったときに、結果が正しくでない
- 数式が間違っている
- 間違った変数を使っている など
- 罠とは何か?
- 命令がどういうルートを通って実行されるか、トラップ命令(割込み命令)をいれて確認する。
- スケジューリングの対象は何か?
- アルゴリズムとは何か?
- スプールとはどういう意味か?
- 後回しにしてもいいようなジョブ(印刷など)をためておいて、都合のいい時に処理する機能。
- システムコールがなぜ割込み命令なのか?
- CPUがユーザのプログラムの処理の要求があるかを逐一見に行く(=ポーリング)のは効率が悪いため。
(システムコール:ユーザが、自分ではできないことをOSに頼んでやってもらう機能)
- ページ方式の利点は何か?
- ページとフレームの対応はどのようにつけるか?
- ページテーブル(という対応表)を作って対応付ける。
- ページインが急に多くなったらどうなるか?
- 最悪の場合停止する=ハングアップ
- それを避けるには、メインメモリにほどほどに(余裕をもって)プログラムをおいておけばよい。
- ページアウトされるのはどのようなページか?
- メモリにしばらくあるが、さっぱり使われていないページ
- 連想記憶は高価である。なぜか?
- どのような条件があれば上位互換か?
- 機械語の命令コードに互換性がある。(Aの機械語をA’で使えるってこと)
- 下位互換はあるか?
- Aにはない新しい機械語の命令が付加されている可能性がある。
- バイト方式以外にはどのようなものがあるか?
- バイト方式の利点は何か?
- 利用効率が良い
- 例えば、アルファベット(1バイト)を取っておきたいときでも、ワード方式だと4バイト分のメモリ領域が必要になってしまうから。
- CP(control program)はどのような役割をもつか?
- プログラムの処理状況を監視するソフトウェアかな?(激しく自信なし)
- 資源にはどんなものがあるか?
- 木構造のファイルシステムで、どのようにファイルを指定するか?
- 木構造の利点は何か?
- ファイルを整理して分類できる
- 必要なファイルディレクトリだけ見ることができる
- 2次元アドレス方式の利点は何か?
- 通常のアドレス(1次元)だと、実アドレス(=プログラムを置いている場所)を気にしなくてはいけない。しかし、2次元のアドレスでは、自分のセグメントからのオフセット値を気にするだけでいい(=メインメモリのどこにあるかは気にする必要はない)
- リング機構は何のためのものか?
- メモリ(プログラム)を保護するため=ユーザのプログラムからOSのプログラムを書き換えられないようにするため
- リング番号0にどのようなプログラムを置けばよいか?
- ダイナミックリンキング(ダイナミック=動的)の利点は何か?
- メモリの節約になる(エラー処理をするプログラムなら、エラーがあったときだけ呼び出せばいいから)
- なぜ開発にC言語を用いたのか?
- 始めはアセンブラだったが、C言語を開発した人がC言語の実力をUNIXで試してみた。
- ソースプログラムを公開するとどんな効果があるか?
- システムプロセスとユーザプロセスの間の通信はどのように行うか?
- 入出力の標準化がないとどんな不便なことがあるか?
- 標準化しないと、画面の表示や印刷などが同じ方法で行うことができない
- いろいろなシェルが使えると、どのような利点があるか?
- 使いやすい(柔軟性がある)
- シェルによってそのシステムの機能を限定することができる。つまり、ユーザをコントロール(制御)できる=セキュリティをつけられる
- パイプがないときはどのような方法を用いるか?
- 中間ファイルに保存する(ファイルを定義しなくてはいけないので不便)
- エディタにはviのほかにどのようなものがあるか?
- sed,awk
- ex
- emacs,mule,xemacs
- どんな開発ツールがあるか調べよ
- head,tail,grep,egrep,sort,uniq
- デバッグの方法をいくつかあげよ
- breakポイントを設定して、プログラムを一時的にとめてデバックする
- coreファイルをアタッチする
- プロセスにアタッチする
- printfを散らす
- なぜ米国国防総省による開発なのか?
- PC(program counter)の働きを説明せよ
- 次実行する命令の入ったメモリのアドレスを保持しておく場所。
- 1命令実行するごとに+1される。
- PCに対する加算がジャンプ命令になる。
- CPU状態とは何か?
- 汎用レジスタは何に使うか?
- 割込みはなぜ必要か?
- マスクビットの働きは何か?
- マスクビットがないとどうなるか?
- 優先順位の高い割込みをしているのに優先順位の低い割込みに切り替わってしまう
- PC(program counter)の内容とCPUの状態を待避するのはなぜか?
- 特権モード、非特権モードとは何か?
- 特権モード:OSのプログラムが動くときのモード(状態)。なんでもできる。
- 非特権モード:ユーザのプログラムが動くときのモード(状態)。やれることが制限されている。
- PCの入れ替えは誰が行うか?
- 割込み処理ルーチンでは、最初にどんな処理を行うか?
- プロセス数とCPUの個数はどのような関係になるか?
- 実行できるプロセスがないとき、CPUはどうなるか?
- タイムスライスとは何か。また、なぜそれが必要か?
- タイムスライス…プロセスの最大連続実行時間
- 計算だけするプログラムがCPUを使い続けると、他のプログラムが実行できなくて都合が悪い(=他のプロセスの待ち時間が長くなる)
- プロセスの一意名とは何か?また、なぜそれが必要か?
- プロセスを識別するための番号とか。
- プロセスを識別しやすくするため。
- プロセスの生成と消費は誰が行うのか?
- タイムスライスはなぜ必要か?
- 計算だけするプログラムがCPUを使い続けると、他のプログラムが実行できなくて都合が悪い(=他のプロセスの待ち時間が長くなっちゃう)
- プリエンプションとはどのようなことか?
- 優先権(直訳は、先取り)
- 他にCPUを要求する優先度の高いプロセスがあった場合、タイムスライス中でも、そのプロセスの実行を強制的に止める(CPU待ち状態にする)。
- ポインタの実体は何か?
- (指している場所は)PCB(process control block)
- リストとは何か?
- 各要素をポインタによってつなぎ合わせたもので、データと次の要素を示すポインタの対からなるセルを連結したもの。
- リスト処理はどのような利点があるか?
- データはメモリ上のどこにあってもポインタによって参照可能
- メモリ上で順番に格納されている必要がない
- 要素の移動を行わないで、追加・挿入・削除ができる
- 協力プロセスとはどのようなものか?
- クリティカル資源とはどのようなものか?
- TS(test and set)命令はなぜ必要か?
- ロックバイトがONかOFFかを見るために必要
- (アクセスを受け付け可能かどうか)
- LOCK命令を実行しようとしたとき、ロックバイトがONならどうなるか?
- 単一連続割付け方法は、どのような場合に使われるか?
- 1つしかプログラムを置かない場合(空きがあるうちは置けるけど)
- (初期の段階のパソコンのOS)
- 境界を設けることの利点と欠点は何か?
- 利点:別のプログラムに悪さ(書き換えたり)できない。
- 欠点:大きいプログラムが入らない。3つに区切ったら4つ以上入れれない。
- MVT(分割割付け)の実現では、何が難しいか?
- 境界がないので、個々のプログラムに対して記憶保護をするのが難しい
- 再配置にはどのような問題点があるか?
- 再配置する時間が無駄
- プログラムの中に、絶対アドレスが指定されている部分があると、
再配置が正しく動かないかもしれない。(解決法:再配置レジスタ(6-5-A))
- 再配置レジスタを使うと、どのような利点があるか?
- 多重仮想記憶の利点は何か?
- プロセスが何個あっても、いつも最大の(仮想)空間を使える
- メインメモリのページを磁気ディスクに移すとき、どのようにしてページを選ぶか?
- ある時間使われなかった(参照回数の少ない)ページを移す。
- セグメントQはどのような意味をもつか?
- 両方のプログラムに共通するセグメント=セグメントの共用
- ブロック方式の利点と欠点は何か?
- 利点:ディスクスペースを有効的に利用できる
- 欠点1:無駄がある=ブロックを管理するスペース(ポインタを置いておく場所)
が必要だから
- 欠点2:処理が複雑になる
- 木構造の利点と欠点は何か?
- 利点1:ファイルを整理して分類できる
- 利点2:必要なファイルディレクトリだけ見ることができる
- 欠点 :手間がかかるのでめんどくさいし、容量もちょっと無駄