Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kratko.docx
Скачиваний:
57
Добавлен:
01.04.2022
Размер:
2.04 Mб
Скачать

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

Конвейер(Канал) Представляет собой буфер в оперативной памяти, поддерживающий очередь байт по алгоритму ФИФО

Каналы:

  1. Безымянные каналы.(Обмен только между родственными процессами при помощи дескриктора канала). Прочитанная информация удаляется и не м.б. прочитана повторно.

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

Разделяемая память

Использование общей или разделяемой памяти заключается в создании специальной области памяти, позволяющей иметь к ней доступ нескольким процессам. Системные вызовы для работы с разделяемой памятью.

Почтовые ящики

Почтовые ящики - особенность Виндовс. Однонаправленные соединения. Поддерживают широковещание (рассылку). Процесс может быть как отправителем, так получателем.

Сокеты.

Сокет — это средство связи, позволяющее разрабатывать клиент - серверные системы для локального или сетевого использования.

Представляют собой интерфейс транспортного уровня. Используются для передачи данных в виде байтов по сети от одного процесса к другому.

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

Каждый сокет имеет свой адрес. Обычно клиент явно подсоединяется к слушателю, после чего любое чтение или запись через его файловый дескриптор будут передавать данные междуним и сервером.

30. Функции ос по управлению памятью.

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

Функции:

  1. Отслеживание свободной и занятой памяти

  2. Выделение памяти процессам и освобождение памяти по завершении процессов

  3. Организация виртуальной памяти

  4. Настройка адресов программы на конкретную область физической памяти

  5. Динамическое распределение памяти

  6. Дефрагментация памяти

  7. Защита памяти

Управление:

  1. учет и контроль состояния каждой единицы памяти (свободна или распределена)

  2. стратегия распределения памяти (кому, когда, сколько)

  3. выделение памяти (выбор конкретной области)

  4. стратегия освобождения памяти

Методы распределения памяти:

  1. С использованием внешней памяти:

  • Страничное распределение

  • Сегментное распределение

  • Сегментно-страничное распределение

  1. Без использования внешней памяти

  • Фиксированными разделами

  • Динамическими разделами

  • Перемещаемыми разделами

*страничное распределение м.б. исп-но и без исп-ия внешней памяти

31. Алгоритмы распределения памяти без использования внешних носителей (фиксированные, динамические, перемещаемые разделы).

Распределение памяти фиксированными разделами

  1. ОС занимает какой-то объем памяти, а все что осталось - нарезается на области (разделы).

  • Разделы могут быть как одного, так и разного объема памяти.

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

  • Степень мультипрограммирования определяется числом разделов (т.е. сколько разделов, столько процессов могут существовать одновременно).

+ возможно мультипрограммирование

- степень мультипрограммирования ограничена (разделами)

  1. При поступлении от задачи запроса на выделение памяти, ОС выбирает свободный раздел подходящего размера. Размер которого меньше или равен требованию задачи к памяти.

Проблемы:

1. Имеем области памяти, которые не используются.

2. Если поступает задача у которой требование к памяти не превышает суммарный размер памяти, которая может быть распределена, но не умещается ни в один из разделов, то такая задача не будет выполнена

Либо задачи объединяются в одну очередь, либо заранее формируются свои очереди к каждому разделу (рисунки ниже)

Достоинства:

Простота реализации:

+ простые средства аппаратной поддержки

+простые алгоритмы

Недостатки:

-Жесткость. В каждом разделе может

выполняться только одна программа

- Фрагментация

- Ограничение размерами физической памяти

Распределение памяти динамическими разделами

  • Процессы поступают в систему и получают память в соответствии со своими запросами.

  • Степень мультипрограммирования определяется объемом физической памяти и требованиями процессов к памяти и больше никаких ограничений нет.

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

+поддержка мультипрограммирования

+вся память свободна и доступна для распределения

- Память системы может оказаться “изъеденной”, так как буду возникать небольшие “дырки” свободной памяти в разных местах, не позволяющие выполнить ни один процесс, даже если суммарный объем будет достаточен.

Распределение памяти перемещаемыми разделами

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

Является достаточно накладной операцией, так как происходит полноценная физическая перезапись.

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

Достоинства:

+Отсутствие фрагментации

Недостатки:

- Ограничение размером физической памяти

-Затраты на перекомпоновку

Соседние файлы в предмете Операционные системы