Интернет магазин китайских планшетных компьютеров



Компьютеры - Переключение контекста - Особенности процедуры шедулинга

23 января 2011


Оглавление:
1. Переключение контекста
2. Переключение контекста и производительность
3. Переключение контекста и ОС
4. Особенности процедуры шедулинга



Разницу между Realtime и Time-Sharing операционными системами особенно хорошо видно в разности логики шедулинга при переключении контекста: Time-Sharing шедулинг старается максимизировать производительность всей системы в целом, возможно в ущерб производительности отдельных процессов. Задача шедулера Realtime систем — обеспечить приоритетное выполнение отдельных, критических процессов, причем неважно насколько жесткими накладными расходами для всей остальной системы в целом это обойдется.

Реализации переключения контекста в современных ОС

Как видно из вышесказанного, переключение контекста является очень ресурсоемкой операцией, причем, чем более «навороченым» является процессор, тем более ресурсоемкой эта операция становится. Исходя из этого, ядро использует ряд стратегий чтобы, во-первых, сократить количество переключений контекста, а во вторых, сделать переключение контекста менее ресурсоемким.

Методы уменьшения количества переключений контекста:

  • Существует возможность конфигурирования выделяемого потоку кванта процессорного времени. При сборке ядра Linux возможно указать Server/Desktop/Low-Latency Desktop. Для серверных конфигураций этот квант больше.

Методы снижения ресурсоемкости переключения контекста:

  • При переключении контекста между потоками, разделяющими одно адресное пространство в пределах одного процесса, ядро не трогает регистр CR3, тем самым сохраняя TLB
  • Производя шедулинг, ядро старается минимизировать перемещение процесса между вычислительными ядрами в SMP-системе, тем самым улучшая эффективность работы кеша второго уровня.
  • Реальное сохранение/восстановление контекста регистров сопроцессора плавающей точки и MMX/SSE контекст происходит при первом обращении нового потока, что оптимизировано под случай, когда большинство потоков производит только операции с регистрами общего назначения.

Вышеприведенные примеры относятся к ядру Linux, однако прочие операционные системы также применяют сходные методы, хотя в случае проприетарных ОС доказать/опровергнуть использование этого является проблематичным.



Просмотров: 3533


<<< Системный вызов