2001-11-21
_ 場所
神奈川
_ [日常] 恋愛ピュア度
★ あなたは、 忠犬タイプ と診断されました。 ピュア度80% このタイプは・・・ 恋愛に対して積極的なタイプです。自分から行動を起こし、相手に対しては優先順位が常に一番にあり、 他の人は見えなくなるほどのめり込みます。 一人の人と長くつき合っていきたいと感じ、相手にトコトン尽くすことに 喜びを感じるタイプです。
だそうな。ふぅん。つーか答えられない設問がいくつかあって困った。
_ [日常] 飯
蔵で飯。今日は原田さんと食いました。
仕事を定時に脱出して、一時帰宅。スクライドを見て、真綾ちんのラジオを録音する準備してお出かけ。
店に入ったら前田さん(店員)から「カウンター席じゃないんですか」と云われました。結局普通の席にしたら、前田さんが不満そうな顔してました。カウンター席ってなにか特別なんでしょうか。
ヨタヨタしたり、僕のグチを聞いてもらったり。やっぱあれです。グチを聞いてもらえるなんて幸せですよ。でもほとんどどんな会話したか覚えてなかったりします。ごめん。ほりさん並でしょうか。
2300 退店。そいえば、先日ぶんじさんと飲んだときは 6h 消費したと云いましたが、あれは 4 h の間違いです。
2003-11-21
_ 今日は
健康診断。出勤してから思い出した。
_ 朝
府中からの師匠来社キター
_ む
_ キタ
三輪晋様にお申込みいただいたチケットを 下記の内容にてご用意させていただきましたので、 ご確認ください。
公演名 : ★TOUR de JAPON music from FINAL FANTASY 会場 : Bunkamura オーチャードホール 日時 : 2004年3月14日(日) 14:00開始
もいっちょ
公演名 : ★TOUR de JAPON music from FINAL FANTASY 会場 : 横浜みなとみらいホール 日時 : 2004年3月12日(金) 19:00開始
_ ボジョレーヌーボー
そおいや昨日だか一昨日だかに「発売しますた!」というニュースを見た。
番組で表示してたやつは 2000 円とかだった。「高級なほう」といっても 2300 円くらいだった。
普段飲んでる( 最近は飲んでないが )浦霞のほうが高いじゃんかとツッコんだのだけどそれはそれでまた別の問題か。
_ 仕事
2400 退勤。
_ あれ
network unreachable だ。今日はかもめのメンテナンスだったかな。
2004-11-21
_ 朝
0600 起床。
_ 契約停止
ようするに解約なんだが。
武蔵小杉の駐輪場を契約しているのだけど 10 月になってからずっと東陽町勤務なので駐輪場を使っていなかった。そして 10 月 11 月ぶんの料金を支払っていなかった。
「 どーすんのー 」
という連絡が昨日武蔵小杉駐輪場のひとから昨日あった。
解約する旨を伝えた。
「 私は明日( 日曜 )は 0700 から居るから。そのときに来てよ 」
武蔵小杉駐輪場まで行ってきた。
ぶひ。
疲れた。
_ 板橋羊肉祭
@かみなぎ亭。
ヲレ、かみなぎくん、のぶさん、鵜沼相方、鵜沼さん、たくみ、並木さん。
新千園札。



はにはに。のぶさん土産。

にく。

「 ジオングとサザビーとクマーの三すくみ」( C )鵜沼さん

憩い。

2006-11-21 :-)
_ 朝ー 朝だよー 朝寝坊して遅刻するよー
0700 起床。
昨晩の昼寝したときに目覚ましを変更しておいてそのあと朝のためにまた変更するんの忘れてた。
ちこくちこくー
でも定時に間に合った。
ツイてる!
_ foobar?
#f
_ 『ありがとうございました』ではなく『ありがとうございます』
日記でやりとりしないでコメントに書けよヲレ みたいな感じもするがむしろ交換日記かこれ。
先ほど弊社のひとに電話して
ヲレ「 カクカクシカジカ 」
M さん「 了解。じゃあそーしとく 」
ヲレ「 ありがとうございます 」
と、ありがとうございました、じゃなくてありがとうございますと言っていることに気づいた。
ありがとうございますが身についてる。
ありがとうございました、はいつ言ってるんだろ。
_ 腹減った
吐きそう
_ 平野綾トークアンドミニライブ〜早大でしょでしょ?〜
12/3 に振り替えイベントが開催されることになった ということを IRC で聞いたんだが。
さて、当時の 11/5 に予定していたイベントが中止になったときは早稲田大学二次元文化研究会から来たメールには
今回のイベントの振り替えイベントや払い戻しに関しては、改めて早急に対応方法を検討の上、必ずご連絡させていただきます。
とある。
しかし連絡は無い。
「 平野綾ヲタなら 綾魂 くらいチェックしてるだろ 」という心なんだろうか。
_ スルー力(りょく)の重要性
近藤淳也は、「自分の努力やらをよく知っている身近な人から何か言われると凄く気になる(つまり「スルー力」がない)が、一般から何か言われるのには強い(つまり「スルー力」がある)」と言っていた。
スルーというか、言葉を謙虚に聞くことができる。
たとえば「 貴様は間違っている、こうするのが正しい道だろうが、どあほう 」と言われるとする。同じセリフを身近なひとから言われるのと、あまり身近でないひとから言われるのとでは捉え方が変わる。
- 身近なひとから言われる → 気になる、感情的になる、やっつけようと思う。
- そうでないひとから言われる → 謙虚に受け止める。
身近なひととは、一緒に何度も飯を食ったり酒を飲んだりしたことがあるひとのことだ。そうでないひととは、1 度だけ会ったことがあるとかそう何度も酒を一緒に飲んだことがないひとのことだ。
親しいほど感情的になりやすい。
親しみの距離と感情の距離は比例するようだ。
_ 浪漫月裸の娘達
畑亜貴さんのアルバム。
amazon で予約したんだが [2006-11-18]
発売日は 12/22 なんだが
配送予定日: 2006/12/23 - 2006/12/24
12/22 には届きそうにない orz
どうでもいいが 12/22 は三輪の誕生日。
B000K2VF34
_ 飯
ハヤシライス、コールスロー。

- 薄切り牛肉
- たまねぎ
- エリンギ( マッシュルームを使おうとしたが無かったので代用 )
- 牛肉に塩コショウをふる
- 小麦粉をまぶす
- フライパンにバターを溶かす
- たまねぎ、エリンギを入れて中火でしんなりするまで炒める
- 牛肉を投下する
- 中農ソース、ケチャップ、コンソメ、水を混ぜたものを注ぐ
- 煮詰める
- 汁けが少なくなったら塩コショウを入れて混ぜる
_ NHK プロフェッショナル 仕事の流儀
第32回 ウイスキーブレンダー・輿水精一
- 原酒はオーケストラの楽器
- 優等生じゃ面白くない、やんちゃなヤツを作る
- 味を記憶するのではなくて製造過程を想像して体系立てる
- 「 本当にうまいと思ったの? 」
- 酒には自分が出る
プロフェッショナルとは、軸がぶれないひと。自分が信じたことを徹底的にこだわって努力するひと。
_ Skype Order Dispatched
Hooray! Your order is in the mail. It should arrive soon. Thanks, Little MOO, Print Robot
(`・ω・´)
2007-11-21 :-)
_ 朝ったー
0540 起床。ねむ。風呂のなかでねむ。
_ [ミスティック・クエスト][笹井隆司][川上泰広]通勤ったー
ミスティック・クエスト
ゲーム未プレイ。作曲は 笹井隆司さん、川上泰広さん。笹井隆司さんが曲を書いた ルドラの秘宝 が大好きだったので笹井隆司さんの曲を探して買いました。発売時期は ミスティッククエスト のほうが先なんですね。サントラにはオリジナル曲とアレンジ曲が収録されてます。オリジナルを聴くと「 この曲調がルドラに通じるんだな」と感じます。アレンジはだいぶロック調になってます。
B00005F1PL
_ 仕事
0830 出勤。
_ アスキーコードを入力して文字を出力する
最初は ruby でやろうとしたんだけど
% for h in 41 42 43; do ruby -e 'printf "%c\n", ARGV.shift.hex' $h ;done A B C
それ bash で出来るよ。
% for h in 4b 41 48 4f 52 49; do echo \\x$h ;done K A H O R I
_ [陽][陰][ゲームミュージック]「陽」のゲームミュージックと「陰」のゲームミュージック
中杜カズサさんがゲームミュージックの BGM としての役割りについて触れています。
その場面で要求されること、つまり無音では無いけど、気にならないように音を流すという目的にかなっているわけですよね。となると、これと同じようなシーンがゲームミュージックにもあるのではないかと。
「陽」とは、音楽自体が目立って、その音楽が場を支配してしまうもの。そして「陰」は、音楽は目立たないけど、確実のその場の演出に成功しているもので、前述のWiiメニューなどはこちらでしょう。
陽の曲は曲そのものを楽しめるものです。たとえばリッジレーサーシリーズの曲です。陰の曲はゲームを演出する縁の下の力持ちとしての曲です。その場面で聴くことで初めて味わいがある曲です。たとえばファイナルファンタジー 12 の曲です。
陽
「ゲームミュージックのどこが楽しいの?」と問われたとき、回答として「曲そのものを楽しんでいる。ゲームミュージックはそれだけでひとつの音楽作品である」と答えると簡潔です。この回答で触れた「ゲームミュージック」は陽のことを言っています。
ゲームミュージックが好きではないひと( 嫌いという意味ではない )に陽の曲を聴いてもらうと「ゲームミュージックは音楽作品である」ということが理解してもらえると思います。やったことないけど。
陰
陰の曲は BGM です。文字通り背景になる音楽です。
以前崎元仁さんが「 音楽を目立たせないようにする、BGM に徹する」と言っていました[ 2007-07-05 ]。FF12 の曲に不満があるひとたち[ 2007-01-18 ]というのは、こういった BGM としての曲に不満があるんでしょうか。いや私は FF12 の曲は満足してるから FF12 の曲に不満があるひとの気持ちが分からないんですが。
おそらく「ゲームミュージックのどこが楽しいの?」と問うひとは陰の曲を想像して言ってるのだと思います。「ゲームミュージックはその場面で聴いてこそ味わえるものであろう、それなのにゲームミュージックだけを聴いて楽しいのか?」と問うわけです。
ただ、プレイしてないゲームの陰の曲であっても「この曲はどのような場面で使われるんだろう」というふうに想像して楽しむことはできます。たとえば FF5 と FF6 のサントラはゲームをプレイする前に買いました。中学生のころかしら。サントラの曲を聴きつつパッケージに描いてある天野喜孝さんの絵( FF5 オーディーンとの戦闘の場面や、FF6 エドガーの絵などなど )を見ながらまだ見ぬゲームの世界を想像しました。これは小説と挿絵の関係に似ています。小説で使う表現は文字のみです。絵は基本的にはありません。わずかにある挿絵のみです。挿絵が無い小説もあります。絵が無いのでその場面が展開している様子を想像しながら読みます。挿絵があれば、自分の想像を挿絵で補足しながら場面を想像して小説を読むわけです。
2008-11-21 :-)
_ 喰霊-零-のキャラクターの口元がアゴにしか見えない
たとえば土宮神楽の絵を見る。

高橋名人が記憶にあるので喰霊-零- のキャラクターの口元がアゴにしか見えない。
↓高橋名人の絵

↓アゴ

↓高橋名人

↓アゴ

な?
_ [ET2008][Embedded Technology 2008]Embedded Technology 2008 3 日目
ホンダの知能化を支える最新電子技術 ~ 環境性能と安全性能を実現する The Power of Dreams ~ 本田技術研究所 中島豊平
テンポが速くてついていけなかった。2 回に分けて欲しい。日産のひともそうだったのだけど前半:自動車一般技術 後半:自社技術 というように時間配分するので 60 分では足りないですな。自社技術についてもっと突っ込んで聞きたいところ。
- 環境に対する取り組み
- CO2削減
- HC 削減
- 安全
- ぶつからないクルマ
- 究極のクルマ
- クルマの技術を高める
- 運転者を教育
- シミュレーター
- 教習所に設置
- ライディングシミュレーター
- 二輪
- ドライビングシミュレーター
- 四輪
- シミュレーター
- 衝突安全性
- 予防安全
- ぶつからないクルマ
- 技術
- シビック
- コンピューター
- 1995 から 2005 までで 3 倍
- ユニット増加
- ソフトウェア増加
- ネットワーク帯域増加
- アコード
- 通信量
- 2003 から 2009 までで 4 倍
- ソフトウェア
- モデル駆動開発
- シミュレーション
- 四輪駆動
- 軸ごとの負荷
- プラットフォーム化
- OS
- デバイスドライバ
- ミドルウェア
- 階層化
- Flex Ray
- 次世代ネットワーク
- 通信量増加への対応
- もはや CAN ではつらい
- By wire などに対応
- 業界標準プロトコル
- 標準化
- 要素
- AUTOSAR
- Flex Ray
- JasPar
- 協調領域と競争領域を切り分ける
- なんでもかんでも標準化すればいいわけじゃない
- どこで差別化するか
- 協調領域の標準化は有効
- ただしステークホルダーのコンセンサスが必要
- グローバルにコラボレーションする
- 世界共通の認識
- どこか 1 社だけが生き残ればいいわけじゃない
- 要素
ディペンダビリティ・セッション ~ 今、社会はディペンダブルな組込みシステムを求めている ~
デジタル家電ソフトウェアものづくり パナソニック 梶本一夫
Linux を強調しているようなプレゼンテーションだったのだけど、Linxu よりも開発プロセスのほうが重要だよなあ。
- 家電とLinuxの出会い
- 家電の市場
- 3 億台
- DSC
- Digital Still Camera
- DTV
- Ditital TV
- DVD/BD
- DSC
- まだまだ拡大中
- 3 億台
- 生存競争
- 脅威
- 開発
- 顧客
- 代替品
- 新興国
- デジタル家電はレッドオーシャン
- 強烈な勢いで価格下落
- 脅威
- 家電の市場
- 家電ソフトウェアに求められるもの
- 家電
- 寿命は 10 ~ 20 年
- ですよねー
- 思っているより家電の命は長い[ 20061127#p08 ]
- 完璧を求められる
- 高品質を求められる
- でもハード制約が厳しい
- 寿命は 10 ~ 20 年
- 家電
- 解決へ向けて
- What/How
- 何を作るのか
- テクノロジー
- どう作るのか
- エンジニアリング
- マネジメント
- 開発プロセス
- 何を作るのか
- プラットフォーム化
- OSS利用
- Linux
- コミュニティから自社へ
- 自社からコミュニティへ
- それってけっこうな手間じゃないか?
- だからOSを内製するところが現れるのか?
- 開発手法
- モデル駆動開発
- すぐに移行できるわけじゃない
- レガシーコードをどうにかする
- リファクタリングしつつモデル駆動へ移行
- コード中心開発
- 新機種へ前機種のコードをコピペ
- あるある
- 新機種へ前機種のコードをコピペ
- モデル駆動開発
- 開発プロセス
- CMMI
- PASSPORT
- Panasonic ナンチャラ
- 松下電器産業における プロセス改善実践 事例 松下電器産業における( PDF )
- 社内大学
- アーキテクチャ育成
- プロセス育成
- 参加者は国内外
- What/How
- 家電の将来
- 省エネ
- 安全
- 低消費電力
- VM 技術
- 高信頼性
- こけない
- (相手を)こかさない
- こけてもすぐ起きる
- こけてもケガしない
- ハードとのすり合わせは他者との競争領域
_ 矢道 [組込み Linux の利点は、OS, ドライバ, ミドルウェア, 開発環境, 全てがパソコンの物を流用(一部改造)で..]
_ みわ [矢道さん: 独自OSを使う組織がありますが、わざわざ独自OSを使う利点を想像できないのだけど自分たちの好き勝手に出来..]
_ 矢道 [独自 OS ってのがどこまでを指すのかが難しいが...大体は大昔から使ってる独自 OS を拡張して使ってきてるから資..]
_ みわ [矢道さん: 独自OSは、企業の内製のOSのことで言っていました。 セキュリティについては思いつかなかったすなあ。 ア..]
_ 矢道 [内製な OS って話なら TRON 系も当てはまるかな。 まぁ、大体は汎用 OS に比べて高速だってのもあります。な..]
2009-11-21 :-)
_ 結婚式と結婚披露宴
友人の結婚式に呼ばれたので行ってきた。
カメラ( Canon EOS 30D )を持参したんだがストロボの電池が力尽きそうでありさっぱりストロボ炸裂しない。見かねたプロの方( Canon EOS 5D MkII 使用 )が一時的にストロボを貸してくれた。すんません。
幸せになーれ ヽ( ´ー`)ノ
2010-11-21 :-)
_ よる
1800 飯作る
1900 RR7 TA
2000 RR7 オンラインバトル。5レースで3回挟まれた (´Д`;)
2100 飯。ビーフシチュー
2200 agumon さんと一緒に agumon さんレース の練習。周回を間違えるなど課題が見えた。
2011-11-21 :-(
_ 夜
1800 退勤
1810 散歩
1930 KOZOS
2130 飯。ぶりの照り焼き。中華鍋を眠らせていたのでというかフッ素ナントカ加工のフライパンがそろそろヤバいので中華鍋で照り焼き。まあ普通に出来るものだ。
_ ラチッタデッラのイルミネーションが始まったというので行ってきた
仕事帰りに寄った。これ ラ チッタデッラ【川崎】~イルミネーション点灯式
どうでもいいが去年のが http://lacittadella.co.jp/natale/ なんだが URI 統一しろよ。いやほんとどうでも
明るいレンズを持っていって単焦点でがんばってみたんだが何が撮りたいんだか分からない絵になった。安西先生...広角が欲しいです...
B00005K47X
2012-11-21 :-(
2013-11-21 :-(
_ 午後
1300 コード書いTARI
_ [スレッド][スケジューリング][スケジューラ][NetBSD][翻訳]Thread scheduling and related interfaces in NetBSD 5.0 (PDF) NetBSD 5.0 でのスレッドスケジューリングと関連するインターフェース
Introduction はじめに
A lot of new features were implemented in the NetBSD 5.0 release, and many improvements were made in the areas of scheduling, threading and symmetric multiprocessing (SMP). Like other modern UNIX-like operating systems, NetBSD supports traditional processes created by fork(2) and native POSIX threads (pthreads). Prior to the 5.0 release, user threading on NetBSD was implemented using a mechanism called scheduler activations (SA). The SA implementation was complicated, scaled poorly on multiprocessor systems and had no support for real-time applications. In NetBSD 5.0 these deficiencies have been addressed by replacing SA with an entirely new, scalable 1:1 threading model. In a 1:1 model each user thread (pthread) has a kernel thread called a light-weight process (LWP). Inside the kernel, both processes and threads are implemented as LWPs, and are served the same by the scheduler, as in Solaris, and other systems. In this article, we will review the scheduling of threads, related application programming interfaces, and utilities in the NetBSD operating system. Since the focus of this article is to introduce readers to new interfaces, we will not go into the details of implementations inside the kernel.
NetBSD 5.0 release にはたくさんの新機能が実装された。たくさんの改良がスケジューリング、スレッディング、対称型マルチプロセッシング( SMP )の分野について実装された。他のモダンな UNIX 風オペレーティングシステムのように、NetBSD は fork(2) によって生成された伝統的なプロセスや Native POSIX Thread (pthreads) に対応した。5.0 release 以前は、NetBSD でのユーザースレッディングは scheduler activations (SA) と呼ばれる機構を使って実装された。SA 実装は複雑であり、マルチプロセッサシステムではスケールが貧弱で、リアルタイムアプリケーションに未対応だった。NetBSD 5.0 ではこれらの欠点を完全に新規な SA に置き換えた。SA はスケーラブルな 1:1 スレッディングモデルである。1:1 モデルにおいて、各ユーザースレッド (pthread) は、ライトウェイトプロセス (LWP) と呼ばれるカーネルスレッドを持つ。Solari やその他のシステムでは、カーネル内においてプロセスとスレッドは LWP として実装され、スケジューラーからは同じように運用される{ served }。この論文では、スレッドのスケジューリング、アプリケーションプログラミングインターフェース、そして NetBSD オペレーティングシステムでのユーティリティについて再考{ review }する。この論文は新しいインターフェースの導入部なので、カーネル内の実装の詳細については触れない。
Real-time and scheduling classes リアルタイムとスケジューリングクラス
A real-time system is a predictable system which aims to meet certain time constraints (deadlines). Failure to meet these time constraints usually indicates hardware failure. Systems can be classiffied as either hard or soft real-time systems. Hard real-time systems shall meet the requirements unconditionally. That is, their predictability is deterministic. Soft real-time systems are not deterministic; they can tolerate some latencies, but their objective is to minimize them. NetBSD 5.0 provides soft real-time extensions.
リアルタイムシステムは予測可能なシステムである。制限された時間内(デッドライン)に完了する。これらの制限時間が満たされない場合、通常はハードウェア故障を意味する。システムはハードまたはソフトリアルタイムシステムとして分類される。ハードリアルタイムシステムは、絶対に要求を満たすべきである。すなわち、それらの予測可能性は決定的である。ソフトリアルタイムシステムは非決定的である。いくらかのレイテンシが許されるが、最小となることを目標とする。NetBSD 5.0 はソフトリアルタイム拡張を提供する。
According to the POSIX standard, at least the following three scheduling policies (classes) should be provided to support the POSIX real-time scheduling extensions:
POSIX 標準によると、POSIX リアルタイムスケジューリング拡張に対応するには、少なくとも以下の 3 つのスケジューリングポリシー (クラス) を提供すべきである。
- SCHED OTHER: Time-sharing (TS) scheduling policy, the default policy in NetBSD.
- SCHED FIFO: First in, first out (FIFO) scheduling policy.
- SCHED RR: Round-robin scheduling policy.
- SCHED OTHER: タイムシェアリング (TS) スケジューリングポリシー。NetBSD の既定のポリシー
- SCHED FIFO: 先入れ先出し (FIFO) スケジューリングポリシー
- SCHED RR: ラウンドロビンスケジューリングポリシー
The standard defines algorithms for the real-time SCHED FIFO and SCHED RR policies, and leaves SCHED OTHER as an implementation-defned policy; that is, it is specific to the operating system. All three policies are provided in NetBSD 5.0 and fit in the following in-kernel priority model:
POSIX 標準はリアルタイム SCHED FIFO と SCHED RR ポリシーのアルゴリズムを定義しており、SCHED OTHER は実装定義ポリシーとする。つまりオペレーティングシステム固有である。NetBSD 5.0 では 3 つすべてのポリシーを提供し、以下のカーネル内優先度モデルを適用する:
| Kernel (RT) | 192 .. 223 | 32 levels | Software interrupts. |
| User (RT) | 128 .. 191 | 64 levels | Real-time user threads (SCHED FIFO and SCHED RR policies). |
| Kernel threads | 96 .. 128 32 levels | Internal kernel threads (kthreads), used by the I/O, VM and other kernel subsystems. | |
| Kernel | 64 .. 95 32 levels | Kernel priority for user processes/threads, which is tem-porarily given when process/thread enters the kernel-space and blocks (sleeps). | |
| User (TS) | 0 .. 63 | 64 levels | Time-sharing range, where user processes/threads runby default (SCHED OTHER policy). |
| Kernel (RT) | 192 .. 223 | 32 levels | ソフトウェア割り込み |
| User (RT) | 128 .. 191 | 64 levels | リアルタイムユーザースレッド (SCHED FIFO と SCHED RR ポリシー)。 |
| Kernel threads | 96 .. 128 32 levels | カーネル内スレッド (kthreads), I/O、VM、他カーネルサブシステムから利用される。 | |
| Kernel | 64 .. 95 32 levels | ユーザープロセス/スレッドのカーネル優先度。プロセス/スレッドがカーネル空間に入るりブロック( sleep )したときの一時的なもの。 | |
| User (TS) | 0 .. 63 | 64 levels | タイムシェアリングの範囲。ユーザープロセス/スレッドの既定動作 (SCHED OTHER policy)。 |
These priorities are only used in the kernel, and internals are revealed only to provide a better understanding of the scheduling system as a whole. The POSIX standard requires at least 32 priority levels for the real-time scheduling policies. NetBSD 5.0 provides 64 priority levels, which are internally mapped to the appropriate kernel range shown above. It is not portable to depend on any of these constants, therefore using them is strongly discouraged. Applications should determine the priority range of the specific policy using the following functions defined by the standard:
これらの優先度はカーネル内でのみ使用され、内部についてはスケジューリングシステム全体を理解しやすい程度にする。POSIX 標準はリアルタイムスケジューリングポリシーに少なくとも 32 優先度レベルを要求する。NetBSD 5.0 は 64 優先度レベルを提供する。これは上記のカーネル範囲内に対応する。これらの内容のすべての依存性については可搬性が無いので、それらを使うことはとてもしんどい。アプリケーションは、標準によって定義された以下の関数を使うにあたって、ポリシー固有の範囲での優先度を決定すべきである:
int sched_get_priority_min(int policy); int sched_get_priority_max(int policy);
In NetBSD, the run queue of LWPs is implemented as a traditional multi-level feedback queue, like in many UNIX-like operating systems. The default SCHED OTHER policy is either the original 4.4BSD scheduling or traditional UNIX time-sharing approach like in Solaris, depending on which scheduler is chosen. It can be chosen using the SCHED 4BSD or SCHED M2 kernel options. One of the main objectives of a time-sharing queue is to give a priority boost for I/O bound threads (which allows the kernel to provide good response times for interactive tasks) and ensure fairness. Each LWP has a priority and time-quantum (amount of time allocated by the scheduler to run on the CPU). In a time-sharing queue, both values are dynamically calculated by the scheduler.
NetBSD での LWP のランキューは、たくさんの UNIX 風オペレーティングシステムのように、伝統的な多段フィードバックキューとして実装された。既定の SCHED OTHER ポリシーは、オリジナル 4.4BSD スケジューリングか、Solaris のような伝統的 UNIX 風オペレーティングシステム方法である。選択されたスケジューラーに依存する。SCHED 4BSD か SCHED M2 カーネルオプションを使えば選択できるようになる。タイムシェアリングキューのおもな目標のうち 1 つは、I/Oバウンドスレッドへプライオリティブーストさせ( インタラクティブタスクのために良い応答時間をカーネルに許可する )、公平性を保証する。各 LWP は優先度とタイムカンタム( スケジューラーによって割り当てられた CPU 動作時間の合計 )を持っている。タイムシェアリングキューにおいて、両方の値はスケジューラーによって動的に計算される。
Threads running with the SCHED FIFO policy, which is a real-time policy, have a fixed priority. That is, the kernel does not change the priority dynamically. Only the super user can set the scheduling policy to SCHED FIFO. Under this policy, a thread runs until completion, or it:
SCHED FIFO ポリシーで走るスレッドは、リアルタイムポリシーであり、固定された優先度を持っている。つまり、カーネルは動的に優先度を変更できない。スーパーユーザーのみが SCHED FIFO にスケジューリングポリシーを設定できる。このポリシーのもとではスレッドは完了するか、以下のようになるまで動作する:
- Voluntarily gives up the CPU (yields).
- Blocks on I/O operation or other resources (memory allocation, locks, etc).
- Gets preempted by a higher priority real-time thread.
- 自発的に CPU を停止する( 委譲 )
- I/O 操作か、他のリソース( メモリ確保、ロックなど )でブロックする
- より高い優先度のリアルタイムスレッドによってプリエンプトを取得される
SCHED RR works in the same way as SCHED FIFO, except threads running with this policy have a time- quantum (time-slice), which by default is 100 ms. Thus, unless it encounters one of the three cases above, the thread finishes when its time-quantum expires. Threads at the same priority level are processed in a round-robin way.
SCHED RR は SCHED FIFO と同じように動作するが、このポリシーで動作するスレッドは既定で 100 ms のタイムカンタム( タイムスライス )で動作する。このように、上記 3 つのうち 1 つが起きるまでは、タイムカンタムの満了よってスレッドは終了する。同じ優先度のスレッドは、ラウンドロビンで処理される。
Figure 1: Real-time thread dispatch latency (threads bound to pset), 8 core Xeon with background load.
図1: リアルタイムスレッドがレイテンシをディスパッチする( pset するときのスレッドバウンド )。8 コア Xeon でのバックグラウンドロード。
A simple latency test with two SCHED FIFO threads bound to the same CPU when the system is under load (running ./build.sh -j16) has shown that NetBSD with kernel preemption enabled tends to respond within 5 microseconds (see Figure 1). Microsecond-level latencies for real-time threads are usually what real-time operating systems, like QNX or VxWorks, guarantee. As we see, response times of real-time threads in NetBSD 5.0 are similar to other real-time operating systems.
システムが低負荷( ./build.sh -j16 を実行 )の場合、2 つの SCHED FIFO スレッドの簡単なレイテンシテストは同じ CPU のためにバウンドする。カーネルプリエンプションを有効にした NetBSD が 5 マイクロ秒以内に応答する傾向がある( 図 1 )。リアルタイムスレッドのためのマイクロ秒レベルのレイテンシは、通常 QNX や VxWorks 製品のようなリアルタイムオペレーティングシステムである。我々が見たように、NetBSD 5.0 でのリアルタイムスレッドの応答時間は、他のリアルタイムオペレーティングシステムと同様である。
The following C code fragment illustrates how to use the SCHED FIFO policy and set highest priority for the current (calling) thread:
以下の C コード断片は SCHED FIFO ポリシーの使い方と、現在のスレッド( 呼び出した側 )に最高優先度を設定する方法を示す。
struct sched_param sp;
memset(&sp, 0, sizeof(struct sched_param));
sp.sched_priority = sched_get_priority_max(SCHED_FIFO);
if (pthread_setschedparam(pthread_self(), SCHED_FIFO, &sp)) {
errx(EXIT_FAILURE, "pthread_setschedparam: %s", strerror(error));
}
See the sched(3) and pthread schedparam(3) manual pages for a full description of scheduling functions.
スケジューリング関数についての完全な説明は sched(3) と pthread schedparam(3) マニュアルページを参照。
Thread affinity スレッド親和性
Thread affinity is the ability to bind threads to run only on a specified processor (or processors). This functionality is relevant to SMP systems and provides an effective way to increase CPU utilization, avoid CPU cache thrashing, ensure concurrency, and guarantee fast response times. These are of particular benefit to real-time applications.
スレッド親和性は、特定のプロセッサ( 単数または複数 )のみにスレッドを動作させるように結びつける能力である。この機能は SMP システムのためのもので、CPU 利用を増加するための効果的な方法を提供する。CPU キャッシュスラッシングの回避、並行性の確保、そして速い応答時間を保証する。リアルタイムアプリケーションのために特に効果がある。
Internally, the scheduler (this part of functionality is also called the dispatcher) tries to balance between two opposite tasks - utilize all processors and maintain thread affinity. In NetBSD 5.0, this is achieved by means of per-CPU run-queues, thread migration and balancing mechanisms. However, balancing and migration decisions are heuristic and based on observations of thread behaviour made by the kernel, meaning that the decisions made might not be optimal in all given situations. For example, the scheduler is not aware of the workload a thread is going to process, or of the relationships between threads. Because developers have such knowledge of their applications, interfaces to control affinity are provided. There are two different interfaces in NetBSD to implement thread affinity: dynamic CPU sets and processor sets.
内部ではスケジューラー( この機能の一部は、ディスパッチャとも呼ばれる )は 2 つの正反対のタスクのバランスをとる - すべてのプロセッサを利用し、スレッド親和性を維持する。NetBSD 5.0 では、これは CPU ごとのランキュー、スレッドマイグレーションと分散機構によって達成された。しかし、分散とマイグレーションを決定することはヒューリスティックであり、カーネルがスレッドの挙動を監視することに基づいているので、この決定がすべての与えられた状況{ ???? }に最適ではない可能性を意味する。たとえば、スケジューラーはプロセスに入ったスレッドの仕事量を把握していないし、スレッド間の関係も把握していない。開発者は彼らのアプリケーションの知識として持っているので、親和性を管理するためのインターフェースが提供されている。NetBSD でのスレッド親和性についてのインターフェースには 2 つの差異がある。動的 CPU 割り当てとプロセッサ割り当てだ。
Dynamic CPU sets is an interface similar to the CPU sets found in Linux and recent FreeBSD systems. It allows binding (pinning) a thread to the processors expressed via affinity mask (a simple bit-mask). Here is a C code fragment which creates a dynamic CPU set, adds the first processor (cpu0) to the set, and sets the affinity mask to the current (calling) thread:
動的 CPU 割り当ては、Linux や最近の FreeBSD システムに見られる CPU 割り当てのようなインターフェースである。親和性マスク( 簡単なビットマスクだ )によるプロセッサへスレッドを結び付ける( 繋ぐ )。ここに C コード断片がある。これは動的 CPU 割り当てを生成し、最初のプロセッサ( cpu0 )を割り当てに追加し、現在のスレッド( 呼び出し側 )へ親和性マスクを割り当てる。
cpuset_t *cset;
pthread_t pth;
cpuid_t ci;
cset = cpuset_create();
if (cset == NULL) {
err(EXIT_FAILURE, "cpuset_create");
}
/* Set the first processor (cpu0). */
ci = 0;
cpuset_set(ci, cset);
/* Set affinity mask to the current thread. */
pth = pthread_self();
error = pthread_setaffinity_np(pth, cpuset_size(cset), cset);
if (error) {
errx(EXIT_FAILURE, pthread_setaffinity_np: %s", strerror(error));
}
/*
* At this point, the current thread runs on the first processor (cpu0).
* The set can be destroyed now (or re-used for other thread, for example),
* since it is already "applied" to the thread.
*/
cpuset_destroy(cset);
perform_work();
Wrappers to set and get the process affinity are also provided:
プロセッサ親和性を設定したり取得するためのラッパーも提供されている。
int sched_getaffinity_np(pid_t pid, size_t size, cpuset_t *cpuset); int sched_setaffinity_np(pid_t pid, size_t size, cpuset_t *cpuset);
Note that while the thread is bound to the first processor, any other process/thread could also run on this processor, and share the time. A full description of dynamic CPU sets API could be found in the affinity(3) and cpuset(3) manuals. Unfortunately, neither POSIX nor other standards define any interfaces to control thread affinity and interfaces provided by various operating systems differ, so these calls are not expected to be portable.
なお、スレッドが最初のプロセッサへ結びつけられている間、他のあらゆるプロセッサ/スレッドもこのプロセッサで動作できるし、時間も共有される。動的 CPU 割り当て API についての完全な説明は、affinity(3) と cpuset(3) マニュアルにある。残念ながら、POSIX や他の標準は、スレッド親和性を管理するインターフェースや様々なオペレーティングシステムの違いで提供されるインターフェースを定義してもいない。よって、これらの呼び出しはポータブルを期待できない。
Processor sets is an interface which allows assigning processors to threads. Assigned processors are forced to run only bound threads (or processes). Thus, processor sets are more of a resource pool based solution. A similar interface is found in the Solaris and HP-UX operating systems. Here is a C code fragment which forces a processor to run only the current (calling) process:
プロセッサセットとは、スレッドへプロセッサを割り当てるためのインターフェースである。割り当てられたプロセッサは、バウンドスレッド(またはバウンドプロセス)のみを実行することを強制する。このようにプロセッサセットはより一層 資源ベースの解決策となる。同様のインターフェースは Solaris や HP-UX オペレーティングシステムにも見られる。現在のプロセス(呼び出し側)のみを実行するようにプロセッサに強制する C コード断片を示す。
psetid_t psid;
cpuid_t ci;
if (pset_create(&psid) == -1) {
err(EXIT_FAILURE, "pset_create");
}
/*
* Assign cpu0 to the processor set.
*/
ci = 0;
if (pset_assign(psid, ci, NULL) == -1) {
err(EXIT_FAILURE, "pset_assign");
}
/*
* Bind the current process to the processor-set.
*/
if (pset_bind(psid, P_PID, P_MYID, NULL) == -1) {
err(EXIT_FAILURE, "pset_bind");
}
/*
* At this point, the first processor (cpu0) runs _only_ the current process.
*/
perform_work();
/*
* Destroy the processor set.
* This operation releases all assigned processors and bound threads.
*/
if (pset_destroy(psid) == -1) {
err(EXIT_FAILURE, "pset_destroy");
}
Note that unlike the previous example with dynamic CPU sets, in this example the first processor (cpu0) would run only one bound process, and no other processes. A full description of the processor sets API can be found in the pset(3) manual page. This interface is not defined by any standards either. However, the API is expected to be nearly compatible with Solaris and HP-UX.
先ほどの動的 CPU セットの例とは異なる。この例では最初のプロセッサ(cpu0) はたった 1 つのバウンドプロセスのみを実行し、他のプロセスは実行しない。プロセッサセット API の完全な説明は pset(3) マニュアルページにある。このインターフェースはどの標準にも定義されていない。しかし API は Solaris や HP-UX とほぼ互換性があることが期待される。
To find out how many processors are configured in the system, there is a standard option to sysconf(3):
システムにいくつのプロセッサが設定されているかを見つける方法は、sysconf(3) の標準オプションにある。
ncpu = sysconf(_SC_NPROCESSORS_CONF);
The flexibility to choose between two interfaces with different approaches, found in various UNIX-like oper- ating systems, allows developers to use the interface which best suits the needs of their applications.
異なるアプローチにより 2 つのインターフェースを選べるための柔軟性は、様々な UNIX 風オペレーティングシステムに見られるし、開発者が彼らのアプリケーションが必要とする最良の一式のインターフェースを使うことを許可する。
Controlling the scheduling of processes and threads プロセスとスレッドのスケジューリング管理
NetBSD also provides two utilities to control scheduling and thread affinity. These utilities can be used by administrators and developers. The schedctl(8) command allows changing scheduling priority and class, and setting thread/process affinity. The following examples illustrate some possible uses of this utility.
NetBSD はスケジューリング管理とスレッド親和性のために 2 つのユーティリティも提供する。これらのユーティリティは管理者と開発者が使える。schedctl(8) コマンドはスケジューリングの優先度とクラスを変更し、スレッド/プロセス親和性を設定できる。このユーティリティで出来ることいくつかの例を示す。
Show scheduling information about PID "123":
PID 123 のスケジューリング情報を表示する:
# schedctl -p 123 LID: 1 Priority: 43 Class: SCHED_OTHER Affinity (CPUs): <none>
Set the affinity to CPU 0 and CPU 1, policy to SCHED RR, and priority to 63 for thread whose ID is "1" in process whose ID is "123":
CPU 0 と CPU 1 に親和性を設定し、ポリシーを SCHED RR にし、プロセス ID 123 のスレッド ID 1 の優先度を 63 にする。
# schedctl -p 123 -t 1 -A 0,1 -C SCHED_RR -P 63
Run the top(1) command with real-time priority:
top(1) コマンドをリアルタイム優先度で走らせる:
# schedctl -C SCHED_FIFO top
Traditional utilities like top(1) (with the -t option to enable thread-view) and ps(1) (with the -l option) can be used to monitor the general thread activity.
top(1) ( -t オプションでスレッドビューを有効 )や ps(1) ( -l オプションも使う )のような伝統的ユーティリティは通常のスレッド活動を監視するために使える。
To control processor sets, psrset(8) is provided, which is nearly compatible with the one found in Solaris. The following example illustrates how to create a processor set, assign CPU 9 to it, and run httpd on that processor set.
プロセッサー割り当てを制御するために psrset(8) が提供されている。これは Solaris にあるものと割りと互換性がある。以下の例では、プロセッサセットを生成し、CPU 9 に割り当て、プロセッサセットで httpd を走らせる方法を示す。
Print current processor sets:
現在のプロセッサセットを印字する:
# psrset system processor set 0: processor(s) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Create a new processor set, which is assigned an ID of 1, and add CPU 9 to processor set 1:
新しいプロセッサセットを生成する。これは ID 1 に割り当てられ、CPU 9 をプロセッサセット 1 へ追加する:
# psrset -c 1 # psrset -a 1 9
Print current processor sets. Note that there is now a user-created processor set with an ID of 1, and that CPU 9 is now in processor set 1 and no longer in 0:
現在のプロセッサセットを印字する。なお、現在 利用者が生成した ID 1 のプロセッサセットがあり、CPU 9 はプロセッサセット 1 になっており、0 ではなくなっている。
# psrset system processor set 0: processor(s) 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 user processor set 1: processor(s) 9
Execute httpd within processor set 1:
プロセッサセット 1 上で httpd を実行する:
# psrset -e 1 /etc/rc.d/httpd start
Note that top(1) shows httpd running on CPU 9:
top(1) で CPU 9 上で httpd が走っていることを表示する:
# top | grep httpd 29469 www 85 0 164K 1468K select/9 0:04 0.68% 0.68% httpd 15229 www 85 0 164K 1404K select/9 3:15 0.00% 0.00% httpd 18574 www 85 0 164K 1688K select/9 2:16 0.00% 0.00% httpd 14208 www 85 0 164K 1336K select/9 2:15 0.00% 0.00% httpd
A small cpuctl(8) utility is also available, which can change the state of CPU to online/offline, as well as identify its model and features. Example output from a machine with "AMD Shanghai" (codename) processors:
小柄なユーティリティ cpuctl(8) も有効である。これは CPU の状態を オンライン/オフラインに変更し、モデルと機能を区別する。コードネーム "AMD Shanghai" プロセッサのマシンでの出力例:
# cpuctl list Num HwId Unbound LWPs Interrupts Last change ---- ---- ------------ -------------- ---------------------------- 0 0 online intr Sat Nov 8 16:33:40 2008 1 1 online intr Sat Nov 8 16:33:40 2008 2 2 online intr Sat Nov 8 16:33:40 2008 3 3 online intr Sat Nov 8 16:33:40 2008 4 4 online intr Sat Nov 8 16:33:40 2008 5 5 online intr Sat Nov 8 16:33:40 2008 6 6 online intr Sat Nov 8 16:33:40 2008 7 7 online intr Sat Nov 8 16:33:40 2008 8 8 online intr Sat Nov 8 16:33:40 2008 9 9 online intr Sat Nov 8 16:33:40 2008 10 a online intr Sat Nov 8 16:33:40 2008 11 b online intr Sat Nov 8 16:33:40 2008 12 c online intr Sat Nov 8 16:33:40 2008 13 d online intr Sat Nov 8 16:33:40 2008 14 e online intr Sat Nov 8 16:33:40 2008 15 f online intr Sat Nov 8 16:33:40 2008
# cpuctl identify 0 cpu0: AMD Unknown AMD64 CPU (686-class), 2999.67 MHz, id 0x100f40 cpu0: features 178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR> cpu0: features 178bfbff<PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX> cpu0: features 178bfbff<FXSR,SSE,SSE2,HTT> cpu0: features2 802009<SSE3,MONITOR,CX16,POPCNT> cpu0: features3 efd3fbff<SCALL/RET,NOX,MXX,FFXSR,P1GB,RDTSCP,LONG,3DNOW2,3DNOW> cpu0: features4 37ff<AHF,CMPLEGACY,SVM,EAPIC,ALTMOVCR0,LZCNT,SSE4A,MISALIGNSSE,3DNOWPREFETCH,OSVW,IBS,SKINIT,WDT> cpu0: "AMD Engineering Sample" cpu0: I-cache 64KB 64B/line 2-way, D-cache 64KB 64B/line 2-way cpu0: L2 cache 1MB 64B/line 16-way cpu0: ITLB 32 4KB entries fully associative, 16 4MB entries fully associative cpu0: DTLB 48 4KB entries fully associative, 48 4MB entries fully associative cpu0: L3 cache 2MB 64B/line direct-mapped cpu0: Initial APIC ID 0 cpu0: AMD Power Management features: 0x1f9<TS,TTP,HTC,STC,100,HWP,TSC> cpu0: family 0f model 04 extfamily 01 extmodel 00
This utility can also be useful to developers who are writing multithreaded applications and want to test them under a variety of CPU conditions.
このユーティリティは、マルチスレッドアプリケーションを書いて、様々な CPU 状況でテストしたい開発者にも使いやすい。
Conclusion 終わりに
NetBSD is a general-purpose operating system, with a scalable 1:1 threading implementation and flexible interfaces to control scheduling and threads. This scalable implementation allows it to provide high quality POSIX real-time extensions and reliably suit the needs of embedded systems. NetBSD also provides modern solutions to ensure good performance for threaded workloads, which are increasingly prevalent in today's world of multi-core and multi-processor systems.
NetBSD は通常目的のオペレーティングシステムである。スケーラブル 1:1 スレッディング実装し、スケジューリングとスレッドを制御するための柔軟なインターフェースがある。このスケーラブル実装によって 高品質な POSIX リアルタイム拡張を提供し、組み込みシステムの要求に確実にぴったりである。NetBSD は threaded workloads のための確実で良いパフォーマンスのためにモダンなソリューションも提供する。これは今日のマルチコアやマルチプロセッサシステムでますます一般化している。
2014-11-21 :-)
_ 午前
0900 起床 && お客さんから「モルダー、あなた疲れているのよ」と言われたので今日は一日休み && といってもやることは普段と同じだらだら
1000 おひる。スパゲティ
1100 アニメ消化
_ [艦これ]艦これ 2014秋イベント E-3 第三次渾作戦 南西方面海域 第三次渾作戦
「遂に主力艦艇を投入する時が来た!連合艦隊による第三次渾作戦を発動!同作戦を完遂せよ!」
妙高 + 羽黒 でルート固定できるということで妙高がレベル 30 くらいなんだけど編成してみた。あきつ丸はレベル 1 であり全然育っていないのである。
第一艦隊
第二艦隊
決戦支援
これでルート固定だった。
ダイソンさん
一度だけボスで完全勝利 S になった。
これが今回実装された対空カットインらしい。
そして無難にクリア。プリンツ・オイゲン
ボスなどでドロップしたレア艦たち。
遠征待ちしている間に 3-2-1 で大和をレベル上げして改造などしていた。
2015-11-21 :-)
_ [艦これ]艦これ 2015秋イベント 突入!海上輸送作戦 E-2 コロネハイカラ島沖
輸送作戦。
最初ドラム缶マシマシで出撃したらボス直行してA勝利したので調子に乗って出撃したら大破撤退が続いたのでドラム缶を減らしてみた。減らしてみたが相変わらず大破撤退することはよくある。全員キラ付けしても大破撤退することもよくある。
ボスS勝利できそうにないので決戦支援も出したんだが、決戦支援出してもS勝利しないこともしばしば。
第一艦隊
決戦支援
ルート固定で
ついに悪い神通も出現したか。
決戦支援が炸裂すると 2, 3 隻沈めてくれる。
んだが、旗艦を沈められないことがよくある。固いのよ。
A勝利で地道にゲージ削って終了。
勲章が欲しかったので。
あと古鷹を改二にした。
2020-11-21 :-)
_ [カレー][ころねぽち][ぽぴ][スープカレーカムイ]ころねぽちのスープカレーやさん
スープカレーカムイとのコラボ ( ころねぽちコラボ 第五弾 - スープカレーカムイ カムイのユーカラ )
本日 #ころねぽちのスープカレーやさん 5週目が15:00からstartします!😳😳🎉
— ころねぽち🧀スープカレーカムイさんとコラボ中!🐭 (@virtualcat_poch) November 21, 2020
最後のメニュー、チーズジンギスカンが登場🐑🐑🐑💞
コオロギとミドリムシと一緒にお待ちしてます!!!👋☺️ https://t.co/moJsC3UltR
10 月から開催されていて来週が最後。コラボメニューは 2 週間おきに更新される且つコラボメニューは土曜日のみ提供される。今週からジンギスカンカレー。トッピングのコオロギやハチは本当にコオロギやハチのようです。画像はみなさん自主規制しているもよう。すまんがオレは遠慮しておく...。
15 時開店(というか提供開始?) だけど開店当初は行列ができていて、17 時からならすんなり入れるとのことだったので、17 時に入りました。行列なかったです。無難にジンギスカンカレーを食べてきました。めっちゃ量が多いです。
1 食につき 1 枚ポストカード(ちうかカード)が貰えるんですが、Twitter には 6 枚くらいのカードを挙げてるひとがいました。6 回食べたということか。かなり多いんだが 1 日で 2 回食べたんだろか。
2021-11-21 :-(
_ 母の葬儀の香典を集計していた
喪主はオレじゃなく兄なので対外的なやりとりは兄の役目なのだが、母はオレと同居していたので、 遠方からの現金書留といったいろいろなものはオレのところに来る。それを集計して兄へ報告していた。






















































_ よしみつ [太るよー( ̄ー+ ̄)]
_ さいき [太るぞ〜うちあげられたトドみたいになってもしらないからね(某ライブMCより 琴ちゃわん 何]
_ みわ [甘いモノは入る胃が同じだけどきっと消化がいいんです!]