「ちゃんと読む」とは。年明けこそ年貢の納め時。半導体の活用ネットワーク\(^o^)/オワタでも、会はふつーに生存。アドレスの高い方から低い方へってのは、なんで?CPUがそういう作りだから。実は、近時のCPUがそういう作りなのは、SWがスタックをそういう風に使うという習慣に合わせたという面も強いです。根本的な理由を考えると、推測ですが、ヒープを低位から高位に、スタックを高位から低位に伸ばしていくことでメモリを無駄なく使えるとかではないなと。推測ですが、(人間が頭の中で考えるとき)理論としてのスタックが「上に積んでいく」イメージで語られるので、その人間の思考に合わせたという側面もあるかもしれません。https://discord.com/channels/508093437187457045/882639711447961710/1073211152072441896spawn()したときに、schedule()も呼び出しているのがややこしいポイントマジで厄介猪八戒わからんかったコンテキストスイッチ時のオーバーヘッドを軽減するために呼び出し規約を変更する方法もある。保存レジスタをなくしている。すると、コンテキストスイッチ時にはプログラムカウンタやスタックポインタなどのみ保存すれば良くなり、無駄なレジスタの保存をする必要がなくなる。これを実現するためにはコンパイラを修正する必要があるどういうことだってばよ!?たぶん、呼び出し側で退避させる場合は、原則としてすべてのレジスタをメモリに退避しないといけない。インストラクションの実行数が少なくすむ、ので速くできる。いうことでないかしらん。謎だActor構造体とかないから、よくわからんってのがある。p.204「メッセージの受信時には、メッセージキューに自分宛のメッセージがある場合はそれを取り出し、ない場合は、実行キューから待機スレッドに自スレッドのコンテキストを移動させる。」という文はわかりにくいと思います。「受信時」というのは、前の文との関連から「自身のメイルボックスにメッセージが入れらたとき」と解釈してしまいますが、実際には「recv()を呼び出したとき」という意味ですね。?https://ja.wikipedia.org/wiki/アクターモデル結局、アクターモデル、何が嬉しいの?メッセージパッシングを追加してそれに合わせたスケジューリング機構に変えたという「実装の拡張」と、アクターモデルという「計算モデル(あるいは設計モデル)」をごっちゃに論ずる本書の構成もわかりにくさの原因ではないかと。Access(NUMA)NUMAとは、複数のマイクロプロセッサ(MPU/CPU)を搭載した対称型マルチプロセッサ(SMP)構成のコンピュータで、全体で共有されているメモリへのアクセス速度がCPUとメモリ領域の組み合わせ次第で均等にならないもの。(弱い)公平性はあるけど、別に重要性とかそういうわけじゃない感じ。コンテンション(contention)CPU獲得競争がおきると、リソース問題もあったらり。ちなみにコンテンションはユーザースレッドとカーネルスレッドで違う用語が使われる場合があります。(SCS)めも共有変数かどうかを見ておくのは設計上、だいじやな。難しいし、公平性を担保するには大変だな〜。MSCロック次回までに「並行プログラミング入門」ロールを払い出して、メンションできるようにする。気づいた!Fairに比較するのが難しいHintになりそう。共有資源へのアクセス頻度(≒コンテンション)とSpinするしないとか。(あとは実装の複雑さ)7.1.1のアルゴリズムと、チケットロックでは、Loop中でWriteするか否かの違いがあるので、それをコンテンションの違いだと言ってる可能性はありますが、7.1.1のアルゴリズムでも、毎ループWriteするわけでもないので有意差があるかは疑問です。なるかもしれない(ならないかもしれない)待てばいつか握手できることは確定しているけど、それがいつになるかは予測できない。「よし、ちゃんと3人分だったな。dollar.to_yen();非可換なら違和感ないけど可換だと違和感ある?Rustをもっと、わかりたい!MCSロックキャッシュのスラッシングなどの競合を回避するロック機構(CPU間の)キャッシュのスラッシングとは?キャッシュはCPUごとに持っている。キャッシュの内容はメインメモリのコピー。コピーをCPUキャッシュに置くことで、素早くアクセスできるようにするのが目的。メインメモリへのアクセスは遅い。コピーなので、キャッシュとメインメモリの内容と齟齬が生じないようにする(同期を取る)必要がある。複数のCPUがずっと同じアドレスにアクセスし続けると、常にメインメモリとの同期を取る必要があるので、キャッシュの効果が出なくなる。MCSロックの動きMCSロックの動きは、動画(アニメーション)でみたい。新しくロック待ちするスレッドは自分のMCSNodeを末尾に追加するロックを使い終わったら自分のNodeの次のNodeのlockedをfalseに設定するキューへの追加時や、待ちスレッドがないときの解放で、競合は起きないのか?Nodeのnextとlastを矛盾のないように更新しないといけないはずlastの更新さえアトミックに行えば、nextは後でのんびり更新したのでよい。キューへの追加前に、nextはNULLに設定してある。nextが非NULLになるまで、(前のスレッドは)drop関数内でループして待ってくれる。Atomic操作じゃなくてもいい非アトミックな命令は分割されることはないの?例えば、次のようなことは起きない?4byte変数を読み出したときに、別のCPUがその変数へ書き込みを行ったことで、書き込み前後のbyteが混ざった値を読み出してしまう。個々のビットが混ざった値を読み出してしまう。大体のCPUはatomic命令じゃなくても読み込みで書きかけのものを間違って読んでしまうことはない(保証されている)アトミック命令でなくとも、個々のメモリアクセス(書き込み、または読み込み)はアトミックに実行される。Issueを出すP220「キャッシュが排他的に設定されてしまい」???(この節の文脈では)キャッシュはもともと排他的なはず。2ヶ月前アトミック命令でなくとも、個々のメモリアクセス(書き込み、または読み込み)はアトミックに実行される。swapとか)をアトミックに行うための命令であって、個別の操作自体は元々アトミックなんですね。ロックの方が性能が良くなると報告している。手法を選択する損益分岐点がある。トランザクションメモリ、みんな知らなかった今日は雰囲気が分かった段階-『データ指向アプリケーションデザイン』:トランザクションの話が乗っている。DBでのトランザクションの手法が、排他制御にも使えるのに感度。最近ビルの移転(梅田→梅田)。ビルの家賃3倍!5月から全出社。ネットワークが午前10に遅くなる怪。近所に、引きこもりのハードゲーマーが住んでいる説。速くするための突貫工事の改修。コードの崩れとの戦い。テストの網羅性を上げる。テスト設計の知識を持っている人が必要だと思う。テスト担当は刺身タンポポではない。デジタルキー(スマホを車のキーにする機能)の仕事が楽しすぎて、ワーカホリック気味!今まではエンジン相手だったのが、人/ユーザビリティ/セキュリティについて考えるのが楽しい。ミサイルがお昼ごはんになっている。仕様書をきっちりつくるやーつしっかり読み込めたのはえらい!集団のPowerでもある!!(知識の少なさを差し引いても)読みやすいわけではないが、読めばわかるということではある。文章が時々分かりづらいという体験から、より検証しようとする姿勢で読んでいると思います。問題マイクロカーネル、モノリシックカーネル「よ〜す」だけがあっていればいい太陽が昇る方角は、バカボン経由で考える返信ログインするとコメントできますLoginツイートmohiratwitter.com/mohirara5人がコメントZennエンジニアのための情報共有コミュニティAboutZennについて運営会社お知らせ・リリースGuides使い方Publicationよくある質問LinksTwitterGitHubメディアキットLegal利用規約プライバシーポリシ。