スゴ技

平成23年度 特別 基本情報技術者試験 【問2】(その1)

Blog: |

ブログの次男こと宮本です.

本日より夏休みです.学生の皆さんは有効に時間を使っていることと思います.というわけで,こちらも静かな職員室で有効に時間を使ってみることにします.先日実施された基本情報技術者の特別試験の解答を書いてみたいと思います.なぜか午後の問2の担当になってしまったので,まずはそれから.

問題の内容はCPUスケジューリングです.解答例はIPAのサイトに載っています.以上.

・・・それだけでもいいのですが,せっかくなのでもう少し補足したいと思います.この手の問題は,タイミングチャートを描けば間違いが少なくなりますし,あとで見直しにも役に立ちます.

【設問1】 まずは到着順(FIFO)方式から.表の通りの順にプロセスを実行し,すべて中断せずに最後まで処理します.太い横線は実行中を表しています.また,太い縦線は投入時刻および処理終了時刻を表しています.

上図より,ABCD それぞれの到着時刻から処理終了時刻までの時間が割り出せます.平均ターンアラウンドタイムは,以下の通りです.

(180+250+270+270) / 4 = 242.5 [ms]

ラウンドロビン(RR)方式では,20 [ms] ごとに処理が切り替わるので,4つのプロセスがそれぞれこま切れになります.同じ要領で図を描いてみましょう.

上図より,平均ターンアラウンドタイムは以下の通りです.

(320+210+130+70) / 4 = 182.5 [ms]

この場合注意してほしいことは,最初にA→Bの順に切り替わるところまではいいとして,その次にどのプロセスを実行するかということです.Bが中断された時点でCが既に投入されていますが,その前に中断されたAが先に待ち行列に並んでいます.ですので,処理順はA→B→Aとなります.同じ理由で,2回目のAが中断された時点でDが既に投入されていますが,これよりも前にCが待ち行列に並んでいます.よって,A→B→A→Cの順に処理されます.ついA→B→C→Dと考えてしまいがちですが,それは間違いですので気をつけてください(ちなみにこの順で最後まで処理すると,平均ターンアラウンド時間は167.5 [ms] になりますが,選択肢にないので間違いだということがわかります).

これらより,FIFO方式よりRR方式の方が無駄がないことがわかりますね.実際には,プロセスの切り替えには無視できないオーバーヘッドが発生しますので,理論通りにはなりませんが.

今日は図を描くのに疲れたので,残りは次の機会に.

 

2011年(平成23年度)特別の解説

Date:

Tagタグ

Teamライターチーム紹介

神戸電子オフィシャルSNS

オープンキャンパスなどの
誰でも参加OKの楽しいイベント
やブログの最新記事などお届けします!

ページの上へ移動