Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ShPORY.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
277 Кб
Скачать
☆

9. Синхронизирующие объекты ос разных процессов. Мьютекс. Сигналы. Почтовый ящик.

Синхронизирующие объекты ОС разных процессов

Примерами таких синхронизирующих объектов ОС являются системные семафоры, мьютексы, события, таймеры и другие — их набор зависит от конкретной ОС, которая создает эти объекты по запросам процессов. Чтобы процессы могли разделять синхронизирующие объекты, в разных ОС используются разные метода. Некоторые ОС возвращают указатель на объект. Этот указатель может быть доступен всем родственным процессам, наследующим характеристики общего родительского процесса. В других ОС процессы в запросах на создание объектов синхронизации указывают имена, которые должны быть им присвоены. Далее эти имена используются разными процессами для манипуляций объектами синхронизации. В таком случае работа с синхронизирующими объектами подобна работе с файлами. Их можно создавать, открывать, закрывать, уничтожать.

Мьютекс

Мью́текс — аналог одноместного семафора, служащий в программировании для синхронизации одновременно выполняющихся потоков.

Мьютекс отличается от семафора тем, что только владеющий им поток может его освободить, т.е. перевести в отмеченное состояние. Мьютексы — это один из вариантов семафорных механизмов для организации взаимного исключения. Они реализованы во многих ОС, их основное назначение — организация взаимного исключения для потоков из одного и того же или из разных процессов.

Сигналы

Во многих ситуациях для передачи событий между различными компонентами системы бывает удобно использовать примитив “сигнал” – callback с несколькими получателями.

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

10) Функции ос по управлению памятью. Физический и виртуальный адрес. Способы преобразования виртуального адреса в физический.

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

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

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

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Диапазон адресов виртуального пространства у всех процессов один и тот же и определяется разрядностью адреса процессора (для Pentium ад-ресное пространство составляет объем, равный 232 байт, с диапазоном адресов от 0000.000016до FFFF.FFFF16).

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]