СПО (Корнилов) / Лекции / вар1 / SPOLec2
.doc
Лекция 2: История развития. Структура ОС.
-
История развития ОС
-
Структура ОС
История развития ОС
Взгляд на произошедшие изменения (1). На примере типичного для университетов США компьютера.
-
1981
1999
Коэффициент
Процессор (MHz)
цикл/команда
10
3-4
600
0.5 - 1
60
3-8
ОЗУ
128KB
256MB
2000
Диск
10MB
27GB
2700
Сеть
9600b/s
155Mb/s
15000
Разрядность
16
64
4
Пользователь/компьютер
10
<=1
10
Цена
$25000
$2000
12
Взгляд на произошедшие изменения (2). Изменение методов работы.
Развитие аппаратуры => Новые возможности => Изменение режимов работы, поддерживаемых ОС
Этап 1: Дорогая аппаратура, дешевый труд персонала (1948-1970)
-
Компьютеры исключительно дорогие. Цель: загрузить работой.
-
Типичный режим работы на первых компьютерах – один пользователь работает за пультом ЭВМ. Отсутствует взаимодействие пользователя с программой в процессе ее выполнения. Программирование в кодах, нет языков программирования. ОС представлена в виде библиотеки стандартных подпрограмм (ввод-вывод, математика). Задачи преимущественно вычислительного характера. Низкая надежность аппаратуры.
-
Пакетная обработка заданий (загрузить, выполнить, напечатать результат). Пока человек думает за пультом, машина простаивает. Чтобы лучше использовать оборудование необходимо отдалить пользователя от машины и загружать пакет готовых заданий.
-
Ввод с перфокарт
-
FORTRAN
-
Первые системы пакетной обработки: FMS (Fortran Monitor System) и IBSYS. Формирование пакета на МЛ с помощью вспомогательной ЭВМ. Перенос ленты на мощную ЭВМ для расчета в пакетном режиме. Распечатка результатов с МЛ на вспомогательной ЭВМ.
-
Простой язык управления заданиями $JOB <шифр> $FORTRAN [колода ПК] $LOAD $RUN [Данные] $END
-
Связи пользователя с программой во время выполнения нет
-
Время реакции системы велико (часы)
-
Новые задачи. Применение ЭВМ в экономической сфере. Задачи символьной обработки.
-
Проект IBM создания универсальной серии машин (IBM 360), совместимых снизу вверх. Совместимость должна распространяться и на ОС и на языки (PL/I).
-
Совмещение операций ввода-вывода с вычислениями. Спулинг (SPOOL – Simultaneous Peripheral Operation On Line)
-
Мультипрограммный режим работы
-
Развитый сложный язык управления заданиями
-
Преимущества: хорошая загрузка системы, справедливое обслуживание для коротких и длинных задач, совмещение операций ввода-вывода с вычислениями
-
Новые проблемы: защита программ друг от друга, совместное использование общих ресурсов.
-
Сложность ОС резко возросла: Multics вместо 1963 реализован в 1969 После выпуска OS360 зафиксировано более 1000 ошибок. Проектирование ОС стало наукой (не только в области программирования, но и в организации работы больших коллективов разработчиков) Парадокс? На фоне гигантского проекта OS360 создается UNIX (маленький и работающий!)
Bell Laboratories + General Electric + M.I.T => MULTICS (MULTiplexed Information and Computing Service). Кен Томпсон – UNICS (UNiplexed Information and Computing Service) + Ритчи + Керниган => C & UNIX
Этап 2: Дешевая аппаратура, дорогой труд персонала (1970-1985):
-
Аппаратура дешевеет. Цель: создание условий для более эффективной и комфортной работы пользователей. Назначение ОС: эффективное управление ресурсами и предоставление сервиса.
-
Расширение сфер применение ЭВМ.
-
Системы с разделением времени. Диалоговое взаимодействие пользователя с ЭВМ и с программой во время выполнения. Проблема: деградация производительности системы при увеличении числа пользователей.
-
Совершенствование мультипрограммной обработки
-
Сокращение времени реакции системы
-
Системы реального времени
Этап 3: Очень дешевая аппаратура, очень дорогой труд персонала (1981-):
-
Стоимость компьютера $1000, стоимость труда программиста - $100000.
-
Ключевое изменение: компьютеры и ПО развиваются для повышения эффективности труда пользователя.
-
Персональные ЭВМ. Пройден путь от простых ОС (MS-DOS) к полномасштабным ОС (NT, OS/2).
-
Дружественный интерфейс
-
Пересмотр основ, суперкомпьютеры, нетрадиционная архитектура, новые языки.
-
Сети ЭВМ. Интеграция сетевой поддержки в ОС.
Этап 4: Распределенные системы (1981-):
Отличие от сетевых ОС состоит в средствах распределения ресурсов на сетевом уровне. Ресурсы распределяются таким образом, что пользователь не знает ничего о том на какой машине ему выделен требуемый ресурс.
Резюме
-
Развитие технологии => Расширение сфер применения => Изменение ОС вслед за технологическими изменениями.
-
Современные ОС – исключительно сложная система. Например, NT разрабатывается с конца 80-х и до сих пор далека от идеала. Важно понять как упростить и повысить надежность создаваемых сложных систем.
Структура ОС
Можно по-разному препарировать ОС, что приводит к различным представлениям об ОС.
Системные компоненты(из чего состоит ОС)
-
Управление процессами
-
Управление памятью
-
Подсистема ввода-вывода
-
Файловая система
-
Поддержка сети
-
Пользовательский интерфейс
Можно считать такое деление взглядом снизу. Любая ОС содержит такие структурные компоненты и их рассмотрение позволяет рассмотреть ОС изнутри.
Системные сервисы (что делает ОС)
Ряд сервисов напрямую отображаются на системные компоненты
-
Выполнение программ
-
Средства ввода-вывода
-
Доступ к файлам
-
Средства коммуникации
Другие сервисы реализуются всеми или части компонентов ОС
-
Обнаружение ошибок и восстановление работоспособности
-
Распределение ресурсов
-
Учет пользователей и их возможностей
-
Защита программ и данных
Это взгляд сверху необходимый любому пользователю. При этом не существенно как соотносятся сервисы и компоненты ОС.
Системные вызовы (что представляет собой API)
Примеры: MS-DOS (int 21), Windows 95/NT (Win32), POSIX.
Такой взгляд необходим программисту, но не дает полной картины того, как работает ОС.
Структура ОС (как связаны компоненты)
-
Простая структура (монитор).
Примеры: MS-DOS (вообще нет структуры), ранний UNIX (режим пользователя и режим ядра). Все собрано в один монолитный модуль.
-
Иерархическая структура. Впервые предложен Дейкстрой в ОС THE. Использован в MULTICS Основные принципы:
-
Каждый уровень контролирует ряд структур данных и предоставляет функции доступа к ним
-
Каждый уровень ничего не знает о структуре нижележащих уровней. Доступ к сервисам нижележащих уровней осуществляется через определенный ими интерфейс
-
Каждый уровень ничего не знает о существовании вышележащих уровней.
Преимущества:
-
Модульность, простота отладки и поддержки
-
Возможность замены или модификации слоя. Важным следствие является переносимость за счет выделения машинно-зависимого слоя. (HAL в Windows NT).
-
Микроядро и сервисные процессы
Ядро обычно реализует переключение контекста, средства синхронизации и взаимодействия между сервисными процессами работающими на пользовательском уровне.
Преимущества:
-
Очень высокий уровень модульности
-
Возможность динамической реконфигурации