Планирование в ОС ЮНИКС

 

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

 

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

ожидание дискового ввода/вывода.

Ожидание дискового буфера.

Ожидание терминального ввода.

Ожидание терминального вывода.

 

Так же существуют процессы «ожидающий процесс в режиме ядра», к которым относится:

Ожидание завершения дочернего процесса.

Приоритет пользователя 0.

Приоритет пользователя 1.

Приоритет пользователя 2 и так далее.

 

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

 

Примерно один раз в секунду приоритет каждого процесса пересчитывается по определенной формуле: Priority = CPU_Usage+ Nice+Base. на основе нового сосчитанного приоритета каждый процесс прикрепляется к новой очереди.

 

Параметр Nice имеет значение по умолчанию равное нулю, но допустимый диапазон его, как правило +/- 20. Процесс может установить значение Nice с помощью системного вызова. Только системный администратор может запросить обслуживание с более высоким приоритетом: то есть значение от -20 до -1.

 

Отрицательное значение приоритета для дискового ввода/вывода, терминального ввода/вывода жёстко прошиты в ОС и могут быть изменены только путём перекомпиляции самой системы. Эти отрицательные значения представлены параметром Base и их величина достаточно отличается от нуля их достаточно, что бы перезапущенный процесс попал в другую очередь.

 

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

 


28. Файловая система ОС ЮНИКС: понятие, возможности, структурные особенности.

 

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

 

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

 

Одно из нововведений в UNIX в том что устройства ВВ ассоциируются в системе с понятием специального файла. Доступ к любому устройству реализуется как обслуживание запроса к дисковому файлу. Файл в UNIX это последовательность байтов произвольной длинны. Размер имён от 14 до 255 символов (в зависимости от версии). По соглашению многие программы ожидают, что имена файлов состоят из основного имени и расширения. Расширения могут иметь произвольную длину, а файлы могут иметь по нескольку расширений. Каждое устройство ВВ представлено в системе по меньшей мере одним специальным файлом. UNIX обеспечивает существование целой системы каталогов. Программы пользователей могут читать файлы этого типа, но не в состоянии изменить их и ОС гарантирует сохранность структуры этих каталогов. В другой тип каталогов входят обычные файлы, файлы каталогов, специальные файлы и в некоторых версиях FIFO-файлы, поименованные конвейером.

 

Имена файлов разделяются на две группы:

1. Абсолютные – описывают путь к файлу от корневого каталога.

2. Относительные – описывают путь, начинающийся с высшего текущего каталога.

 

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

 

Каталоги в UNIX .

 

Каталог  
Bin Двоичные (используемые программы)
Dev Специальные файлы УВВ
Etc Любые системные файлы
Lib Библиотеки
Usr Пользователи

 

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