HOME»応用情報技術者試験掲示板»令和元年秋期 午前問15
投稿する

[2041] 令和元年秋期 午前問15

 あばば無人君さん(No.1) 
タイトルの問題文中に「n件目の書込みと並行してn+1件目のCPU処理とn+2件目の読取りを実行〜」とあるのですが、この動作ですとたとえば最初の1件目の読取り/CPU処理/書込みを行っていると書込みのタイミングでn+2件目の読取りが実行されるので、2件目(n+1件目)の読取りは行われない様に(つまり処理に漏れが生じるのではないか?と)感じました。
私の問題の解釈が間違っていますでしょうか?
この問題の意味が分かる方がいらっしゃいましたら解説を頂きたいです。
2020.06.26 16:42
さん(No.2) 
この投稿は投稿者により削除されました。(2020.06.27 13:17)
2020.06.27 13:17
さん(No.3) 
プログラムが読み取り→CPU処理→書き込みという流れであるとして、
今回の問題では並行してn件目が書き込み、n+1件目がCPU処理、n+2件目が読み取りを行っています。
つまり、この時点でn+1件目はCPU処理の前段階の読み取りは既に終わっています。
解説の図がわかりやすいかと
2020.06.27 13:18
おわ!さん(No.4) 
AP ブロンズマイスター
ベストアンサーの後で恐れ入ります。
以下の方法でも、「n件目の書込みと平行して(n+1)件目のCPU処理と(n+2)件目の読取りを実行する」手前の、n件目と(n+1)件目の処理状況が把握しやすくなると思います。

解説の図「並列処理の流れ」の左側の「〜件目の数字」を「−2」ずらし、
(n−2)、(n−1)、n、(n+1)、(n+2)、(n+3)件目に読替えます。

次に、右側の並列処理の絵はいじらず、区間を50ミリ秒間隔の横4つに区切り、
     n件目の「読取り」を行う区間:区間n、
(n+1)件目の「読取り」を行う区間:区間(n+1)、
(n+2)件目の「読取り」を行う区間:区間(n+2)、
(n+3)件目の「読取り」を行う区間:区間(n+3)とします。

区間n、区間(n+1)、区間(n+2)における
n件目、(n+1)件目、(n+2)件目の処理のみ抜粋します。

・区間n
  n件目:読取り、(n+1)件目:−、(n+2)件目:−

・区間(n+1)
  n件目:CPU、(n+1)件目:読取り、(n+2)件目:−

・区間(n+2)
  n件目:書込み、(n+1)件目:CPU、(n+2)件目:読取り

以上、「n件目の書込みと(n+1)件目のCPU処理と(n+2)件目の読取り」を並列処理する区間(n+2)の手前で、区間(n+1)の処理により、n件目はCPU処理まで、(n+1)件目は読取りが、既に終わっていることが分かります。
2020.06.28 16:13
 あばば無人君さん(No.5) 
ささん、おわ!さん、こんなに早く返信して頂きありがとうございます。
というか私の返信が遅れて申し訳ありません。

ただ、私の理解が悪いためか、記載して頂いた内容で理解(納得?)できていません。
私の疑問としましては以下図の通り、1件目の書込みと並行して「CPU30(2件目)」と「読取り(3件目)」が行われると、「読取り(2件目)」が存在しないので処理漏れがあるのではないか?というものです。
(私ももちろん解説の図は見ております)

1件目|読取り40|CPU30|書込み50
                      |CPU30(2件目)
                      |読取り(3件目) ←読取り(2件目)が無くいきなり3件目!

こういった類の設問では1件目だけ
1件目|読取り40|CPU30|書込み50
                      |CPU30(2件目)
                      |読取り(2件目)
                      |読取り(3件目)
という感じになっていると理解すべきでしょうか?(ささんの返信内容はこれです?)

あと、最初の投稿で未記載でしたが、ささんご記載の通り処理の流れは
「読み取り→CPU処理→書き込み」という認識です。記載漏れ、済みませんでした。

長くなってしまい申し訳ありません。どなたかご解説いただきたいです。
2020.06.29 11:19
助け人さん(No.6) 
AP ゴールドマイスター
横から失礼します。

読取り、CPU処理、書込みをそれぞれ処理a、処理b、処理cと置き換えます。

解説のようなn件目〜n+5件目だと分かりにくいようなので、1件目から6件目を、下記の図で説明します。(縦がまっすぐにそろえばいいのですが)

区間   1  2  3  4  5  6  7  8
1件目  a  b  c
2件目     a  b  c
3件目        a  b  c
4件目           a  b  c
5件目              a  b  c
6件目                 a  b  c

解説の図は、区間3〜6を切り出したものです。
2020.06.29 20:32
 あばば無人君さん(No.7) 
助け人さん、丁寧な表で回答いただきありがとうございます。

記載の表、念のため等幅フォントのエディタに張り付けて確認しましたところ
ご記載の通り「解説の図は、区間3〜6の切り出し」であることが理解できました。

問題文では
「n件目の書込みと並行してn+1件目のCPU処理とn+2件目の読取りを実行〜」
とありますが、これは助け人さんの表でいうと
「n件目のCPU処理が始まると、n+1件目の読取りが並行して開始される」
となる訳ですね。
(問題文もこんな感じで書いてもらえれば混乱しなかったのに…)

ささん、おわ!さん、助け人さん、ご回答いただきありがとうございました。
本件、これでクローズとさせて頂きます。
2020.06.30 09:33
管理人(No.8) 
相当昔に作成した図解であり、わかりにくかったので図の更新作業を実施いたしました。
2020.07.03 14:27
 あばば無人君さん(No.9) 
ミルキー@管理人さん、解説の図を修正して頂きありがとうございます。
更新後の図でしたら私の様な疑問を持つ人が激減すると思います。
(そもそも問題文がおかしいという話ですが…)

分かりやすい修正、ありがとうございました。
2020.07.04 11:58

返信投稿用フォーム

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

Pagetop