Path: katsu From: katsu@sra.CO.JP (WATANABE Katsuhiro) Message-ID: Date: 07 Oct 1998 00:53:42 GMT Organization: Software Research Associates, Inc., Japan Distribution: In-reply-to: Hideki Kitamura's message of 24 Jan 1997 03:04:33 GMT Newsgroups: fj.questions.unix,fj.sys.sun,fj.comp.lang.c Subject: Re: [Q] How to get swapinfo on SunOS 4.1.3 References: <5c98s1$dm2@news.aif.or.jp> Mime-Version: 1.0 (generated by tm-edit 7.47) Content-Type: text/plain; charset=ISO-2022-JP あまりのフォローの遅さが議論の妨げになっていたらごめんなさい。 遅すぎて fj.lang.c がなくなってしまったので fj.comp.lang.c に 振り替えます。 記事 <5c98s1$dm2@news.aif.or.jp> で HidekiKitamura@msn.com (Hideki Kitamura) さんいはく > Date: 24 Jan 1997 03:04:33 GMT > SunOS 4.1.3 のシステムにおいて、スワップファイルの情報をプログラムの内部 > から取得したいんですが、それ系の関数が man ページに見当たらず困っています。 > > ヘッダーファイルを眺めていたら、/usr/include/vm/swap.h に swapinfo という > 構造体が定義されているじゃあ〜りませんか!!(古い?) > さて、さて、この構造体にどうやって値を入れるのか、知っている方がいらっしゃ > りましたら、是非教えてくださいまし。 カーネル空間の swapinfo (see. "nm -g /vmunix") に linked list の 先頭が入っています。struct swapinfo の中身については、文献 [UI] の "14.6 The Swap Layer" に若干の記述があります。文献 [SWI1], [SWI2] は SunOS 4.X ではなく Solaris に関する解説なのですが、 struct proc, struct as, struct hat, struct seg, struct anon_map, struct anon 等の意味や相互の関係はあまり違わないので有用でしょう。 文献 [MAGIC] は SVR4 の内部解説本ではありますが、「第3章 メモリ 管理サブシステム」は恐らく SunOS を理解する時にも有用な話が 載っていて、特に p.114 からは swapinfo 構造体の解説をしています。 文献 [SUNVMI] は、古くて SunOS 3.2 の時代の話ですが、興味のある 方のために挙げておきます。 swapinfo からのデータの具体的な読み込み方は、kvm_open(3K), kvm_read(3K), kvm_nlist(3K) などを参照してください。 何か応用が出来たら、ぜひ fj への feedback をお願い致します。 SunOS 4.X の時代の話でも、注目する kernel hacker はいるはずです。 > P.S 最初は、pstat -s をプログラムから呼んでいたんですが、けっこう負荷がかかっ > てしまって... 自分で pstat -s 相当のものを作り直したとしても、user 空間から /dev/kmem 等を通してカーネルデータを参照する(kvm_read(3K) も そうです)限り、ある程度は負荷がかかるものと想像しています。 ただ、重い execve(2) をしなくて済む点は利益かもしれません。 本当に効率重視なら、カーネルの仮想記憶空間を自由に見てまわれる ように、カーネルモジュールとして組み込む方法があると思います。 参考文献 [MAGIC] "UNIX カーネルの魔法"; バーニーグットハート, ジェームスコックス著; 櫻川貴司監訳; プレンティスホール出版; ISBN 4-931356-04-4; [SUNVMI] "SunOS Virtual Memory Implementation"; Joseph P. Moran; http://opcom.sun.ca/white-papers/vm-impl.html [SWI1] "Swap space implementation, part one - SunWorld - December 1997"; Jim Mauro; http://www.sunworld.com/sunworldonline/swol-12-1997/swol-12-insidesolaris.html [SWI2] "Swap space implementation, part two - SunWorld - January 1998"; Jim Mauro; http://www.sunworld.com/sunworldonline/swol-01-1998/swol-01-insidesolaris.html [UI] "UNIX internals: the news frontiers" Uresh Vahalia; Prentice Hall; 1996; ISBN 0-13-101908-2; -- 渡邊克宏@SRA