Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экз сливы / Bilety_1-52_Os.doc
Скачиваний:
3
Добавлен:
26.01.2024
Размер:
1.8 Mб
Скачать

№7 Архитектуры ос. Функции ядра.

Ядро часть ОС основной функцией которого является работа с процессами.

Ядро, как правило, резидентно. Остальные части могут подгружаться по мере надобности

Различают ОС: Микроядерные, Монолитные, Гибридные (большинство современных)

Основные функции ядра ОС

  • Обработка прерываний

  • Создание и уничтожение процессов

  • Диспетчирование (выбор текущего процесса из очереди)

  • Синхронизация процессов

  • Организация взаимодействия между процессами

  • Поддержка PCB

  • Поддержка операций I/O

  • Поддержка распределения памяти

  • Поддержка файловой системы

  • Вызов процедур и возврат из них

  • Остальные переходы на графе состояний

№8 Управление потоками. Многопоточное программирование.

Управление потоками

Тредами (потоки, нити) называются параллельно выполняющиеся потоки управления в рамках одного процесса.

Потоки одного процесса разделяют его адресное пространство.

Многопоточная программа содержит две и более частей, которые могут выполняться одновременно, конкурируя друг с другом.

  • Каждая часть такой программы называется потоком, а каждый поток определяет отдельный путь выполнения (в последовательности операторов программы).

  • Многопоточность — это специализированная форма многозадачности.

В многозадачной среде, основанной на потоках, самой мелкой единицей диспетчеризации является поток. Это означает, что отдельная программа может исполнять несколько задач одновременно. Например, текстовый редактор может форматировать текст одновременно с печатью документа, поскольку эти два действия выполняются двумя отдельными потоками.

Многозадачные потоки требуют меньших накладных расходов по сравнению с многозадачными процессами. Процессы — это тяжеловесные задачи, которым требуются отдельные адресные пространства. Связи между процессами ограничены и стоят не дешево. Переключение контекста от одного процесса к другому также весьма дорогостоящая задача.

С другой стороны, потоки достаточно легковесны. Они совместно используют одно и то же адресное пространство и кооперативно оперируют с одним и тем же тяжеловесным процессом, межпоточные связи недороги, а переключение контекста от одного потока к другому имеет низкую стоимость.

  • Многопоточность дает возможность писать очень эффективные программы, которые максимально используют CPU, потому что время его простоя можно свести к минимуму.

  • Скорость передачи данных по сети намного меньше, чем скорость, с которой компьютер может их обрабатывать.

  • В традиционной однопоточной среде ваша программа должна ждать окончания каждой своей задачи, прежде чем она сможет перейти к следующей (даже при том, что большую часть времени CPU простаивает).

  • Многопоточность позволяет получить доступ к этому времени простоя и лучше его использовать.

№9 Проблема тупиков в ос. Необх условия возникновения тупиков

Тупик – состояние мультипрограммной системы, которого ждет процесс, и которое никогда не реализуется (клинч, дедлок).

Задачи ОС: Предотвращение; Обход; Обнаружение.

Примеры тупиков: транспортная пробка, Кольцевая цепь запросов.

Бесконечное ожидание – состояние системы, которого ждет процесс, является возможным, но оно откладывается на неопределенное время. Например, из-за приоритета.

Условия возникновения тупиков (необходимые):

  1. Монопольное управление выделенными ресурсами (взаимоисключение);

  2. Удержание ресурсов на время ожидания следующего;

  3. Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);

  4. Существование кольцевой цепи запросов.

Соседние файлы в папке экз сливы