22:00:30 @ponapalt@ukadon.shillest.net
icon

あとまさかx86なCPUが未だにメインストリームだとかいったい誰が予想しただろうか。というより、いいかげん退役させてやれよというか…

21:57:36 @ponapalt@ukadon.shillest.net
icon

枯れたOS論でなぜか思い出したけど、ARM版Windowsって結局どうなったんだ。いまいち話を聞かないんだが。

21:51:26 @ponapalt@ukadon.shillest.net
icon

@toneji
マルチコアなCPUが当たり前になり、1コア当たりの性能は頭打ち気味になったころから、どのOSもパフォーマンスを引き出すために散々苦労している様子で、枯れたOS論ってどこまで言っていいのかわからなくなっている感じです。
結局今の基準では「枯れたOS」とは、単純にユーザ数が多くて多数の検証がされ続け、変化に適応し続けられているOSのことなのかな…なんて思います。

21:37:37 @ponapalt@ukadon.shillest.net
icon

頑固者のFreeBSDでさえスケジューラレベルからごっそり書き換えたりとかされてるので、ハードウェアの進化が早すぎて枯れたOSなんてもう存在しない疑いが…

21:35:48 @ponapalt@ukadon.shillest.net
icon

OSの枯れてる論、割と難しい。
Linuxは当然じゃんじゃんコードが書き直されて何が枯れてるやらさっぱりわからないし、Darwin(macOS)なんて元ネタがいったい何だったのか分からないほど変わってる始末なので、実は一番枯れてるのNTカーネル(Windows)では…?😵とかいう頓珍漢なことを言いたくなるぐらいには難しい。

18:49:50 @ponapalt@ukadon.shillest.net
icon

@cat_maidens
・ホテルの予約を受ける部屋の台帳がある
・予約を受ける担当は2人以上居る
・大人気で空き部屋があと1つだった
・予約担当が台帳を見て空きありと回答、台帳を置き場に戻す
・別の予約担当が台帳を見て空きありと回答、台帳を置き場に戻す
・最初の予約担当が予約を受けて台帳に書き込み、満室に
・別の予約担当も予約を受けて台帳に…
:uka_unyu1: :uka_unyu2:

せいぜいこれだとお客さんに怒られる程度で済むけれど、例えばこれがOSのメモリ使用領域の管理だったとしたら、何が起こるかお察しなわけです。

たとえJavaのマルチスレッド機能を使っていたとしても、プログラムの仕方ではいくらでも地雷を踏めるし、そこがマルチスレッドの難しいところだときちんと把握して腹くくって組まないといけない…

12:54:15 @ponapalt@ukadon.shillest.net
icon

@cat_maidens Javaとかの場合synchronizedって書いたら勝手に信号機が植わるからいいよなー(C++/Win32使いなので全部手で書いてる人)

12:51:19 @ponapalt@ukadon.shillest.net
icon

@cat_maidens SSPの場合
・プログラム本線のメインスレッドが1本
・作業補助用スレッドが2本
・ゴースト1組あたり「スクリプト実行」に1本
・「SERIKOアニメーション実行」にキャラ1体当たり1本(つまり掛け合いゴーストさんは1組あたり2本)
・ネットワーク更新・本体更新・ヘッドラインセンス・メールチェック、その他処理に時間がかかることをする度に一時的にスレッド追加

12:46:00 @ponapalt@ukadon.shillest.net
icon

@cat_maidens 実は理屈上は問題ないけれど、クラス内のメンバ変数とかを双方でいじってる場合事故る。それだけ。
走ってる複数のスレッドは互いに空気を読まずあらゆる読み書きを仕掛けにくるので、読み書きが中途半端な状態になり未体験ゾーンに突入する羽目に。
これを防ぐには各スレッドの同期、つまり片方走ってたら片方待たせる信号機的な仕組みを仕掛けるしかなくて、それにmutexとかsemaphoreとかその他特殊なものが使われる。
semaphoreなんか日本語訳したら「腕木式信号機」でそのまんまやん的なやつですわ。