Операционные системы
Список литературы
Учебники
· Энди Таненбаум «Современные операционные системы» 3-е (2-е) издание 2010 (2005)
· Смирнова Н.Н. «Операционная система Линукс: начальный курс пользователя. Учебное пособие» Смирнова, Панова, Касаткина БГТУ 2007
· Олифер Н.А., Олифер Р.Г. «»сетевые операционные системы» издательство «Питер» 2005
· Романов А.В., Гордеев А.Ю. «Системное программное обеспечение»
· Гордеев А.В. «Операционные системы: учебник для вузов» 2-е издание
· Таненбаум Операционные системы: разработка и реализация
Лабораторные работы
· Операционная система линукс лабораторный практикум. Редакция Смирновой
Глава 1. Введение
История операционных систем
Поколения ОС
1. Ламповая элементная база 1945-55.
2. Полупроводниковые транзисторы и диоды 1955-1965.
a. Операционные системы пакетной обработки.
b. Мини ЭВМ
3. Интегральная схема 1965-1980.
a. Первые диалоговые операционные системы
4. Сверхбольшие интегральные схемы 1980-…
a. Операционные системы с дружественным интерфейсом
b. Распространение персональных компьютеров
Типы процессоров
1. 1974 год
a. Intel 8080 8-ми разрядный
b. Zilok Z-80
Операционная система CP/M
2. IBM PC
a. Intel 8886, 8088 16-ти разрядный. 4.77 МГц
b. 80286 до 20 Мгц, введена система защиты памяти
c. 80386
Операционные системы:
MS DOS (разные версии)
CP/M-86
DR DOS →Novel DOS (поддержка сетей, многозадачность)→Open DOS
Free DOS
Windows
Но основе MC DOS[1]:
1. Windows: оболочка, запускаемая из под MC DOS. 3 версии, 3-удачная. Многозадачность.
2. Windows 95- объединение ядра MS DOS и графического интерфейса Windows
3. Windows 98SE
4. Windows Me
На основе Windows NT[2]:
1. Windows 2000
2. Windows XP (параллельно Server 2003)
3. Windows Vista (параллельно Server 2008)
4. Windows 7
Unix
PDP 11/…
Вплоть до версии Unix V7 использовалась для обучения, имела свободное распространение.
Unix System V- первая коммерческая ОС семейства Unix
Причины распространения операционной системы:
1. Переносимость(за счет того, что система написана на языке высокого уровня)
2. Простота и понятность интерфейса
3. Широкое использование текстовых файлов
Linux
После закрытия системы unix изучение ее в учебных целях стало невозможно. Таненбаум создает Minix, как свободно распространяемую ОС для обучения.
1991 г. один из учеников Таненбаума создает Linux, ориентированную на продвинутых пользователей.
Дистрибутивы:
1) Slackuare
2) RedHat
a. Mandriva
3) Debian (надежность)
a. Ubuntu
4) Knoppix (без инсталляции)
5) Gentoo (идет в виде исходных текстов, для установки необхоима компеляция)
6) Damn Small (маленький)
BSD
1) 4.2 BSD
2) 386BSD
c. FreeBSD 9.0
1) PC BSD
d. NetBSD 5.0
POSIX- стандарт переносимой системы Unix. Определяет параметры программ для совместимости с Unix.
Основные понятия операционной системы
Процесс- это программа в момент выполнения.
Дескриптор процесса- информация, необходимая и достаточная для управления процессом.
Контекст процесса- информация, необходимая для перевода процесса в активное состояние.
Адресное пространство процессора- набор адресов, доступных процессу
Образ процесса:
1) Сегмент кода (текста)
2) Сегмент данных
1. Инициализированные
2. Не инициализированные
3) Сегмент стека
Режимы процессора:
1. Пользовательский
2. Режим ядра (привилегированный)
Системный вызов- передача управления из программы пользователя операционно системе с целью выполнения заданных действий.
Архитектура операционных систем
Монолитное ядро (старая)
Виртуальные машины
ВС- это функциональный эквивалент некоторой машины с заданными характеристиками, модель имитируемой программно-аппаратными средствами реальной ЭВМ.
IBM/370 VM/370- перый представитель
Гипервизор 1-го типа
Гипервизор 2-го типа
Цели гипервизора:
1) Безопасность
2) Возможности создания сети на 1 машине
3) Знакомство с ОС
Глава 2. Процессы и потоки
Реализация процессов
Процесс описывается его дескриптором. Все дескрипторы сводятся в таблицу процессов.
Потки
Поток- последовательность выполняемых команд
Процесс=процедуры+ поток
Создание потока более быстро, чем создание процесса.
Lightweight process-легковесный процесс
Thread- простой поток
Глава 3. Планирование
Основные понятия
При работе системы готовыми к работе в данный момент времени могут быть несколько процессов. При рассматривании однопроцессорного компьютера, из этих процессоров должен быть выбран 1. За это отвечает планировщик (часть ОС). Используемый им алгоритм называется алгоритмом планирования.
Ситуации планирования.
1) Создание процесса
2) Завершение процесса
3) Блокировка процесса
4) Обработка запроса на прерывание
a. Запрос от внешних устройств
b. Запрос от таймера
Все алгоритмы делятся на 2 вида:
1) Не вытесняющиеся- выбирают процесс и дают ему работать, пока он не завершится или не заблокируется.
2) Вытесняющие- выбирают процесс и позволяют ему работать некоторый интервал времени. Если по окончанию этого времени процесс все еще работает, то он приостанавливается другой процесс.
Категории систем:
1) Системы пакетной обработки. Применяются системы не вытесняющего планирования (в современных- системы вытесняющего с большим квантом времени)
2) Интерактивные системы. Очень важно иметь малое время отклика. Используются вытесняющие алгоритмы с малым квантом времени.
3) Системы реального времени. Основная задача обеспечение реагирования с заданной быстротой и привязкой по времени. Вытесняющий алгоритм.
Свойства желательные алгоритмов планирования.
· Справедливость- гарантия предоставления процессора каждому процессу.
· Поддержка занятости всех устройств машины.
· Предсказуемость- одна и та же задача должна выполнятся за равные промежутки времени.
· Минимальные накладные расходы на планирование.
Пакетные системы
· Пропускная способность- количество заданий за единицу времени
· Среднее оборотное время- среднее время от поступления задания до конца его обработки
· Загрузка процессора
· Время отклика
Планирование в системе пакетной обработки
Первым пришел- первым обслужим
Кратчайшая задача- первая
Для исполнение берется задача с наименьшим временем.
Наименьшее оставшееся время алгоритма
Выбирается задача с наименьшим остаточным временем.
Планирование в интерактивных системах
Циклический алгоритм
Перепланирование занимает примерно 1милисикунду.
Для 10 процессов:
10 процессов=100квантов
Время отклика 10(100+1)=1.010 сек
Другой подход
Квант=4мс
Время отклика = 10(4+1)=50
Преимущество: надежность
Недостаток: не рациональное использование ресурсов.
Приоритетное планирование
Для исполнения на процессоре выбираются процессы с наибольшим приоритетом. Процессы с высоким приоритетом монополизируют процессор.
Изменение самих приоритетов может быть как статическим, так и динамическим.
Гарантированное планирование
N-количество пользователей
Di- время нахождения пользователя в системы
Ti- предоставленное время работы.
- коэффициент справедливости.
Меж процессное взаимодействия
Основные понятия
Операции
1) Передача данных
2) Предотвращение конфликта процессов при одновременном обращении к определенному ресурсу.
3) Синхронизация процессов
Ситуация состязания- это такая ситуация, когда 2 процесса считывают или записывают данные одновременно и конечный результат зависит т того, какой из них был первым.
Пример ситуации состязаний:
A | B | |
считывает значение int 6 | ||
Считывает значение int= 6 Записывает значение in значение 7 | ||
Записывает значение in значение 7 |
3.txt | curt | |
4.txt | ||
in | 5.txt | |
5.txt | ||
6.txt | ||
7.txt |
Взаимное исключение- запрет одновременного доступа к разделяемым данным для более чем одного процесса.
Критической областью процесса называется та его часть, где осуществляется доступ к разделяемым данным.
Условия запретов без состояния состязаний
1) 2 или более процессов не должны находится одновременно в своих критических областях
2) В программе не должно быть предположений о скорости или количестве процессоров
3) Процесс, находящийся вне критической области, не может блокировать другие процессы
4) Невозможна ситуация, когда процесс вечно ждет попадания в свою критическую область
Взаимное исключение с активным ожиданием
Активное ожидание- цикл постоянной проверки некоторого условия значения некоторой переменной, выполняемой до тех пор, пока условие не будет выполнено.
Алгоритм строгого чередования
Turn= {0,1}
Алгоритм Петерсона
Реализация исключающей системы с исключающей командой.
Xchg
Res,mem reg mem
Flag dw 0; флаг h сегмент данных: 0- резрешено;=- задано в коде
Mov ax, 1; 1→рег АХ
Retry: xchg ax, flag; ax flas
Cmp ax, 0; ЛХ =0?
Jnz retry ; повторить, есл
Критический объем
Mov flag, 0; 0→flag-реализовать оставшиеся процессы
Классические проблемы межпроцессорного взаимодействия
Проблема обедающих философов
Каждый филосов может есть или не есть, но для еды ему нужно 2 вилки.
Проблема читателей и писателей
Читать могут сколько угодно пользователей, но писать только один и когда никто не читает.
Проблема спящего продабрея
Существует обрабатываемый процесс и очередь, которая имеет свой лимит ожидания
Глава 5. Управление памятью
Задача управления памятью
Менеджер памяти:
· Учет распределения памяти
· Выделение и освобождение памяти
· Управление обменом между оперативной и внешней памятью
Способы распределения памяти:
1) Работа процессов в физических адресах
Проблемы:
i. Настройка адресов при загрузке программы
ii. Защита памяти
2) Логическая адресация: адреса отсчитываются от установленных системой адресов
Глава 6. Файловые системы
Основные понятия
Задачи файловой системы:
1) Обеспечение хранения больших объемов данных на устройствах внешней памяти
2) Хранение информации после прекращения работы использующего его процесса
3) Обеспечение возможности одновременного доступа нескольких процессов к информации
Файл- именованный набор записи на устройстве внешней памяти
Информация, хранящаяся в файле должна быть устойчивой- на нее не должно влиять прекращение работы любого процесс.
Работой с файлами занимается файловая система.