Слайд 1
Операционные системы
Раздел 1:
Общие сведения об операционных системах
Слайд 2Литература
Базовый учебник
Попов И.И., Партыка Т.Л. Операционные системы, среды и оболочки.
–М.:ФОРУМ:ИНФРА-М
Назаров С.В. Операционные среды, системы и оболочки. Основы структурной и
функциональной организации. – М.: КУДИЦ-ПРЕСС, 2007
Назаров С.В., Гудыно Л.П., Кириченко А.А. Операционные системы. Практикум. – М.: КУДИЦ-ПРЕСС, 2008
Основная
1. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2006
Столингс В. Операционные системы. М.: Вильямс, 2006
Таненбаум Э. Современные операционные системы. Изд-е 4. СПб., Питер, 2006
Дополнительная
Мюллер Дж., Чоудри П. Microsoft Windows 2000. Настройка и оптимизация производительности. М.: ЭКОМ, 2001
Рихтер Д. Windows для профессионалов. М.: Русская редакция, 2006
Назаров С. В. Операционные системы специализированных вычислительных комплексов: Теория построения и системного проектирования. - М.: Машиностроение, 1989.
Слайд 3Тема 1. Введение. Назначение, функции и архитектура операционных систем. Основные
определения и понятия
1.1. Определение операционной системы (ОС). Место ОС
в программном обеспечении вычислительных систем
1.2. Эволюция операционных систем
1.3. Назначение, состав и функции ОС
1.4. Архитектуры операционных систем
1.5. Классификация операционных систем
1.6. Эффективность и требования, предъявляемые к ОС
Слайд 4Физические устройства (контроллеры, шины, монитор и т. д.)
Микроархитектура (регистры ЦП,
АЛУ)
Утилиты
Компиляторы
Редакторы
Интерпретаторы команд
Прикладные программы
Конечный пользователь
Программист
Машинный язык
Операционная система
Разработчик ОС
1.1. Определение операционной системы
(ОС). Место ОС в программном обеспечении вычислительных систем
Расположение ОС в иерархической структуре программного и аппаратного обеспечения компьютера
Слайд 5ОПЕРАЦИОННАЯ СИСТЕМА
- это набор программ, контролирующих работу прикладных программ
и системных приложений и исполняющих роль интерфейса между пользователями, программистами,
приложениями и аппаратным обеспечением компьютера.
ОПЕРАЦИОННАЯ СРЕДА
- программная среда, образуемая операционной системой, определяющая интерфейс прикладного программирования (API) как множество системных функций и сервисов (системных вызовов), предоставляемых прикладным программам.
ОПЕРАЦИОННАЯ ОБОЛОЧКА
- часть операционной среды, определяющая интерфейс пользователя, его реализацию (текстовый, графический и т.п.), командные и сервисные возможности пользователя по управлению прикладными программами и компьютером
Слайд 61946 г. – ENIAC (Electronic Numerical Integrator and Computer) –
полное отсутствие какого-либо ПО, программирование путем коммутации устройств.
Начало 50-х г.
– появление алгоритмических языков и системного ПО.
Усложнение процесса выполнения программ:
1. Загрузка нужного транслятора.
2. Запуск транслятора и получение программы в машинных кодах.
3. Связывание программы с библиотечными подпрограммами.
4. Запуск программы на выполнение.
5. Вывод результатов работы на печатающее или другое устройство.
Для повышения эффективности использования ЭВМ вводятся операторы, затем разрабатываются управляющие программы – мониторы – прообразы операционных систем.
1952 г. – Первая ОС создана исследовательской лабораторией фирмы General Motors для IBM-701.
1955 г. – ОС для IBM-704. Конец 50-х годов: язык управления заданиями и пакетная обработка заданий.
1963 г. – ОС MCP (Главная управляющая программа) для компьютеров B5000 фирмы Burroughs: мультипрограммирование, мультипроцессорная обработка, виртуальная память, возможность отладки программ на языке исходного уровня, сама ОС написана на языке высокого уровня.
1.2. Эволюция операционных систем
Слайд 71963 г. – ОС CTSS (Compatible Time Sharing System –
совместимая система разделения времени для компьютера IBM 7094 – Массачусетский
технологический институт.
1963 г. – ОС MULTICS (Multiplexed Information and Computing Service) – Массачусетский технологический институт.
1974 г. – (UNICS) UNIX (Uniplexed Information and Computing Service) для компьютера PDP-7, публикация статьи Ритчи (С) и Томпсона.
1981 г. – PC (IBM), DOS (Seattle Computer Products) – MS DOS (Б. Гейтс).
1983г. – Apple, Lisa с Apple, Lisa с GUI (Даг Энгельбарт – Стэнфорд).
1985 г. – Windows, X Windows и Motif (для UNIX).
1987 г. – MINIX (Э. Таненбаум) – 11800 стр. С и 800 ассемблер (микроядро – 1600 С и 800 ассемблер)
1991 г. – Linux (Линус Торвальдс).
Многопрог- 1970
Динамическое распределение основной памяти
второе раммные Разделение времени, многотерминальные системы
поколение UNIX (PDP-7), Ken Thompson
ОС 1965 Управляемое мультипрограммирование
Классическое мультипрограммирование, OS/360
Однопрог- ОС CTSS (1963), MULTICS (начало работ)
раммные Оверлейные структуры
ОС Логическая система управления вводом-выводом
(первое 1960 Системы прерываний, контрольные точки
поколение) Управление файлами, таймеры
Мониторы
1955 Методы доступа, полибуферизация
Загрузчики, редакторы связей
Отсутствие ОС 1950 Диагностические программы
(нулевое Ассемблеры, макрокоманды
поколение)
Библиотеки подпрограмм
1946 Первый компьютер
2003 Windows 2003
делен- .NET Framework, MAC OS X
ные 2000 Windows 2000
ОС Windows 4.0 – 1996
1995 Windows 95
много- четвертое Корпоративные информационные системы
процес- поколение NetWare 4.0 – 93, Windows NT 3.1 – 93
сорные ОС Linux 0.01 - 1993
ОС 1990 MINIX – 87 (11800 стр. С + 800 стр. Asm.)
сетевые много- OS/2 - 87
ОС машинные 1985 OS-Net (Novell) - 83, MS-Net - 84, Windows 1.0 – 85
ОС Интернет (1983), Персональные компьютеры (1981)
MS DOS 1.0 – (1981)
1980 Сети ЭВМ, UNIX, TCP/IP
третье Локальные сети
поколение 1975 SNA (System Network Architecture), MULTICS
ОС Протокол X.25, телеобработка, базы данных
1965 Виртуальная ЭВМ, Виртуальная память
2005 Windows 2003, 64-разрядная
2007 Windows Vista, Windows 7
Слайд 10Операционные системы IBM
1. BPS/360 (Базовая программная поддержка)
2. BOS/360 (Базовая операционная
система)
3. TOS/360 (Ленточная операционная система)
4. DOS/360 (Дисковая операционная система)
5. OS/360
– PCP (Первичная управляющая программа)
6. OS/360 – MFT (Мультипрограммирование с фиксированным числом задач)
7. OS/360 – MVT (Мультипрограммирование с переменным числом задач)
8. OS/360 – VMS (Система с переменной памятью)
9. CP-67/CMS (Управляющая программа 67/ диалоговая мониторная система)
10. DOS/VS (Дисковая виртуальная система)
11. OS/VS1 (Виртуальная система 1)
12. OS/VS2 (Виртуальная система 2)
13. VM/370 (Виртуальная машина)
Слайд 111.3. Назначение, состав и функции ОС
Назначение
1. Обеспечение удобного интерфейса [
приложения, пользователь - компьютер за счет предоставляемых сервисов]:
1.1. Инструменты
для разработки программ
1.2. Автоматизация исполнения программ
1.3. Единообразный интерфейс доступа к устройствам ввода-вывода
1.4. Контролируемый доступ к файлам
1.5. Управление доступом к совместно используемой ЭВМ и ее ресурсам
1.6. Обнаружение ошибок и их обработка
1.7. Учет использования ресурсов
2. Организация эффективного использования ресурсов ЭВМ
2.1. Планирование использования ресурса
2.2. Удовлетворение запросов на ресурсы
2.3. Отслеживание состояния и учет использования ресурса
2.4. Разрешение конфликтов между процессами, претендующими на одни и те же ресурсы
Слайд 123. Облегчение процессов эксплуатации аппаратных и программных средств вычислительной системы
3.1.
Широкий набор служебных программ (утилит), обеспечивающих резервное копирование, архивацию данных,
проверку, очистку, дефрагментацию дисковых устройств и др.
3.2. Средства диагностики и восстановления работоспособности вычислительной системы и операционной системы:
- диагностические программы для выявления ошибок в конфигурации ОС;
- средства восстановления последней работоспособной конфигурации;
- средства восстановления поврежденных и пропавших системных файлов и др.
4. Возможность развития
4.1. Обновление и возникновение новых видов аппаратного обеспечения
4.2. Новые сервисы
4.3. Исправления (обнаружение программных ошибок)
4.4. Новые версии и редакции ОС
Слайд 13Состав компонентов и функции операционной системы:
1. Управление процессами
2. Управление памятью
3.
Управление файлами
4. Управление внешними устройствами
5. Защита данных
6. Администрирование
7. Интерфейс прикладного
программирования
8. Пользовательский интерфейс
Слайд 14
1.4. Архитектуры операционных систем
Архитектура - это базовая организация системы, воплощенная
в ее компонентах, их отношениях между собой и с окружением,
а также принципы, определяющие проектирование и развитие системы. [IEEE 1471]
Ядро́ (kernel) — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой cистемы и сетевых протоколов. Как основополагающий элемент ОС, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам системы, необходимым для их работы.
Слайд 15Состав компонентов операционной системы
Слайд 16ОСНОВНЫЕ ПРИНЦИПЫ РАЗРАБОТКИ АРХИТЕКТУРЫ
ОПЕРАЦИОННЫХ СИСТЕМ:
1. Концепция многоуровневой иерархической вычислительной
системы (виртуальной машины) с ОС многослойной структуры.
2. Разделение модулей ОС
по функциям на две группы: ядро – модули, выполняющие основные функции ОС, и модули, выполняющие остальные (вспомогательные) функции.
3. Разделение модулей ОС по размещению в памяти вычислительной системы: резидентные, постоянно находящиеся в оперативной памяти, и транзитные, загружаемые в оперативную память только на время выполнения своих функций.
4. Реализация двух режимов работы вычислительной системы: привилегированного режима (режима ядра – kernel mode) или режима супервизора (supervisor) и пользовательского режима (user mode) или режима задача (task mode).
Слайд 175. Ограничение функций ядра (а, следовательно и числа его модулей)
до минимально необходимых функций.
6. Модульное строение (однократно используемые –
при загрузке ОС) и повторно используемые (привилегированные – не допускают прерываний, реентерабельные – допускают прерывания и повторный запуск, повторно входимые – допускают прерывания после завершения секций).
7. Параметрическая универсальность. Возможность генерации ОС и создания нескольких рабочих конфигураций.
8. Функциональная избыточность.
9. Функциональная избирательность.
Слайд 1810. Открытость, модифицируемость, расширяемость (возможность получения текстов исходных модулей).
11. Мобильность
– возможность переноса на различные аппаратные платформы.
12. Совместимость – возможность
выполнения приложений, рассчитанных на другие ОС.
13. Безопасность – защита от несанкционированного доступа, защита легальных пользователей друг от друга, аудит, возможность восстановления ОС после сбоев и отказов.
Слайд 20Модульно – интерфейсный подход (структурный подход)
1. Декомпозиция системы на на
модули по структурному или функциональному признаку.
2. Модули и их взаимные
связи образуют абстракцию системы высокого уровня.
3. Описывается каждый модуль и определяется его интерфейс.
4. Проводится декомпозиция каждого модуля и т. д.
Спецификации модулей и их интерфейсов дают структурную основу для проектирования каждого модуля и всей системы в целом.
Правильное определение и выделение модулей представляет собой сложную задачу. Тесно связанные между собой части системы должны входить в один и тот же модуль.
Разработчики программного обеспечения начинают работу с очень грубого и неполного наброска схемы системы и преждевременно обращают внимание на детали отдельных модулей. Поэтому решения, влияющие на систему глобальным образом, принимаются не из тех предпосылок, из которых нужно и без ясного понимания их последствий.
Преждевременная реализация приводит к неустойчивости программного обеспечения, которая часто требует огромных усилий по поддержанию системы.
Слайд 21Многослойная (иерархическая) структура операционной системы и метод проектирования «сверху вниз»
и «снизу вверх»
Операционная система представляется в виде иерархии слоев.
Верхний слой
определяет виртуальную машину с желаемыми свойствами.
Каждый следующий слой детализирует вышележащий, выполняя для него некоторый набор функций.
Межслойные интерфейсы подчиняются строгим правилам. Связи внутри слоя могут быть произвольными.
Отдельный модуль слоя L(i) может выполнить работу самостоятельно или последующим вариантам: обратиться только к слою L(i –1); обратиться к некоторой команде определенного слоя L(q), который выполняет требуемую функцию .
1. Между уровнями можно организовать четкий интерфейс. 2. Систему можно спроектировать методом «сверху вниз», а реализовать методом «снизу вверх». 3. Уровни реализуются в соответствии с их порядком, начиная с аппаратуры и далее вверх. 4. Каждую новую виртуальную машину можно детально проверить, после чего продолжать дальнейшую работу. 5. Любой слой достаточно просто модифицировать, не затрагивая другие слои и не меняя межслойные интерфейсы.
Достоинства:
Слайд 22Монолитная архитектура операционной системы
От приложений
системный интерфейс
А п п а
р а т у р а
Модули
ОС
Пример: ранние версии ядра
UNIX, Novell NetWare. Каждая процедура имеет хорошо определенный интерфейс в терминах параметров и результатов и может любую другую для выполнения нужной работы.
Слайд 23Аппаратура
Средства апп.
поддержки ОС
Машинно-зависимые
модули ядра ОС
Базовые механизмы
ядра
Менеджеры ресурсов
Файловая
сис., вирт. память и др.
Интерфейс системных
вызовов API
Утилиты, системные программы
Приложения пользователей
АРХИТЕКТУРА
МНОГОУРОВНЕВОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ
Слайд 24Смена режимов при выполнении вызова функции ядра
Работа приложения
Системный вызов
Пользовательский режим
Привилегированный
режим
Работаядра
Время переключения режимов
t
t
Недостатки иерархической организации ОС: 1. Значительные изменения одного из уровней могут иметь трудно предвидимое влияние на смежные уровни. 2. Многочисленные взаимодействия между соседними уровнями усложняют обеспечение безопасности.
Слайд 25Микроядерная архитектура ОС
Аппаратура
Средства аппаратной поддержки ОС
Средства аппаратной поддержки ОС
Аппаратура
МИКРОЯДРО
(режим ядра)
Машинно-зависимые модули
Базовые механизмы ядра
Утилиты. Системные программы
Приложения пользователей
Средства
аппаратной поддержки ОС
Аппаратура
API
Сервер безопасности
ыыы
Файловая система
Драйвер устройств
Менеджер процессов
Менеджер виртуальной памяти
Интерфейс системы ввода-вывода
Утилиты ОС, приложения
РЕЖИМ ЯДРА
Пользовательский режим
Слайд 26Структура ОС клиент-сервер
Приложение
А П П А Р А Т У
Р А
МИКРОЯДРО
Сервер
памяти
Файл-
сервер
Принт-
сервер
РЕЖИМ ПОЛЬЗОВАТЕЛЯ
РЕЖИМ ЯДРА
Запрос
Ответ
Запрос
Ответ
Сервер
процессов
Слайд 27Смена режимов при выполнении вызова функции микроядра
Приложение
Системный
вызов
МИКРОЯДРО
МИКРОЯДРО
СЕРВЕР
ОС
Приложение
t
t
t
t
Р Е Ж И М
Я Д Р А
Р Е Ж И М ПОЛЬЗОВАТЕЛЯ
Достоинства: единообразные интерфейсы, расширяемость, гибкость, переносимость, надежность, поддержка распределенных систем, поддержка объектно-ориентированных ОС.
Слайд 281.5. Классификация операционных систем
1. Назначение (универсальные, специализированные – управление производством,
обучение)
2. Способ загрузки (загружаемые, постоянно находящиеся в памяти)
3. Особенности алгоритмов
управления ресурсами
3.1. Многозадачность: однозадачные (MS DOS), невытесняющая мно-гозадачность (Windows 3.x, NewWare), вытесняющая многозадачность (Windows NT, OS/2, Unix)
3.2. Многопользовательский режим: отсутствие (MS DOS, Windows 3.x), имеется (Windows NT, OS/2, Unix)
3.3. Многопроцессорная обработка: отсутствие, асимметричные ОС,
симметричные ОС
4. По базовой технологии (Юникс-подобные или подобные Windows)
5. По типу лицензии (проприетарная или открытая)
6. По состоянию развития (устаревшая DOS, NextStep или современные GNU/Linux и Windows)
Слайд 297. Область использования и форма эксплуатации
пакетная обработка (OS/360)
разделение времени
реальное время (VxWorks,QNX)
8. Аппаратная платформа
8.1. ОС для смарт-карт (с интерпретатором виртуальной Java-машины)
8.2. Встроенные ОС (Palm OS, Windows CE –Consumer Electronics)
8.3. ОС для ПК (Windows 9.x, Windows 2000, Vista, Windows XP, Windows 7, Windows 8, Linux, Ubuntu, Mac OS X)
8.4. ОС мини-ЭВМ (RT-11 и RSX-11M для PDP-11, UNIX для PDP-7)
8.5. ОС мэйнфреймов (OS/390 – пакетная обработка, разделение времени, обработка транзакций), UNIX
8.6. Серверные операционные системы для ЛВС, Интранет и Интернет (UNIX, AIX, Windows 2000, Windows Server 2003, 2008 R2, 2012, Ubuntu Server 10.10, GNU/Hurd, Debian 6.0, Gentoo, FreeBSD8/2, Solaris)
Слайд 30 8.7. Кластерные операционные системы (Windows 2000 Cluster Server, Windows
Compute Cluster Server 2003, Linux Virtual Server, Sun Cluster (Solaris),
MOSIX)
Кластер — это разновидность параллельной или распределённой системы, которая состоит из нескольких связанных между собой компьютеров;
используется как единый, унифицированный компьютерный ресурс».
Обычно различают следующие основные виды кластеров:
отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности)
кластеры с балансировкой нагрузки (Load balancing clusters)
вычислительные кластеры (High performance computing clusters, HPC)
системы распределенных вычислений
Слайд 311.6. Эффективность и требования, предъявляемые к операционным системам
1. Эффективность – степень соответствия своему назначению, техническое совершенство и
экономическая целесообразность
2. Надежность и отказоустойчивость
3. Безопасность (защищенность)
4. Предсказуемость
5. Расширяемость
6. Переносимость
7. Совместимость
8. Удобство
9. Масштабируемость
Слайд 321.7. Множественные прикладные среды. Совместимость
Совместимость – возможность
операционной системы выполнять приложения , разработанные для других операционных систем.
Виды
совместимости:
1. На двоичном уровне (уровень исполняемой программы).
2. На уровне исходных текстов (уровень исходного модуля).
Вид совместимости определяется:
1. Архитектурой центрального процессора.
2. Интерфейсом прикладного программирования (API).
3. Внутренней структурой исполняемого файла.
4. Наличием соответствующих компиляторов и библиотек.
Способы достижения совместимости:
1. Эмуляция двоичного кода.
2. Трансляция библиотек.
3. Создание множественных прикладных сред различной архитектуры.