![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
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 Архитектуры ОС. Функции ядра.
Ядро –часть ОС основной функцией которого является работа с процессами.
Ядро, как правило, резидентно. Остальные части могут подгружаться по мере надобности
Различают ОС: Микроядерные, Монолитные, Гибридные (большинство современных)
Основные функции ядра ОС
l Обработка прерываний
l Создание и уничтожение процессов
l Диспетчирование (выбор текущего процесса из очереди)
l Синхронизация процессов
l Организация взаимодействия между процессами
l Поддержка PCB
l Поддержка операций I/O
l Поддержка распределения памяти
l Поддержка файловой системы
l Вызов процедур и возврат из них
l Остальные переходы на графе состояний
№8 Управление потоками. Многопоточное программирование.
Управление потоками.-????
Многопоточная программа содержит две и более частей, которые могут выполняться одновременно, конкурируя друг с другом.
Каждая часть такой программы называется потоком, а каждый поток определяет отдельный путь выполнения (в последовательности операторов программы).
Многопоточность — это специализированная форма многозадачности.
В многозадачной среде, основанной на потоках, самой мелкой единицей диспетчеризации является поток. Это означает, что отдельная программа может исполнять несколько задач одновременно. Например, текстовый редактор может форматировать текст одновременно с печатью документа, поскольку эти два действия выполняются двумя отдельными потоками.
Многозадачные потоки требуют меньших накладных расходов по сравнению с многозадачными процессами. Процессы — это тяжеловесные задачи, которым требуются отдельные адресные пространства. Связи между процессами ограничены и стоят не дешево. Переключение контекста от одного процесса к другому также весьма дорогостоящая задача.
С другой стороны, потоки достаточно легковесны. Они совместно используют одно и то же адресное пространство и кооперативно оперируют с одним и тем же тяжеловесным процессом, межпоточные связи недороги, а переключение контекста от одного потока к другому имеет низкую стоимость.
Многопоточность дает возможность писать очень эффективные программы, которые максимально используют CPU, потому что время его простоя можно свести к минимуму.
Скорость передачи данных по сети намного меньше, чем скорость, с которой компьютер может их обрабатывать.
В традиционной однопоточной среде ваша программа должна ждать окончания каждой своей задачи, прежде чем она сможет перейти к следующей (даже при том, что большую часть времени CPU простаивает).
Многопоточность позволяет получить доступ к этому времени простоя и лучше его использовать.
№9 Проблема тупиков в ОС. Необх условия возникновения тупиков
Тупик – состояние мультипрограммной системы, которого ждет процесс, и которое никогда не реализуется (клинч, дедлок).
Задачи ОС: Предотвращение; Обход; Обнаружение.
Примеры тупиков: транспортная пробка, Кольцевая цепь запросов.
Бесконечное ожидание – состояние системы, которого ждет процесс, является возможным, но оно откладывается на неопределенное время.
Например, из-за приоритета.
Условия возникновения тупиков (необходимые):
1. Монопольное управление выделенными ресурсами (взаимоисключение);
2. Удержание ресурсов на время ожидания следующего;
3. Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);
4. Существование кольцевой цепи запросов.
№10 Предотвращение тупиков. Принципы Хавендера.
Хавендер показал, что для предотвращения тупика необходимо нарушить одно из необходимых условий его возникновения.
Принципы Хавендера:
Процесс запрашивает все нужные ресурсы сразу. До выделения – ждет.
Нарушается условие возникновения тупиков - Удержание ресурсов на время ожидания следующего;
Плюс: простота реализации.
Минусы:
- Как определить набор всех необходимых процессу ресурсов?
- Простой свободных ресурсов.
- Накапливание ресурсов приводит к высоким издержкам.
Дата публикования: 2015-02-03; Прочитано: 439 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!