Разработка операционных системРефераты >> Программирование и компьютеры >> Разработка операционных систем
Защита сегментной памяти основана на контроле уровня доступа к каждому сегменту. Например, сегменты, содержащие только код, могут быть помещены как доступные только для чтения или выполнения, а сегменты, содержащие данные, помечают как доступные для чтения и записи.
3.4.2. Разделение сегмента между НЕСКОЛЬКИМИ процессами.
Поскольку сегмент является логически завершенным программным модулем, он может использоваться различными процессами. Сегмент называется разделяемым, когда его начальный адрес и размер указаны в двух и более таблицах сегментов. Например, два процесса могут использовать подпрограмму Sqrt, которая хранится в виде одной физической копии.
На рисунке приведен пример, иллюстрирующий использование разделяемого текстового редактора.
таблица сегментов процесса 1 |
основная память | |||||
limit |
base | |||||
0. |
25286 |
43062 |
43062 | |||
1. |
4425 |
68348 |
68348 |
редактор | ||
2. |
данные | |||||
72773 |
1 | |||||
|
таблица сегментов процесса 2 |
90003 | ||||
limit |
base |
данные | ||||
0. |
25286 |
43062 |
98553 |
2 | ||
1. |
8550 |
90003 | ||||
2. | ||||||
3.4.3. Фрагментация.
Программа во входной очереди загружается в память посегментно в любые свободные разделы основной памяти. При этом, как правило, используются стратегии best fit и first fit. Сегментной организации памяти присущи как внутренняя, так и внешняя фрагментации. Внутренняя фрагментация образуется вследствие того, что размер загружаемого сегмента меньше размера имеющегося свободного раздела, а внешняя вследствие того, что отсутствует участок памяти подходящего размера. Внешняя фрагментация означает, что часть процесса остается незагруженной, и его выполнение в какой–то момент времени должно быть приостановлено.
Очень часто сегментация комбинируется со страничированием. Это позволяет сочетать преимущества обоих методов. Низкая фрагментация при страничной организации и естественное расчленение программы по сегментам.
Сегментация и страничирование используется об операционных системах OS/2 для управления компьютерами.
4. Управление виртуальной памятью.
Все методы управления памятью имеют одну и ту же цель — хранить в памяти мультипрограммную смесь, необходимую для мультипрограммирования. Рассмотренные ранее методы предполагали, что вся программа перед выполнением должна быть размещена в основной памяти. Виртуальная память — это технология, которая позволяет выполнять процесс, который может только частично располагаться в основной памяти. Таким образом, виртуальная память позволяет выполнять программы, размеры которых превышают размеры физического адресного пространства.
4.1. Страничирование по запросу (demand paging).
Виртуальная память чаще всего реализуется на базе страничной организации памяти, совмещенной со своппингом страниц.
Своппингу подвергаются только те страницы, которые необходимы процессору. Таким образом, страничирование по запросу означает
1. программа может выполняться CPU, когда часть страниц находится в основной памяти, а часть — во внешней.
2. в процессе выполнения новая страница не перемещается в основную память до тех пор, пока в ней не возникла необходимость.
логическая |
таблица |
физическая |
вторичная | ||||||
память |
страниц |
память |
память | ||||||
0. |
A. |
0. |
4 |
v |
0 | ||||
1. |
B. |
1. |
i |
1 |
A. | ||||
2. |
C. |
2. |
6 |
v |
2 |
B. | |||
3. |
D. |
3. |
i |
3 |
C. | ||||
4. |
E. |
4. |
i |
4 |
A |
D. | |||
5. |
F. |
5. |
8 |
v |
5 |
E. | |||
6. |
G. |
6. |
i |
6 |
C |
F. | |||
7. |
H. |
7. |
i |
7 | |||||
8 |
F | ||||||||
15 |