Шедулер. Какие операции замедляют работу компьютера в многозадачных системах
Скачать 15.88 Kb.
|
Задание 1 Какие операции замедляют работу компьютера в многозадачных системах? Приведите ответ в свободной форме со своим комментарием. Любые операции замедляют работу компьютера в большей или в меньшей степени, т.к. расходуют процессорное время и оперативную память. Но есть ещё прерывание и системные вызовы. Прерывание (interrupt) - сигнал, сообщающий процессору о наступлении какого-либо события. В зависимости от источника возникновения сигнала прерывания делятся на: - асинхронные, или внешние (аппаратные) - события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши; - синхронные, или внутренние - события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль, обращение к недопустимым адресам памяти или недопустимый код операции; - программные - инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы. Механизм прерываний поддерживается аппаратными и программными средствами ОС. Обработка прерываний имеет более высокий приоритет, чем процессы. Поэтому, когда обнаруживается, что слишком много прерываний, необходимо обратить внимание на то, что это может привести к проблемам с производительностью системы. Системные вызовы являются интерфейсом между прикладными программами и ОС. Операционные системы предлагают процессам, работающим в режиме пользователя, набор интерфейсов для взаимодействия с аппаратными устройствами, такими как процессор, диски или принтеры. В Linux большинство интерфейсов между процессами режима пользователя и аппаратными устройствами реализовано с помощью системных вызовов, направляемых ядру. Задание 2 В каких ситуациях планировщик ввода / вывода noop может быть производительней cfq? Приведите ответ в свободной форме со своим комментарием. NOOP (no-operate) - наиболее простой планировщик. Он банально помещает все запросы в очередь FIFO (First-In, First-Out — первый вошел, первый вышел) и исполняет их вне зависимости от того, пытаются ли приложения читать или писать. Данный планировщик предполагает, что сами устройства хранения данных будут оптимизировать быстродействие операций ввода-вывода (например, внешний RAID-контроллер). Потенциально, планировщик NOOP будет хорошо работать с устройствами хранения данных, которые не имеют механических частей для чтения данных (т.е. головок диска). Причина кроется в том, что данный планировщик не делает никаких попыток оптимизировать движение головок, выполняя простейшее слияние запросов, что также помогает повышению пропускной способности диска. Поэтому такие устройства хранения как флэш-диски, SSD-диски, USB-накопители и т.п., которые имеют очень малое время поиска данных могут получить преимущество, используя планировщик NOOP. |