A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#1 です.
> (a)1回のループで全ての処理を終わらせる 方法
> と
> (b)1回でなく、複数回に分けて全ての処理を終わらせる 方法
> の呼び名のことです。
複数のアプリケーションを短時間で切り替え,同じ優先度の処理を
順繰りに実行する場合,そのスケジューリングを OS が行っている
のならば,#2 さんが書かれているようにラウンドロビンと言いますが,
アプリケーションが自分で行う場合の名前は聞いたことがありません.
(そういうプログラムを昔書いたことはありますが.)
(a) 対 (b) の図式に近いものはバッチ処理と時分割処理 (Time Sharing)
でしょうか.ただしこれも OS がスケジューリングを制御していることには
変わりありませんが.
バッチ処理 (Wikipedia)
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83% …
タイムシェアリングシステム (Wikipedia)
http://ja.wikipedia.org/wiki/%E3%82%BF%E3%82%A4% …
> 例えば、重たい処理を1回のループで全て順番にやっていこうとすると、
> 処理A→処理B→処理C→・・
> と処理Cを行うときには、処理Aを行ってからかなりの時間が経過して
> いる可能性がありますよね?
>
> なので、それぞれの処理を細かく分けて、
> 1回目のループ: 処理A-1→処理B-1→処理C-1→・・
> 2回目のループ: 処理A-2→処理B-2→処理C-2→・・
> 3回目のループ: 処理A-3→処理B-3→処理C-3→・・
> というように行わせたいのです。
リアルタイム性能を重視する場合,そういう処理の分け方をするのではなく,
「イベント発生から所定の時間内に終わらなければならない処理」と
そうでない処理を分け,前者を優先度の高いタスクとして実行するのが
普通だと思います.
また,リアルタイム OS では優先度を動的に変更する機能も持っています.
たとえば本来優先度の低い処理Aが終わらないと優先度の高い処理Bを開始
できない場合,Aの優先度をBの優先度まで上げて早く終わらせます (優先度継承).
リアルタイムシステム (Wikipedia)
http://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A2% …
優先度継承 (Wikipedia)
http://ja.wikipedia.org/wiki/%E5%84%AA%E5%85%88% …
No.2
- 回答日時:
複数のタスクを短い時間で切り替えて並行に実行する。
アプリケーション自身でそういう制御を行う構造には名称はなかったと思いますが、OSで行うものではラウンドロビン・スケジューリングと言いますね。このレベルだと、イベントがあったら対応する処理を一気に実行するのはFIFOスケジューリングでしょうか。
イベントによる割り込み・再スケジューリングがないとすると、どちらも処理中には次のイベントが処理できないという問題がありますね。
FIFOの長所は単純さです。余分な処理もないのでスループットは高いです。レスポンスは最悪ですけど。
ラウンドロビンはFIFOよりレスポンスは改善します。ただしプログラムの複雑化とオーバーヘッドが必要です。
特に各タスクをタイマ割込みで強制中断切替するのではなく、各タスクを分割して自発的に切替える(疑似マルチタスク)のなら、各タスクを適切な処理規模に分割して切り替え処理を呼び出す手間が掛かります。
No.1
- 回答日時:
> メインループで待機中、イベントが発生したらそれに対応する処理をその1回の
> ループで全て終わらせてしまうようなソフト構造を何と呼びますか?
イベント駆動型 (event-driven) プログラム.
で,そのループはイベントループ.
なお Windows の GUI アプリケーションでは,ほとんどのイベントは
ウィンドウ・メッセージなので,メッセージ・ループと呼んでいます.
"イベント駆動" で検索
http://www.google.co.jp/search?q=%22%E3%82%A4%E3 …
イベント駆動とは 【イベントドリブン】 - 意味・解説 : IT用語辞典
http://e-words.jp/w/E382A4E38399E383B3E38388E9A7 …
@IT:Insider's Computer Dictionary [イベント駆動]
http://www.atmarkit.co.jp/icd/root/82/5783582.html
イベント駆動型プログラミング (Wikipedia)
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%99% …
メインループ (Wikipedia)
http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4% …
> またそれとは逆に、イベントが発生したらそれに対応する処理を複数回のループ
> で終了させるような構造を何とよんだらいいでしょうか?
あらかじめループ回数を決めて,というのは聞いたことがないけど,
1回で全部処理するには時間がかかりすぎるから分割したいとか,
必要な条件が整わないから処理を次回に持ち越したい,ということですか?
> それぞれの長所、短所もおしえてください。
その2つを比較する趣旨がよくわからないんですが,
学校の課題か何かですか? OS の授業ですかね?
だとすれば,プリエンプティブ (前者) 対ノンプリエンプティブ (後者) ということかなぁ?
"ノンプリエンプティブ" で検索
http://www.google.co.jp/search?q=%22%E3%83%8E%E3 …
ノンプリエンプティブマルチタスクとは 【non-preemptive multitasking】 - 意味・解説 : IT用語辞典
http://e-words.jp/w/E3838EE383B3E38397E383AAE382 …
マルチタスク (Wikipedia)
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB% …
この回答への補足
ご回答ありがとうございました。
すみません、ちょっと質問のポイントがずれていたかもしれません。
お聞きしたかったのは、
(a)1回のループで全ての処理を終わらせる 方法
と
(b)1回でなく、複数回に分けて全ての処理を終わらせる 方法
の呼び名のことです。
例えば、重たい処理を1回のループで全て順番にやっていこうとすると、
処理A→処理B→処理C→・・
と処理Cを行うときには、処理Aを行ってからかなりの時間が経過して
いる可能性がありますよね?
なので、それぞれの処理を細かく分けて、
1回目のループ: 処理A-1→処理B-1→処理C-1→・・
2回目のループ: 処理A-2→処理B-2→処理C-2→・・
3回目のループ: 処理A-3→処理B-3→処理C-3→・・
というように行わせたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Visual Basic(VBA) EXCEL VBA ユーザーフォームの内容をループでデータベースに登録したい。 2 2023/02/02 10:22
- C言語・C++・C# C言語 2 2022/07/21 00:02
- 哲学 永劫回帰は時間的ループなのか、それとも構造的ループなのか 1 2023/04/10 21:37
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- リフォーム・リノベーション 設計+デザイン+構造計算(その構造で建てて大丈夫か判定がでる)フリーソフトありますでしょうか? 1 2023/07/07 15:59
- 流行・カルチャー 女同級生の悪癖・・・何処まで許せる?ベスト対応は何? 1 2022/07/22 19:19
- iOS Gragebandでのみ左クリックが有効にならない 1 2022/08/19 13:18
- 電車・路線・地下鉄 地下鉄駅のホームのレール(電車)について質問です。 あるTV番組で、駅のホームに向かって すり鉢状に 3 2022/11/29 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
応用情報技術者試験の令和元年...
-
インクリメント演算子のみを用...
-
Windows formアプリで データグ...
-
右ビットシフト
-
Linux Cプログラミングを学ぶた...
-
プログラミングについて。 1つ...
-
ArduinoのジャイロモジュールMP...
-
c言語
-
これなにがちがうんですか??
-
Int('1234') で、strをかんたん...
-
C言語 配列と関数の練習問題
-
質問失礼します。 プログラム言...
-
C言語の関数と配列に関する質問
-
どなたかこのプログラミングを...
-
VisualStudio2022でC言語プログ...
-
C言語をコンパイルするとコンピ...
-
どちのほうがすきですか?
-
Notepad++の関数リスト表示の変...
-
WindowsのCapsLock(キャップス...
-
double型が正常に認識されてい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列と関数の練習問題
-
システムエンジニアの適正について
-
[C言語]fputsとfprintfの違い
-
C言語をコンパイルするとコンピ...
-
mallocについて
-
どちのほうがすきですか?
-
ArduinoのジャイロモジュールMP...
-
大量のデータを読み込んで表示...
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
C言語 列挙型(enum型)変数について
-
こんなことてしますか??
-
C言語の関数と配列に関する質問
-
Linuxでの開発環境構築や設定の...
-
質問失礼します。 プログラム言...
-
MACで動く実行ファイルをWindow...
-
WindowsのCapsLock(キャップス...
-
これなにがちがうんですか??
-
卒業研究でよく分からないとこ...
-
gcc13.2のバグ?
おすすめ情報