Архитектура операционной системы UNIX


         

УПРАЖНЕНИЯ - часть 3


Системная функция plock дает суперпользователю возможность устанавливать и снимать блокировку (в памяти) на областях команд и данных вызывающего процесса. Процесс подкачки и "сборщик" страниц не могут выгружать заблокированные страницы из памяти. Процессам, использующим эту системную функцию, не приходится дожидаться загрузки страниц, поэтому им гарантирован более быстрый ответ по сравнению с другими процессами. Следует ли иметь также возможность блокировки в памяти и области стека? Что произойдет в том случае, если суммарный объем заблокированных областей превысит размер доступной памяти в машине?

  • Что делает программа, приведенная на ? Подумайте над альтернативной стратегией замещения страниц, в соответствии с которой в рабочее множество каждого процесса включается максимально-возможное число страниц.

    struct fourmeg { int page[512]; /* пусть int занимает 4 байта */ } fourmeg[2048];

    main() { for (;;) { switch(fork()) { case -1: /* процесс-родитель не может выполнить * fork --- слишком много потомков */ case 0: /* потомок */ func(); default: continue; } } }

    func() { int i;

    for (;;) { printf("процесс %d повторяет цикл\n",getpid()); for (i = 0; i < 2048; i++) fourmeg[i]290ge[0] = i; } }

    Рис. 9.30

    Comments:

    Copyright ©




    Содержание  Назад  Вперед