- •Понятие операционной системы (ос), цели ее работы. Классификация компьютерных систем
- •Обеспечение удобства, эффективности, надежности,
- •История ос. Отечественные ос. Диалекты unix. Режимы пакетной обработки, мультипрограммирования, разделения времени
- •Особенности ос для различных классов компьютерных систем. Ос реального времени. Ос для облачных вычислений
- •Архитектура компьютерной системы
- •Управление процессами
- •Обзор функций ос: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ос, системные вызовы. Уровни абстракции ос. Архитектура unix и ms-dos
- •Системные вызовы (system calls)
- •Уровни абстракции ос
- •Уровни абстракции ос. Ос с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ос. Генерация ос
- •Виртуальная машина Java (jvm)
- •Управление процессами. Планирование и диспетчеризация процессов
- •Методы взаимодействия процессов
- •Потоки (threads) и многопоточное выполнение программ (multi-threading)
- •Стратегии и критерии диспетчеризации процессов
- •Методы синхронизации процессов
- •Тупики (deadlocks), методы предотвращения и обнаружения тупиков
- •Алгоритм банкира
- •Управление памятью
- •Схемы разделения памяти
- •Страничная организация памяти
- •Решаемые задачи:
- •Сегментная организация памяти
- •Виртуальная память
- •Системы файлов
- •Классификация файловых систем
- •Задачи файловой системы
- •Виртуальные файловые системы (vfs). Реализации файловых систем. Сетевая файловая система nfs Виртуальные файловые системы
- •Системы ввода-вывода
- •Сети и сетевые структуры Распределенные системы
- •Классические и современные сетевые коммуникационные протоколы Протоколы коммуникации
- •Безопасность операционных систем и сетей. Trustworthy Computing Безопасность (security) – защита от внешних атак.
- •Основная суть инициативы twc заключается в том, что безопасности необходимо уделять особое внимание при разработке программной системы, начиная с самых ранних этапов.
- •Обзор архитектуры и возможностей системы Linux: архитектура, ядро, распространение и лицензирование, принципы проектирования, управление процессами
- •Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность
- •Обзор архитектуры и возможностей систем Windows 2000/xp/2003/Vista/2008/7
- •Оболочка Norton Commander и ее графические аналоги для Windows:
- •29. Far Manager – текстовая оболочка
Потоки (threads) и многопоточное выполнение программ (multi-threading)
Поток (thread) – это запускаемый из некоторого процесса особого рода параллельный процесс, выполняемый в том же адресном пространстве, что и процесс-родитель.
Многопоточность имеет большие преимущества:
Увеличение скорости (по сравнению с использованием обычных процессов
Использование общих ресурсов. Потоки одного процесса используют общую память и файлы.
Экономия. Благодаря многопоточности, достигается значительная экономия памяти, по причинам, объясненным выше.
Использование мультипроцессорных архитектур. Это особенно важно в настоящее время, в период широкого использования многоядерных гибридных и многопроцессорных систем.
Стратегии и критерии диспетчеризации процессов
Решения по диспетчеризации могут быть приняты в случаях, если процесс:
1)Переключается из состояния выполнения в состояние ожидания.
2)Переключается из состояния выполнения в состояние готовности к выполнению.
3)Переключается из состояния ожидания в состояние готовности.
4)Завершается.
Диспетчеризация типов 1 и 4 обозначается термином диспетчеризация без прерывания процесса (nonpreemptive).
Диспетчеризация типов 2 и 3 обозначается термином диспетчеризация с прерыванием процесса (preemptive).
Диспетчер процессора - компонента ОС, предоставляющая процессор тому процессу, который был выбран планировщиком.
Диспетчер выполняет последовательность действий:
-Переключает контекст
-Переключает процессор в пользовательский режим
-Выполняет переход по соответствующему адресу в пользовательскую программу для ее рестарта.
Скрытая активность (латентность) диспетчера (dispatch latency) - время, требуемое для диспетчера, чтобы остановить один процесс и стартовать другой. Разумеется, система должна стремиться минимизировать это время, однако набор критериев диспетчеризации более сложен.
Критерии диспетчеризации:
1)Использование процессора (CPU utilization) - поддержание его в режиме занятости максимально возможный период времени. Критерий оптимизации: максимизация данного показателя.
2)Пропускная способность системы (throughput) - (среднее) число процессов, завершающих свое выполнение за единицу времени. Критерий оптимизации: максимизация.
3)Время обработки процесса (turnaround time) - время, необходимое для исполнения какого-либо процесса. Критерий оптимизации: минимизация.
4)Время ожидания (waiting time) - время, которое процесс ждет в очереди процессов, готовых к выполнению. Критерий оптимизации: минимизация.
5)Время ответа (response time) - время, требуемое от момента первого запроса до первого ответа. Критерий оптимизации:минимизация.
Стратегии:
Стратегия First-Come-First-Served (обслуживание в порядке поступления) - наиболее простая стратегия диспетчеризации, при которой ресурсы процессора предоставляются процессам в порядке их поступления (ввода) в систему.
Стратегия Shortest Job First (SJF, обслуживание самого короткого задания первым) - стратегия диспетчеризации процессора, при которой процессор предоставляется в первую очередь наиболее короткому процессу из имеющихся в системе.
Возможны две схемы применения данной стратегии:
1)Без прерывания процессов - пока процессу предоставляется процесс, он не может быть прерван, пока не истечет его квант времени.
2)С прерыванием процессов - если приходит новый процесс, время активности которого меньше, чем оставшееся время активного процесса, - прервать активный процесс. Эта схема известна под названием Shortest-Remaining-Time-First (SRTF).
Нетрудно видеть, что стратегия SJF оптимальна, в том смысле, что она обеспечивает минимальное среднее время ожидания для заданного набора процессов.
