Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Переключение процессов требует дополнительных накладных расходов и потребляет намного больше памяти, попутно вызывая сброс буфера ассоциативной трансляции, поскольку каждый из процессов обладает своим адресным пространством. Выделить код, ответственный за переключение контекстов, несложно – он выдает себя обращением к регистру CR3, загружая в него указатель на каталог страниц (Page Directory Physical Address).
Давайте немного модернизируем нашу тестовую программу, заменив потоки процессами. Один из вариантов реализации может выглядеть так:
Листинг 2. Измеритель скорости переключения процессов
thread()
{
while(1) Sleep(0);
}
#define defNthr 3
#define argNthr ((argc > 1)?atol(argv[1]):defNthr)
#define argProc "-666"
main(int argc, char **argv)
{
int a, zzz;
char buf[1000];
STARTUPINFO st;
PROCESS_INFORMATION pi;
memset(&st, 0, sizeof(st)); st.cb = sizeof(st);