- •Раздел 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
Процессы ос unix
С процессом связана какая-либо программа, для которой выделяется место в памяти, или системные переключения между процессами. Процессы в ОС UNIX играют ключевую роль. От оптимальной настройки подсистемы управления процессами и числа одновременно выполняемых процессов зависит загрузка процессора, что оказывает непосредственное влияние на производительность системы в целом.
Ядро ОС предоставляет задачам базовый набор услуг, определяемых базовым интерфейсом системных вызовов. К ним относятся основные операции работы с файлами, управления процессами и памятью, поддержка межпроцессового взаимодействия.
Под процессом можно понимать совокупность данных ядра системы, необходимых для описания образа программы в память, и управления её выполнением.
С другой стороны процесс это программа в стадии её выполнения,т.к. все программы в ОС UNIX предоставлены в ОС UNIX в виде процессов.
Следовательно, процесс- это набор команд или инструкций, выполняемым процессором,совместно с данными и информацией о выполняемой задаче,такой как распределение памяти, открытие файла и статус процесса.
Процесс не отождествляется с программой, т.к. программа может создать(породить) более одного процесса. Выполнение процесса заключается в точном следовании набору инструкций, при котором никогда не передаётся управление другому процессу.
Процессу также недоступны данные и стеки других процессов. Но процессы могут обмениваться друг с другом данными с помощью системы межпроцессового взаимодействия, предоставляемой ОС UNIX. К этой системе относятся:
сигналы (похожи напрерывания);
каналы (двунаправленная буферизация файла);
файлы;
разделяемая память;
семафоры;
сообщения.
В остальном процессы изолированы.
Типы процессов
Системные процессы
Системные процессы являются частью ядра ОС и всегда находятся в оперативной памяти.
Они не имеют соответствующих им программ в виде исполняемых файлов и запускаются особым образом при инициализации ядра системы, т.о. они могут вызывать функции и обращение к данным, недоступных для остальных процессов.
Системными процессами являются:
shed диспетчер свопинга
vhand диспетчер страничного замещения
bdfflush диспетчер буферного кэша
kmadaemon диспетчер памяти ядра
К системным также можно отнести процесс init (хотя он не является частью ядра и его запуск производится из специального файла в /etc) являющийся прародителем всех остальных процессов.
Демоны
Демоны это не интерактивные процессы, которые запускаются обычным образом путем загрузки в память соответствующей им программы и выполнения в фоновом режиме. Обычно демоны запускаются при инициализации системы, но после инициализации ядра, и обеспечивают работу различных подсистем (терминального доступа, печати, сетевого доступа и т.д.)
Демоны не связаны ни с одним пользовательским сеансом и не могут управляться пользователем непосредственно. Большую часть времени демоны ожидают, пока той или иной процесс не запросит определённую услугу.
Прикладные процессы
К ним относятся все остальные процессы, выполняющиеся в системе. Обычно, это процессы, порожденные в рамках пользовательского сеанса работы.
Важнейший пользовательский процесс это командный интерпретатор (shell), который запускается после регистрации пользователя в системе, а его завершение приводит к отключению пользователя от системы.
Пользовательские процессы могут выполняться как в интерактивном, так и в фоновом режиме, но время их жизни ограничено временем работы пользователя. При завершении сеанса пользователя все пользовательские процессы уничтожаются.
Интерактивные процессы монопольно владеют терминалом. И пока такой процесс не завершит работу, пользователь не может работать с другими процессами, если в функции интерактивного процесса не входит запуск на выполнение других программ (процесс shell-интерактивный, но пользователь может запускать другие процессы).