ユーザーが作ったプロセスは通常ユーザーモードで動作していますが、
プロセスがシステムコールを発行するとプロセス自身がカーネルモードに移行するんですか??
自分は今まで
ユーザーモードで動作するプロセスがシステムコールを発行するとカーネルモードで動作しているプロセスに処理を依頼するのだと思っていたのですが・・・
Linuxカーネル第3版の本に”プロセス自身がユーザーモードからカーネルモードへと移行する。カーネルがユーザーの要求を満たした後、再びユーザーモードに戻る”というようなことが書いてありました。
もしかして自分の理解は間違っていましたか??
1つのプロセス内に2つの動作を切り変えながら動いているのですか??
システムコールを発行する瞬間のみカーネルモードに変わるのですか??
システムコールラッパーのあたりに入ってくるとカーネルモードに変わってくるんですか??
なぜカーネルモードに移行する必要があるのでしょうか??
プロセス自信がカーネルモードに移行できるならわざわざシステームコールなどという概念はそもそも必要なくても良いので?
”システームコールはユーザーモードとカーネルモードの橋渡しをする役割を担う”というのを読んだことがあります。
そうなるとシステムコールとは何でしょう??
と色々考えてしまうのです。
またユーザーモードとカーネルモードはそれぞれCPUのモードだと書いてありました。
CPUのモードということはハードウェア的にモードを切り替えているということですか??
どうやって実現しているのでしょうか?
今までソフトウェア的にモードを使い分けていると思っていました。
リアルモードと保護モードはMMUのon/offでできそうですが・・・
どなたか教えてください!
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/16 13:25
2016/09/16 13:33
2016/09/16 14:13
2016/09/16 14:27
2016/09/16 14:29
2016/09/16 15:31
2016/09/17 01:16
2020/01/09 03:51
2020/01/15 12:44 編集
2020/01/15 12:55 編集
2020/01/15 13:00
2020/01/15 13:22