はりぼて日記
2007 | 01 | 02 | 03 | 04 | 05 | 07 | 08 | 10
2006 | 11 | 12
1月 13 (土曜日) 2007
14:28
17日目2
 
17日目 [2]〜[7] 終了〜。



ぎゃあぁぁ!楽しい!

ふむ。なるほどぉ。言われてみればその通りだけど、キーボード(まあマウスも)等、一個しかないものからの受信は、一旦OSが受信して貯めておいて、改めて「どのタスクに送信するか?」と割り振りを行うわけだよね。

(しかし知らなかった。CpaspLockとはそういうのは、てっきりパソコンそのものの仕様というか動作で、OSとは関係ないと思ってた。なんとこういうのもOSが面倒みてやらないといけないんだね。)

(逆に言えば、こういうのを俺様仕様にするのも簡単なわけかぁ。)



しかし相変わらず誘惑がひどい。emacs使いな私は、Ctrlキーやそれ用のコンボ、あとはCapsをCtrlにしたい誘惑が・・・(^^;
 
name: @Guest  Comment:
14:04
17日目
 
[1]

下に同じ〜。

(番兵の理屈はわかるけど)
 
name: @Guest  Comment:
14:01
16日目4
 
16日目 [5]



うわ〜。わっかんねぇ〜。

困ったなこれは・・・理屈がよくわからないや。



レベル0のタスク組。ここになにかある場合はレベル1にはスイッチしないと。たとえば音楽再生処理のタスクをレベル0に登録したとする。しかしそうなると、音楽を停止するまではレベル1のタスクにはスイッチしないのか?。



・・・だめだぁ。ここ、もう二日も読んでるけど、ど〜も解らない。イチかバチか、ここはちょっと保留にして進めてみよう・・・orz・・・
 
name: @Guest  Comment:
1月 12 (金曜日) 2007
19:01
16日目3
 
16日目



[4]

タスクに優先順位を付けると。まあ、「優先順位」と考えるとむずかしいけど、ようするは「標準状態では0.02秒で切り替わる」に対して、「俺は倍の0.04秒しないと切り替わらない!」「いや俺は0.08秒だ」というふうに、切り替わる時間を調整できるようにしたわけね。



 
name: @Guest  Comment:
1月 11 (木曜日) 2007
16:48
16日目2
 
16日目



[2]

さて、タスクをより効率的に管理しようと。

なるほどぉ。HLTする代わりにtaskctl->tasks[]からいなくなる。つまり、「ここで寝ているくらいなら邪魔だから、家帰って寝ろ!」と。(^^;



なるほどぉ。ソースを見たらなんとなくわかった。tsという変数(フラグと言ったほうが適切かな?)によって自分自身が寝る時に、自動で動く部分を設置することによって、「自分自身をスリープ&タスクスイッチ」を実現しているわけか。



なるほどねぇ。タスクAは起きて仕事をしている(仕事をすることが必要な時)とそうでない時とを自分で管理して、必要がない時(一通りの仕事が終わった。次の仕事の命令が来るまでは暇なのだと自分でわかる)はタスク一覧から退く。(そうすればタスク切り替えプログラムが無視する)こういう理屈なんだな?





[3]

ツルツル〜っと・・・・











 
name: @Guest  Comment:
1月 09 (火曜日) 2007
23:50
16日目
 
16日目



[1]

うーむ。むずかしいけど、原理というかパターンが解ってきた!

基本的には、とにかく構造体を作っちゃって(ようするは国会議員の出欠の札みたいなの。来たら裏返す。帰る時には裏返す。これを見ればすぐわかる!みたいな・・・)そこに確実に書き込めばいいわけね。

・・・ん? でも、ここでもforを使ってマックス値までベタ〜っと探すという動作をしてるなぁ。・・・さては、この後これをチューニングする気だな??(^^









 
name: @Guest  Comment:
1月 08 (月曜日) 2007
21:19
ちょっと休憩
 
ふ〜。やれやれ。とうとう半分まできたぞ。



ここでちょこっと一休み。見た目だけの改造をharib12gに施して遊んでみました〜。

 
name: @Guest  Comment:
16:42
15日目2
 
15日目 終了〜



[2]〜[4]

おぉ! わかる! わかるぞ!これ!



[5]〜[6]

うーむ。原理はわかるんだけど、P304の説明がよくわからないや・・・。

スマソ Kたん! なんか先があまりにもおもしろそうなので、ここはちょっとトバしまする。(あとでちゃんとやります〜)



[7]

あー。なるほど。大雑把にいえば、mt_timerというみんなが見られる特殊なタイマーを設けて、こいつのタイムアウトが起こったら、task_aだったらtask_bへ。task_bだったらtask_aにスイッチしろと。

もっといえばとにかくいやおうなしにtask_aとtask_bを切り替える特殊なタイマーを一個設けて勝手にぐるぐると切り替えるようにしたわけか。なるほどなるほど。理屈だ!。わかるぞ!

(きっと後で、この部分を拡張して、「動いているタスクの一覧表」をどこかに作り、mt_timerはそこを自分で見て次々と切り替えるようなものに進化する悪寒。)
 
name: @Guest  Comment:
13:16
15日目
 
15日目 [1] 終了〜

マルチタスクかぁ・・・

ええと? EIPレジスタは実行命令のアドレスを覚えていて、命令が実行されると一個増えると。へ〜。「行番号記憶レジスタ」ってとこかな?(・・・いまどきベーシックだって行番号なんか使わんだろが!)



むむむ?csレジスタを同時に書き換える? 「コードセグメントレジスタ」?だと? あれー?これ、なんだっけ? 復習・・・

復習した内容をここにメモ〜。(たぶんだいたいこれで合ってるはず・・・)



なるほど。ジャンプ先がもし普通?の実行可能セグメントだったらそのまま普通?にジャンプする。で、そうじゃなくTSSだった場合はタスクスイッチしてくれるというわけね。



・・・むむむ!

なんとか理屈は理解できるぞ!。つかこれ、CPUの仕様のせいでいろいろやってるようだけど、なんかテレビの大道具さんみたい!。(月曜日。ヘキサゴン。ヘキサゴンのセットを組み立てる。位置や小道具や役者さんの服装等などを全部ちゃんとメモしておく。で、金曜日!ヘキサゴンのセットを全て別の倉庫へ。で、動物奇想天外のセットを作る。さて、再び月曜日。動物奇想天外のセットを撤去&メモ。ヘキサゴンのセットのメモを元に倉庫からセットを搬入&組み立て。マイクの位置や役者さんの衣装も前回終わった時とまったく同じに設置。はい!OK。では、ヘキサゴンスタート!・・・みたいな。)
 
name: @Guest  Comment:
1月 07 (日曜日) 2007
22:40
14日目
 
14日目 一気に終了〜



[1]

うーむ・・・

確かに、こういう「ホントの底辺の土台」はチューンし過ぎるってことはないことにはまったく同意。(もちろん生産性やメンテナンス性を否定はしないけど、どっちをとるか?って考えると、私だったらそりゃチューンされているほうがいいよなぁ。)





[2]〜[3]

うは!いきなり高解像度か!

VESAかぁ・・・。そういえばLinuxのX-Windowでもお世話になったなぁ。

しかし、逆に考えると「規格」ってむずかしいよね?。あまりガチガチに決まっていると競争原理による進化を阻害するし、決まっていないとみんなが楽に使う・作るってことができないし。

せめてIBMが決めたXGAだけでも業界標準になってたらなぁ・・・(^^;





[4]〜[6]

わはははは! こりゃ楽しい!

本にも書いてあったけれど、いままでいろいろと底辺部を苦労して作り上げてきたおかげで、まるで「Windows上の普通のプログラム」のように簡単にCで書けちゃうんだなぁ。



[7]

おぉ! これこれ! これがやりたかった!

プログラムもたった一個の関数を呼んでいるだけじゃん。いいなー。

(動かしているウチにムラムラと、背景に描画されているステータスをウインドゥにまとめたくなってきた・・・)











 
name: @Guest  Comment:
1 2 3 4 5 6 7 8 9 (10) 11 12 13 14 » 

PopnupBlog V3 Denali created by Bluemoon inc.