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

26. Компоненты ос: sccs и make

В систему UNIX включён координатор MAKE, который используется для улучшения взаимодействия отдельных модулей и действий, которые должны быть выполнены при их модернизации. Другой аспект создания больших программ это обнаружение и исправление ошибок. Обычно на этапе отладки обнаруживаются и исправляются почти все ошибки. В дальнейшем обнаружить оставшиеся ошибки гораздо труднее и стоимость их исправления намного выше. А с некоторого момента существования программного продукта исправление ошибок вырастает в серьезнейшую проблему. В готовом продукте коррекцию ошибок следует выполнять с осторожностью, так как возможно нарушение целостности программного продукта. Для улучшения поддержки эволюционирующих программ включён компонент SCCS.

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

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

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

27. Планирование в ос юникс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]