
- •Типы ос
- •I/o прерывание: инициатор – устройство ввода-вывода (изменение его состояния)
- •Защита области памяти процесса
- •Способы организации основной памяти (dram)
- •Механизм переключения контекста:
- •Критерии:
- •Стратегии управления:
- •Raid 0 («Striping») — дисковый массив из двух или более дисков с отсутствием избыточности. Информация разбивается на блоки данных (Ai) и записывается на оба/несколько дисков одновременно.
- •№36.Пути повышения производительности дисковых накопителей. Raid5, raid6.
- •Разделяемая память (shared memory).
- •Очереди сообщений (messages).
- •Методы идентификации пользователя
- •Обычно различают следующие основные виды кластеров:
- •Типы прерываний
- •Обработчики прерываний:
№1 Типы и поколения ОС. Эволюция ОС и ее связь с развитием аппаратных ресурсов ЭВС.
Характеристики |
поколения |
|||
|
I |
II |
III |
IV |
Период |
1945-1955 |
1955-1964 |
1964-1980 |
1980-... |
Основной элемент |
Эл. лампа |
Транзистор |
ИС |
БИС, СБИС |
Количество ЭВМ в мире (шт) |
Сотни |
Тысячи |
Десятки тысяч |
Миллионы |
Примеры |
БЭСМ-1,2, Стрела, IBM 701 |
Минск-2, Урал-14, Мир, Наири |
IBM 360 |
Иллиак, Эльбрус |
Быстродействие (оп/сек) |
10-20 тыс. |
до 1 млн |
100 тыс – 1 млн |
2*10^7 |
Носитель информации |
Перфокарта |
Магнитная лента |
Диск |
Гибкий диск |
Периоды.1.Первый период (1945-1955гг) Ламповые машины.Операционных систем нет
Особенности:Программирование на машинном языке. Организация вычислительного процесса вручную каждым программистом с пульта управления.Загрузка программы с помощью панели переключателей, либо перфокар. ВС выполняет одновременно только одну операцию (ввод-вывод, либо собственно вычисления).Возникают первые компиляторы Fortran, Assembler для IBM-701 (Строго последовательная обработка данных !)
2. Второй период (1955г. – начало 60-х гг.)Транзисторные машины.(Лампы заменяются транзисторами)
Особенности: Повышение надежности. Снижение потребления электроэнергии . Уменьшение размеров. Снижение стоимости(Появляются первые системы пакетной обработки !)
3. Третий период (начало 60-х – 1980г.) Компьютеры на основе интегральных микросхем.
Особенности: ВС становится более надежной и дешевой. Повышается производительность процессоров. Растёт сложность и количество решаемых задач.( Мультипрограммирование - пока одна программа выполняет операцию ввода-вывода, процессор выполняет другую программу)
4. Четвертый период (с 1980г. по настоящее время)Персональные компьютеры.Классические сетевые и распределенные системы
Особенности: Резкое возрастание интеграции и снижение стоимости микросхем. Массовость, общедоступность. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их ОС (например пропала необходимость защиты файлов памяти, планирования заданий) (В середине 80-х развитие сетей компьютеров => развитие сетевых и распределенных ОС)
5. Пятый период. Суперкомпьютеры. Параллельные вычисления и системы искусственного интеллекта
Особенности: В то время как предыдущие поколения совершенствовались за счёт увеличения количества элементов на единицу площади (миниатюризации), компьютеры пятого поколения должны были для достижения сверхпроизводительности интегрировать огромное количество процессоров.
№2 Понятие об операционной системе, ее функциях и составе.
ОС(операционная система)- о виртуальная машина, с которой работает пользователь (интерфейс между пользователем и компьютером). Это менеджер ресурсов. Это постоянно функционирующее ядро. Это защитник пользователей и программ.
Типы ос
1. Однозадачные (MS-DOS)
2. Многозадачные (Unix, OS/2, Windows)
Пакетные системы - запуск одной программы из пакета за другой
Системы разделения времени (time-sharing) – процессор переключается между задачами не только на время операций ввода – вывода но и по прошествии определенного времени, что позволяет пользователю интерактивно взаимодействовать с программой
Системы реального времени – для управления различными технологическими процессами – система должна обрабатывать данные быстрее, чем они могут поступать, причем от разных источников => влияние на архитектуру, например может не быть виртуальной памяти, так как она дает непредсказуемые задержки в выполнении программ
3. Многопользовательские (Windows NT, Unix) –механизмы защиты персональных данных каждого пользователя
4. Однопользовательские (MS-DOS, Windows 3.x)
Основная задача ОС- управление процессами!
Состав ОС: 1.Ядро 2.Драйверы 3. Файловая система 4.Командный процессор(command.com)
Функции ОС:1.Управление процессами. 2.Интерфейс 3.Поддержка устройств(Device Support) 4.Безопасность 5.Поддержка файловой системы
№3 Концепция процесса. Состояния процесса.
Процесс – программа во время исполнения или объект, которому выделяются ресурсы ВС (процессор, память и..)
Процесс – динамический объект
Процесс характеризует: 1.Набор исполняемых команд 2.Выделенная для исполнения память (адресное пространство) 3.Адрес и состояние стеков 4.Используемые файлы 5.Устройства ввода-вывода 6.Значения регистров 7.Программный счетчик 8.Значение переменных
Состояния процесса: 1.Порождение – создаются условия для первого запуска 2.Готовность – у процесса есть все необходимые ресурсы, кроме ЦП 3.Активное – выделение процессора 4.Ожидание – (блокировка) нужный ресурс занят, процесс ждет его освобождения 5.Завершение – штатное или аварийное окончание работы программы
№4 Описание процесса в ОС. Операции над процессами.
ОС должна обеспечить контроль над процессами в любом из возможных состояний.
Текущее состояние процесса описывается в системе с помощью PCB (Process Control Block)
PCB –хранит информацию:
Уникальный идентификатор процесса, пользователь
Состояние, в котором находится процесс
Текущий приоритет
Программный счетчик процесса - IP (адрес команды, которая должна быть выполнена для него следующей)
Содержимое регистров процесса
Адресное пространство (и стеки)
Связанные устройства ввода-вывода (файлы)
Область хранения регистров (для рестарта)
Операции над процессами: 1.Создание(образование процесса) 1)Присваивание имени процесса, включение этого имени в список имён известных системе 2)Опр-ние начального приоритета процесса 3) Формирование PCB 4)выделение процессу начальных ресурсов.
2.Уничтожение процесса
3.Возобновление процесса - Подготовка процесса к запуску с той точки, на котором он был остановлен
4.Изменение приоритета
5.Блокирование
6.Разблокировка
7.Запуск
№5 Граф состояний процесса. Управление переходами.
№6 Процессы и потоки.
Первое, что надо усвоить – процесс состоит хотя бы из одного потока. В ОС каждому процессу соответствует адресное пространство и одиночный управляющий поток. Фактически это и определяет процесс.
С одной стороны, процесс можно рассматривать как способ объединения родственных ресурсов в одну группу.
С другой стороны, процесс можно рассматривать как поток исполняемых команд или просто поток. У потока есть счетчик команд, отслеживающий порядок выполнения действий. У него есть регистры, в которых хранятся текущие переменные. У него есть стек, содержащий протокол выполнения процесса, где на каждую процедуру, вызванную, но еще не вернувшуюся, отведен отдельный фрейм. Хотя поток должен исполняться внутри процесса, следует различать концепции потока и процесса. Процессы используются для группирования ресурсов, а потоки являются объектами, поочередно исполняющимися на центральном процессоре.
Любой поток состоит из двух компонентов:
1)объекта ядра, через который операционная система управляет потоком. Там же хранится статистическая информация о потоке(дополнительные потоки создаются также ядром); 2)стека потока, который содержит параметры всех функций и локальные переменные, необходимые потоку для выполнения кода.
Поток (thread) определяет последовательность исполнения кода в процессе.
Процесс ничего не исполняет, он просто служит контейнером потоков.
Потоки всегда создаются в контексте какого-либо процесса, и вся их жизнь проходит только в его границах.
Потоки могут исполнять один и тот же код и манипулировать одними и теми же данными, а также совместно использовать описатели объектов ядра, поскольку таблица описателей создается не в отдельных потоках, а в процессах.
№7 Архитектуры ОС. Функции ядра.
Ядро – часть ОС,основной функцией которого является работа с процессами.
Ядро, как правило, резидентно. Остальные части могут подгружаться по мере надобности
Различают ОС: Микроядерные, Монолитные, Гибридные (большинство современных)
Основные функции ядра ОС
Обработка прерываний
Создание и уничтожение процессов
Диспетчирование (выбор текущего процесса из очереди)
Синхронизация процессов
Организация взаимодействия между процессами
Поддержка PCB (Process Control Block)
Поддержка операций I/O
Поддержка распределения памяти
Поддержка файловой системы
Вызов процедур и возврат из них
Остальные переходы на графе состояний
№8 Многопоточное программирование.
Многопоточная программа содержит две и более частей, которые могут выполняться одновременно, конкурируя друг с другом.
Каждая часть такой программы называется потоком, а каждый поток определяет отдельный путь выполнения (в последовательности операторов программы).
Многопоточность — это специализированная форма многозадачности.
В многозадачной среде, основанной на потоках, самой мелкой единицей диспетчеризации является поток. Это означает, что отдельная программа может исполнять несколько задач одновременно. Например, текстовый редактор может форматировать текст одновременно с печатью документа, поскольку эти два действия выполняются двумя отдельными потоками.
Многозадачные потоки требуют меньших накладных расходов по сравнению с многозадачными процессами. Процессы — это тяжеловесные задачи, которым требуются отдельные адресные пространства. Связи между процессами ограничены и стоят не дешево. Переключение контекста от одного процесса к другому также весьма дорогостоящая задача.
С другой стороны, потоки достаточно легковесны. Они совместно используют одно и то же адресное пространство и кооперативно оперируют с одним и тем же тяжеловесным процессом, межпоточные связи недороги, а переключение контекста от одного потока к другому имеет низкую стоимость.
Многопоточность дает возможность писать очень эффективные программы, которые максимально используют CPU, потому что время его простоя можно свести к минимуму.
Скорость передачи данных по сети намного меньше, чем скорость, с которой компьютер может их обрабатывать.
В традиционной однопоточной среде ваша программа должна ждать окончания каждой своей задачи, прежде чем она сможет перейти к следующей (даже при том, что большую часть времени CPU простаивает).
Многопоточность позволяет получить доступ к этому времени простоя и лучше его использовать.
№9 Проблема тупиков в ОС. Необх условия возникновения тупиков
Тупик – состояние мультипрограммной системы, которого ждет процесс, и которое никогда не реализуется (клинч, дедлок).
Задачи ОС: Предотвращение; Обход; Обнаружение.
Примеры тупиков: транспортная пробка, Кольцевая цепь запросов.
Бесконечное ожидание – состояние системы, которого ждет процесс, является возможным, но оно откладывается на неопределенное время. Например, из-за приоритета.
Условия возникновения тупиков (необходимые):
Монопольное управление выделенными ресурсами (взаимоисключение);
Удержание ресурсов на время ожидания следующего;
Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);
Существование кольцевой цепи запросов.
№10 Предотвращение тупиков. Принципы Хавендера.
Хавендер показал, что для предотвращения тупика необходимо нарушить одно из необходимых условий его возникновения.
Принципы Хавендера:
Процесс запрашивает все нужные ресурсы сразу. До выделения – ждет.
Нарушается условие возникновения тупиков - Удержание ресурсов на время ожидания следующего;
Плюс: простота реализации.
Минусы:
Как определить набор всех необходимых процессу ресурсов?
Простой свободных ресурсов.
Накапливание ресурсов приводит к высоким издержкам.
Если процессу не выделяется очередной ресурс, он должен отдать уже выделенные.
Нарушается условие возникновения тупиков- Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);
Минусы:
Как сохранить промежуточные результаты работы процесса?
Возможность бесконечного откладывания (дефицитный ресурс).
Вводим линейную упорядоченность на типы ресурсов. Процесс может запросить ресурсы только в порядке увеличения номера ресурса.
Нарушается условие возникновения тупиков - Существование кольцевой цепи запросов.
Плюс: кажущаяся простота реализации.
Минусы:
Сложно вводить в систему новые ресурсы (ОС).
Кто знает «правильную» последовательность ресурсов?
Трансляторы тоже должны знать номера ресурсов, а это сложно и снижает мобильность систем.
Условие монопольного управления Хавендер не нарушает
№11 Обнаружение тупиков
Обнаружение тупика – установление факта наличия в системе процессов ожидающих «нереализуемое» состояние.
Основной подход к решению – построение графа распределения ресурсов и нахождение в нем циклов. (Чрезвычайно затратный подход. На практике в чистом виде не используется.)
Восстановление работы системы – продолжение работы некоторых процессов после устранения причины тупика.
Сложности решения:
Неочевидность тупика.
Трудно остановить процесс в произвольной точке кода.
Большие накладные расходы на реализацию сохранения результатов.
В системах с большим числом разноприоритетных процессов трудно удалить процессы с высоким приоритетом.
Виртуализация ресурсов – средство борьбы с тупиками
Система не устраняет условий возникновения тупиков – при возникновении конкурирующих запросов ВСЕ ресурсы могут быть заменены на «виртуальный аналог».
Особенности решения:
Алгоритмически простое решение.
Формально, не боится большого числа процессов.
Сложность возврата из «виртуального мира» в реальный в случае иерархической виртуальности.
№12 Обход тупиков. Алгоритм банкира.
Алгоритм банкира – ресурсы процессу можно выдавать только в том случае, если состояние системы останется надежным.
Надежное состояние – ОС гарантирует всем процессам завершение в конечное время.
Введем следующие обозначения:
M(i) – максимальная потребность i-го процесса в ресурсе;
L(i) – текущая величина ресурса, выделенного i-му процессу;
С(i) – текущая потребность в ресурсе, C(i)=M(i)-L(i);
Т – суммарный ресурс, имеющийся в системе;
а – остаточный ресурс, а=Т-L(i);
Пусть в некоторый момент времени в системе существуют три процесса. T=12
Р
ешение
примера
|
L(i) |
M(i) |
C(i) |
Process 1 |
1 |
4 |
3 |
Process 2 |
4 |
6 |
2 |
Process 3 |
5 |
8 |
3 |
a |
2 |
№13 Прерывания ОС и BIOS. Обработка прерываний.
Прерывание - это событие, при котором меняется последовательность команд, выполняемых процессором.
Что происходит после прерывания?
Управление передается ОС
ОС запоминает состояние прерванного процесса (например в PCB)
Передача управления соответствующей программе обработчику прерывания
Типы прерываний.
SVC прерывание (super visor call instruction) - программа вызывает супервизор – ОС, то есть требует системную услугу.
то есть SVC – механизм не позволяет получать программе пользователя системные ресурсы без контроля со стороны ОС (механизм доступа, паролей и так далее)