はりぼて日記
10月 09 (火曜日) 2007 | ||
14:37
|
17日目
|
|
17日目〜。
むっずかしいタスク管理。完全に解らなかったのがちょっと くやしいが今度はコンソールだ!。サクサク進めるはずだぞー!? ・・・いきなりまたタスクですか・・・ orz ん? あれ? でも、これならわかるぞ? 番兵でしょ? P337 うん!大ジョブ大ジョブ! これなら解る解る! ( あーよかった・・・(^^; ) P338 さてさて! いよいよコンソール作り〜! こういうのはなんか楽しいな♪ P344 あーん。なるほどねぇ。ここでTASK構造体にFIFOが入るのかぁ。 P345 &fifoを&task->fifoに書き換えると・・・なるほどなるほど。もっともです。 P347 うーん。なつかしいなぁ。これ見るたび、かつてhideyOSiを 作ってた時のこと思い出すです。(いやそりゃ、ぜんぜん レベルが違いますが・・・(^^; ) P352 コラムに書いてあることをウチでも実験・・・・ あっれ〜??? ウチのはちょっとちがうぞ?? QWER UIOP ASDFGHJKL:"| BN? ウチのキーボード+WindowsXPだと、両Shift押しだとこれしか 入力できないようだ・・・。こういうのはなんの仕様なんだろう? キーボード? それともマザーボードかなんかかな??? さてさて〜。 タスク管理と違ってツルツル進むぞ! ←逆恨み そんなわけで、17日目終了〜 |
||
13:12
|
16日目2
|
|
P324
タスクに優先順位かぁ。なるほど確かにこれは必要な仕組みですね。 そのために、TASK構造体にプライオリティーという変数を追加と。 P326 ふむふむ。タスクが2個以上ないとスイッチしないと。なるほどなるほど。 P327 なるほどぉ〜。タスクを走らせる時に優先順位をこういうふうに 指定すれば近い値が出ますなぁ。たしかに。 P328 ・・・さ〜て! ここからが課題。 っと言うのは、以前はどうもここがわからなかったからなんです。 おっとっと! さっそく!。やることがなくなるとスリープすると。 えっと。これどういう仕組みだったっけ?。チョット復習。 あー!ここ、ここ! P316だ。 なるほど。やることがなくなった場合はtaskctl->tasks[]内から 削除されると。これは要するに、順番待ちの名簿から名前を 削除されるのと同じことだね。スリープというとなにか特殊な 感じがするけど、ようは名簿から外れたので呼び出し(タスク切り替え) が起こらず、結果なにもしないタスクということになるわけか。 P329 ・・・むむむ・・・これがどうもわからんなぁ。 マウスと音楽。共に大事なんだけど、その大事なのがぶつかって しまったら。まあそれはよくわかるんだけど、たとえばプライオリティーを もっと細かく(たとえば100段階とか)にするってんじゃダメなのかなぁ・・・ タスクにレベルを設ける。で、上のレベルが空にならない限り、下のレベルのタスクにはやってこないと。 うーむ!。でも、例えば音楽再生みたいにずーっと処理されるようなタスクが 二個あったら、下のタスクには永遠に切り替わらない??? あ”っーーーー! ちょっと違うなぁ。 これは逆の考え方のほうがいいのかな。つまり、いままでの 優先順位だけだとタスクは全て切り替わる。順位はあるが 必ず切り替わると。 音楽再生のように忙しいタスクが出現した場合はいくつかの タスクが下のレベルに追い出され、終わるまでは切り替わらない。 そういう考え方なのかな?? うーーーん・・・・ P331のtask_switchsub()がどうもわからないなぁ・・・ ・・・こりゃちょっとダメかもしれん・・・ さすがに「3巡目」ってのはないけど、ここはちょっと棚上げ。 以上、2巡目もまた惨敗だが先に進むことを優先し、不本意ながら16日目終了・・・orz |
||
8月 03 (金曜日) 2007 | ||
18:44
|
16日目
|
|
16日目〜。
P312。 ふむふむ。これはいつものパターンだよね。(Kタンのパターンなのか、プログラミング上の定石なのか??) ・・・ふーん・・・ これ見ていて思ったのだが、各関数や構造体の「入れ子状態」を 図にしてみると解りやすいかもしれん・・・ (だって〜! タスクならtaskxxばっかりでややこしいんだもん! 徳川さんチの人がみーんな家xってのと同じような。覚えにくい!) P316 えーっと。自分自身を寝かせる関数・・・ task_sleepに渡されたtask構造体。この構造体にはflagsというパラメータがある。 このパラメータが2ならそのタスクは動作中。1ならそのタスクは動いていないというマーク。 最初のifで、動いていて、かつ、現在動作中のタスクかどうかを判断させ、tsで記憶する。 tasks[]からはずされてしまうので、次回タスクが切り替わる時にはこのタスクは対象外となる。 ・・・しかし、今回はまだ切り替えを行わない。まだ動いているから・・・・ こんな感じかな??? P318 なるほど〜。これはそうむずかしくないな。 むむ〜。複雑だなぁ。タスクがスリープをするかどうかをよく 把握していないと・・・ P321 ??「偶然飛び先はよくなったので性能が上がった」??? あれかな? 飛び先が4の倍数の番地だと早くなるっていう・・・ P321のコード部 ・・・うむむ・・・ 確かにながーいけど、なんとなくわかるぞこれは。 この構造だと基本的にはtask_bが一個だったいままでとそんなに 変わらないもんなぁ。 今はまだ未完成状態のせいだろうけど、かえって、もっとまとめられないかなぁなんて思えるくらい。 |
||
7月 30 (月曜日) 2007 | ||
19:14
|
15日目4
|
|
15日目4〜。
P307。 いよいよちゃんとしたマルチタスク。 ふむふむ。 ようするに、タスク切り替え専用のタイマを作って、こいつが 勝手に自動的に切り替えを繰り返すと。 これはむずかしくなかったぞ〜。 そんなわけで、やっとこさ15日目終了〜 |
||
16:29
|
15日目3
|
|
15日目3〜
まだP296・・・・orz えーっと・・・ちょっと整理してみよう。「今回のHariMainの一部」の表。 ・まず、なにもしない。初めて動くタスクなわけだから、ほとんどの レジスタは「0」でいいと。 ・tss_b.eip。eipは次に実行する命令の番地を管理してる。今回は task_b_mainという関数のアドレスを格納している。まあつまり、 今回初めてtask_b_mainを動かすんだから、この関数の一番最初の 番地を入れておくという感じね。 ・tss_b.eflags。eflagsはフラグの集まり。各ビットひとつひとつに 意味があるレジスタ。 えーっと。なになに?STIした後の値とな?? STIってなんだっけ・・・・ あー。そか。P89。割り込みの可否のレジスタね。 うーん・・・これ16進数で0x00000202なんて書いてあるから意味 わからんかった。これをP89の表&二進数に変換すると・・・
こういう値が入るわけね。(・・・なんだろ?この値??なんか意味があるのだろうか???) ・tss_b.esp タスクBが使うスタックの番地(開始番地?)のアドレスをセットすると。 (まあこれは当然だよね) ・es,cs,ss,ds,fs,gs ふーむ・・・。asmhead.nasと同じ?えとえと??? うえーーん!わかんねぇ!P134のDS、ES、SSの思い込みのこと?? ここはちょっと棚上げ・・・ P299 えーっと・・・ESP+4かぁ。 これはどういう意味かというと、P69参照。Cから渡された引数を 読みたい場合にこうするというだけ。 P301 「川合先生!秀吉君がまたかよって言ってます!」 (笑 |
||
7月 15 (日曜日) 2007 | ||
17:43
|
15日目2
|
|
ふむふむ。
まずはTSS構造体を定義する。 そしてその定義に従って二つの構造体変数を宣言。 んで、レジスタ退避意外の要素、TSSの設定変数に初期値を代入と。 で、これを実際のGDTに登録〜! ・・・あれ? リミットってなんだっけ?? あー! そっかそっか! 「このセグメントの大きさはいくつ」だ! 本来のセグメントはこれを自由に好きなように設定できるけど、 TSSはP292のとおり104バイトしかいらないから、その大きさつーことね。 ふむふむ。以上で準備がOKとなったわけね。 で、タスクの切り替え。 ・TRレジスタに現在のタスク番号?(実際にはTSS番号)*8を代入 ・あとは切り替えたいタスク番号にファージャンプ! なるほどなるほど! P296、 うーん。これは、パチンとタスクがタスク4に切り替わったとき、 全てのレジスタがこうなるということを設定するわけか。 今回は初めて切り替わるので、事実上初めて動き出すのと同じこと。 なので、ほとんどのレジスタは0なわけか。 (まあつまり初期値なので0にしとくかってレベルのはず。 |
||
12:52
|
15日目
|
|
15日目〜。
さーていよいよマルチタスクだ! マルチタスクは同時進行ではない。高速に切り替えているだけ。 忍者の分身の術と同じなわけですね。 ちなみに猿飛び佐助は実在しませんが霧隠れ才蔵は 実在したorモデルとなる忍者がいたとか・・・ ←超どうでもいい ふむふむ。TSSはセグメントの一種と。 ldtrは0に。iomapは0x40000000をとりあえず代入と・・・なんでーー???? (たぶん後で出てくるはず) |
||
12:37
|
14日目3
|
|
ひさびさ〜
高解像度。まあこれは特にわからんことはなくトントンと進んでます〜。 P279、ほっほ〜。ES:DIにビデオカードの情報があると。なるほどなるほど。 P282 キーボードかぁ。 ここの表でもいいんだけど、オイラの時は実際の配置との照らし合わせに ちょっと苦労した記憶があるのでこんなのを作っとります。 よろしかったらご活用ください〜。 P288 うーん。スルスルと解りすぎて書くことないなぁ・・・←なにを偉そうに! 動くだけで反応しないマウス・・・・ そんなの飾りです! かわい人にはそれが解らんのです! そんな小ネタとともに、14日目終了〜 |
||
5月 14 (月曜日) 2007 | ||
16:51
|
14日目2
|
|
14日目2〜
ヽ(`Д´)ノモルァ わかんねー! 棚上げは棚上げで進もう! |
||
5月 13 (日曜日) 2007 | ||
21:24
|
14日目
|
|
1 2 (3) 4 5 6 7 8 9 10 11 12 »  |
PopnupBlog V3 Denali created by Bluemoon inc. |