Главная страница  Межпроцессное взаимодействие (состязание) 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 [ 142 ] 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

19. Компьютер обеспечивает каждый процесс 65 536 байтами адресного пространства, разделенного на страницы по 4096 байт. Некая программа имеет размер текста 32 768 байт, размер данных 16 386 байт и размер стека 15 870 байт. Поместится ли эта программа в адресном пространстве? А если бы размер страницы был 512 байт, она поместилась бы? Помните, что страница не может вмещать части двух разных сегментов.

20. Было замечено, что количество инструкций, выполненных между страничными прерываниями, прямо пропорционально количеству страничных блоков, предоставленных программе. Если доступная память увеличивается вдвое, то средний интервал между страничными прерываниями также увеличивается вдвое. Предположим, что нормальная инструкция занимает 1 мкс, но если происходит страничное прерывание, она выполняется за 2001 мкс (то есть 2 мс идут на обработку прерывания). Если программа требует для работы 60 с и в процессе она вызывает 15 ООО страничных прерываний, сколько времени она работала бы в условиях удвоенного количества доступной исходной памяти?

21. Разработчики из компании Экономные операционные системы размышляют о способе уменьшения количества резервного пространства для хранения данных, необходимого в их операционной системе. Ведущий специалист предложил вообще не беспокоиться о сохранении текста программы в области подкачки, а просто загружать его страницами прямиком из двоичного файла всякий раз, когда он требуется. При каком условии, если оно существует, эта идея работает для текста программы? А при каком условии, опять же, если оно существует, она работает для данных?

22. Объясните разницу между внутренней и внешней фрагментацией. Какая из них происходит в страничных системах? А какая имеет место в системах с чистой сегментацией?

23. Когда поддерживаются и сегментация, и страничная организация памяти, как в системе MULTICS, сначала должен быть найден дескриптор сегмента, затем идентификатор страницы. Может ли при таком двухуровневом поиске работать также буфер быстрого преобразования адреса (TLB)?

24. Почему при принятой в MINIX системе управления памятью необходимы программы типа chmem?

25. Измените код MINIX так, чтобы зомби уничтожались сразу же после появления, не дожидаясь, пока об этом позаботится родитель.

26. В текущей версии MINIX при выполнении вызова exec менеджер памяти ищет свободный блок памяти достаточного размера для зафузки образа. Если такой блок не обнаружен, происходит отказ от выполнения. Более эффективный алгоритм должен проверять, будет ли в памяти достаточно места уже после того, как текущая память, занимаемая процессом, освобождена. Реализуйте такой алгоритм.

27. Выполняя системный вызов exec, менеджер памяти использует трюк, при помощи которого файловая система считывает весь сегмент сразу. Приду-



Вопросы 441

майте, как применить этот же подход для вывода дампов памяти, и реализуйте его.

28. Измените код MINIX, добавив поддержку свопинга.

29. В разделе 4.8.4 было указано, что системный вызов exec работает не оптимально, выполняя поиск свободного блока памяти до того, как высвобождена текущая память процесса. Улучшите алгоритм.

30. В разделе 4.8.4 было указано, что память для кода и данных лучше выделять раздельно. Реализуйте эту идею.

31. Измените код adjust так, чтобы избежать ситуаций, когда получивший сигнал процесс карается завершением зря, из-за слишком строгой проверки доступного стека.



Глава 5

Файловые системы

Всем компьютерным приложениям нужно хранить и получать информацию. В собственном адресном пространстве работающий процесс может хранить ограниченное количество данных, и емкость такого хранилища ограничена размером виртуального адресного пространства. Для некоторых приложений этого размера вполне достаточно, но для других, например систем резервирования авиабилетов, систем банковского или корпоративного учета, одного только виртуального адресного пространства будет недостаточно.

Кроме того, после завершения работы процесса информация, хранящаяся в его адресном пространстве, теряется. Для большинства приложений (например, баз данных) эта информация должна храниться неделями, месяцами или даже вечно. Исчезновение данных после завершения работы процесса для таких программ неприемлемо. Информация должна продолжать существовать даже при аварийном завершении процесса в случае сбоя компьютера.

Третья проблема состоит в том, что часто возникает необходимость нескольким процессам одновременно получить доступ к одним и тем же данным (или части данных). Если интерактивный телефонный справочник будет храниться в адресном пространстве одного процесса, то доступ к нему будет только у этого процесса. Для решения этой проблемы необходимо отделить информацию от процесса.

Таким образом, к устройствам долговременного хранения информации предъявляются три следующих важных требования:

♦ устройства должны позволять хранить очень большие объемы данных;

♦ информация должна оставаться в сохранности после прекращения работы процесса, использующего ее;

♦ несколько процессов должны иметь возможность получения параллельного доступа к информации.

Обычное решение всех этих проблем состоит в размещении информации на дисках и других внешних хранителях в модулях, называемых файлами. Процессы могут по мере надобности читать их и создавать новые файлы. Информация, хранящаяся в файлах, должна обладать устойчивостью (в данном контексте иногда применяется термин персистентпость), то есть на нее ие должно оказывать влияния создание или прекращерше работы какого-либо процесса. Файл должен исчезать только тогда, когда его владелец дает команду удаления файла.

Файлами управляет операционная система. Их структура, именование, использование, защита, реализация и доступ к ним являются важными элементами устройства операционной системы. Часть операционной системы, работающая с файлами, называется файловой системой. Ей и посвящена данная глава.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 [ 142 ] 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.