Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Синхронизирующие объекты в операционных системах.Содержание книги
Поиск на нашем сайте
Рассмотренные выше средства синхронизации всем хороши, только не подходят для синхронизации работы разных потоков (не процессов).
Для этой цели применяются специальные синхронизирующие объекты: - системные семафоры - мьютексы - события таймера и тд
Работа с синхронизирующими объектами похожа на работу с файлами: их можно открывать, закрывать, создавать, уничтожать. Кроме спецобъектов, для синхронизации могут быть использованы обычные объекты ОС – файлы, процессы, потоки.
Объект синхронизации может находиться в двух состояниях: · Сигнальное · Несигнальное
Смысл слова «сигнальное» разный для разных объектов (для потока – завершение, для процесса – завершение всех потоков, для файла – завершение всякого ввода-вывода).
С помощью специального системного вызова потоки сообщают ОС, что они хотят синхронизировать свое состояние с определенным ОБЪЕКТОМ СИНХРОНИЗАЦИИ: Wait(X), где Х – объект синхронизации. Поток, который сделал такой вызов переводится осью в ожидающее состояние, пока объект Х не перейдет в сигнальное состояние.
Чтобы перевести Объект синхронизации в сигнальное состояние, используется другой системный вызов: Set(X);
Поток может ждать сигнального состояния не одного объекта, а нескольких, причем либо всех из них, либо любого из них. Также можно задать Оси время, через которое она должна активизировать поток в любом случае, вне зависимости от состояния объекта синхронизации.
Примеры: · Основной поток создает множество серверных потоков и должен дождаться их завершения – надо сделать wait(x1, x2 и тд). · Один поток активизируется после завершения другого: надо каждый раз делать wait(предыдущий поток);
Такие неспецифические объекты синхронизации при переходе в сигнальное состояние активизируют ВСЕ ожидающие потоки, что может быть нужно не всегда.
Иногда надо другое поведение: тогда используются специальные объекты синхронизации: события, мютексы, системные семафоры.
Мютекс и семафор используются для управления доступом к данным. Мютекс освобождает из очереди только ОДИН поток. Когда поток начинает работу он как бы захватывает мютекс, а по завершении работы – отдает мютекс.
Объект-событие используется для оповещения других потоков о том, что какие-то действия завершены (например, потоки ждут, пока один поток читает данные в буфер памяти.) В начале работы поток-читатель устанавливает объект-событие в несигнальное состояние. Все ждущие потоки поставили wait(поток-событие). После завершения работы поток-читатель переводит объект-событие в сигнальное состояние, и ОС освобождает все ждущие именно этих данных потоки. 18. Подсистема управления памятью. Функции ОС по управлению памятью. Методы распределения памяти (фиксированные разделы, динамические разделы, сегментная, страничная, сегментно-страничная структуризация адресного пространства, свопинг, виртуальная память). Организация виртуальной памяти, преобразование адреса. Обмен данными между процессами на основе виртуальной памяти. Функции ОС по управлению памятью в мультипрограммной среде: · Отслеживание свободной и занятой памяти · Выделение памяти процессам и освобождение по их завершении · Вытеснение кодов и данных с памяти на диск (полное или частичное) когда памяти не хватает и возвращение их обратно, когда ее достаточно · Настройка адресов программы на конкретную область физической памяти. · Динамическое распределение памяти между процессами (выполнение запросов приложений на выделение им дополнительной памяти) · Дефрагментация памяти · Защита памяти Методы распределения памяти Разные ОС по-разному распределяют память между процессами Методы распределения памяти можно разделить на: - без использования внешней памяти - фиксированными разделами - динамическими разделами - перемещаемыми разделами - с использованием внешней памяти - страничное распределение - сегментное распределение - сегментно-страничное распределение
Фиксированные разделы Наиболее простой и примитивный способ распределения памяти. Во время старта или загрузки системы память разбивается на разделы фиксированной величины, после чего границы разделов не сдвигаются.
Новый процесс поступает либо в общую очередь, либо в очередь конкретного раздела. Система: - сравнивает требуемый объем памяти с памятью раздела - загружает программу в один из разделов и настраивает адреса
Недостаток системы: - жесткость - уровень мультипрограммирования заранее ограничен числом разделов - невозможно выполнить прогу, которая больше самого большого раздела
Все же используется в системах реального времени, т.к. там детерминированность компенсирует недостаточную гибкость.
Динамические разделы
· Память изначально свободна и не разбита на разделы · При поступлении процесса на исполнение ей выдается столько памяти, сколько нужно, если памяти не хватает, то процесс не исполняется · После завершения процесса память освобождается
ОС должна: - вести таблицы свободных и занятых областей - анализировать требования к памяти при создании нового процесса, подыскивать ему незанятую область - загружать процесс в выделенный ему раздел, корректировать таблицы - корректировать таблицы после завершения процесса
Плюсы: - гибче Минусы – фрагментация памяти. Так организована память в ОС/360
Перемещаемые разделы Выделение памяти перемещаемыми разделами призвано решить проблему фрагментации. Суть его – сжатие, то есть перемещение всех занятых участков в сторону старших или младших адресов, чтобы вся свободная память собралась в одном месте.
Ко всем функциям, исполняемым ОС в динамических разделах, добавляется сжатие, которое должно производиться: - либо при каждом завершении процесса - либо когда для нового процесса не хватает места.
Физические адреса здесь постоянно меняются, поэтому перемещающий загрузчик для их настройки использовать нельзя, нужно динамическое преобразование адресов.
Минусы: - затраты времени
|
||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 393; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.68.161 (0.006 с.) |