「ページフォルト」が起こると割り込みが発生しますよね。
だから割り込み処理プログラムが必要だと思うのですが、
そこではどんな処理をしているのですか?
 割り込み以外の部分では何をしているんですか?
 ページ追い出し処理はどうすれば、またどこにあればいい
のですか? 

このQ&Aに関連する最新のQ&A

A 回答 (4件)

CPUアーキテクチャ、システムアーキテクチャ、OSの組み合わせによって大きく違います。


多くの場合ページフォルトはソフトウェア割り込みですからスーパーバイザモードで管理しているのですが…。

・「VAX アーキテクチャ・ハンドブック」
(共立出版 ISBN4-320-02212-2)
・「VAX/VMSソフトウェア システム・ソフトウェア概要 第2版」
(共立出版 ISBN4-320-02419-2)
・「UNIX4.3BSDの設計と実」
(丸善 ISBN4-621-03607-6)
などにページング処理の実装が解説されています。
あくまでも“アーキテクチャ依存”であることをお忘れなく。
    • good
    • 0

一般のプログラムにはページフォールトが起きたことを知る手段は


ありません。検出からページ入れ替えまで、すべてOSが処理します。

質問の意図は、ページフォールトの割込みが起きると、OS内部の割
込み処理ルーチンが何をしているか知りたいということでしょうか?

割込み以外の部分とは、何でしょうか?OSの割込み処理ルーチン以
外の部分は何のためにあるかという意味ですか?

追い出し処理がどこにあればいいとはどういうことでしょう?OS内
部というだけでは不足という意味でしょうか?
    • good
    • 0

必ずしも間違いとはいえないかもしれませんが、


普通のソフト的な割り込みプログラムが必要と思っているなら、
勘違いしています。
メモリの管理は自動的に行なわれるので、
ソフトウエアから見れば割り込みは起こっていません。
CPUの内部から見れば割り込みかもしれませんが、
それを割り込みと呼ぶ人は、CPUの設計者くらいでは?

コンピュータの規模も書いてもらえると答えやすいです。
    • good
    • 0

割り込み処理っていうのは


「FIFO」や「LRU」のことではないんでしょうか?

この回答への補足

はい、LRUのことです。

補足日時:2001/06/09 14:14
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q通信における「ページング」ってなんですか?

通信の勉強をしている(させられている)のですが、今、本で、「ページング」って言う言葉が出てきました。
でも、意味が分かりません。国語辞典にも広辞苑にも載ってませんでした。
プログラム関係でも「ページング」というのがあるみたいなのですが、ネットワークにおける「ページング」
ってどういうものなのでしょう?商品化されてるものなどあるのでしょうか?

詳しい方教えてください。m(._.)m

Aベストアンサー

ネットワークからポケベルを呼び出すのも「ページング」ですが、携帯電話を呼び出すことも「ページング」と言います。
誰かがあなたの携帯電話番号をダイヤルすると、ネットワークから呼び出しを受けて着信音が鳴るわけですが、これが「ページング」を受けたということです。

通信で「ページング」とは、ネットワークから携帯電話・ポケベルに呼び出しをかけること、と考えて間違いないと思います。
なぜ「ページング」というのかは、わかりませんので、他の方におまかせします。

QDelphiのマルチスレッドの割り込み処理について

Delphiのマルチスレッドの割り込み処理について教えて欲しいのですが、ファイルをスレッドオブジェクトで作成して
クラス名.Execute関数内でSynchronizeメソッドを使用しています。
本にはSynchronizeメソッドは「渡したメソッドが実行され終了するまで待ちます」と書いてあり、テストプログラムを作成してもそうでした。ということはSynchronizeメソッドは普通の関数と一緒のような気がしてしまうのですが、違うのでしょうか?
Procedure MyThread.Execute
begin
Synchronize(AAA); AAAの処理が終了するまで待機している
end;
Procedure TmyThread.AAA;
begin
'したい処理'
end;

Aベストアンサー

実際にプログラムを作って試した訳ではありません。見当違いでしたらすみません。

BDS2006のヘルプを見たところ、SynchronizeメソッドはDelphiの中で唯一つしかないメインVCLのスレッドを使うための方法です。すなわちスレッド間の競合の問題を「簡単に」解決する方法です。

ですから、'したい処理' 全体をSynchronizeで呼び出すのではなく、基本的には 'したい処理' はExecute内に書き、その中の競合する部分だけを切り出してSynchronizeで呼び出すようにします。

例えば、DelphiのDemoフォルダ下にあるThreadsプログラムは、PaintBoxを書き換える処理だけを切り出してSynchronizeで呼び出しています。配列に関しては各スレッドで独立しているため勝手に書き換えています。

また、競合を回避するには、TCriticalSectionクラスを使う方法もあります。'したい処理' はExecute内に書き、その中の競合する部分だけをEnter-Leaveではさむようにします。

Qページング・スワップの起こし方。

情報処理の勉強をしているのですが、仮想記憶方式の説明において、
主記憶の容量が少ないと、プログラムの実行時にページ入れ替えが多発することになる

これが起きるとレスポンス悪化するとあるのですが、スワップとの区別がいまひとつイメージがつかめません。
実際に自分のマシンで動かしてイメージを作っておきたいのですが、
スワップや、ページングというものはどうやって起こせばよいのでしょうか。

Aベストアンサー

http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/admin-guide/s1-memory-virt-details.html
※表示-文字コードをEUC-JPにしてご覧ください。

ページングとスワッピングはほぼ同義です。意識しなくても自動的に実行されています。ページングが多発している状態がスラッシングですね。
http://e-words.jp/w/E382B9E383A9E38383E382B7E383B3E382B0.html


スラッシングをおこすなら、メインメモリを物理的に外して(XPなら128MBぐらい?)、photoshopなどメモリを必要とするソフトを立ち上げてください。

Q【いま暴力団のHP(ホームページ)を作っています】 PC用サイトではなくスマホ用サイトではなく昔のi

【いま暴力団のHP(ホームページ)を作っています】

PC用サイトではなくスマホ用サイトではなく昔のiモード用サイトみたいなホームページを作っているのですが暴力団が好きそうな模様を教えてください。

いま一応、こういう装飾にしています。



꧁極꧂

꧁任侠道꧂


項目リストのリストマークは



を入れて菊の紋にしようかなと思ってます

暴力団っぽい装飾のアドバイスください。

Aベストアンサー

色ってないんですか?あるのだとしたら赤・黒・黄色とか良いのではないですか?
役に立たなかったらすいません(^-^;

Qページングがうまくいきません。

ページングについてご教授お願いいたします。PHP+MySQLで検索アプリを作成しております、PHP初心者です。過去ログを参考にページングのプログラムを作成しているのですが、うまくいきません。
受け側(paging.php)を表示したところエラーが出てしまいます。ですが「前へ」「次へ」のリンクは表示されていて、クリックすると「?page=1,?page=2,....」とページングされて希望どうり表示されます。受け側(paging.php)を表示した際に「?page=1」を表示したいのです。何卒宜しくお願いいたします。

Aベストアンサー

エラーの行より上で、

if(!$page) $page = 1; // ページ値が無かったら1


筋違いでしたらすみません。

QPIC16F84AのRBポート変化割り込みの使い方

PIC16F84AのRBポート変化割り込みを使いたいのですが、三つ質問があります。

1.割り込み処理に入ったときに、「BCF INTCON,RBIF」としてもRBIFフラグが立ったままで、「RETFIE」で割り込みから戻った直後にすぐにまた割り込み処理に入ってしまいます。(MPLABのシミュレーション上でStimulusControlerでPINを変化させて実験)これの原因は何なのでしょうか?RBIFフラグはどのようにして解除したらよいのでしょうか?

2.RBポートは内部でプルアップせずに、外に抵抗をつけてプルアップしようと考えているのですが、その場合でも正しくシミュレーションできるのでしょうか?

3.RBポート変化割り込みは、LからHになった場合と、HからLになった場合の両方に反応するのでしょうか?

以上三つの質問に回答お願いします。

Aベストアンサー

ソースが無いので実装が分かりませんが。
1 と 3 は下記のサイトで解決するように思います。
http://www.picfun.com/pic08.html

2 はすいませんが分かりません。

参考URL:http://www.picfun.com/

Qレジストリでページング機能を無効にするというのは

引用ですが


十分大きな容量のメモリーを搭載しているマシンに対し、レジストリを編集することでカーネルのページング機能を無効にし、パフォーマンスを向上させる方法を紹介します。

場所:
HKLM\SYSTEM \CurrentControlSet \Control \SessionManager \Memory Management
エントリ名:
DisablePagingExecutive
データ型:
REG_DWORD
値:
0: システムページングを有効にする
1: システムページングを無効にする


これはマイコンピュータのプロパティから
行うページングファイルなし
と同じ意味でしょうか?

Aベストアンサー

>これはマイコンピュータのプロパティから行うページングファイルなしと同じ意味でしょうか?

違います。
この設定は、Windowsのカーネル部分を全て物理メモリに置くっていう設定です。

http://www1.bbiq.jp/cafe-ouef/amd/page.htm
http://journal.mycom.co.jp/special/2003/gigamemory/002.html

QPIC12F683のソフトウェアUARTはタイマ割り込みとか使っている?

PIC12F683で、

http://www.picfun.com/P12F/p12f02.html
このサイトにあるように、PIC12F683にはハードウェアUARTモジュール機能がないので、ソフトウェアでこれを実現するために

#use RS232(BAUD=9600, XMIT=PIN_A2, PCV=PIN_A3)というのを
やればprintf関数でUARTデータを出力できるとのことですが、

この機能を宣言した場合にはPIC12F683のタイマ割り込み機能はどれか1つ占有されたりするのでしょうか?

その場合、開けておかなければならないタイマは0,1,2のどれになるのでしょうか?

Aベストアンサー

こっちに説明があります。
http://www.picfun.com/c09.html
CCSは使った事が無いですが、割り込みは使っていないそうですから、タイマも使っていないでしょう。使っていたら注意書きがあると思います。

Qページング操作中にエラー とは?イベントのプロパリ

コンピュータの管理のイベントビューアのシステムに警告が出ます。
『ページング操作中にデバイス\Device\Harddidk0\D 上でエラーが検出されました』
ページングとはなんですか? Dドライブにpagefile.sys がなくても表示されます。チェックディスクを何回しても、解決しません。解決方法はありますか?
他のマシンにつなげてみるとそのHDDはイベントでエラーが出ません。

Aベストアンサー

ええと、まず

>120GのHDDを C D E (30G.40G.45G)

このファイルシステムはntfsですか?fat32ですか?

ジャーナルとか狂ってる場合、ファイルシステムの
異常は無いので別のシステムからはエラー無しに
見えるけど、そのntfsを作ったOSからはエラーが
返ってくる等エラーが出る場合もあります。

しかも、その場合、chkdsk /f /rまでしないと
修復がちゃんとされなかったり。

Qpicタイマ0割り込みについて

タイマ0割り込みについて教えて下さい。
解説書などに、割り込みルーチンの最初の部分で

(1)割り込みフラグ(TMR0IF)を消す
(2)TMR0を再設定する

と書かれていますが、なぜ(2)を割り込みルーチンの最初で行うのでしょう?
これでは、
・1秒ごとに割り込みを発生させたい
・割り込みルーチンの作業時間は0.5秒
だとすると、結果的に割り込み発生は0.5秒ごとになってしまいます。

TMR0再設定は割り込みを抜ける時(retfie の直前)に行えば、ほぼ希望通りの間隔で、割り込みを発生させられると思うのですが、それはルール違反なのでしょうか?

Aベストアンサー

N0.2です。
普通の処理だったら問題無いのですが、
たとえば、割り込みが発生してもすぐに
割り込みルーチンに入れない様な場合、
気を付けないと次の割り込みが発生してしまいます。
で、マニュアルでは割り込み原因となる
TMR0を再設定するように指示をしているのですが、
たしかに割り込み後に一定時間間隔でまた割り込みたい
場合には、抜ける前にまた再設定するしかありません。

ただ、通常の場合、一定時間の割り込みというのは
割り込みそのものを一定時間毎に発生させたい筈
なんです。
たとえば、割り込みは10mSおき、処理は1mSだとすると
スタート(0mS)から数えて
10mS 割り込み発生 TMR0再設定
11mS 割り込み処理終了
20mS 割り込み発生 TMR0再設定
21mS 割り込み処理終了
30mS 割り込み発生 TMR0再設定
と言うぐらいに、きれいに
10mSおきに割り込みが発生します。
しかも、割り込み処理が長くなっても短くなっても
間隔は変わりません。


人気Q&Aランキング