- •1. Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос
- •Первый период (1945–1955 гг.)
- •Второй период (1955 г.– нач. 60-х)
- •Третий период (нач. 60-х – 1970 г.)
- •Четвертый период (с 1970 – 80 гг.) Персональные компьютеры.
- •Пятый период (с 1980 г. По н.В.)
- •3. Мультипрограммирование. Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой
- •В системах пакетной обработки
- •В системах разделения времени
- •В системах реального времени
- •4.1. Различают симметричную и ассиметричную архитектуру таких систем
- •4.2. По способу организации процесса:
- •4. Роль прерываний при мультипрограммировании.
- •5. Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков
- •6. Контекст процесса и его состояния
- •7. Планирование процессов и потоков: критерии, виды, алгоритмы планирования
- •8. Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.
- •9. Механизмы синхронизации: блокирующие переменные, семафоры, мониторы.
- •1) Блокирующие переменные
- •2) Семафоры
- •10. Проблемы синхронизации(тупики) и способы их разрешения.
- •11. Механизмы межпроцессного взаимодействия (каналы, очереди сообщений, разделяемая память)
- •12. Управление памятью: задачи управления, типы адресации
- •13. Распределение памяти: общие принципы управления памятью в однопрограммных ос, распределение памяти фиксированными, динамическими, перемещаемыми разделами
- •14. Сегментное распределение памяти
- •15. Страничное распределение памяти
- •16. Особенности эффективного использования таблицы страниц: многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование
- •17. Сегментно - страничное распределение памяти
- •18. Физическая организация жёсткого диска
- •19. Принципы построения файловой системы: интерфейс, функциональная схема, типовая структура файловой системы
- •20. Способы выделения дискового пространства. Управление дисковым пространством. Размер логического блока
- •21. Особенности организации некоторых файловых систем
- •Vfat (Virtual fat)
10. Проблемы синхронизации(тупики) и способы их разрешения.
Тупик (или deadlock) (def моё) – ситуация, возникающая, когда два (или более) процессов работают с двумя (или более) общими ресурсами, причем запросы к этим ресурсам случайны.
Пример: Есть два ресурса Res1 и Res2, Есть два процесса Process1, Process2 и пусть обоим для выполнения какой-то операции необходимо получить блокировку на оба ресурса. Причем Process1, сначала запрашивает блокировку Res1, а Process2 блокировку Res2; далее Process1 подходит к точке, в которой ему необходима блокировка на Res2, а так как этот ресурс занят, Process1 встает в ожидание. В это время, Process2 подходит к точке, где ему необходима блокировка на Res1, что бы завершить выполнение, а так как этот ресурс уже занят, Process2 встает в ожидание момента, когда Process1 освободит Res1, но по понятным причинам, Process1 этого сделать не может, так как ожидает освобождения блокировки на Res2. -> Оба процесса ждут друг друга.->Deadlock
Необходимое условие: потребность процесса в нескольких ресурсах.
Способы разрешения:
-
Распознавание тупиков – использование программных методов, основанных на ведении таблиц распределения ресурсов и таблиц запросов к занятым ресурсам, анализ которых поможет найти блокировки.
-
Предотвращение тупиков – эту проблему можно решить, соблюдая определенные правила распределения ресурсов, к примеру, задать определенную последовательность получения ресурсов.
-
Восстановление системы после тупиков
При возникновении тупика, не обязательно снимать вы выполнения все заблокированные процессы, а можно снять только часть из них, при этом освободив ресурсы; совершить откат до контрольной точки, в которой запоминается информация, необходимая для восстановления выполнения программы с данного места.
-
игнорирование
11. Механизмы межпроцессного взаимодействия (каналы, очереди сообщений, разделяемая память)
Обмен данными между потоками одного процесса не представляет трудностей, так как операции проходят в одном адресном пространстве. Если рассматривать обмен данными между потоками нескольких процессов, то тут обмену будут препятствовать средства ОС по защите процессов друг от друга, находящихся к тому же в разных адресных пространствах.
Канал - однонаправленный механизм передачи данных (неструктурированного потока байтов) между процессами без необходимости создания файла на диске. Канал представляет собой буфер в оперативной памяти, поддерживающий очередь байт согласно FIFO (First In First Out).
Выделяют два типа каналов:
-
Обычный канал
-
Именованный канал – Реализуется путем создания одним, а чтения – другим процессом(потоком) файла типа FIFO с одним и тем же указанным в процессах именем. Данный канал существует в ОС и после завершения процессов, поэтому, после окончания использования, его надо отсоединить и удалить.
Очередь сообщений – схож с механизмом каналов, но позволяет обмениваться структурированными сообщениями.
Очередь работает только в одном направлении: процесс-приемник может читать и удалять сообщения, а процессы-клиенты могут лишь помещать свои сообщения в очередь.
Отличие от каналов:
-
Предоставляют несколько дисциплин обработки сообщений (FIFO, LIFO, приоритетный, произвольный доступы)
-
При чтении, сообщения из очереди не удаляются, сообщение может быть прочитано несколько раз.
-
В очередях присутствуют не сами сообщения, а их адреса в памяти и размер.
Основные операции над очередью:
-
Создание очереди
-
Открытие существующей очереди
-
Чтение и удаление сообщений из очереди
-
Чтение без последующего удаления
-
Добавление сообщения в очередь
-
Удаление всех сообщений из очереди
-
Определение числа элементов в очереди
Разделяемая память
Представляет собой сегмент физ. памяти, отображенной в виртуальное адресное пространство двух или более процессов. Механизм разделяемой памяти поддерживается подсистемой виртуальной памяти, которая настраивает таблицы отображения адресов таким образом, что одни и те же адреса некоторой области физ. памяти соответствуют виртуальным адресам разных процессов.