よもぎのOS自作入門 15日目/30日
はじめに
これは2020年夏休み企画「30日でOS自作してみよう!」15日目の記事です。
企画についてはこちら
昨日やったことを書いていきます。
昨日の進捗
タイマを利用してタスクスイッチを行いました。一応……マルチタスクができるようになった?
昨日やったこと
まずとにかく別のタスクに切り替えるみたいなことをしました。
タスクを切り替える際に、CPUはレジスタの値をメモリに書き込んで退避させた後、切り替え後のタスクのレジスタの値をメモリから読み込みます。 レジスタの値を保存するメモリセグメントをtask status segment(タスク状態セグメント)といいます。
2つのタスクを切り替えたら、その切り替えた先でfor文回してカウントアップしました。
マルチタスクの最初の実装が、あるタスクから別のタスクを直接呼び出すというものだったので、まとめて取り扱うmt_timer
を用意して各タスクとタスクスイッチを切り離しました。
そんな感じです。
それと別に、いままで手作業でmake run
するためのディレクトリを作っていたのを、簡単なバッチファイル書いて一部自動化しました。
今までなんでこうしてこなかったんだ。
@echo off set /p foldername="input the folder name>>>" md %foldername% echo cmd.exe > %foldername%/!cons_nt.bat echo ..\z_tools\make.exe %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9 > %foldername%/make.bat echo done
最近ちょっとエントリ書くことに注力しすぎてしんどくなった(長続きしなくなりそうだった)ので、ちょっと手抜きしました。
今日も一日頑張るぞい!