匿名質問者

『同時』を処理するプログラム的なのはあるでしょうか?


コンピュータ上で、同時というのはそもそも起こりにくいか、起こりえないかだと思っています。
そもそも、時間単位が凄く短いですし、同時に処理をしているように見えて実際には順番に処理していると以前に聞いたような気がします。

それでも、あるプログラムに対して同時に要求やイベントが発生してしまうような状況
(先に優先順位をつけておけば同時だからと困ることはなさそうだと思いますが、そもそもそういう状況が起こるのかどうか)

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2017/05/14 16:35:04

回答3件)

匿名回答1号 No.1

どこで使われてるのかは知らんが、
かなり昔から理論は存在する。

https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0

たぶん既存の汎用OSではなく、専用のOSを用意するものと思われ。

匿名回答1号

ちなみに1つのCPUで複数の処理を同時にというのは無理な相談です。

2017/05/07 19:07:22
匿名回答2号 No.2

「処理」の定義にもよりますが、命令を細分化した各工程の処理はパイプラインという仕組みによって同時に実行されることもあります。
https://ja.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3

匿名回答3号 No.3

同時「を」処理する、と、同時「に」処理する、とは違いますね。

同時「に」処理するのは、
(1)おっしゃるように、少しずつ順番にやっているが、人間の目には同時に
 やっているように見える。例えば、人は1日の間に家事、食事、仕事、睡眠
など順番にやっていますが、1年前のことを振り返れば「家事、食事、仕事、睡眠、
同時にやっていたな」と思えるでしょう。それと同じスケールの差があります。

(2)すでに他の方の回答があるように、別のプロセッサに仕事を割り振って、
並行してやる。上役が部下に仕事を割り振るのと同じですね。

同時「を」処理するのは、
(1) 本当は1秒の十億分の一単位では同時ではないかもしれませんが、
ほぼ同時に、外部からの入力があるかもしれません。センサー入力か、
別の端末からのキーボード入力かもしれません。
しかし、プロセッサは同時には仕事ができないので、
まず一つの入力があったら、「ふたを閉めて、他を受け付けない」ようにする。
「ロック機構」とか、そういうものです。これはたいていのプロセッサで、
ハード的に、あるいはソフト的に実現されています。

(2)たとえば千分の1秒か、一日か、幅を設けて、その間に複数のことがらが
同時間帯にあったら、初めて何事かを始める、ということもありますね。
「注文書が届いて、同時に金の払い込みがあったら、初めて注文を受け付ける」
なんて普通にあります。この場合の同時は、たいてい、後のものがそろったら、
ということで、ある程度は待つ、ただし、1週間まってもそろわなかったら
話は無しにする、とかは決めておきます。

他1件のコメントを見る
匿名質問者

よくよく考えればゲームなどでも
(2)でおっしゃられているように
数十ms? 毎にイベントを取りに行ってボタン入力の判定……みたいなのは多そうですね。
イベントを受けて動き出す場合は「同時」にイベントを受けることはまずなくて、
定期的にイベント入力を監視している場合は……
という

2017/05/08 17:59:52
匿名回答3号

あ、(2)で、一番よくわかるのが「CTRLとCのキーを同時に押すと、コピーができる」
のような場合ですね。これは真に同時にではないが、ようするにCTRLが押されている
時間帯と、Cが押されている時間帯が重なればよい、です。

2017/05/08 18:07:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません