Раздел 1. Основы теории операционных систем
Требования к знаниям: | - понятие, назначение и основные функции операционных систем; - типы операционных систем; - виды языков взаимодействия пользователя с операционной системой; - понятие операционного окружения; - услуги, предоставляемые операционным окружением. |
Тема 1.1 Общие сведения об операционных системах
Классификация программного обеспечения. Понятие операционной системы. Назначение и функции операционной системы. Состав, взаимодействие основных компонентов операционной системы. Типы операционных систем.
Проблемная ситуация: Может ли компьютер работать без ОС?
Под ОС обычно понимают комплекс управляющих и обрабатывающих программ, который, с одной стороны выступает как интерфейс между аппаратурой компьютера и пользователем с его задачами, а с другой – предназначен для наиболее эффективного использования ресурсов вычислительной системы и организации надежных вычислений.
Любой из компонентов прикладного программного обеспечения вычислительной системы обязательно работает под управлением ОС.
На рис.1 изображена обобщенная структура программного обеспечения вычислительной системы. Видно, что ни один из компонентов ПО, за исключением самой ОС, не имеет непосредственного доступа к аппаратуре компьютера. Даже пользователи взаимодействуют со своими программами через интерфейс ОС. Любые команды прежде чем попасть в прикладную программу, сначала проходят через ОС.
Рис.1. Обобщенная структура программного обеспечения вычислительной системы
Основные функции ОС:
1. Прием от пользователя (или от оператора системы) заданий или команд, сформулированных на соответствующем языке — в виде директив (команд) оператора или в виде указаний (своеобразных команд) с помощью соответствующего манипулятора (например, с помощью мыши), — и их обработка;
2. Прием и исполнение программных запросов на запуск, приостановку, остановку других программ;
3. Загрузка в оперативную память подлежащих исполнению программ;
4. Инициация программы (передача ей управления, в результате чего процессор исполняет программу);
5. Идентификация всех программ и данных;
6. Обеспечение работы систем управлений файлами (СУФ) и/или' систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения;
7. Обеспечение режима мультипрограммирования, то есть выполнение двух или более программ на одном процессоре, создающее видимость их одновременного исполнения;
8. Обеспечение функций по организации и управлению всеми операциями ввода/вывода;
9. Распределение памяти, а в большинстве современных систем и организация виртуальной памяти;
10. Планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания;
11. Организация механизмов обмена сообщениями и данными между выполняющимися программами;
12. Защита одной программы от влияния другой; обеспечение сохранности данных;
13. Предоставление услуг на случай частичного сбоя системы;
14. Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы.
Классификация операционных систем
В основу первой и основной классификации положим степень централизации (связности) операционной системы (рис. 3).
Рис. 3. Классификация по типу централизации
Эта классификация принимает во внимание особенности аппаратных платформ, для которых операционные системы создаются.
1. Централизованные (локальные) операционные системы - управляют ресурсами единственного локального компьютера:
· однопроцессорные системы;
· многопроцессорные системы.
2. Сетевые операционные системы. Такие системы предоставляют пользователю сети некоторую виртуальную машину, работать с которой проще, чем с реальной сетевой аппаратурой. Однако пользователь всегда выполняет специальные операции для доступа к сетевым ресурсам. Сетевые системы включают дополнительные сетевые средства, состоящие из трех основных компонентов:
· серверная часть операционной системы — средства предоставления локальных ресурсов и услуг в общее пользование;
· клиентская часть операционной системы — средства запроса доступа к удаленным ресурсам и услугам;
· транспортные средства операционной системы — средства обеспечения передачи сообщений между компьютерами сети.
3. Распределенные операционные системы. Они предоставляют пользователю сети единую централизованную виртуальную машину, которая дает максимальную степень прозрачности сетевых ресурсов. Распределенные системы объединяют все компьютеры сети, для работы в тесной кооперации. При работе в таких системах пользователь, запускающий приложение, не знает, на каком компьютере оно реально выполняется.
Классификация ОС по особенностям алгоритмов управления ресурсами имеет аспекты, приведенные ниже.
Поддержка многопользовательского режима.
· Однопользовательские операционные системы не предоставляют средств защиты информации одного пользователя от несанкционированного доступа другого пользователя. Такие системы не предоставляют возможностей разделения ресурсов.
· Многопользовательские операционные системы такие средства защиты информации имеют.
Поддержка многопоточности. Многопоточные операционные системы дают возможность разделять процессорное время не только между процессами, но и между отдельными ветвями процессов — потоками.
Поддержка многопроцессорной обработки. Многопроцессорные операционные системы реализуют более сложные алгоритмы управления ресурсами, предоставляющие возможность работать с несколькими процессорами.
Специфика аппаратных средств, как правило, отражается на специфике операционной системы. В функциональной классификации компьютеров каждый из типов имеет определенные свойства, оказывающие непосредственное влияние на свойства операционных систем.
Наибольший интерес в настоящее время вызывают следующие группы операционных систем:
· операционные системы для мощных серверов;
· операционные системы для рабочих станций и персональных компьютеров;
· операционные системы для карманных компьютеров.
Поддержка многозадачности.
Мультипрограммирование: или многозадачность (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера: оперативную внешнюю память, устройства ввода-вывода, данные. Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по-разному. Наиболее характерными критериями эффективности вычислительных систем являются:
□ пропускная способность — количество задач, выполняемых вычислительной системой в единицу времени;
□ удобство работы пользователей, заключающееся, в частности, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине;
□ реактивность системы способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.
По особенностям областей использования, в зависимости от выбранного критерия эффективности ОС делятся на:
1. системы пакетной обработки,
2.системы разделения времени
3. системы реального времени.
Каждый тип ОС имеет специфические внутренние механизмы и особые области применения.
Т.О., ОС бывают:
· Однозадачные операционные системы выполняют функцию предоставления пользователю виртуальной машины, делая простым и удобным процесс его взаимодействия с компьютером.
· Многозадачные операционные системы дополнительно управляют разделением совместно используемых ресурсов. В первую очередь они дают возможность одновременно исполнять несколько задач на одном процессоре.
1. Мультипрограммирование в системах пакетной обработки
· Операционные системы пакетной обработки. Они работают с пакетами задач, причем переключение процессора с одной задачи на другую происходит лишь в том случае, если активная задача сама отказывается от процессора.
Цель мультипрограммирования – минимизация простоев всех устройств компьютера, и прежде всего ЦП. Такие простои могут возникать из-за приостановки задачи по ее внутренним причинам, связанным, например, с ожиданием ввода данных для обработки. Решением, ведущим к повышению эффективности использования процессора, является переключение процессора на выполнение другой задачи, у которой есть данные для обработки. Такая концепция мультипрограммирования положена в основу так называемых пакетных систем.
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов.
«+»:Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.
Схема функционирования в системах пакетной обработки:
В начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины. Например, вычислительных задач + задач с интенсивным вводом-выводом. Таким образом, выбирается «выгодное» задание.
Но «–»: невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.
П! Рассмотрим совмещение во времени операций ввода-вывода и вычислений.
Дан компьютер, в котором имеются = ЦП + специализированный процессор ввода-вывода (канал).
Канал имеет систему команд для управления внешними устройствами, отличающуюся от системы команд центрального процессора, П! «проверить состояние устройства», «напечатать строку». Программы канала и ЦП могут храниться в донной и той же оперативной памяти. В системе команд центрального процессора предусматривается специальная инструкция, с помощью которой каналу передаются параметры и указания на то, какую программу ввода-вывода он должен выполнить. Начиная с этого момента центральный процессор и канал могут работать параллельно (рис. 4.1, а).
Другой способ совмещения вычислений с операциями ввода-вывода реализуется в компьютерах, в которых внешние устройства управляются не процессором ввода-вывода, а контроллерами. При этом контроллер и центральный процессор работают асинхронно. Контроллер выполняет свои команды управления устройствами существенно медленнее, чем ЦП. => можно параллельно выполнять вычисления и операции ввода-вывода: в промежутке между передачей команд контроллеру центральный процессор может выполнять вычисления (рис. 4.1, б).
Максимальный эффект ускорения достигается при наиболее полном перекрытии вычислений и ввода-вывода.
П! когда процессор выполняет только одну задачу:
В задачах, в которых преобладают либо вычисления, либо ввод-вывод, ускорение почти отсутствует или для продолжения вычислений необходимо полное завершение операции ввода-вывода, например, когда дальнейшие вычисления зависят от вводимых данных. В таких случаях неизбежны простои центрального процессора или канала.
П! Если же в системе выполняются одновременно несколько задач, появляется возможность совмещения вычислений одной задачи с вводом-выводом другой. Пока одна задача ожидает какого-либо события, процессор не простаивает, а выполняет другую задачу.
Общее время выполнения смеси задач часто оказывается меньше, чем их суммарное время последовательного выполнения (рис. 4.2, а).
Однако выполнение отдельной задачи в мультипрограммном режиме может занять больше времени, чем при монопольном выделении процессора этой задаче. П! когда задача готова выполняться, но процессор занят выполнением другой задачи и задача вынуждена ждать освобождения процессора, и это удлиняет срок ее выполнения.
Так, из рис. 4.2 видно, что в однопрограммном режиме задача А выполняется за 6 единиц времени, а в мультипрограммном — за 7. Задача В также вместо 5 единиц времени выполняется за 6. Но зато время выполнения обеих задач в мультипрограммном режиме составляет всего 8 единиц, что на 3 единицы меньше, чем при последовательном выполнении.
В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит по инициативе самой активной задачи; например, когда она отказывается от процессора из-за необходимости выполнить операцию ввода-вывода. Поэтому существует высокая вероятность того, что одна задача может надолго занять процессор и выполнение интерактивных задач станет невозможным. Взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок повышает эффективность функционирования аппаратуры, но снижает эффективность работы пользователя.
2. Мультипрограммирование в системах разделения времени
· Операционные системы разделения времени. Такие системы предоставляют каждой из задач некоторый квант процессорного времени. При этом время ответа программы обычно оказывается достаточно приемлемым, что позволяет использовать эти ОС в качестве диалоговых.
«+»:Повышение удобства и эффективности работы пользователя является целью другого способа мультипрограммирования — разделения времени.
В системах разделения времени пользователям предоставляется возможность работы сразу с несколькими приложениями. Для этого каждое приложение должно регулярно получать возможность «общения» с пользователем.
ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно освободят процессор. Всем приложениям попеременно выделяется квант процессорного времени, таким образом пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог.
Системы разделения времени призваны исправить основной недостаток систем пакетной обработки — изоляцию пользователя-программиста от процесса выполнения его задач.
«–»:1).что системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе.
2).производительность системы снижается из-за возросших накладных расходов вычислительной мощности на более частое переключение процессора с задачи на задачу. Это вполне соответствует тому, что критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя.
«+»:1).Так как времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго и время ответа оказывается приемлемым. Если квант выбран достаточно небольшим, то у всех пользователей, одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них единолично использует машину.
2).вместе с тем мультипрограммное выполнение интерактивных приложений повышает и пропускную способность компьютера (пусть и не в такой степени, как пакетные системы). Аппаратура загружается лучше, поскольку в то время, пока одно приложение ждет сообщения пользователя, другие приложения могут обрабатываться процессором.
3. Мультипрограммирование в системах реального времени
· Операционные системы реального времени. Они применяются для управления некоторыми технологическими объектами и процессами. В них существует предельно допустимое время, в течение которого программа должна ответить.
Для управления от компьютера различными техническими объектами (например, станком, спутником, научной экспериментальной установкой и т. д.) или технологическими процессами (например, гальванической линией, доменным процессом и т. п.). Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная управляющая объектом программа. В противном случае может произойти авария: спутник выйдет из зоны видимости, экспериментальные данные, поступающие с датчиков, будут потеряны, толщина гальванического покрытия не будет соответствовать норме. Таким образом, критерием эффективности здесь является способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия). Это время называется временем реакции системы, а соответствующее свойство системы — реактивностью. Требования ко времени реакции зависят от специфики управляемого процесса. Контроллер робота может требовать от встроенного компьютера ответ в течение менее 1 мс, в то время как при моделировании полета может быть приемлем ответ в 40 мс.
В системах реального времени мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям (исходя из текущего состояния объекта) или в соответствии с расписанием плановых работ.
Способность аппаратуры компьютера и ОС к быстрому ответу зависит в основном от скорости переключения с одной задачи на другую и, в частности, от скорости обработки сигналов прерывания. Если при возникновении прерывания процессор должен опросить сотни потенциальных источников прерывания, то реакция системы будет слишком медленной. Время обработки прерывания в системах реального времени часто определяет требования к классу процессора даже при небольшой его загрузке.
В системах реального времени не стремятся максимально загружать все устройства, наоборот, при проектировании программного управляющего комплекса обычно закладывается некоторый «запас» вычислительной мощности на случай пиковой нагрузки. Статистические аргументы о низкой вероятности возникновения пиковой нагрузки, основанные на том, что вероятность одновременного возникновения большого количества независимых событий очень мала, не применимы ко многим ситуациям в системах управления. Например, в системе управления атомной электростанцией в случае возникновения крупной аварии атомного реактора многие аварийные датчики сработают одновременно и создадут коррелированную нагрузку. Если система реального времени не спроектирована для поддержки пиковой нагрузки, то может случиться так, что система не справится с работой именно тогда, когда она нужна в наибольшей степени.
Требования к ОС
1. Главным требованием, предъявляемым к ОС, является выполнение ею основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна поддерживать мультипрограммную обработку, виртуальную память, свопинг; многооконный графический интерфейс пользователя, а также выполнять многие другие необходимые функции и услуги. Кроме этих требований функциональной полноты к ОС предъявляются не менее важные эксплуатационные требования:
2) Расширяемость. В то время как аппаратная часть компьютера устаревает за несколько лет, полезная жизнь ОС может измеряться десятилетиями. Поэтому ОС всегда изменяются со временем эволюционно, и эти изменения 6олее значимы, чем изменения аппаратных средств. Изменения ОС обычно заключаются в приобретении ею новых свойств, например, поддержке новых типов внешних устройств или новых сетевых технологий. Если код ОС написан таким образом, что дополнения и изменения могут вноситься без нарушения целостности системы, то такую ОС называют расширяемой. Расширяемость достигается за счет модульной структуры ОС, при которой программы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс.
3) Переносимость. В идеале код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которые различаются не только типом процессоpa, но и способом организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа. Переносимые ОС имеют несколько вариантов реализации для разных платформ, такое свойство ОС называют также многоплатформенностью.
4)Совместимость. Существует несколько «долгоживущих» популярных ОС, для которых наработана широкая номенклатура приложений. Поэтому для пользователя, переходящего с одной ОС на другую, очень привлекательна возможность запуска в новой операционной системе привычного приложения.
5) Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны иметь возможности наносить вред ОС. Надежность и отказоустойчивость ОС прежде всего определяются архитектурными решениями, положенными в основу ее реализации (отлаженностью кода). Кроме того, важно, включает ли ОС программную поддержку аппаратных средств обеспечения отказоустойчивости, таких, например, как дисковые массивы или источники бесперебойного питания.
6) Безопасность. Современная ОС должна защищать ресурсы вычислительной системы от несанкционированного доступа. Для этого в состав ОС включают различные средства аутентификации, авторизации и аудита.
7) Производительность. ОС должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа. На производительность ОС влияют: архитектура ОС, качество программирования кода и многообразие поддерживаемых функций.
Контрольные вопросы: Может ли компьютер работать без ОС? 1. Что такое ОС? Дайте определение, опишите основные функции и задачи. 2. Каковы особенности классификации ОС? 3. Перечислите требования, предъявляемые с современным ОС. 4. Известно, что программа А выполняется в монопольном режиме за 10 минут, а программа В — за 20 минут, то есть при последовательном выполнении они требуют 30 минут. Если Т — время выполнения обеих этих задач в режиме мультипрограммирования, то какое из неравенств, приведенных ниже, справедливо? А) Т<10; В) 10<Т<20; С) 20<Т<30; D) Т>30. Ответ: С) 5. Может ли процесс в мультипрограммном режиме выполняться быстрее, чем в монопольном? Ответ: нет | Домашнее задание:
|
Лекция 3 (2/6)
![]() | Проверка Д/З: | 1). Проверить конспекты + ОС будущего 2). Письменный опрос (см. выше) |