СПО (Корнилов) / Лекции / вар1 / SPOLec1
.doc
Литература:
Г.Дейтел Введение в операционные системы (в 2х томах).-М., Мир, 1987
Д.Рихтер Windows для проффесионалов.-1997
Ал.Вильямс Системное программирование в Windows 2000 для профессионалов.- С-Пб, 2001.-624с.
Р. Саймон Windows 2000 API. Энциклопедия программиста.- К.: «ДиаСофт», 2001.-1088с.
Г.Н.Соловьев, В.Д.Никитин Операционные системы.-1989
www.cs.berkeley.edu(CS162)
Лекция 1: Введение
-
Понятие об ОС.
-
Принципы проектирования ОС
-
Зачем изучать ОС.
-
Обзор тем курса.
Что такое ОС?
Можно определить как программный комплекс, решающий задачи эффективного управления ресурсами ЭВМ и предоставляющий пользователю набор услуг для простого и надежного доступа к ресурсам ЭВМ.
Две основные функции ОС:
-
Эффективное управление ресурсами ЭВМ
-
Предоставление набора услуг, отвечающего требованиям пользователей
Ресурсы ОС:
-
Процессор
-
Память
-
Внешние устройства
-
Программы пользователей
Можно определить и так: ОС – это реализация виртуальной машины, которую (есть надежда) проще и надежнее программировать, чем «голое железо».
Прикладная программа
_____________________ Интерфейс виртуальной машины (API)
Операционная система
_____________________ Интерфейс с аппаратурой
Аппаратура
Виртуальная машина - это программный эмулятор некоторой другой машины.
-
Используется для выполнения программ, написанных для одной платформы, на другой платформе.
-
Обеспечивает хорошую переносимость.
-
Создает новый (более удобный) интерфейс.
В основе управления ресурсами в современных (мультипрограммных) ОС часто использзуется принцип виртуализации ресурсов путем:
(а) разделения времени (процессор, принтер)
(б) создания копий (программы)
(в) подмены реального устройства виртуальным (спулинг)
Что если ОС нет?
- Загрузить абсолютный загрузчик
- Загрузить транслятор
- Считать исходный текст, на выходе объектные модули
- Загрузить редактор связей
- Считать объектные модули, на выходе загрузочный модуль
- Загрузить и выполнить программу, на выходе результаты расчетов в неудобоваримой форме.
Простая ОС (однопрограммная)
Все ресурсы в распоряжении этой единственной программы и, следовательно, нет конфликтов, нет необходимости в защите. Пример: ранние ПК, встроенные контроллеры. ОС сводится к набору драйверов, стандартных библиотек ввода-вывода, стандартных математических библиотек.
Более сложная ОС (многопрограммная)
Обеспечивает разделение процессорного времени между несколькими программами. Должна координировать доступ пользователей к общим ресурсам (процессору, памяти, устройствам). Должна обеспечивать защиту программ друг от друга.
Ключевыми моментами, на которых строится защита, являются :
-
Аппаратно поддерживаемое преобразование адресов из виртуального пространства пользователя в физическое адресное пространство
-
Разграничение режимов работы (системный/пользовательский)
В простых системах необходимости в разграничении режимов работы нет!
Изменение таблиц трансляции выполняется только в защищенном режиме!
Ниже приведен пример трансляции адресов.
Принципы разработки ОС
Принцип простоты решений при проектировании сложных систем
С одной стороны знаем, что программы всегда содержат ошибки, с другой стороны все большее количество работ и решений принимается с использованием ЭВМ, следовательно, должны верить в достоверность получаемых данных.
Make it as simple as possible, but not simpler!
But not simpler
DO 10 I=1,10
. . .
10 CONTINUE
Если допустить такую ошибку: DO 10 I=1.10 , то получим синтаксически правильную, но неверно работающую программу. Причины: (а) объявление переменных по умолчанию, (б) уничтожение пробелов компилятором перед синтаксическим разбором.
Что дает простота решений?
-
Надежность
-
Простоту сопровождения и дальнейшего развития
-
Скорость выполнения
-
Снижение стоимости
-
Расширение рынка сбыта (то, что сложно и непонятно труднее продать)
Что мешает нахождению простых решений?
-
«Избыточный IQ», который выражается в решениях, которые мало кто может понять
-
Стремление к постоянному улучшению решений. Если решение сложное, то это не всегда хорошо. Сложность решения должна быть адекватной решаемой задаче
-
Самореклама: включение в систему функций, которых ни у кого нет. А нужны ли они?
Как добиться простоты?
-
Взять за правило критически относиться к сложным решениям
-
Задавать себе вопрос: «А можно ли упростить решение?»
-
Задавать себе вопрос: «А если убрать эту функцию, то что мы потеряем?»
-
Изучать известные решения, анализировать их и находить самые простые пути решения проблем
ОС, ставшие стандартами de facto:
-
CP/M -> MS_DOS
-
RT-11 -> RSX-11 -> VAX/VMS
-
OS360 -> OS370 -> OS/VS
-
UNIX
Зачем изучать ОС?
-
Аккумулирует в себе основные достижения в области вычислительной техники и программирования и, следовательно, является ценным объектом изучения;
-
Выступает в роли посредника между пользователями, запросы и цели которых часто противоречат друг другу;
-
Играет роль виртуальной машины, которая скрывает от пользователя сложности управления аппаратурой и предоставляет набор услуг существенно упрощающих общение с ЭВМ;
-
Обеспечивает защиту пользователей друг от друга, себя от пользователей и пользователя от самого себя;
-
Знание принципов организации ОС полезно пользователям непрофессионалам и необходимо разработчикам сложных программных комплексов.
Обзор тем курса
-
Параллельные последовательные процессы. Планирование, синхронизация процессов.
-
Управление памятью
-
Организация ввода-вывода и файловые системы
-
Распределенные ОС. Проблемы и перспективы.