16. Дайте определение термину «Интерпретатор командной строки».
51. Приведите классификацию операционных систем по назначению.
71. Перечислите основные требования, предъявляемые к ОС реального времени.
96. Перечислите и поясните механизмы взаимодействия процессов в ОС Linux.
16. Дайте определение термину «Интерпретатор командной строки».
Интерпретатор командной строки, или shell (shell -- оболочка) - эта та программа, которая принимает команды от пользователя и исполняет их.
К функциям оболочки относятся:
- Взаимодействие с пользователем (редактирование командной строки, история команд и т.д.).
- Обработка (расширение) шаблонов имен ("*", "?" и т.д.).
- Перенаправление ввода/вывода команд.
- Управление заданиями.
51. Приведите классификацию операционных систем по назначению.
В зависимости от алгоритма управления процессором, операционные системы делятся на:
- По числу одновременно выполняемых задач:
- однозадачные (MS DOS);
- многозадачные.
- Системы пакетной обработки (ОС ЕС).
- Системы с разделением времени (Unix, Linux, Windows).
- Системы реального времени (RT11, QNX).
- По числу одновременно работающих пользователей на ЭВМ ОС разделяются на:
- однопользовательские (MS DOS);
- многопользовательские (Unix, Linux, Windows 95 - XP).
71. Перечислите основные требования, предъявляемые к ОС реального времени.
В системах реального времени (СРВ), в которых главным критерием эффективности является обеспечение временных характеристик вычислительного процесса, планирование имеет особое значение. Специфика процесса планирования, определяется требованием своевременного выполнения прикладных задач. По мере расширения практики применения СРВ, расширялся и совершенствовался состав методов организации вычислений. В частности, расширялся состав, и повышалась эффективность используемых методов планирования выполнения задач.
Основная задача системы реального времени - получение правильных результатов за определенный крайний срок. Следовательно, вычислительная правильность системы зависит от двух составляющих: логической правильности результатов, и правильности выбора времени[2].
Система реального времени должна давать отклик на любые непредсказуемые внешние воздействия в течение предсказуемого интервала времени.
Для этого должны выполняться следующие требования.
• Ограничение времени отклика. После наступления события реакция на него гарантированно должна последовать до предустановленного крайнего срока. Отсутствие такого ограничения рассматривается как серьезный недостаток программного обеспечения.
• Одновременность обработки. Даже если наступает более одного события одновременно, все временные ограничения для всех событий должны быть выдержаны.
96. Перечислите и поясните механизмы взаимодействия процессов в ОС Linux.
Каждый процесс в ОС UNIX выполняется в собственной виртуальной памяти, т.е. если не предпринимать дополнительных усилий, то даже процессы-близнецы, образованные в результате выполнения системного вызова fork(), на самом деле полностью изолированы один от другого (если не считать того, что процесс-потомок наследует от процесса-предка все открытые файлы). Тем самым, в ранних вариантах ОС UNIX поддерживались весьма слабые возможности взаимодействия процессов, даже входящих в общую иерархию порождения (т.е. имеющих общего предка).
Очень слабые средства поддерживались и для взаимной синхронизации процессов. Практически, все ограничивалось возможностью реакции на сигналы, и наиболее распространенным видом синхронизации являлась реакция процесса-предка на сигнал о завершении процесса-потомка.
По-видимому, применение такого подхода являлось реакцией на чрезмерно сложные механизмы взаимодействия и синхронизации параллельных процессов, существовавшие в исторически предшествующей UNIX ОС Multics. Напомним (см. раздел 1.1), что в ОС Multics поддерживалась сегментно-страничная организация виртуальной памяти, и в общей виртуальной памяти могло выполняться несколько параллельных процессов, которые, естественно, могли взаимодействовать через общую память. За счет возможности включения одного и того же сегмента в разную виртуальную память аналогичная возможность взаимодействий существовала и для процессов, выполняемых не в общей виртуальной памяти.
Для синхронизации таких взаимодействий процессов поддерживался общий механизм семафоров, позволяющий, в частности, организовывать взаимное исключение процессов в критических участках их выполнения (например, при взаимно-исключающем доступе к разделяемой памяти). Этот стиль параллельного программирования в принципе обеспечивает большую гибкость и эффективность, но является очень трудным для использования.