Межпроцессорные коммуникации

 

Для организации передачи данных процессами UNIX использует семафоры, программные каналы (образуются с помощью системного вызова pipe), очереди сообщений (образуются с помощью системного вызова msget) разделяемую память (образуется с помощью системного вызова shmget).

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

В IBM OS/360 подзадачи играли дополнительную роль, эти основы используются в UNIXе как процессы.

 

 

Свопинг

 

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

Пример:

 

Все процессы имеют приоритет. Процесс свопинга рассматривается в виде выполнения нескольких шагов.

Своп – диск используется для временного хранения образных процессов.

 

Шаг 1.

На первом шаге в основной памяти располагаются образы процессов a, b, c. Имеется некоторая программа d, претендующая на место в ОП и процессорное время.

Шаг 2.

Пусть самым старым является образ процесса a (пребывание в ОП)

 

После окончания текущего кванта времени образ a перемещается на своп – диск, а его место занимает образ d.

 

Шаг 3.

Выполняется какой-то процесс например c в течении кванта времени.

 

 

 
Шаг 4.

Допустим, что наиболее старым процессом является образ процесса b. Он вытесняется на своп – диск, а его место занимает процесс a со своп – диска.

Далее аналогично, а именно на следующем кванте времени будет исполняться процесс d и т.д.

 

Замечание: современные версии UNIX работают более тонко, а именно как правило полностью не вытесняют образ, а в основном вытесняют редко (не) использованные страницы образа, и учитывают приоритеты процесса.

 

Лекция 11

Файловые системы

 
 

 

 


Sbin – все программы UNIX.

Etc – все программные средства для разгрузки.

Lib – библиотеки и компилятор C.

Home – единственный пользовательский каталог. Когда пользователь начинает работу в системе он автоматически попадает в каталог home, все остальные каталоги пользователю не доступны.

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

 

Специальные файлы

 

Специальные файлы используются для организации ввода/вывода информации. Все специальные файлы хранятся в каталоге dev. Каждому устройству ввода/вывода, которые имеются в системе соответствует свой файл.

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

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

Таким образом специальные файлы можно рассматривать как посредника между пользователем и устройством ввода/вывода. Обеспечивается развязка пользовательских программ от устройства.

 

Файлы связи

 

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

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

 

Обычные файлы

 

Это файлы которые может использовать пользователь. Согласно концепции UNIX, файл – последовательность символов. Файл для ОС является единственной единицей обмена информации. Выделение логических записей из файла лежит на пользователе или его прикладной программе.

Для полной идентификации любого файла используется понятие маршрута.

/home/A1/ABC/abc.c

 

имена в UNIX могут быть составными (abc.txt.ver1). Число символов около 8, а общая длина символов в имени файла – около 200 символов.

 

Каталоги

 

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

 

 

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

 

 

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

Когда из какого-то каталога удаляется запись из счетчика вычитается 1, но сам файл из внешней памяти не удаляется, он удаляется только тогда, когда счетчик = 0.

 

Лекция 12


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: