HOME»応用情報技術者試験掲示板»H29春 午後 問7  組み込み開発
投稿する

[1496] H29春 午後 問7  組み込み開発

 eiさん(No.1) 
設問3の解答が納得できません。

設問3において、画面表示タスクによる画面の更新中に、画面作成タスクが動作を開始すると意図しない動作が発生するそうです。
設問として聞かれている以上、意図しない動作で考えられる状態は画面の混在くらいしかないと思うので、解答は導けるかもしれません。
しかし、なぜ新たに作成する画面と更新中だったものと混在するのか納得できません。
新しく画面作成タスクが画面情報の書き込みを行い、画面作成完了通知が送信され、混在せずに上書きされていくのではないでしょうか?

よろしくお願いいたします。

URL:
https://www.ap-siken.com/kakomon/29_haru/pm07.html
2019.03.15 17:45
助け人さん(No.2) 
AP ゴールドマイスター
画面を更新するときのタスクとタスク間インタフェースの流れは、以下の通りです。
メインタスク→(必要な情報)→画面作成タスク→(画面作成完了通知)→メインタスク→(画面更新指示)→画面表示タスク

ここで、意図しない現象が発生するのは、メインタスク及び画面作成タスクの優先度が画面表示タスクよりも高い場合です。

画面表示タスクがある画面を更新途中のとき、新たな画面を表示するきっかけが発生すると、画面表示タスクはプリエンプションにより中断され、
メインタスク→(必要な情報)→画面作成タスク→(画面作成完了通知)→メインタスク→(画面更新指示)
が動作します。その後、中断された画面表示タスクが続きの処理を行うのですが、画面情報が新たな画面に置き換わっていますので、表示する画面が混在してしまいます。

この問題を解決するには、設問3(3)にあるように、画面表示タスクの優先度をメインタスク及び画面作成タスクよりも高くします。あるいは、別の方法として、画面表示タスクと画面作成タスクの両方で使用する画面情報を、セマフォを使って排他制御します。
2019.03.15 19:11
 eiさん(No.3) 
助け人様

ご回答ありがとうございます。
中止ではなく中断という考えがありませんでした。
勉強になりました。
2019.03.15 22:19

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop