Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СПО (Корнилов) / Лекции / вар2 / Операционные системы (Корнилов)

.pdf
Скачиваний:
53
Добавлен:
17.04.2013
Размер:
2.11 Mб
Скачать

СПО Лекция 1 [23.12.04]

1

Литература:

Г.Дейтел Введение в операционные системы (в 2х томах).-М., Мир, 1987 Д.Рихтер Windows для проффесионалов.-1997

Ал.Вильямс Системное программирование в Windows 2000 для профессионалов.- С-Пб, 2001.-624с. Р. Саймон Windows 2000 API. Энциклопедия программиста.- К.: «ДиаСофт», 2001.-1088с. Г.Н.Соловьев, В.Д.Никитин Операционные системы.-1989

www.cs.berkeley.edu(CS162)

Лекция 1: Введение

9Понятие об ОС.

9Принципы проектирования ОС

9Зачем изучать ОС.

9Обзор тем курса.

Что такое ОС?

Можно определить как программный комплекс, решающий задачи эффективного управления ресурсами ЭВМ и предоставляющий пользователю набор услуг для простого и надежного доступа к ресурсам ЭВМ.

Две основные функции ОС:

1.Эффективное управление ресурсами ЭВМ

2.Предоставление набора услуг, отвечающего требованиям пользователей

Ресурсы ОС:

Процессор

Память

Внешние устройства

Программы пользователей

Можно определить и так: ОС – это реализация виртуальной машины, которую (есть надежда) проще и надежнее программировать, чем «голое железо».

Прикладная программа

_____________________ Интерфейс виртуальной машины (API)

Операционная система

_____________________ Интерфейс с аппаратурой Аппаратура

Виртуальная машина - это программный эмулятор некоторой другой машины.

Используется для выполнения программ, написанных для одной платформы, на другой платформе.

Обеспечивает хорошую переносимость.

СПО Лекция 1 [23.12.04]

2

Создает новый (более удобный) интерфейс.

Воснове управления ресурсами в современных (мультипрограммных) ОС часто использзуется принцип виртуализации ресурсов путем:

(а) разделения времени (процессор, принтер) (б) создания копий (программы)

(в) подмены реального устройства виртуальным (спулинг)

Что если ОС нет?

-Загрузить абсолютный загрузчик

-Загрузить транслятор

-Считать исходный текст, на выходе объектные модули

-Загрузить редактор связей

-Считать объектные модули, на выходе загрузочный модуль

-Загрузить и выполнить программу, на выходе результаты расчетов в неудобоваримой форме.

Простая ОС (однопрограммная)

Все ресурсы в распоряжении этой единственной программы и, следовательно, нет конфликтов, нет необходимости в защите. Пример: ранние ПК, встроенные контроллеры. ОС сводится к набору драйверов, стандартных библиотек ввода-вывода, стандартных математических библиотек.

Более сложная ОС (многопрограммная)

Обеспечивает разделение процессорного времени между несколькими программами. Должна координировать доступ пользователей к общим ресурсам (процессору, памяти, устройствам). Должна обеспечивать защиту программ друг от друга.

Ключевыми моментами, на которых строится защита, являются :

Аппаратно поддерживаемое преобразование адресов из виртуального пространства пользователя в физическое адресное пространство

Разграничение режимов работы (системный/пользовательский)

 

 

 

 

 

 

й

 

 

 

 

 

ы

 

 

 

 

н

 

 

 

 

 

ь

 

 

 

 

л

 

 

 

 

а

 

 

 

 

 

у

 

с

 

т

 

 

р

 

е

 

и

 

 

р

 

В

 

 

д

 

 

 

 

а

 

 

 

ЦП

Устройство управления памятью

(MMU)

Ф

 

 

 

 

 

 

и

 

 

 

 

 

з

 

 

 

 

 

и

 

 

 

 

 

 

ч

 

 

 

 

 

 

е

 

 

 

а

 

 

с

 

 

 

 

 

к

 

д

 

 

 

и

 

р

 

 

 

й

 

 

е

 

 

 

 

 

 

с

 

 

 

Физическая

память

В простых системах необходимости в разграничении режимов работы нет! Изменение таблиц трансляции выполняется только в защищенном режиме! Ниже приведен пример трансляции адресов.

СПО Лекция 1 [23.12.04]

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данные2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Стек1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код

 

 

 

Код1

 

 

Код

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данные

 

 

 

Куча1

 

 

Данные

 

 

 

 

 

 

 

 

 

 

 

 

 

Куча

 

 

 

Код2

 

 

Куча

 

 

 

 

 

 

 

 

 

 

 

 

 

Стек

 

 

 

Стек2

 

 

Стек

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данные1

 

 

Виртуальное

 

 

 

 

 

 

 

 

 

 

Виртуальное

 

 

 

 

 

пространство

 

 

 

 

 

 

 

 

 

 

 

 

программы 2

 

пространство

 

Куча2

 

 

 

 

 

 

 

 

 

 

программы 1

 

 

 

 

 

 

 

 

 

 

 

 

Код ОС

 

 

ДанныеОС

Куча и стек ОС

Принципы разработки ОС

Принцип простоты решений при проектировании сложных систем

С одной стороны знаем, что программы всегда содержат ошибки, с другой стороны все большее количество работ и решений принимается с использованием ЭВМ, следовательно, должны верить в достоверность получаемых данных.

Make it as simple as possible, but not simpler!

But not simpler

DO 10 I=1,10

. . .

10 CONTINUE

Если допустить такую ошибку: DO 10 I=1.10 , то получим синтаксически правильную, но неверно работающую программу. Причины: (а) объявление переменных по умолчанию, (б) уничтожение пробелов компилятором перед синтаксическим разбором.

Что дает простота решений?

Надежность

Простоту сопровождения и дальнейшего развития

Скорость выполнения

СПО Лекция 1 [23.12.04]

4

Снижение стоимости

Расширение рынка сбыта (то, что сложно и непонятно труднее продать)

Что мешает нахождению простых решений?

«Избыточный IQ», который выражается в решениях, которые мало кто может понять

Стремление к постоянному улучшению решений. Если решение сложное, то это не всегда хорошо. Сложность решения должна быть адекватной решаемой задаче

Самореклама: включение в систему функций, которых ни у кого нет. А нужны ли они?

Как добиться простоты?

Взять за правило критически относиться к сложным решениям

Задавать себе вопрос: «А можно ли упростить решение?»

Задавать себе вопрос: «А если убрать эту функцию, то что мы потеряем?»

Изучать известные решения, анализировать их и находить самые простые пути решения проблем

ОС, ставшие стандартами de facto:

CP/M -> MS_DOS

RT-11 -> RSX-11 -> VAX/VMS

OS360 -> OS370 -> OS/VS

UNIX

Зачем изучать ОС?

Аккумулирует в себе основные достижения в области вычислительной техники и программирования и, следовательно, является ценным объектом изучения;

Выступает в роли посредника между пользователями, запросы и цели которых часто противоречат друг другу;

Играет роль виртуальной машины, которая скрывает от пользователя сложности управления аппаратурой и предоставляет набор услуг существенно упрощающих общение с ЭВМ;

Обеспечивает защиту пользователей друг от друга, себя от пользователей и пользователя от самого себя;

Знание принципов организации ОС полезно пользователям непрофессионалам и необходимо разработчикам сложных программных комплексов.

Обзор тем курса

Параллельные последовательные процессы. Планирование, синхронизация процессов.

Управление памятью

Организация ввода-вывода и файловые системы

Распределенные ОС. Проблемы и перспективы.

СПО Лекция 1 [23.12.04]

5

Лекция 2: История развития. Структура ОС.

9История развития ОС

9Структура ОС

История развития ОС

Взгляд на произошедшие изменения (1). На примере типичного для университетов США компьютера.

 

1981

1999

Коэффициент

Процессор (MHz)

10

600

60

цикл/команда

3-4

0.5 - 1

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)

Компьютеры исключительно дорогие. Цель: загрузить работой.

СПО Лекция 1 [23.12.04]

6

Типичный режим работы на первых компьютерах – один пользователь работает за пультом ЭВМ. Отсутствует взаимодействие пользователя с программой в процессе ее выполнения. Программирование

вкодах, нет языков программирования. ОС представлена в виде библиотеки стандартных подпрограмм (ввод-вывод, математика). Задачи преимущественно вычислительного характера. Низкая надежность аппаратуры.

Пакетная обработка заданий (загрузить, выполнить, напечатать результат). Пока человек думает за пультом, машина простаивает. Чтобы лучше использовать оборудование необходимо отдалить пользователя от машины и загружать пакет готовых заданий.

Ввод с перфокарт

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

СПО Лекция 1 [23.12.04]

7

Этап 2: Дешевая аппаратура, дорогой труд персонала (1970-1985):

Аппаратура дешевеет. Цель: создание условий для более эффективной и комфортной работы пользователей. Назначение ОС: эффективное управление ресурсами и предоставление сервиса.

Расширение сфер применение ЭВМ.

Системы с разделением времени. Диалоговое взаимодействие пользователя с ЭВМ и с программой во время выполнения. Проблема: деградация производительности системы при увеличении числа пользователей.

Совершенствование мультипрограммной обработки

Сокращение времени реакции системы

Системы реального времени

Этап 3: Очень дешевая аппаратура, очень дорогой труд персонала (1981-):

Стоимость компьютера $1000, стоимость труда программиста - $100000.

Ключевое изменение: компьютеры и ПО развиваются для повышения эффективности труда пользователя.

Персональные ЭВМ. Пройден путь от простых ОС (MS-DOS) к полномасштабным ОС (NT, OS/2).

Дружественный интерфейс

Пересмотр основ, суперкомпьютеры, нетрадиционная архитектура, новые языки.

Сети ЭВМ. Интеграция сетевой поддержки в ОС.

Этап 4: Распределенные системы (1981-):

Отличие от сетевых ОС состоит в средствах распределения ресурсов на сетевом уровне. Ресурсы распределяются таким образом, что пользователь не знает ничего о том на какой машине ему выделен требуемый ресурс.

Резюме

Развитие технологии => Расширение сфер применения => Изменение ОС вслед за технологическими изменениями.

Современные ОС – исключительно сложная система. Например, NT разрабатывается с конца 80-х и до сих пор далека от идеала. Важно понять как упростить и повысить надежность создаваемых сложных систем.

Структура ОС

Можно по-разному препарировать ОС, что приводит к различным представлениям об ОС.

Системные компоненты(из чего состоит ОС)

Управление процессами

Управление памятью

Подсистема ввода-вывода

СПО Лекция 1 [23.12.04]

8

Файловая система

Поддержка сети

Пользовательский интерфейс

Можно считать такое деление взглядом снизу. Любая ОС содержит такие структурные компоненты и их рассмотрение позволяет рассмотреть ОС изнутри.

Системные сервисы (что делает ОС)

Ряд сервисов напрямую отображаются на системные компоненты

Выполнение программ

Средства ввода-вывода

Доступ к файлам

Средства коммуникации

Другие сервисы реализуются всеми или части компонентов ОС

Обнаружение ошибок и восстановление работоспособности

Распределение ресурсов

Учет пользователей и их возможностей

Защита программ и данных

Это взгляд сверху необходимый любому пользователю. При этом не существенно как соотносятся сервисы и компоненты ОС.

Системные вызовы (что представляет собой API)

Примеры: MS-DOS (int 21), Windows 95/NT (Win32), POSIX.

Такой взгляд необходим программисту, но не дает полной картины того, как работает ОС.

Структура ОС (как связаны компоненты)

Простая структура (монитор).

Примеры: MS-DOS (вообще нет структуры), ранний UNIX (режим пользователя и режим ядра). Все собрано в один монолитный модуль.

Иерархическая структура.

Впервые предложен Дейкстрой в ОС THE. Использован в MULTICS Основные принципы:

1.Каждый уровень контролирует ряд структур данных и предоставляет функции доступа к ним

2.Каждый уровень ничего не знает о структуре нижележащих уровней. Доступ к сервисам нижележащих уровней осуществляется через определенный ими интерфейс

3.Каждый уровень ничего не знает о существовании вышележащих уровней.

СПО Лекция 1 [23.12.04]

9

Преимущества:

Модульность, простота отладки и поддержки

Возможность замены или модификации слоя. Важным следствие является переносимость за счет выделения машинно-зависимого слоя. (HAL в Windows NT).

Микроядро и сервисные процессы

Ядро обычно реализует переключение контекста, средства синхронизации и взаимодействия между сервисными процессами работающими на пользовательском уровне.

Преимущества:

Очень высокий уровень модульности

Возможность динамической реконфигурации

Лекция 3: Управление процессами (I)

9Последовательный процесс, нить, адресное пространство

9Состояние нити

9Переключение контекста (диспетчеризация)

9Создание процесса и нити.

Понятие о последовательном процессе.

Однопрограммный режим: поведение вычислительной системы однозначно определяется загруженной программой. Простая ОС (MS-DOS). Работа с устройствами производится последовательно, характерны задержки в ожидании завершения ввода-вывода с медленными устройствами.

Мультипрограммный режим: – несколько пользователей, несколько программ, разделяющих процессор и другие устройства.

Существенно, что разделение устройств обеспечивается операционной системой. Например, Windows 3.1 нельзя считать мультипрограммной ОС, так переключение между программами инициируется самими программами в цикле диспетчеризации оконных сообщений. Правильно считать Windows 3.1 операционной оболочкой, кроме того Windows 3.1 не может быть установлена на пустую машину (нужна DOS).

Преимущества мультипрограммного режима:

увеличение пропускной способности за счет лучшей загрузки устройств.

возможность совмещать длительные операции (печать) с другой полезной работой.

новые средства декомпозиции при разработке сложных систем, обрабатывающих различные асинхронные события.

Проблемы мультипрограммного режима:

Резко увеличивает сложность ОС, которая должна решать много новых проблем (разделение ресурсов между программами, защита себя, программ и данных пользователей и т.п.), при этом отдельный пользователь не должен видеть этих проблем (для него должна создаваться иллюзия монопольного владения ресурсами машины)

СПО Лекция 1 [23.12.04]

10

Как увязать множество событий происходящих в системе? Ответ: Разбираться с каждым событием в отдельности.

Каким способом описать поведение управляющей программы ОС?

Ответ: Необходимы новые абстракции, поэтому и введено понятие «последовательный процесс», которое является центральным в ОС.

Определение: Процесс есть абстрактное понятие ОС используемое для обозначения всего того, что необходимо для выполнения программы (UNIX)

Компоненты процесса:

Последовательно исполняемое множество инструкций (программа). Другое название – поток или нить управления.

Адресное пространство - данные, характеризующие состояние процесса (значения регистров процессора, содержимое стека, сегменты данных, дескрипторы файлов и т.п.)

Другие определения последовательного процесса:

Процессом является то, что в IBM называется «задачей», а в Univac – действием.

Процессом называется асинхронная работа.

Процесс – это «живая» душа процедуры.

Процесс – это «концентрация средств управления» для выполнения процедуры.

Процесс – это объект, которому выделяются процессоры.

Согласно ГОСТ 19781-83 процесс – это система действий, реализующая определенную функцию в вычислительной системе и оформленная так, что управляющая программа вычислительной системы может перераспределять ресурсы этой системы в целях обеспечения мультипрограммирования.

Программа в стадии выполнения. (может содержать несколько процессов!)

Программа ?= Процесс

1.Процесс > программа: программа – это лишь часть процесса. Запуск редактора с разными файлами – это разные процессы, а программа одна. Дейкстра: «Программа – это правила поведения»

2.Процесс < программа: одна программа способна в ходе решения задачи породить несколько параллельно выполняемых процессов.

Легкие процессы (threads - нити)

В современных ОС традиционное понятие процесса расширено абстракцией «нить».

Нить (легкий процесс) – это последовательное выполнение потока команд процесса на одном процессоре. Процессорное время делится между нитями!

Соседние файлы в папке вар2