
- •Раздел 1. Операционная система unix. Введение в операционную систему unix
- •Отличительные черты ос unix
- •Основы архитектуры операционной системы unix Модель системы unix.
- •Структура ядра ос unix.
- •Основы файловой системы ос unix
- •Типы файлов
- •Структура файловой системы unix
- •Владельцы файлов
- •Права доступа к файлу
- •Дополнительные атрибуты файлов
- •Устройства
- •Маска создания файла
- •Программы Oc unix
- •Процессы ос unix
- •Типы процессов
- •Атрибуты процесса
- •Процесс создания и запуска программ
- •Системный вызов завершения процесса exit
- •Системные функции типа exec
- •Обработка ошибок
- •Ограничения для процессов
- •Пользователи системы, Атрибуты пользователя
- •Средства ВзаимодействиЯ между процессАми
- •Сигналы
- •Посылка сигналов.
- •Int raise (int sig); // посылает сигнал вызывающему процессу (т.Е. Самому себе).
- •Обработка сигналов.
- •Набор сигналов.
- •Файловая подсистема ос unix
- •Индексный дескриптор
- •Блоки хранения данных
- •Недостатки и ограничения файловой системы s5fs
- •Файловая система ffs (Fast File System)
- •Основные отличия ffs от s5fs
- •Ограничения ffs
- •Каталоги ffs
- •Раздел 2. Взаимодействие процессов. Процесс, Понятие и классификация
- •Ресурсы, Понятие и классификация
- •Взаимодействие процессов Задача взаимного исключения
- •Integer очередь;
- •ОБобщенная задача взаимного исключения
- •Integer очередь;
- •Синхронизирующие примитивы (семафоры)
- •Процесс 1 :
- •Процесс 2 :
- •V(свободно);
- •Задача “производитель-потребитель” применение ОбщиХ семафорОв
- •Задача “производитель-потребитель” (буфер ограниченНый)
- •Взаимодействие через переменные состояния
- •Integer array желание[1:n], сп[1:n];
- •Integer чпб, бб, рб, чсеб, I;
- •Integer разм_п, n, max, nmax;
- •Проблема тупиков
- •Алгоритм банкира
- •Integer Св_Деньги; boolean Безопасно;
- •If ((Завершение_под_сомнением [I]) and
- •Применение алгоритма банкира
- •V(Взаимн_искл);
- •V(Возвращенные_Талеры[Номер_Клиента[m]]);
- •If (Попытка_выдать_талер_клиенту(h))
- •Монитороподобные средства синхронизации
- •Механизм типа «критическая область»
- •Механизм типа «условная критическая область»
- •Var s : semaphore; считывание : boolean; m : t;
- •Раздел 3. Вычислительные структуры. Машины, управляемые контроллерами (устройствами управления)
- •Усовершенствованная структура вычислительной машины, управляемой контроллерОм
- •Системы с операционным конвейером
- •Мультипроцессорные системы
- •Транспьютеры
- •Распределение памяти в транспьютерах
- •Диспетчеризация процессов
- •Организация ВводА / выводА в транспьютере.
- •Гарвардская архитектура на примере процессоров семейства adsp
Дополнительные атрибуты файлов
Существует несколько дополнительных атрибутов, изменяющих стандартное выполнение различных операций. Это относится как к обычным исполняемым файлам, так и к каталогам.
t – sticky bit;
s – set UID (для владельца);
s – set GID (для группы);
l – блокирование.
Пример: chmod u+s file1
chmod g+s file2
t сохранить образ выполняемого файла после завершения. Это значит, что после завершения выполнения задачи ее образ (код и данные) остаются в памяти, что приводит к тому, что последующие запуски программы занимают меньше времени.
s установить пользовательский или групповой идентификатор при выполнении. Он позволяет изменить права пользователя при запуске на выполнение файла, имеющего эти атрибуты. При этом привилегии будут изменены лишь на время выполнения и только в отношении этой программы. Обычно, запускаемая программа имеет права доступа к системным ресурсам на основе прав доступа пользователя, запустившего программу. Установка флагов s изменяет эти правила, исходя из прав доступа владельцев файлов. То есть, если владельцем-пользователем является суперпользователь, то файл получает неограниченные права доступа к системным ресурсам, независимо от того, какой пользователь запустил этот файл.
1 установить обязательное блокирование файлов при выполнении. Используется для устранения конфликтов, когда одновременно несколько задач работают с одним и тем же файлом, то есть в некоторых системах необходимо завершить процесс прежде, чем запустить новый.
Для того, чтобы разграничить возможности отдельных пользователей при удалении файлов из каталогов можно использовать атрибут “t”. Из каталога, на который установлен этот атрибут, пользователь может удалить только файлы, которыми он владеет или в отношении которых он имеет право доступа на запись, даже при наличии права записи в каталог. Это используется при работе с каталогами временных файлов. Этот каталог открыт на запись для всех пользователей, но в котором нежелательно удаление файлов других пользователей.
Установка флага SGID тоже имеет специальное значение для каталогов. При установке этого атрибута для каталога вновь созданные файлы этого каталога будут наследовать владельца-группу по владельцу-группе каталога.
Устройства
UNIX представляет единый интерфейс различных устройств системы в виде специальных файлов устройств. Специальный файл устройства связывает прикладные приложения с драйверами устройств. Каждый специальный файл устройства соответствует какому-либо физическому устройству. Вся работа приложений с устройствами происходит через специальный файл. Соответствующий устройству драйвер обеспечивает выполнение операций ввода-вывода в соответствии с протоколом обмена данными с этим устройством. Существует два типа специальных файлов устройств:
- файлы блочных устройств
- файлы символьных устройств
Файлы блочных устройств обеспечивают доступ к устройствам, обмен данными с которыми происходит большими фрагментами, называемыми блоками. При этом ядро операционной системы обеспечивает необходимую буферизацию (например, жесткий диск).
Файлы символьных устройств используют драйверы, которые используют собственную буферизацию и побайтную передачу данных (терминал, принтер и т.д.).
При выводе каталога при помощи команды ls -l можно определить, какое устройство и какой номер драйвера используется при его работе.
В поле размера файла у специальных устройств выводится два числа, старшее из которых указывает ядру на конкретный драйвер, а младшее передается драйверу и указывает на конкретное устройство.
Пример: /dev/rdisk/c0t4d0s2
cktldmsn, где
к – контроллер;
l – номер устройства;
m – номер раздела;
n – логический номер устройства;
/dev/rmth (/dev/rmt0) - накопитель на ленте
/dev/cdn (/dev/cd0) - CD-ROM
/dev/console - системная консоль
/dev/mem - физическая оперативная память
/dev/null , /dev/zero - виртуальные устройства, при выводе на которые все данные уничтожаются, а причтении из него возвращается нуль.