- •№1 Типы и поколения ос. Эволюция ос и ее связь с развитием аппаратных ресурсов эвс.
- •№2 Понятие об операционной системе, ее функциях и составе.
- •№3 Концепция процесса. Состояния процесса.
- •№4 Описание процесса в ос. Операции над процессами.
- •№5 Граф состояний процесса. Управление переходами.
- •№6 Процессы и потоки.
- •№7 Архитектуры ос. Функции ядра.
- •№8 Управление потоками. Многопоточное программирование.
- •№9 Проблема тупиков в ос. Необх условия возникновения тупиков
- •№10 Предотвращение тупиков. Принципы Хавендера.
- •№11 Обнаружение тупиков
- •№12 Обход тупиков. Алгоритм банкира.
- •№13 Прерывания ос и bios. Обработка прерываний.
- •№14. Организация оперативной памяти. Однопрограммные системы. Оверлеи.
- •№15. Организация оперативной памяти. Мультипрограммные системы.
- •№ 16 Основные функции системы управления памятью.
- •№17 Организация оперативной памяти. Основные способы.
- •№18 Организация оперативной памяти. Системы со свопингом.
- •№19. Виды памяти вычислительных систем.
- •№20 Виртуальная память, назначение, основные проблемы. Методы организации.
- •№21 Задачи менеджера виртуальной памяти.
- •№22 Страничная организация виртуальной памяти.
- •№23 Сегментная организация виртуальной памяти.
- •№24 Сегментно-страничная организация виртуальной памяти.
- •№25 Концепция локальности и теория рабочего множества.
- •№26 Стратегии решения задачи замещения страниц при управлении виртуальной памятью.
- •№27 Управление процессами, переключение контекста, приоритеты.
- •№28 Управление процессами. Основные стратегии.
- •№29 Управление процессами. Цели и критерии.
- •№30. Организация файлов. Функции файловой системы. Распределение внешней памяти.
- •№31.Файловая система. Методы поблочного отображения.
- •№32. Hpfs, ntfs и cdfs. Управление доступом к файлам.
- •№33.Устройство нмд. Управление дисками. Критерии планирования.
- •№34.Управление дисками. Основные стратегии управления.
- •№35. Пути повышения производительности дисковых накопителей. Raid0, raid1
- •№36. Пути повышения производительности дисковых накопителей. Raid5, raid6.
- •№37.Пути повышения производительности дисковых накопителей. Raid7, matrix raid.
- •№38. Параллельные асинхронные процессы. Проблемы управления.
- •№39. Программное решение задачи взаимного исключения.
- •№40.Способы синхронизации процессов.
- •№41. Семафоры. Синхронизация и взаимоисключение при помощи семафоров.
- •№42.Межпроцесная коммуникация. Разделяемая память, сообщения.
- •№43.Межпроцесная коммуникация. Pipes и sockets.
- •№44. Защита операционных систем. Цели и методы. Методы идентификации пользователей.
- •45.Защита от вирусов. Методы.
- •№46. Особенности работы операционных систем в сетях.
- •№47.Кластерные вычислительные системы типа CoPc.
- •№48. Параллельные вычисления. Метод Монте-Карло.
- •№49. Параллельные вычисления. Численное интегрирование.
- •№50. Методы распределения нагрузки в параллельных системах.
- •№51.Основные направления развития ос.
- •№52. Прерывания. Обработчики прерываний. Маскирование прерываний.
- •Типы прерываний
№7 Архитектуры ос. Функции ядра.
Ядро – часть ОС основной функцией которого является работа с процессами.
Ядро, как правило, резидентно. Остальные части могут подгружаться по мере надобности
Различают ОС: Микроядерные, Монолитные, Гибридные (большинство современных)
Основные функции ядра ОС
Обработка прерываний
Создание и уничтожение процессов
Диспетчирование (выбор текущего процесса из очереди)
Синхронизация процессов
Организация взаимодействия между процессами
Поддержка PCB
Поддержка операций I/O
Поддержка распределения памяти
Поддержка файловой системы
Вызов процедур и возврат из них
Остальные переходы на графе состояний
№8 Управление потоками. Многопоточное программирование.
Управление потоками
Тредами (потоки, нити) называются параллельно выполняющиеся потоки управления в рамках одного процесса.
Потоки одного процесса разделяют его адресное пространство.
Многопоточная программа содержит две и более частей, которые могут выполняться одновременно, конкурируя друг с другом.
Каждая часть такой программы называется потоком, а каждый поток определяет отдельный путь выполнения (в последовательности операторов программы).
Многопоточность — это специализированная форма многозадачности.
В многозадачной среде, основанной на потоках, самой мелкой единицей диспетчеризации является поток. Это означает, что отдельная программа может исполнять несколько задач одновременно. Например, текстовый редактор может форматировать текст одновременно с печатью документа, поскольку эти два действия выполняются двумя отдельными потоками.
Многозадачные потоки требуют меньших накладных расходов по сравнению с многозадачными процессами. Процессы — это тяжеловесные задачи, которым требуются отдельные адресные пространства. Связи между процессами ограничены и стоят не дешево. Переключение контекста от одного процесса к другому также весьма дорогостоящая задача.
С другой стороны, потоки достаточно легковесны. Они совместно используют одно и то же адресное пространство и кооперативно оперируют с одним и тем же тяжеловесным процессом, межпоточные связи недороги, а переключение контекста от одного потока к другому имеет низкую стоимость.
Многопоточность дает возможность писать очень эффективные программы, которые максимально используют CPU, потому что время его простоя можно свести к минимуму.
Скорость передачи данных по сети намного меньше, чем скорость, с которой компьютер может их обрабатывать.
В традиционной однопоточной среде ваша программа должна ждать окончания каждой своей задачи, прежде чем она сможет перейти к следующей (даже при том, что большую часть времени CPU простаивает).
Многопоточность позволяет получить доступ к этому времени простоя и лучше его использовать.
№9 Проблема тупиков в ос. Необх условия возникновения тупиков
Тупик – состояние мультипрограммной системы, которого ждет процесс, и которое никогда не реализуется (клинч, дедлок).
Задачи ОС: Предотвращение; Обход; Обнаружение.
Примеры тупиков: транспортная пробка, Кольцевая цепь запросов.
Бесконечное ожидание – состояние системы, которого ждет процесс, является возможным, но оно откладывается на неопределенное время. Например, из-за приоритета.
Условия возникновения тупиков (необходимые):
Монопольное управление выделенными ресурсами (взаимоисключение);
Удержание ресурсов на время ожидания следующего;
Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);
Существование кольцевой цепи запросов.