woshidan's blog

あいとゆうきとITと、とっておきの話。

第一回技書博で頒布した「あの素晴らしいCGIからもう一度」紙本初版の修正と「ネットワークスクランブル TCP編」初版の補足

第一回技書博で頒布した「あの素晴らしいCGIからもう一度」紙本初版の修正と「ネットワークスクランブル TCP編」初版の補足です。

gishohaku.dev

norakann.booth.pm

norakann.booth.pm

会場やブログでフィードバックをくださった方、ありがとうございました!

「あの素晴らしいCGIからもう一度」紙本初版の修正

1.1.3.1 節の脚注の修正

修正前

後から動的に確保される部分はヒープ領域https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/MP/final/part06/node8.html

修正後

後から動的に確保される部分はヒープ領域[メモリの 4 領域 | 2004年度マイクロプロセッサ演習 第6回 (工学院大学講義資料)]。そういえば、この辺に関してどうも調べてみた感じ、データセグメントにヒープ領域が含まれるかどうか、が一定でない気が。。本書での説明では、[メモリの 4 領域 | 2004年度マイクロプロセッサ演習 第6回 (工学院大学講義資料)],や[プロセスのメモリ | 筑波大学工学部電子・情報工学系 システム・プログラム 講義資料]に乗っ取って、データセグメントにヒープ領域が含まれる、としています。とりあえず、本書の内容として重要なのは、「プロセスはプロセスごとにアドレス空間を用意するが、スレッドは同じアドレス空間を複数のスレッドで共有する」「アドレス空間が切り替わるごとにページテーブルとページテーブルの内容をキャッシュするTLBのエントリを入れ替える」「メモリ消費量の件もあるが、TLBのエントリ入れ替えが重いのでその分プロセス切り替えはスレッド切り替えより重い」「スレッドはアドレス空間のうち、スタック領域とガードページは共有しないが他の領域はスレッド間で共有する」なのでそこを抑えていただければ!

p.28 select-acceptのThundering Herd => select-accept型の「Thundering Herd」問題

3章冒頭に以下の注釈を追加

この章は、小学生~中学生の頃に趣味のオタクとしてHTMLやCGIをさわったりテキストサイトを巡回していた自分の思い出と、[CGIプログラミング 第二版]や[README For PSGI-Doc-JA]の記述に基づいてまとめられています。当時の自分のCGIについての思い出、というと「あの頃のオタクのテキストサイト、みんなBBSやリロードするだけで回るアクセスカウンターのCGIをおそらく理屈をそこまで理解せずあれだけ設置してた人がいたの、もしかして異常だったのでは?」といったものです。また、参考にした文書はCGIをポジティブに宣伝する意図があったり、PSGIの仕様を制定された方の視点でまとめられた経緯であったりします。なので、第一回の技書博の場でもフィートバックをいただいたのですが、業務などでCGIを本格的にさわっていた方とは感覚が違うのではないかと思います。自分としては、偏りがあったとしてもこれからPSGIやRackの仕様を学ぶ人への手助けとなるようにまとめているつもりなのですが、もういわゆるCGI全盛期から20年くらい経ちYahoo!ジオシティーズをはじめとした当時のCGIを利用していたサイトがかなり減っていて調査にも限界があるのは事実です。なので、よろしければ「自分から見た当時のCGIはこうだったよ」とbibro.pcg[at]gmail.com宛てであったり、TwitterやQiita、ブログなどで流していただけると喜んでみにいきますので何卒よろしくお願いします。

2019/08/01 追加の修正

1章序文にて

追記 2019/08/04

2.1節にて。

HTMLを吐き出す => HTMLを含めたHTTPレスポンスを吐き出す

「ネットワークスクランブル TCP編」初版の補足

monmon.hatenablog.com

こちらの感想記事の

(どうでもいいけど CLOSING ステータスについては一切触れてないのはレアケースだから省いたのかな? ていうか CLOSING ステータスって両者が同時にFINを送りあった場合にのみ遷移するステータス、で合ってる? まあどうでもいいけど…)

の部分を受けての補足です。