Библиотека knigago >> Компьютеры: Операционные системы >> ОС: администрирование, мониторинг, диагностика >> Операционные системы. Внутренняя структура и принципы проектирования


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2187, книга: Жестяной король
автор: Наиль Анверович Якупов

"Жестяной король" - это захватывающая и оригинальная история, которая с головой увлекает в мир будущего. Наиль Якупов мастерски создает вселенную, где человечество достигло технологических высот, но ценой потери своей человечности. Главный герой, Марк, - гениальный изобретатель, который создает невероятные роботизированные машины, называемые "жестянщиками". Однако его творения оказываются более разумными, чем он мог себе представить, и быстро берут власть в свои руки,...

СЛУЧАЙНАЯ КНИГА

Вильям Столлингс - Операционные системы. Внутренняя структура и принципы проектирования

Операционные системы. Внутренняя структура и принципы проектирования
Книга - Операционные системы. Внутренняя структура и принципы проектирования.  Вильям Столлингс  - прочитать полностью в библиотеке КнигаГо
Название:
Операционные системы. Внутренняя структура и принципы проектирования
Вильям Столлингс

Жанр:

Аппаратное обеспечение, компьютерное железо, Linux, Windows, ОС: теоретические вопросы, ОС: администрирование, мониторинг, диагностика

Изадано в серии:

неизвестно

Издательство:

Диалектика

Год издания:

ISBN:

978-5-907203-08-2

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Операционные системы. Внутренняя структура и принципы проектирования"

Аннотация к этой книге отсутствует.

Читаем онлайн "Операционные системы. Внутренняя структура и принципы проектирования". [Страница - 118]

(см" например,

Модифицированная версия системы двойников исполь­

[ 118)).

зуется для распределения памяти ядром

UNIX

(подробнее об этом вы узнаете в главе

"Виртуальная память").

Исходный блок

IM

IМбайт

Заnрос 100 Кбайт 1 А= 128К

1

1 28К

256К

512К

Заnрос 240Кбайт 1 А= 128К

1

128К

В= 256К

512К

Заnрос 64 Кбайт 1 А= l 28K

lc= 64кl 64К 1

В = 256К

5 1 2К

Заnрос 256 Кбайт 1 А= l 28K

lc•64KI64К 1

В= 256К

D = 256К

256К

1

256К

D = 256K

256К

ic= 64кl 64К 1

256К

0=256К

256К

Заnрое 75 Кбайт 1 Е = 128К iс · 64к/ 64К /

256К

D=256K

256К

256К

D=256K

256 К

О = 256К

256К

Освобождение В 1 А= 128К lc = 64кl 64К
Освобождение А 1

Освобождение С

1

Освобождение Е

1

128К

Е= 128К

1

128К
5 1 2К

Освобождение О

lM
Рис.

7.6.

Пример системы двойников

8,

ГЛАВА 7. УПРАВЛЕНИЕ ПАМЯТЬЮ

414

IM

512К

256К

128К

64К

256К

Q

Лист для выделенного
блока

Рис.

7. 7.

Q

256К

D = 256K

Лист для невыделенного
блока

@ Внутренн_ий узел, не
ЯВЛЯЮЩИИСЯ листом

Представление системы двойников в виде бинарного дерева

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

щением процессов в памяти. При использовании фиксированной схемы распределения,
показанной на рис.

7.3,

а, можно ожидать, что процесс всегда будет назначаться одному

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

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

определенными на основе базового адреса загруженного процесса.
Если размеры разделов равны (см. рис.
для разделов разного размера (см. рис.

7.2) и существует единая очередь процессов
7.3, 6), процесс по ходу работы может занимать

разные разделы. При первом создании образа процесса он загружается в некоторый раз­
дел памяти; позже, после того как он был выгружен из памяти и вновь загружен, про­
цесс может оказаться в другом разделе (не в том, в котором размещался в последний

раз). Та же ситуация возможна и при динамическом распределении. Так, на рис.
и

7.4,

з процесс

2

7.4,

в

занимает при размещении в памяти различные места. Кроме того,

при выполнении уплотнения процессы также перемещаются в основной памяти. Таким

образом, расположение команд и данных, к которым обращается процесс, не является

7.2. РАСПРЕДЕЛЕНИЕ ПАМЯТИ

415

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

жения данных в памяти; перед тем как получить доступ к этой ячейке памяти, необходи­
мо транслировать логический адрес в физический. Относительный адрес представляет
собой частный случай логического адреса, когда адрес определяется положением отно­
сительно некоторой известной точки (обычно

-

начала программы). Физический адрес

(известный также как абсолютный) представляет собой действительное расположение
интересующей нас ячейки основной памяти.
Программа, которая использует относительные адреса в памяти, загружается с по­

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

механизм, который транслировал бы относительные адреса в физические в процессе вы­
полнения команды, которая обращается к памяти.

На рис.

7.8

показан обычно используемый способ трансляции адреса. Когда процесс

переходит в состояние выполнения, в специальный регистр процессора, иногда называ­

емый базовым, загружается начальный адрес процесса в основной памяти. Кроме --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.