Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Управление памятью в ОС UNIX на основе свопинга (1-2)




Информационные связи между процессами в ОС UNIX. (10-2)

Информационная связь между процессом и ядром отсутствует, за исключением передачи внешних аргументов.

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

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

1. Через файловую систему (один процесс пишет в файл, другой из этого файла читает)

2. Через межпроцессный канал.

3. Через область внешних аргументов.

Межпроцессный канал – особый файл с рабочей диспозицией.

Межпроцессорное взаимодействие по многоранговой схеме (клиент-сервер) осуществляется следующими способами:

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

2. При помощи разделяемой памяти и семафоров. Этот способ позволяет нескольким процессам совместно использовать общую область памяти. Семафоры – общесистемные переменные, которые могут модифицироваться и использоваться процессами, запущенными на одном компьютере, для синхронизации их выполнения.

3. Через сокеты (гнезда). Интерфейс транспортного уровня (sockets) – позволяет процессам, выполняемым на разных компьютерах, создать прямой двусторонний канал связи.

Большинство UNIX – систем для управления памятью реализуют подход свопинга (не требуется, чтобы программа оставалась в оперативно памяти до момента завершения).

Перемещением данных между памятью и диском управляет верхний уровень планировщика, называемый swapper (процесс с идентификатором 0).

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

1. fork требуется память для процесса – сына.

2. brk собирается расширить сегмент данных.

3. Динамическому сегменту требуется дополнительная память.

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

Выбирая «жертву», т.е. процесс, который надо выгрузить из памяти, swapper рассматривает блокированные процессы. Если они нашлись, то из них выбирается процесс с наивысшим значением суммы приоритета и времени пребывания в памяти.

Если блокированных процессов нет, то на основе этого критерия выбирается готовый процесс.

Каждые несколько секунд swapper исследует список выгруженных процессов, проверяя, не готов ли какой-нибудь из них к работе. Если процессы в состоянии готовности обнаруживаются, то из них выбирается процесс, дольше всех находящийся на диске.

Затем swapper проверяет, будет ли лёгкий свопинг или тяжелый.

(Объяснить, в каком случае какой свопинг и что нужно освободить в памяти)

· Лёгкий свопинг не требует дополнительного высвобождения памяти.

· Тяжелый свопинг – это свопинг, при котором для загрузки в память выгруженного на диск процесса, из неё требуется удалить один или несколько других процессов.

Всё это повторяется до выполнения одного из условий:

1. На диске нет процессов, готовых к работе.

2. В памяти не осталось места для новых процессов.

Чтобы не терять большую часть производительности системы на свопинг, ни один процесс не выгружается на диск, если он находится в памяти менее 2-х секунд.

Свободное место в памяти и на диске учитывается при помощи связанного списка свободных блоков. Когда требуется свободное пространство в памяти или на диске, из списка выбирается первое подходящее. После этого, в список возвращается остаток от свободного пространства.




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 551; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.