質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

Q&A

解決済

1回答

1339閲覧

プロセスの状態保存について

strike1217

総合スコア651

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

0グッド

0クリップ

投稿2017/07/02 03:04

現在のコンピュータはTSSにより、プロセスを時分割してプロセッサに割り当てています。

この場合、複数のプロセスをプロセッサが識別する必要がありますよね?
つまり、PIDを保存するレジスタが必要だと思います。
x86の場合、PIDを保存するレジスタなんてあるのでしょうか??

ARM
ARMだとあるようです。

x86のレジスタについての簡単なまとめ

プロセスを識別するためのレジスタがないと、仮想メモリと物理メモリの変換ができなくなるはずです。

また例外などが発生した時にそのプロセスの状態を退避する必要がありますよね・・・
TLBミス ・・・プログラムカウンタを例外プログラムカウンタに退避する。(これだけでしょうか?)
ページフォールト・・・プロセスの全状態を退避する(どこに退避するのでしょうか? キャッシュ?メインメモリ?)

教えてください。
私の本には載っていませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「プロセス」という概念は、CPUレベルの物では無くて、OSの機能の一つです。
従って、多くのCPUには専用のレジスタは存在しません。
多くの場合、汎用レジスタがプロセス記述子(構造体)をポイントします。PIDはそのプロセス記述子構造体のフィールドとして存在します。

詳しく無いので間違っているかもしれませんが、ARMの上位プロセッサだとFCSE(Fast Context Switch Extention)という機構をCPUが持っており、プロセスの切り替え処理の一部をその機構で行うことで、プロセスの切り替えを高速化しているようです。

投稿2017/07/02 10:08

otn

総合スコア84487

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2017/07/02 10:45

プロセス記述子(構造体)これは、task_structのことでしょうか? これを汎用レジスタに入れてプロセスを識別しているということですかね?
otn

2017/07/02 11:09

> プロセス記述子(構造体)これは、task_structのことでしょうか? 構造体の名前はOSによります。 Linuxだとそうみたいです。Kernelソースを読んだことはないです。 >これを汎用レジスタに入れてプロセスを識別しているということですかね? 直接ないし間接的に汎用レジスタからポイントしているはずです。
strike1217

2017/07/02 11:26

なるほど!! 分かりました。 OSの機能については再度質問します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問