平成22年春期 午後問7

AP受かりたいマンさん  
(No.1)
https://www.ap-siken.com/kakomon/22_haru/pm07.html
料金計算処理タスクの処理の流れについて一つすっきりしない部分が
あったので質問させてください。
②の処理で走行距離通知タスクに要求するとあるのですが、
この時走行距離通知タスクが実行状態になって優先度が高なので、
実行状態のまま指定した走行距離の通過を待っていたら
③と⑤の処理を正常に実行できないと思います。
問題文には書いてないですが指定した走行距離の通過を待つ間は
走行距離通知タスクも待ち状態になっていると考えた方が良いでしょうか?
2022.08.05 10:48
私も受かりたいマンさん 
(No.2)
結論から言うと、料金計算タスクと、走行距離通知タスクは並行して処理可能(どちらも実行状態)と考えるのが妥当と思います。

コメ主は以下のような流れになると思われた認識ですがよろしいですか?

料金計算タスク→走行距離通知タスク→料金計算タスク

こちらだと、走行距離通知タスクが料金計算タスクに割込みしたことになります。

今回は割込みではなく、
料金計算タスクから走行距離通知タスクへ"走行通知要求"を出したのみで、料金計算タスクは実行しつつ走行距離通知タスクは並行して処理しています。

タクシーメータの仕様上、
料金計算タスクなどのタスクに割り込めるのはタイマ割込み及び操作パネル割込みのみとなります。
これらの割込みが発生すると料金計算タスクは一旦止まります。
ただし、割込みするのにはその処理を止める必要があるなんらかの理由があるから割込むのであって、
割込みしなくとも並行稼働することは出来ると考えます。
本文にもOSが並行して複数のタスクを処理できないという記載はありませんでしたので、
上記のように解釈しました。
2022.08.06 10:15
AP受かりたいマンさん  
(No.3)
>私も受かりたいマンさん
返信ありがとうございます!

>料金計算タスク→走行距離通知タスク→料金計算タスク
自分の認識では料金計算タスクが生成されて、走行距離通知タスクに要求した後
走行距離通知タスクが生成されて、プリエンプティブが発生して走行距離通知タスクを実行後
料金計算タスクはフラグの待ち状態、走行距離通知タスクも
待ち状態という予想だったのでその通りです。

自分も最初は並行してタスクを実行しているのかな?と思っていたのですが、
並行して実行できるのであれば、〔不具合の指摘〕にある
「表示タスク通知処理実行中は,タスクの優先度をタイマタスクの優先度と同じにする」
を行った際タイマタスクは料金計算タスクの終了を待たずともタイマタスクは
実行されるのではと思って並行してタスクは実行されないと考えてしまいました。
問題文をよく見たら操作パネルタスクとタイマタスク以外のタスクは
〇〇で起動すると書いてありませんね…。
という事はこの三種類のタスクは並行して実行されていると考えて良いのでしょうか。
2022.08.06 15:22
私も受かりたいマンさん 
(No.4)
ご連絡あるがとうございます。

> という事はこの三種類のタスクは並行して実行されていると考えて良いのでしょうか。

私も問題を作ったものではないので確約はできませんが、
問題文に出てきたタスクは基本的に並行して実施できると思います。
例えば、タクシーメーターの表示タスクは他のタスクと一緒に実行できないと、
表示が遅れたり、他のタスクをいちいち止めないといけなくなってしまいます。
また、操作パネルタスクから”賃走”と指示があってから料金計算タスクが動き出しますが、
操作パネルは料金計算タスクが動いている間も操作できないと、”支払い”ボタンが押せなくなってしまいますので、
こちらも並行して実行できると思います。
また、問題文に明確には書いてありませんが、タイマタスクの説明に、時間に関する処理を行うとありますため、
料金計算タスクの「T秒でタイムアウト」という処理もタイマタスクでやっているのではと考えます。

そのため、タスク自体は並行して実行はできるものの、
タクシーメータとして動作するために、
それぞれのタスクが他のタスクに指示を出したり、逆に割り込んだりすることで、
走行した分の料金計算を開始、停止してを確定して表示させるという動作を実現しているのではと考えました。
2022.08.14 10:54

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop