タグ

2010年1月21日のブックマーク (3件)

  • WindowsにおけるSleep(1)の精度について

    WindowsにおけるSleep(1)の精度について WindowsのプログラムでSleep(1)を実行するとその実行にかかる時間は期待する1msとは違って、約10ms、約16ms、約55msのいずれかとなり装置によって異なる。 装置によってSleep(1)の実行時間が異なるのは、OSが使用するタイマーの種類とタイマーへの設定値の違いによるタイマー割り込みの分解能の違いが原因である。 Windowsの時間の制御は周期的なタイマー割り込みを使っている。プログラムをSleep()から復帰させるのはOSのスケジューラの仕事である。スケジューラはタイマー割り込みの分解能よりも短い時間で要求されたSleep()の実行をその時間で完了させることは保障できない。タイマー割り込みの分解能よりも高い精度は出せない。これが「Sleep()は精度が悪い」といわれる事象である。 Windows 9x系においてはP

  • NT以降の全ての32ビットWindowsバージョンでユーザー権限昇格を許すバグが見つかる | スラド セキュリティ

    ある研究者が、Windowsにユーザーの権限昇格を許してしまうバグを見つけたそうだ。これだけじゃ新しい話じゃないね。ところが、今回のバグは仮想DOSマシン(VDM)に影響を及ぼすもので、しかも全ての32ビット版Windows、つまりNT以降全てのバージョンに影響がある。17年もWindowsを続けてきた甲斐があったもんだ。 (元記事より)「このVDM用のコードを使うと、権限を持たないユーザーでも任意のコードをシステムのカーネルに挿入できる。つまり、OSの最もビンカンな所に変更を加えられる。(中略)この脆弱性は1993年以降にリリースされた全ての32ビット版のマイクロソフト製OSに存在していて、実証コードはXP、Server 2003、Vista、Server 2008、7で動作する。」

  • Multimedia Class Scheduler Service (MMCSS) - NyaRuRuの日記

    今回は,Windows Vista で導入される Multimedia Class Scheduler Service (以下 MMCSS) について取り上げてみたいと思います.その前に,Windows のスレッドスケジューリングについて復習といきましょう. 現在の Windows は,実行スレッドを頻繁に入れ替えることで,いわゆるプリエンプティブなマルチタスク環境を実現している,という話は世間でも広く知られているかと思います. しかし,実際にどのようなタイミングで実行スレッドが切り替えられているかは,意外と知られていないのではないでしょうか.ヒントは例によって『インサイド Microsoft Windows 第4版〈上〉』に見つかります. Windowsのスケジューリングコードは、カーネルに実装されています。しかし、単一の「スケジューラ」モジュールやルーチンというものはありません。実装コ

    Multimedia Class Scheduler Service (MMCSS) - NyaRuRuの日記