Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / Answers (41-64).docx
Скачиваний:
201
Добавлен:
15.06.2014
Размер:
39.72 Кб
Скачать

49. Совместное использование оперативной памяти в Unix

В ОС Unix разделяемая память находится под непосредственным управлением ядра, которое содержит таблицу описания областей разделяемой памяти. Каждая из областей обозначается в этой таблице целочисленным идентификатором (а не текстовым именем, как в других ОС). Кроме того, каждая такая область описывается в этой таблице атрибутами доступа и размером. Области разделяемой памяти относятся к адресному пространству ядра ОС.

Доступ к разделяемой памяти со стороны процесса осуществляется в два этапа. На первом из них получается хэндл области памяти, причем на этом этапе либо открывается доступ к уже имеющейся в ОС области памяти, либо такая область создается операционной системой. На втором этапе процесс подключается к разделяемой области (to attach), используя ранее полученный хэндл.

Для получения разделяемой памяти предназначена функция с прототипом

Int shmget(key_t key, int size, int flag),

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

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

void* shmat(int shmid, void* addr, int flag)

Для отсоединения разделяемой памяти должна использоваться функция с прототипом

int shmdt(void* addr)

аргументом которой является адрес, ранее полученный от функции shmat. При успешном выполнении она возвращает 0, а при неудаче -1.

Кроме рассмотренных базовых функций для разделяемой памяти, в Unix имеется функция расширенного управления разделяемой памятью с прототипом

int shmctl(int shmid, int cmd, struct shmid_ds *buf)

При использовании разделяемой памяти в Linux программисту предоставляется очень удобное системное средство – команда ipcs. Для получения информации о разделяемой памяти эту команду следует вызвать с опцией m, так что весь вызов имеет вид ipcs -m

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

50. Структуры файловых систем для пользователя

ФС подразделяются на использующие и на не использующие обозначения логических дисков. FAT, NTFS и HPFS используют логические диски, а ФС для Unix логических дисков не используют. Применение логических дисков заметно упрощает для пользователя обозначения файлов: можно указать нахождение файла на логическом диске, где этот файл находится. В ФС с логическими дисками внешняя структура ФС описывается в виде дерева. В ОС, использующих логические диски принято обозначать их одной латинской буквой, за которой символ двоеточие. Последовательность каталогов от корневого узла к данному файлу называется путь (path). В FAT, NTFS и HPFS разделителем в такой последовательности каталогов служит символ \. Все файлы имеют атрибуты доступа. В системах FAT, HPFS и NTFS для обслуживания таких атрибутов служит команда ATTRIB. Аргументом команды может быть имя отдельного файла и задание совокупности файлов. В простейшей форме эта команды выводит атрибуты, обозначаемые символами S, H, R, A (System, Hidden, ReadOnly, Archive).

В UNIX все файлы собраны в одно дерево, включает три разновидности объектов: обычные файлы, каталоги и специальные файлы. Специальные файлы соответствуют устройствам компьютера: реальным или виртуальным. Дерево внешней структуры ФС Unix имеет единственный корень, обозначаемый /. Этот корень является корневым каталогом, перечисляющим каталоги следующего уровня. Любой каталог, отличный от корневого, может содержать любое число обычных файлов и каталогов следующего уровня. В ФС Unix символом разделения в обозначении последовательности каталогов является прямая разделительная черта /. В Unix вместо атрибутов используются характеристики доступа для трех категорий пользователей: самого владельца (u), для членов его группы (g) и всех остальных, обозначаемых символом o (others). Для каждой категории можно задать три типа доступа: по чтению (r), по записи (w) и по выполнению (x).

Соседние файлы в папке Экзамен