[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fol] Re: Preemption


海野です。

In article <8nnuju$9if$1 _at_ news.sfc.keio.ac.jp>, 53++ _at_ ht.sfc.keio.ac.jp says...
>
>
>
>    杉野です。ちょっとおそいですが。
>
>  なんかOSの話で盛り上がって嬉しいですが、
>  皆さんは Followup-To: を指定したりしないでしょうか?
>
>
><8n6h7p$2b1$1 _at_ bgsv5905.tk.mesh.ad.jp>の記事において
>unno _at_ mwd.biglobe.ne.jpさんは書きました。
>
>>> 海野といいます。
>>> いま、「プリエンプション」の話題で盛り上がっていて
>>> ある書物を読んでまとてみました。
>>> なんか間違いや、指摘がありましたら教えてください。
>>> 
>>> 定義:
>>> 
>>> 「あるタスクの実行中にあるイベントが発生
>>>  したときに、そのイベントがタスクのCPUを奪い、
>>>  イベント処理の中でタスクの再スケジューリングを行い、
 >>>  イベント処理から戻る過程で別のタスクに実行を移すこと」
>
>  コンテキストという言葉を使わないのは何故でしょう?
>  代わりにイベントという言葉を使っている?
>  好みの問題でしょうか。
>  定義というか仕組みの様な気がしたので。

「コンテキスト」って、タスクやプロセスのその瞬間の情報(レジスタの値
やスタックポインタから始まり、タスクの状態等、いろいろ)っていう
意味だったと記憶していますので、この場合は「イベント」でよいと思うの
ですが。「イベント」を「コンテキスト」に読み替えるとなんか日本語が
おかしいと思います。
ちなみに、この「イベント」とは、割り込み の意味です。system call
ではありません。

>
>
>>>  (注1)再スケジューリングはタスクの優先順位の高いもの
>>>  を選択するという方法が一般的であるが、優先順位で
>>>  再スケジューリングしなくてもいい。
>>>  例えば、優先順位がない場合は実行待ちキューに登録されている
>>>  タスクを無造作に順番に切り替えていくなど。
>
>  優先度と実行順序がごっちゃになっていると思います。
>  多くの時間割方針は優先度を利用して実行順序を決めますが、
>  例えばFIFOの様に優先度を用いない時間割方針もあります。
>  おっしゃる通りです。

つまり、preemption って意味は、とにかく、あるタスクが run 
している最中にそのタスクがsystem callを呼ばないのに、他の
タスクが cpu を奪って動き出せば、それがpreemption である
っていうことですよね。切り替え先を決定する方法は、また別の
定義。

>
>>>  (注2)イベントとは、外部割り込みと例外割り込みをさす。
>>>  システムタイマは、そもそもタイマデバイスを使っているから
>>>  外部割り込みにいれる。システムタイマがイベントになって
>>>  プリエンプションを行うことを一般に時間起動型あるいは
>>>  TimeSharing という。
>>>  外部割り込みがイベントになっている場合には、イベント起動型と
>>>  いう。
>
>  時間共有型、事象駆動型では?
       A          A
       |          |
       V          V
   時間起動型、イベント起動型  あんまり違わないような....

>
>>>  (注3)再スケジューリングを内部でおこなうようなシステムコールは、
>>>  そもそもそのシステムコールを使用したタスクは自らCPUを放棄してもいい
>>>  ことを明示していると考えられるので上記のイベントには入れない。
>>>  このシステムコールを使用しなければ別のタスクにCPU時間を割り当てられない
>>>  ことをノンプリエンプションという。
>>> 
>>>  (注4)プリエンプションは、リアルタイムOSを実現する上での
>>>  ひとつの実装技術でしかない。プリエンプションを採用していても
>>>  リアルタイム処理をできないOSもあるし(一般的なTimeSharingのUNIX)、
>>>  ノンプリエンプションであってもリアルタイム処理を実現できる。
>
>  このくだりに関して、他の皆さんは反対の様ですが、
>  僕は正しいと思います。
>  実時間の本質は予測可能性にあると思います。
>  でも、ノンプリエンプションだったらOS使う意味が
>  半減してしまうような気がしますが。

確かに半減しますね。

>
>
># ある書物って?

Interfa**

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: