Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка ПО ОСРВ заочники.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.72 Mб
Скачать

3.7.2Разряд Set-Group-id

Второй специальный разряд используется для установки эффективного группового идентификатора программы. Если программа принадлежит группе g и установлен разряд м-group ID, то программа будет запускаться так, если бы она запускалась на исполне­ние членом группы g. Этот бит предоставляет программе права доступа, которые приписаны членам группы. Программист может проверить значение данного разряда с помощью такой маски:

#define S.ISGID 0002000 /* установить group id на исполнение */

3.7.3 Разряд Sticky Bit

Этот разряд имеет две различные области использования -для работы с каталогами и для работы с файлами. Поговорим сначала о файлах. В Olden Days ®«#.Что это такое? Unix разрешала проблему одновременного исполнения нескольких программ с помощью техники, которая называется своппированием. Рассмотрим следующую ситуацию. На вашем компьютере есть 1 мегабайт пользовательского пространства памяти, и вы запускаете на исполнение три программы, каждая из которых использует 0,5 мегабайта памяти. Очевид­но, что только две программы из них могут одновременно находиться в памяти. Куда ядро поместит те программы, которые в текущий момент не могут быть исполнены? В Olden Days т. Что это такое? было решено, что ядро может размещать сразу всю программу в раз-I деле твердого диска, который резервируется специально для своппирования. В некоторый момент эта программа может быть повторно запущена на исполнение. Тогда ядро выгру­жает эту программу из области своппирования, а помещает туда одну из исполняемых до этого момента программ.

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

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

Рассмотрим теперь такие программы, которые интенсивно используются. Это редакторы, компиляторы или компьютерные игры. Если копии таких программ поместить для хранения на устройстве для своппирования, то ядро будет загружать эти программы быстрее. Установленный разряд sticky bit (Название этого бита принято не переводить. - Примеч. I пер.) для какой-либо программы говорит ядру о необходимости хранить эту программу на устройстве для своппинга, даже если никто эту программу в текущий момент времени невызывает. Название разряда (sticke — приклеивать) обусловлено тем фактом, что програм­ма "приклеивается " к устройству для своппирования так же, как жевательная резинка приклеивается к вашему ботинку.

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

Разряд sticky bit имеет другой смысл, если он установлен для каталога. Это значение так­же относится к проблеме "приклеивания". Некоторые каталоги создаются для хранения в них временных файлов. Эти временные каталоги, и прежде всего /tmp, доступны всем для записи, что дает возможнрсть любому пользователю создавать и удалять любые фай­лы в таком каталоге. Sticky bit, который может быть установлен для каталога, аннулирует возможность доступа на запись для всех в этом каталоге. В таком случае файлы в каталоге могут удалять только их собственники.