• ベストアンサー

[コンピュータアーキテクチャ]割り込みについて

(1)割り込みの優先順位はどのような方法で決定されているか説明しなさい。 (2)入出力割込みの必要性について、プロセッサと入出力装置における時間経過にしたがって具体的に説明しなさい。 コンピュータアーキテクチャについて、以上の2つの設問が分かりませんでした。助言をお願いします。 (1)の設問では、インターネットで調べたのですが、割り込みなどのプロセスやタスクはディスパッチ処理などによって割り当てられている、ということが分かりました。 調べると、例えばディスパッチ処理では、「ディスパッチの優先順位はタスク毎に決められており,作られた時刻に関わらず優先順位の高いタスクから順にディスパッチされていく」ということまでは分かったのですが、その優先順位はどうやって決められているのか?ということが分からず困っています。 そして(2)の設問では、調べただけでは分かりませんでした。「入出力装置における時間経過」の意味が分からず、どう具体的に説明していいのかも分からない状況です。 以上の2点についてご回答お願いします。 質問に補足しなければいけない点などがあればコメントしてください。

noname#236785
noname#236785

質問者が選んだベストアンサー

  • ベストアンサー
  • R32C
  • ベストアンサー率39% (115/290)
回答No.4

1)CPUにより方法が異なります、一概にこういう方法というのはありません。 一部勘違いされていることがあるので、コメントしますが マルチタスクOSにおけるプロセス、スレッドの優先度とCPUの割り込み優先度とは別のものです。 CPUの割り込み優先度、優先順位一般的に私の知る限り、 CPUの割り込み優先度は、 1)レベルで数段階の優先度を持つタイプのCPU 2)ノンマスカブル、マスカブルの2段階しかないもの 3)そもそも優先度という観念がないが、プログラムで振り分けできるもの があるかと思います。 そもそも優先度、優先順位とは、 同時に複数の割り込みが発生した場合にどちらを先に実行するかという ことです。 上記1)2)の場合には、デバイス毎に優先順位がデフォルトで決まっていて それによります。 1)の場合はプログラムであらかじめデバイス毎にどのレベル にするかを指定することが可能です。3)の場合は、共通ルーチンから割り込み要因を 自分で判別するので、どれを先に処理するかを決めることで優先度をつけることが可能 になると考えます。 2)詳しくは書きませんが、マイコンのハードウエアマニュアルなどに書かれている タイミングチャートを想定すればよいかと思います。横軸に時間、縦軸には いろんなイベントのオンとオフがあるというチャートです。 たとえば、SIO RS232C 9600bpsのデータ通信中に カードリーダ(DMA、完了時に割り込み)の読み取りにより、施錠を解除するようなことを想定しましょう。 2つの割り込みが同時に起こる場合にどのようなタイミングで処理すれば 処理可能なのか、そのために割り込み優先度をどちらを高く設定すればいいのか それらを考えてチャートにしてみてはいかがでしょうか。

noname#236785
質問者

お礼

ご回答ありがとうございました。解決しました。

その他の回答 (3)

  • kusa_mochi
  • ベストアンサー率76% (1599/2089)
回答No.3

(2)について少々。 これはおそらく学校の課題だと思うので、直接答えを書く事はしません。 (利用規約に違反するからでもあるが) ヒントを出しておきますので、それを元にご自身で調査・推論を進めて答えに辿り着いて下さい。  ・入出力装置とOSとのデータの遣り取りのシーケンスを具体的に想像して見てください。   (キーボートからの入力でも、HDDからの入力でも構いません)  ・CPUの処理速度と入出力装置との処理速度の違いを調べて見てください。   (単位は1秒で良いかな)  ・割り込み処理の対義語に相当する「ポーリング処理」の意味を調べて見てください。

noname#236785
質問者

お礼

ご回答ありがとうございます。ボーリング処理で割り込み処理を説明することも出来るようですね。

noname#75489
noname#75489
回答No.2

他の方も回答されている通り、この設問の回答は主題により変わりますが、μITRONで考えるといいと思います。(Webにいくらでも資料・説明はありますし) ちなみに授業・講義の課題で出た設問だと思いますが、その中で説明や配布された資料の中には、これらについて何も記載がないのでしょうか?(特に時間経過の図は割り込みの説明に必ず登場しそうなものですが...)

参考URL:
http://www.nces.is.nagoya-u.ac.jp/NEXCESS/blog/index.php?itemid=28
  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

(1)(2)だけでは、割り込みに関する主題がわかりません。 それによって多少内容が違ってきます。 >その優先順位はどうやって決められているのか?ということが分からず困っています。 設計上で利用頻度や重要性などを鑑みて決めます。 >「入出力装置における時間経過」の意味が分からず、どう具体的に説明していいのかも分からない状況です。 (1)にも関係しますが、まず「割り込み」という概念、結局のところなぜ「割り込み」という処理が必要かについては理解されていますか? 質問とは離れて、一例として記載します。 例えば、デスクワークで筆記作業を行っている時に電話かかってきました。 この「電話がかかってくる」ということが割り込みになります。 ここでは二つの選択肢があります。 a.電話に出ないで筆記作業を継続する。 b.一時筆記作業を中断して電話の応対を行う この「筆記作業」と「電話の応対」のどちらを優先するかが優先度です。 また、a/b以外に「かかってきた相手先によって電話に出るかを判断する」という行為も考えられます。 この「かかってきた相手」も「応対する/しない」といった行為をおこなうので「優先順位」になります。

関連するQ&A

  • AVRマイコンの割り込みについて

    AVRマイコンの割り込みについて 初心者です。 ・AVRマイコンの割り込みの優先順位ですが、割込みベクターのアドレスが小さい順に優先度が高いでよろしいでしょうか? ・優先低の割り込みルーチンを処理している時に、優先高の割り込みが入った場合、  (1)優先低の割り込みルーチン処理中断→優先高の割り込みルーチンの処理、完了→優先低の割り込みルーチン処理再開(中断ヶ所から)  (2)優先低の割り込みルーチン処理、完了→優先高の割り込みルーチンの処理、完了  (3)その他 (1)、(2)、(3)のどの処理が行われますか? ・優先高の割り込みルーチンを処理している時に、優先高の割り込みを禁止し、ルーチン内で優先低の割り込みが入った場合、優先高の割り込みルーチンから優先低の割り込みルーチンにとばすことは可能でしょうか? 以上、よろしくお願い致します。

  • サービスルーチンの実行の流れ

    (c)ある処理を実行中に割込が発生してから、対応するサービスルーチンを実行し、元の処理に復帰するまでの一般的な処理の流れを説明せよ。 (1)プログラムの実行 (2)割り込み要求 (3)状態の退避 プロセッサは入出力装置の応答を待たずに実行中のプログラムをいったん停止して、他のプログラムを実行する。 (4)割り込み処理 元のプログラムに入出力動作が指定されると、OSに処理を依頼する。OSは入出力動作を起動し、他のプログラムに制御を渡す。 (5)状態の復元 入出力装置からの動作完了割り込みがあったとき状態を復元 (6)プログラムの再開 OSは入出力処理を実行後、元のプログラムの実行を再開する。 と6段階のフローにして考えてみました。合っていますでしょうか?

  • osのタスク管理

    OSのタスク管理で1実行可能状態、2実行状態、3待機状態があって、待機状態というのはCPUの処理を終えて入出力装置の処理を待っている状態なのですか? タスクが生成されると[実行可能状態]にドンドン溜まるのでしょうか?そして優先的に[実行状態]に送られるのでしょうか? あと[実行可能状態]と[待機状態]は1次キャッシュで待機している状態なのでしょうかそれともメモリで待機している状態なのでしょうか? タスクの状態偏移について詳しく教えて下さい。

  • TRONのラウンドロビンについて

    SH704x-10MHzでiTRONのお勉強を始めました。 従来のシングルスレッドだった時、 タッチパネルに加工処理したデータを表示させるのに約0.5秒ほどかかっていた処理が 今回Taskとして組み込むと約4.5秒かかるようになってしまいました。 (この時アイドルTaskと上位優先順位Task有り。但し上位優先順位Taskはデータ表示処理を起床させ自らはスリープ) 更にタッチパネルの状態をチェックするTaskも同じ優先順位で組み込むと67秒もかかるようになってしまいました。 サンプルプログラムはCMT0の1msec割込み毎にirot_rdqを実行していたのですが、10msec経過してからirot_rdqを実行する方法に変更したところ5.6秒に劇的に短縮されました。 が、本来の速さにはまだまだ程遠い状況です。 irot_rdqは100msecにもしてみましたが10msecの時より若干速くなっただけでした。 CMT0処理(irot_rdq含むとき)はトレースを追ってみると約0.2msecかかっているのですが CMT0内の処理が多すぎるのでしょうか? それともirot_rdqは「こういうもの」なのでしょうか。 ネットでは同件のような情報が見つからず。 書籍を購入するにも知りたい事が書かれているのか調べられず。 サンプルプログラムは簡単すぎて参考にならず。 どなたかご存知の方いらっしゃいましたら是非 ご指導お願いいたします。

  • 割り込み処理が非常時に重要な理由を教えてください

    今、読んでいる理工書に「機械装置の制御用コンピューターのソフトウェア構成では、割り込み処理が非常時に重要である。」と書いてあったのですが、どうしてなのか教えてください。  ちなみに、優先順位の決定なども混ぜて教えてください。

  • コンピュータアーキテクチャ

    教えてください! クロックサイクルが80nsのプロセッサAとクロックサイクルが20nsのBがあり、両プロセッサの各命令実行に、必要なクロックサイクル数は下表に従うものとする。今プロセッサに加算命令を10回、乗算命令を4回、無条件分岐を3回実行させる場合を考える。このときプロセッサをAからBに置き換えた場合の平均的な性能向上率を求めよ。 プロセッサA      クロックサイクル数  加減算命令    5         乗除算命令    8         無条件分岐    6         プロセッサB      クロックサイクル数  加減算命令    2         乗除算命令    5         無条件分岐    20        

  • コンピュータアーキテクチャ

    MIPSに即値による減算命令が存在しないのはなぜでしょうか?

  • コンピュータアーキテクチャ

    教えてください! クロックサイクルが60nsのプロセッサAとクロックサイクルが30nsのBがあり、各プロセッサが命令を実行するのに、必要なクロックサイクルおよび、プログラム中での各命令の出現頻度(使用確率)が下表に従うとする。ここで、システムのプロセッサをAからBに置き換えた場合の平均的な性能向上率を求めよ。 プロセッサA      クロックサイクル数 命令の出現頻度 加減算命令    8        60% 乗除算命令    3        10% 無条件分岐    2        30% プロセッサB      クロックサイクル数 命令の出現頻度 加減算命令    2        50% 乗除算命令    6        20% 無条件分岐    4        30%

  • コンピューターアーキテクチャーについて

    現在、大学院でコンピューターアーキテクチャーのクラスを取っています。中間試験で下記のような問題が出ました。 「コンピューターCは100MHZで動作します。各クラスのClock cycles Per Instruction(CPI)は次のようになります。 Instruction Class i CPIi Integer ALU 1 Branch 2 Load/Store 3 Floating-Point Operation 4 プログラムPは次のようなループをコンピューターCで起動されます。 Loop: L.D F0,0(R1) <- Load/Store ADD.D F0,F0,F0 <- Integer ALU S.D F0,0(R1) <- Load/Store DSUBI R1,R1,#8 <- Floating-Point Operation BNEZ R1,Loop <- Branch レジスタR1の初期値は2000です。 質問1)プログラム全体のTotal Execution Time(TET)を計算しなさい。 そして回答が実はあるのですが、 プログラム全体のClock cycles Per Instruction(CPI) = Total Sum of (Instruction比x各CPIi) = (1/5)x1 + (1/5)x2 + (2/5)x3 + (1/5)x4 = 2.6 Total Execution Time = (InstructionCount) x CPI / Clock Rate = 250x5x2.6/100x10^6 = 32.5us ここでInstructionCountが何故250x5と計算されるのかわかりません。 面倒な質問ですが、よろしくお願いします。

  • コンピュータアーキテクチャ

    教えてください! 下図のようなシステムの全体としての稼働率が90.65%であり、ユニット1の故障間隔以外の各ユニットの平均修理時間間隔、平均故障時間が下表に従うとき、ユニットの平均修理時間を求めよ。  ーーーーユニット1ーーーーーーー |                |     | ーユニット3         |          ー       ーユニット2ーーー|      ーユニット2 3,2は並列です。 平均修理時間間隔  平均故障時間 ユニット1      40 ユニット2 180    40 ユニット3 375    125