
- •Содержание Оглавление
- •1. Основные действия операционной системы при управлении заданиями – программы функций, характеристика действий, конечный результат.
- •2. Способы реализации управления данными – подпрограммы ввода-вывода.
- •3. Понятие метода доступа (определение, состав).
- •4. Понятие буфера: методы отведения буферов и режимы передачи информации.
- •5. Способы организации данных и типы языков управления.
- •6. Понятие тупика, характеристика отношений, возникающих в системе.
- •7. Основная задача обнаружения тупика, основной способ определения состояния системы (редукция графа).
- •8. Факторы, обуславливающие сложность восстановления системы после тупика.
- •9. Главные стратегические принципы предотвращения тупиков (принципы j.W. Havendera).
- •10. Условия возникновения тупиков и основные направления исследования тупиков.
- •11. Предотвращение тупиков, обход тупиков.
- •12. Методы обнаружения тупиков и восстановления после тупиков.
- •13. Условие «ожидания дополнительных ресурсов » и его разрешение.
- •14. Условие неперераспределяемости ресурсов и его разрешение.
- •15. Условие «кругового ожидания » и его разрешение.
- •16. Понятие критической области и её значение для функционирования системы.
- •17. Описание формальной модели операционной системы.
- •18. Взаимосвязь ресурсов и процессов в многопроцессорной эвм.
- •19. Базовые операции над графом ресурсов и процессов и правила преобразования.
- •20. Схемы работы ос в различных режимах мультипрограммирования.
- •21. Понятие ос юникс. Основные преимущества и недостатки.
- •22. Основные центральные идеи ос юникс и их реализация.
- •23. Организация ввода-вывода в ос юникс, характерные особенности.
- •24. Понятие конвейера, связь с в/в, фильтр.
- •25. Понятие процесса в ос юникс, отличие от предыдущих ос, утилиты.
- •26. Компоненты ос: sccs и make
- •27. Планирование в ос юникс
- •28. Файловая система ос юникс: понятие, возможности, структурные особенности.
- •29. Структура файловой системы (на диске).
- •30. Ядро системы юникс – понятие и основные секции
- •31. Идеология структуры ядра ос юникс.
- •32. Генеалогия ос юникс и основные этапы разработки
- •33. Интерфейсы ос юникс
- •34. Определение и основные сведения об ос linux
- •35. Файловая система linux: организация, система работы и управления доступом к файлу.
- •36. Мультипрограммирование и мультиобработка – общее и особенное.
- •37. Основная цель операционной системы и критерии оптимизации.
- •38. Определение процесса и операции в иерархической операционной системе.
- •39. Отношения предшествования между процессами и развитие процесса в системе.
- •40. Понятие критической области.
- •41. Семафор, механизм синхронизации.
- •42. Компоненты ядра ос юникс и структура программного обеспечения.
- •43. Утилиты ос юникс.
- •44. Идеология структуры и базовый состав ядра ос юникс.
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 и их величина достаточно отличается от нуля их достаточно, что бы перезапущенный процесс попал в другую очередь.
Таким образом процессы, ограниченные производительностью (то есть находящиеся в положительных очередях) в основном обслуживаются после того как будут обслужены все процессоры, ограниченные вводом/выводом (то есть когда все эти процессы окажутся заблокированы в ожидании ввода/вывода).