C言語なら俺に聞け(入門編)Part 125 [sc](★0)
-
- 1
- 2014/02/16(日) 01:49:14.42
-
C言語の入門者向け解説スレッドです。
★前スレ
C言語なら俺に聞け(入門編)Part 124
http://toro.2ch.net/test/read.cgi/tech/1389096769/
★過去スレ
ttp://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 166代目
http://toro.2ch.net/test/read.cgi/tech/1381909900/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
ttp://codepad.org/
ttp://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
当たり前の事ですが、2chではコピペ荒らしは禁止されています
-
- 797
- 2014/03/28(金) 23:17:59.05
-
c言語のソースコードでデッドロックを実現するようなコードってかけますか?
-
- 799
- 2014/03/28(金) 23:34:15.49
-
>>798
例えば?
-
- 801
- 2014/03/28(金) 23:39:21.89
-
OSのシステムコールとか使わずにって意味じゃないか
-
- 802
- 2014/03/28(金) 23:49:32.32
-
コテの方がマトモってのは珍しいな
いつもおかしいのに
-
- 804
- 2014/03/29(土) 01:11:17.81
-
だんだん良く分からない流れになってまいりました
-
- 805
- 2014/03/29(土) 01:14:09.28
-
人工無能が吐き出したような抽象論でも当たることはあるってことが示された
-
- 806
- 2014/03/29(土) 03:23:46.19
-
>>803
デッドロックはAさんとBさんが互いに相手がロックしてるリソースを待ち合って動けなくなった状態だよ。
意図的にデッドロックを起こす事もできるよ。
-
- 807
- 2014/03/29(土) 04:24:31.01
-
Aさん「私待ってるから」
Bさん「私も」
AB「まだかなー?」
-
- 808
- 2014/03/29(土) 04:49:35.32
-
箸と皿 両方握れた者が食事できる
Aさん箸だけ確保 Bさん皿だけ確保 お互い空くのを待ってる
-
- 809
- 2014/03/29(土) 08:34:42.01
-
>>803 これはひどい。後半は自分にアンカーしろよ
-
- 810
- 2014/03/29(土) 10:28:59.38
-
>>806
互いに相手がロックしてる?
つまり共有ロックの事ですか?
-
- 811
- 2014/03/29(土) 10:38:38.94
-
>>810
共有ロックは一つのリソースをロックする場合に発生すること
デッドロックは二つ以上のリソースを個別にロックした場合に発生すること
-
- 812
- 2014/03/29(土) 10:40:57.13
-
3人で待ち合いというのがよく例に出てくる
-
- 813
- 2014/03/29(土) 10:50:52.48
-
共有ロックもデッドロックの一種ですか?
例えばAがCをロックしてBがCもロックしてるってことですよね?
その場合AがCを解除してもBがロックしてるからCにアクセスできない
逆にBがCを解除しても、AがロックしてるからCにアクセスできない
つまりA,Bともに互いの解除を待たなければならない
つまりデッドロックですか?
-
- 814
- 2014/03/29(土) 11:35:27.61
-
それは、使用中のリソースは開放されるまで他が使えないというだけじゃないの?
-
- 815
- 2014/03/29(土) 11:44:49.21
-
哲学者がスパゲティ食おうとしてフォークが空くのを待ってる話
-
- 816
- 2014/03/29(土) 11:46:51.23
-
>>913
金庫の中に金庫の鍵がある状態をイメージしろ
動きによってそれに近い状態になるのがでっどろっく
-
- 817
- 2014/03/29(土) 11:59:55.49
-
>>816
バカはたとえ話するな、余計わからんわ。
-
- 818
- 2014/03/29(土) 12:49:36.87
-
デッドロックって dead lock じゃなくて deadlock であって、こう着状態みたいな状況を表す単語だろ。
ようするに、こう着状態になってなきゃデッロドックじゃないんじゃないの?
共有ロックは状況じゃなくて仕組みの名前でしょ。
読むのは複数に許すけど、書くのは排他的っていうやつ。
-
- 819
- 2014/03/29(土) 12:54:22.27
-
結論として OS の支援なしには dead-lock を起こせない、ということで
-
- 820
- 2014/03/29(土) 12:58:49.23
-
>>813
>>共有ロックもデッドロックの一種ですか?
一般的なロック操作では、あるプロセスが資源をロックすると、
ロックが解除するまでの間、新たなロック操作は必ず待たされる
しかし資源へのアクセスが読み出しだけであるならば、
待たせることなく読み出し操作を実行しても、何ら害は無い
そこで、ロック操作を2つに分類し、用途に応じて使い分ける共有ロック方式が考案された
・共有ロック(shared lock) - 読み出しロックともいう
・排他ロック(exclusive lock) - 書き込みロック、更新ロックともいう
また操作の細分化に伴い、これまでロックの状態は
"未ロック" と "ロック中" の2つであったのに対し、
この方式では "未ロック"、"共有ロック中"、"排他ロック中"の3つに増える
ここで、共有ロック中状態における共有ロック操作は待たされることなく成功する
排他ロックは従来のロックと同じく、未ロック状態の時だけ成功する
>つまりデッドロックですか?
共有ロックは、上記のようにロック方式を指す言葉
デッドロックは(>>803で書いたように)ロックに関連したバグの一種であり、
バグだから一般的なロック方式でも共有ロックでも起こりうる
-
- 821
- 2014/03/29(土) 13:03:54.86
-
>>819
このファイルがあるとロックしてるって事な、みたいな取り決めにしておけば、
あとはファイル作れてプロセスを複数同時に動かせれば起こせるんじゃね?
-
- 822
- 2014/03/29(土) 15:33:58.33
-
何らかの手段でプロセス間の相互作用が提供されてなければデッドロックは起こりようがない
プロセス間の相互作用を提供するのはOSの働き
-
- 823
- 2014/03/29(土) 16:03:35.08
-
>>822
ファイルへのアクセス制御はOSの機能なわけですが…w
OSのサポートがなければ同時にファイル作ろうとしてあぼん
-
- 825
- 2014/03/29(土) 16:09:24.24
-
>>823
ネットワークドライブとかだとあぼんするタイミングが遅れることがある
なのでopenは成功してしまうことがまれに良くある
-
- 826
- 2014/03/29(土) 16:54:46.28
-
>>823
相互作用と言う言葉を辞書で調べてから出直しなさい
お前のようなボンクラが我輩に対して言いがかりつけるのは千年早い
-
- 827
- 2014/03/29(土) 17:16:00.99
-
>>826
ただのプロセス間通信だろ
-
- 828
- 2014/03/29(土) 17:17:15.93
-
OSだってプログラムなんだから、そこまでして書こうと思えば書けるってだけの話だろ
-
- 829
- 2014/03/29(土) 17:21:51.61
-
>>828
ファイルロックは無理!w
-
- 830
- 片山博文MZジェバンニ
- 2014/03/29(土) 17:33:15.95
-
C11なら標準のmutexで排他制御できっぞ
-
- 831
- 2014/03/29(土) 17:33:39.96
-
いやだから、ファイルシステムだってプログラムっつうかデータなんだから
問題を大局的に見れないのは土方PGの性なのかね
-
- 832
- 2014/03/29(土) 17:40:38.67
-
ディレクトリの新規作成で排他制御してる奴があるね
-
- 834
- 2014/03/29(土) 17:52:18.95
-
ディレクトリもタダのファイルなんだけどねw
-
- 835
- 2014/03/29(土) 17:58:42.91
-
unix界隈だとロックファイル作って使用中なのを知らせるとか普通にあるけどね。
-
- 836
- 2014/03/29(土) 18:12:09.23
-
セマフォ!セマフォ!
セ!マ!フ!ォ!
-
- 837
- 2014/03/29(土) 19:39:55.06
-
ソフトウェアでプログラムを実行するタイプのciscってどういう事ですか?
そもそもプログラムは全部ソフトウェアじゃないんですか?
ciscは特別なんですか?Cとの違いを教えて下さい
-
- 838
- 2014/03/29(土) 19:58:36.68
-
マイクロコード方式とハードワイヤード方式について調べてみるといいと思います。
インテル8086プロセッサはマイクロコードが使われていました。
NEC製のV30は一部をハードワイヤード化することで高速化を図った互換プロセッサです。
ここら辺を調べるといろいろわかると思いますし、C言語と比較するもので
無いこともわかると思います。
思いました。
-
- 839
- 2014/03/29(土) 20:00:43.49
-
今のpcはpopとかsumとかアセンブラだからマイクロコーード方式なんですか?
-
- 840
- 2014/03/29(土) 20:04:46.34
-
マイクロコードだとCPUにバグが有っても回収しないでパッチを当てることができる
-
- 841
- 2014/03/29(土) 20:06:22.57
-
>>833
お前が勝手にファイルロック言い出しただけやないか!
-
- 842
- 2014/03/29(土) 20:11:06.34
-
cpuの命令語を読んでプログラミングのソースコードを再現することって
できるんですか?
-
- 843
- 2014/03/29(土) 20:12:24.03
-
マイクロコードというのは、CPU内で使われるプログラムです。
CPU上で動作するソフトウェアを書くプログラマが目にすることはありません。
一般的に言って、複雑な動作を伴う命令をCPUが実装するには、すべてをトランジスタで実装するより、
一部をプログラム(マイクロコード)として実装する方がお得だったのです。
-
- 844
- 2014/03/29(土) 20:16:28.02
-
共用体 union って必要?
-
- 845
- 2014/03/29(土) 20:19:30.31
-
>>843
マイクロコードはそれ以上は分割されないんですか?
アセンブラとは別物ですか?
-
- 846
- 2014/03/29(土) 20:23:20.74
-
アセンブラとは全く別ですし、コードと言っても機械(CPU)の一部です。
およそプログラマには関係のない部分ですしおすし。
-
- 847
- 2014/03/29(土) 20:24:31.08
-
CPU内で使われるプログラムを書くプログラマはいないんですか?
-
- 848
- 2014/03/29(土) 20:28:44.07
-
うちの社では佐藤というものがマイクロコードを担当していまして、
製品に使われるほとんどすべてのコードを書いています。
しかしながら、彼はプログラマではなく、エンジニアです。
我々よりちょっとばかり位が高いのです。
このページを共有する
おすすめワード