51901


現在、OS自作入門をベースにOSの開発、学習をしています。  
マルチタスクを実装しようと試みているのですがうまくいきません。  
OS自作本とは少し設計が違うせいか同じ実装では出来ませんでした。

Web上にあるOS開発のチュートリアルなども参考にしてますがチュートリアルごとに実装が異なるため余計に混乱しています。  
ページング機能が有効な場合とそうでない場合、ハードウェアコンテキストスイッチとソフトウェアコンテキストスイッチであったり...。

私が望んでいるのはページングが有効でない場合のコンテキストスイッチです。  
ハードウェアコンテキストスイッチかソフトウェアコンテキストスイッチかはあまり気にしていませんが出来ればソフトウェアの方を教えていただきたいです。

回答よろしくお願いします。


CC BY-SA 4.0
2019-01-10T12:38:13.130
51873
2019-01-12T03:43:54.643
2019-01-11T12:52:30.507
24999
24999
question
c assembly
IA-32でコンテキストスイッチをする方法


「ページングが有効でない場合の」というのが難しいかと。  
それを外して、既知かもしれませんが、こんな記事がありますので参考に。

[自作OSの紹介的なの](http://ac-mopp.blogspot.com/2014/12/os-advent-
calendar-2014-os.html)  
[自作OSでのプロセス実装について (1) ~初めてのユーザプロセス~](http://ac-
mopp.blogspot.com/2014/12/os-1.html)  
[自作OSでのプロセス実装について (2) ~初めてのユーザプロセス~](http://ac-
mopp.blogspot.com/2014/12/os-2.html)  
[mopp/Axel](https://github.com/mopp/Axel)

あと断片的でしょうが何か参考になれば。  
[自作OS Advent Calendar 2018 - Adventar](https://adventar.org/calendars/2915)  
[自作OS Advent Calendar 2017 - Adventar](https://adventar.org/calendars/2282)  
[自作OS Advent Calendar 2016 - Adventar](https://adventar.org/calendars/1666)  
[自作OS Advent Calendar 2014 - Adventar](https://adventar.org/calendars/511)

[FreeDOS ( MS-DOS )
をマルチタスク化](http://www.ne.jp/asahi/ajara/kojara/multitask.htm)

* * *

ついでに、これも既知かもしれませんが、同じ本「OS自作入門」を基にした一連の記事です。  
[０から作るOS開発](http://softwaretechnique.jp/OS_Development/index.html)

こちらはLinuxカーネルを読み解いている記事です。  
[Linux Kernel ~ コンテキストスイッチ x86編
~](https://k-onishi.hatenablog.jp/entry/2018/09/23/145152)

[Linux
カーネルのコンテキストスイッチ処理を読み解く](http://d.hatena.ne.jp/naoya/20070924/1190653790)  
[x86 Linux
のメモリモデル、プロセス空間切り替え、カーネルスタック](http://d.hatena.ne.jp/naoya/20071008/1191824562)


CC BY-SA 4.0
2019-01-11T16:22:37.990
51901
2019-01-12T03:43:54.643
2019-01-12T03:43:54.643
26370
26370
51873
answer