- •Назначение, эволюция и основные принципы построения
- •Эволюция и основные идеи
- •Пакетный режим
- •Разделение времени и многозадачность
- •Разделение полномочий
- •Реальный масштаб времени
- •Файловые системы и структуры
- •Основные принципы построения ос
- •Основные концепции ос
- •Концепция виртуализации
- •Концепция прерывания
- •Отношения между процессами
- •Синхронизация процессов
- •Обобщенная структура ос
- •Операционная система ms-dos
Разделение времени и многозадачность
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.
Разделение полномочий
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой.
Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).
Реальный масштаб времени
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
Включение функции реального масштаба времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени).
Файловые системы и структуры
Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных дисках).
Файловая система — способ хранения данных на внешних запоминающих устройствах.
Основные принципы построения ос
Каждая ОС является уникальной сложной программной системой.При этом в основу разработки каждой из них положен некоторые общие принципы.
1.Частотный принцип.Основан на выделении в алгоритмах программ действий, и в обрабатываемых массивах - данных, приблизительно равных по частоте использования.
Для программ и данных, которые часто выполняются при работе ОС, обеспечиваются условия их быстрого выполнения (для программ) и условия быстрого доступа (для данных).Это достигается постоянным размещением их в оперативной памяти.
Частотный принцип используется при организации многоуровневого планирования работ операционной системой. На уровень долгосрочного планирования выносятся редкие и "длинные" операции(например: выполнение задания пользователя), на уровень краткосрочного планирования - часто используемые короткие операции (действия по обслуживанию очередной выполняемой программы)(например:ввод-вывод данных, открытие или закрытие файла и т.п.)
2.Принцип модульности. Под модулем в общем случае понимают функциональный элемент системы, который:
- оформлен по определенным правилам системы;
- имеет средства сопряжения с подобными элементами данной или другой системы.
По определению модуль предполагает легкий способ его замены на другой.
При построении ОС важное значение имеют параллельно используемые или реентерабельные модули(от английского reentry - снова войти). Каждый такой модуль может параллельно(одновременно) использоваться несколькими программами при их исполнении.
Реентерабельность, то есть обеспечение повторной входимости в модули достигается различными способами, в основе которых лежит отделение кода (команд программы) от данных (внутренних переменных).При каждом обращении к модулю ему предоставляется отдельная область под
внутренние переменные. Разработка реентерабельных программ требует в общем случае применения специальных приемов программирования.
3.Принцип функциональной избирательности - является логическим продолжением двух предыдущих принципов. В ОС выделяется часть наиболее важных модулей, которые наиболее часто используются и является основой системы. Эту часть системы называют ядром ОС.
Программы, входящие в состав ядра, постоянно находятся в оперативной памяти и доступны для использования в любой момент. Такие программы называют ОЗУ-резидентными.
Остальные системные программы, постоянно хранящиеся в памяти на магнитных дисках, называют транзитными. Они загружаются в оперативную память только при необходимости их выполнения и при нехватке оперативной памяти могут перекрывать друг друга.
4.Принцип генерируемости. Определяет такой способ исходного представления ОС, который позволял бы настраивать ее под конкретную конфигурацию ЭВМ и под конкретный набор прикладных программ, управлением выполнения которых она (ОС) должна заниматься.
Такая процедура настройки (или генерации, или инсталяции) проводится относительно редко перед достаточно длительным периодом эксплуатации ОС и реализуется с помощью специальной программы (часто называется SETUP) .
Принцип модульности существенно упрощает настройку ОС на требуемую конфигурацию.
5.Принцип функциональной избыточности. - обеспечивает возможность выполнения одной и той же функциональной операции различными средствами. НАПРИМЕР:в MS-DOS:
а)обеспечивается возможность доступа к файлу двумя методами:
- методом управляющего блока файла и
- методом дискриптора файла.
б)загрузка ОС может выполняться :
- либо с жесткого диска;
- либо с дискеты.
в)управлять ОС можно :
- либо с помощью командной стоки;
- либо с помощью командной оболочки(Norton Comander)
Этот принцип обеспечивает универсальность и гибкость ОС.
6.Принцип по умолчанию. Применяется для облегчения как генерации ОС ,так и работы с готовой системой. Принцип основан на хранении в системе некоторых констант, определяющих параметры и характеристики ОС.
Значения этих констант используются системой как заданные, если пользователь, оператор или администрация забудут или сознательно не изменят эти значения . Использование этого принципа позволяет сократить число параметров, устанавливаемых пользователем в процессе работы с ОС.
7.Принцип перемещаемости. - предусматривает построение модулей ОС, исполнение которых не зависит от места расположения в ОЗУ. Настройка программы модуля на конкретное место в оперативной памяти заключается в определении фактических адресов, используемых в адресной частях команд модуля.
Существенную роль при этом играет способ адресации в конкретной машине, а также алгоритм распределения памяти, реализуемый ОС.
Принцип как правило распространяется и на модули ОС и на прикладные программы.
8.Принцип защиты. - определяет необходимость создания средств, ограждающих программы и данные пользователей от искажения, которые могут возникнуть из-за нежелательного влияния их друг на друга , а также пользователей на ОС и наоборот.
Защита программ должна гарантироваться как при их исполнении, так и в режиме хранения.
Способов искажения программ и данных, как умышленных так и непреднамеренных, очень много.
Основные механизмы защиты , используемые в ЭВМ.
а)Двухконтекстность работы процессора. В каждый момент времени процессор исполняет программу либо из состава ОС, либо некоторую прикладную или служебную программу.
В первом случае (программа ОС), могут выполнятся любые команды в том числе и такие (системные или привилегированные), которые непосредственно изменяют состояние всей системы ( например: запрет и разрешение прерываний; маскирование прерываний; изменения слова-состояния процессора и т.п.)
Во втором случае (пользовательские программы), необходимо гарантировать невозможность выполнения системных команд.
Это достигается введением в архитектуру ЭВМ двух режимов:
1.- привилегированный. В этом режиме могут выполнятся все команды включая и системные(в этом режиме работает большинство программ ОС); 2
- непривилегированного в этом режиме выполняются все пользовательские программы которым запрещено выполнение системных команд. Попытка выполнить такую команду обнаруживается аппаратными средствами, которые автоматически переводят процессор в привилегированный режим и передают управление программе ОС.
9.Принцип независимости программ от внешних устройств.
Этот принцип позволяет одинаково осуществлять операции обмена данными и управления с внешними устройствами, не зависимо от их конкретных характеристик.
Это достигается путем включения в состав ОС специальных программ, реализующих непосредственное управление передачей данных между ЭВМ и определенным типом устройства. Такие программы называются - драйверами.
Для каждого внешнего устройства в ОС имеется свой драйвер. Только драйвер учитывает особенности обслуживаемого им устройства. Процедура обращения и состав передаваемых при этом параметров универсален для всех драйверов в ОС.
Поэтому пользовательская программа обращаясь к некоторому функциональному устройству (например: жесткому диску), активизирует соответствующий драйвер, который и реализует требуемую операцию с учетом специфики конкретного подключенного накопителя(количество поверхностей, количество головок и т.п. )
10.Принцип открытости и наращиваемости. Открытая ОС – программная система, каждый компонент которой (любая подпрограмма, любая структура данных) доступна для анализа пользователем.
Наращиваемая(модифицируемая, развиваемая) ОС - позволяет наряду с использованием возможностей генерации, также вводить в ее состав новые модули, дорабатывать, совершенствовать или изменять существующие модули.
