Основы операционных...
TRANSCRIPT
Основы
операционных систем (курс лекций)
Игорь Алексеевич Малышев
(С) Кафедра «Компьютерные системы и программные технологии»,
Санкт-Петербургский политехнический
университет Петра Великого
Курс "Основы операционных систем" -
Лекция 2 2
Лекция 2
Миры операционных систем
(Часть 2)
Курс "Основы операционных систем" -
Лекция 2 3
Содержание лекции
Мир вычислений
Мир терминов
Мир возможностей
Мир ограничений
Мир моделей
Мир алгоритмов
Мир стандартов
Мир продуктов
Мир потребностей
Часть 1
Часть 2
Курс "Основы операционных систем" -
Лекция 2 4
План лекции: тема подраздела
Мир вычислений
Мир терминов
Мир возможностей
Мир ограничений
Мир моделей
Мир алгоритмов
Мир стандартов
Мир продуктов
Мир потребностей
Модели: классы
Классы моделей ОС:
Обобщённые (концептуальные) модели
Определения базового понятия «ОС»
Функциональные модели
Формы функциональных связей компонентов ОС
Структурные модели
Формы структурных связей компонентов ОС
Динамические модели
Формы событийных связей компонентов ОС
Курс "Основы операционных систем" -
Лекция 2 5
Модели: обобщённые модели
Типы обобщённых моделей ОС:
Реактивная система
Система управления ресурсами
Виртуальная машина
Курс "Основы операционных систем" -
Лекция 2 6
Модели: реактивная система
Курс "Основы операционных систем" -
Лекция 2 7
Начало
Конец
Выгрузка ОС
Загрузка ОС Power
Login
Event
«Жизнь» ОС
Shutdown
да
да
да
да
нет
нет
нет
нет
Модели: система управления ресурсами
Курс "Основы операционных систем" -
Лекция 2 8
Потребители
ресурсов
(процессы)
Очереди
к ресурсам
(по типам)
Диспетчер ресурсов: Пулы
ресурсов: «деньги» права
«товары» в наличии
на заказ ?
«аренда» кванты
приоритеты
массивы
списки
и др.
Модели: виртуальная машина
Курс "Основы операционных систем" -
Лекция 2 9
Процессор
Диспетчеры:
процессов
ресурсов
Системная шина
Системная шина
Команды
Процессы
Данные
Ресурсы
Память
Оконный
Рабочий стол
Символьный
Командная строка
Программный
Системные вызовы
Интерфейсы
Ввода /
Вывода
Внутри
ОС
Вне
ОС
Модели: функциональные модели
Типы функциональных моделей ОС:
Субъект – Объект Субъект – постановщик задач
Объект – решаемая задача
Событие – Реакция
Событие – изменение состояния ресурса
Реакция – изменение состояния процесса
Процесс – Ресурс Процесс – обладатель прав
Ресурс – обладатель разрешений
Клиент – Сервер Клиент – процесс-арендатор ресурса
Сервер – процесс-владелец ресурса
Курс "Основы операционных систем" -
Лекция 2 10
Модели: структурные модели – 1
Типы структурных моделей ОС:
А. Предметно-ориентированные модели:
Объектная модель (объекты, управляемые ОС): Процессы (*)
Данные
Устройства
Пользователи
Атрибутивная модель (свойства, управляемые ОС): Активности
Состояния
Носители
Связи
Курс "Основы операционных систем" -
Лекция 2 11
Модели: структурные модели – 2
Типы структурных моделей ОС (продолжение):
B. Фрейм-ориентированные модели:
Сервисная модель (фреймы – сервисы ОС): Ядро ОС (прерывания, ПРОП-ресурсы, процессы, интерфейсы)
Локальные сервисы (файлы, безопасность, диспетчеризация и т.п.)
Сетевые сервисы (сокеты, протоколы, сеансы и т.п.)
Контейнерная модель (фреймы – контейнеры ОС): Applications
Operating System
Platforms
Курс "Основы операционных систем" -
Лекция 2 12
Модели: структурные модели – 3
Типы структурных моделей ОС (продолжение):
B. Файл-ориентированные модели:
Компонентная модель (файлы – компоненты ОС): Драйверы
Диспетчеры
Системный реестр
и т.п.
Кодовая модель (файлы – коды, допустимые в ОС): EXE, ELF, COFF – бинарные форматы исполнимых кодов
MP3, JPG, PDF – бинарные форматы данных
TXT, HTML, XML – ASCII форматы данных
и т.п.
Курс "Основы операционных систем" -
Лекция 2 13
Модели: контейнерная модель – 1
Прототип контейнерной модели –
модель взаимодействия открытых систем (ISO OSI).
Курс "Основы операционных систем" -
Лекция 2 14
Operating System
Platform(-s)
Application(-s) Программы для решения прикладных задач
Операционная система
Вычислительные устройства
(ядра, процессоры, ЭВМ, сети ЭВМ)
Модели: контейнерная модель – 2
Примеры применения контейнерной модели:
Курс "Основы операционных систем" -
Лекция 2 15
A1 A2 An A1 A2 An
A1 A2 An A1 A2 Am
O
P1 P2 Ps
P1 P2 Ps P1 P2 Pk
А) многозадачная, однопроцессорная ОС
O
O (клиент)
P
B) многозадачная, многопроцессорная ОС
C) клиент-серверная, многозадачная, многопроцессорная ОС
O (сервер)
Модели: динамические модели
Типы динамических моделей ОС:
Графовые модели потоков вычислений Однодольные орграфы
(диаграмма состояний процессов ОС)
Двухдольные орграфы
(сети Карла Адама Петри)
Временные диаграммы Событийная шкала времени
(диаграмма клиент-серверного взаимодействия)
(диаграмма распределения ресурсов)
(диаграмма ожидания завершения родственных процессов)
Дискретная шкала времени
(квантование процессорного времени)
(планирование и диспетчеризация процессов)
Курс "Основы операционных систем" -
Лекция 2 16
Модели: диаграмма состояний процесса
Модель «как не заблудиться в трёх соснах ?»
Курс "Основы операционных систем" -
Лекция 2 17
Выполнение
Готовность Ожидание
Исполнение процессором
программного кода процесса
Ожидание (в очереди)
ресурса (не процессора !)
Ожидание (в очереди)
обслуживания процессором «Вход»
в ОС
«Выход»
из ОС
Модели: сеть Петри
Модель состояний ОС (временная диаграмма):
Курс "Основы операционных систем" -
Лекция 2 18
время T начало T конец
состояние «жизнь»
«сон» «сон»
Модель состояний ОС (сеть Петри):
T начало T конец P «жизнь»
P i – позиции
T j – переходы
Модели: диаграмма распределения ресурсов
Модель «как разделить пирог ?»
Курс "Основы операционных систем" -
Лекция 2 19
П 1 Н1 П 1 Н1 Н 2 П 1
Адресное пространство процесса П 1
Только сам процесс Процесс и одна нить Процесс и две нити
время
время
время
П 1
Н 1
Н 2
Курс "Основы операционных систем" -
Лекция 2 20
План лекции: тема подраздела
Мир вычислений
Мир терминов
Мир возможностей
Мир ограничений
Мир моделей
Мир алгоритмов
Мир стандартов
Мир продуктов
Мир потребностей
Алгоритмы: классы
Классы алгоритмов функционирования ОС: «Конструкторы» алгоритмов (элементы + структуры)
Элементарные операторы
(тип данных – объекты / атрибуты: именование, адресация, связывание)
(тип данных – таблицы / списки: добавление/удаление, поиск, сортировка)
(тип данных – события / состояния: ожидание, синхронизация)
Управляющие структуры
(последовательность, ветвление, итерация, параллельность)
Семейства алгоритмов (решение одной задачи несколькими методами)
Алгоритмы диспетчеризации процессов (FIFO, LIFO, RR)
Алгоритмы замещения виртуальных страниц памяти (FIFO, LRU, NRU)
Алгоритмы обработки сигналов (mask, ignore, terminate)
Именные (авторские) алгоритмы (оригинальные методы решения задач)
Алгоритм Эдсгера Дейкстры (доступ процессов к разделяемому ресурсу)
Алгоритм Лесли Лэмпорта (синхронизация событийных шкал процессов)
Курс "Основы операционных систем" -
Лекция 2 21
Алгоритмы: алгоритм Лесли Лэмпорта – 1
Автор – Leslie Lamport (1978).
Назначение алгоритма:
синхронизация событий на временных шкалах процессов
в распределённой системе («логические часы»).
Ключевые идеи алгоритма:
на множестве событий вводится отношение частичного порядка
«логические часы» присваивают каждому событию каждого процесса
единственное число (значение счётчика событий)
значение счётчика событий (далее - значение) каждого процесса
монотонно увеличивается по правилам:
значение увеличивается перед каждым внутренним событием любого процесса
процесс-отправитель посылает сообщение вместе с меткой равной значению
процесс-получатель устанавливает новое значение равным инкременту (+1)
максимума текущего значения и метки.
Курс "Основы операционных систем" -
Лекция 2 22
Алгоритмы: алгоритм Лесли Лэмпорта – 2
Курс "Основы операционных систем" -
Лекция 2 23
0 6 12 18 24 30 36 42 60 66
0 8 16 24 32 40 51 59 67 75
0 10 20 30 40 50 60 70 80 90
0 10 20 30 40 50 60 70 80 90
0 8 16 24 32 40 48 56 64 72
0 6 12 18 24 30 36 42 48 54
t
Начальные метки
событий
m k n
Конечные метки
событий
t
t
t
Три процесса
m k n
Без изменений
С изменениями
ШАГ = 6
ШАГ = 8
ШАГ = 6
ШАГ = 10
Курс "Основы операционных систем" -
Лекция 2 24
План лекции: тема подраздела
Мир вычислений
Мир терминов
Мир возможностей
Мир ограничений
Мир моделей
Мир алгоритмов
Мир стандартов
Мир продуктов
Мир потребностей
Стандарты: классы
Классы стандартов ОС:
Стандарты «де-юре»:
Стандарты системных интерфейсов (IEEE 1003)
Стандарты безопасности (DoD 5200.28, DES)
Стандарты стеков сетевых протоколов (ISO OSI – 7 уровней)
Стандарты «де-факто»:
Стандарты самовосстановления конфигурации ОС (учётная запись
суперпользователя – root (Unix), Administrator (Windows))
Стандарты инициализации ОС («нулевой» процесс, корень файловой
системы – / (Unix), C: (Windows))
Стандарты стеков сетевых протоколов (TCP/IP – 4 уровня, SMB/NetBEUI – 2
уровня)
Курс "Основы операционных систем" -
Лекция 2 25
Стандарты: POSIX (IEEE 1003)
POSIX – Portable Operating System Interface for uniX.
Первоначальная цель стандарта (2001 год) –
обеспечение совместимости версий Unix-подобных ОС.
Стандарт определяет:
интерфейсы между ОС и прикладной программой
(системный API)
библиотека языка C
набор приложений и их интерфейсов
Текущая версия стандарта: ISO/IEC/IEEE 9945 2009
POSIX-cертифицированные ОС (примеры): Mac OS X, Solaris, QNX Neutrino.
POSIX-совместимые ОС (примеры): Minix, FreeBSD, OpenSolaris, VxWorks.
Курс "Основы операционных систем" -
Лекция 2 26
Стандарты: «Оранжевая книга» (DoD 5200.28)
«Критерии оценки доверенных компьютерных систем» (1983 год)
TCSEC – Trusted Computer System Evaluation Criteria Автор: Министерство обороны (DoD – Department of Defense) США.
Стандарт определяет 7 категорий безопасности ОС
(в порядке увеличения степени безопасности):
D – минимальная защита
С1 – избирательная защита
С2 – декреционный контроль доступа (сертификат: ОС MS Windows NT 3.51)
B1 – мандатный контроль доступа
B2 – структурированная защита
B3 – домены безопасности
A – верифицированная разработка
Текущий международный стандарт (1999 год):
Common Criteria for Information Technology Security Evaluation
Курс "Основы операционных систем" -
Лекция 2 27
Курс "Основы операционных систем" -
Лекция 2 28
План лекции: тема подраздела
Мир вычислений
Мир терминов
Мир возможностей
Мир ограничений
Мир моделей
Мир алгоритмов
Мир стандартов
Мир продуктов
Мир потребностей
Продукты: классы
Классы программных продуктов:
ОС для типов решаемых прикладных задач (вычислений): Учебные
Офисные
Серверные
Мобильные
Облачные
Управляющие
ОС для компьютеров (конфигураций вычислительных систем): x86 / x64 - совместимые
Персональные компьютеры
Маршрутизаторы сетевого трафика
Суперкомпьютеры
Специализированные компьютеры (игровые консоли и т.п.)
ОС для пользователей (потребителей рынка ОС): Ядра ОС
Оболочки ядер ОС
Сервисы ОС
Курс "Основы операционных систем" -
Лекция 2 29
Продукты: ОС, клоны ОС, спецОС
Операционные системы общего назначения:
Windows-совместимые:
MS DOS (клоны: Windows 3.1, Windows 95, Windows 98).
MS Windows NT (клоны: Windows 2000, Windows XP, Windows Server 2003,
Windows Vista, Windows Server 2008, Windows 7, Windows 8, Windows 10).
Unix-совместимые:
Unix (клоны: System V, SunOS, Solaris, FreeBSD, NetBSD).
Linux (клоны: RedHat, Debian, Mandriva, Fedora, Ubuntu).
Специализированные операционные системы:
Системы «жёсткого» реального времени
VxWorks (WindRiver Systems), QNX Neutrino RTOS (QNX Software Systems)
Системы «мягкого» реального времени
функциональные расширения ОС общего назначения
Курс "Основы операционных систем" -
Лекция 2 30
Курс "Основы операционных систем" -
Лекция 2 31
План лекции: тема подраздела
Мир вычислений
Мир терминов
Мир возможностей
Мир ограничений
Мир моделей
Мир алгоритмов
Мир стандартов
Мир продуктов
Мир потребностей
Потребности: классы
Классы потребностей в ОС:
Профессиональные потребности:
Программисты (автоматизированные и/или автоматические подготовка и
решение алгоритмических задач).
Администраторы (назначение и мониторинг отношений владения и
пользования вычислительными и программными ресурсами).
Производственно-технологические потребности:
Машины и оборудование (целевое управление функционированием).
Программы (доступ к ресурсам, интерпретация кодов, безопасность)
Пользователи (электронный документооборот, САПР, АСУТП).
Личностные потребности:
Коммуникации (текстовые, звуковые, видео и т.п.) между людьми и
формирование информационных интерфейсов «человек-машина».
Модели виртуальной реальности (обучение – тренажёры, развлечения – игры,
реабилитация – сенсорные адаптеры).
Курс "Основы операционных систем" -
Лекция 2 32
Потребности: модели виртуальной реальности
Автоматизированные обучающие системы (АОС):
Курс "Основы операционных систем" -
Лекция 2 33
Вычислительная
машина
Персональный
компьютер
Операционная система
Менеджер виртуальных машин
VirtualBox
VM
Windows 8.1
VM
Ubuntu 16.04
#!/bin/bash
# our comment
echo “Current dir :”
pwd
‘ our comment
Dim Button
Button = MsgBox(“_
Press any button”,2,_
“Title”)
Курс "Основы операционных систем" -
Лекция 2 34
Спасибо за внимание !
Вопросы ?