Рациональное управление ресурсами компьютера
Основные ресурсы современного компьютера: процессоры, основная память (оперативная память), таймеры, наборы данных, диски, принтеры, сетевые ресурсы и некоторые другие. Ресурсы распределяются между процессами (задачами).
Процесс – это динамический объект, который возникает в ОС после запуска какой-либо программы на выполнение.
Причем, однозначного соответствия между процессом и программой нет – одна программа может породить несколько процессов, а процесс в ходе своего выполнения может сменить программный файл. Задача организации эффективного совместного использования ресурсов несколькими процессами является сложной из-за случайного характера возникновения от них запросов на потребление ресурсов. ОС организует очереди заявок к ресурсам и обслуживает их по определенным алгоритмам.
Функции операционной системы по управлению ресурсами обычно группируются либо в соответствии с типами ресурсов компьютера, которыми управляет ОС, либо в соответствии с задачами, применяемыми ко всем ресурсам. Программные модули ОС, которые выполняют такие группы функций, называют подсистемами.
Подсистема управления процессами.Для каждого вновь создаваемого процесса ОС генерирует системные информационные структуры, которые содержат данные о потребностях процесса в ресурсах компьютера: памяти, процессорного времени и т. д. Таким образом, процесс можно определить как заявку на потребление системных ресурсов.
Основные задачи подсистемы управления процессами:
· защита ресурсов, в первую очередь области оперативной памяти (адресного пространства процесса), выделенных одному процессу, от посягательств на них других процессов;
· организация, при необходимости, совместного использования ресурсов разными процессами;
· восстановление операционной среды возобновляемого процесса – контекста процесса после перерыва в его работе (состояние регистров, программного счетчика и режим работы процессора, указатели открытых файлов, незавершенные операции ввода-вывода и т. п.);
· синхронизация процессов – приостановка их до наступления какого-либо события в системе;
· организация межпроцессного взаимодействия при параллельном выполнении процессов сложного программного комплекса.
Подсистема управления памятью.Процесс может выполняться только в том случае, если его коды находятся в оперативной памяти.
Основные задачи подсистемы управления памятью:
· отслеживание свободной и занятой физической оперативной памяти;
· выделение памяти процессам и освобождение памяти при завершении процессов;
· настройка адресно-зависимых частей кода процесса на конкретную область физической памяти;
· защита от записи или чтения памяти, предназначенной другому процессу;
· вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всех процессов, и возвращения их в оперативную память, когда подошла очередь предоставления процессу процессорного времени.
Популярный способ управления памятью – применение механизма виртуальной памяти, который позволяет программисту писать программу так, как будто в его распоряжении имеется однородная оперативная память большого объема, превышающая объем имеющейся физической памяти. Объем виртуальной памяти ограничен только размерами адресного пространства процессора.
Подсистема управления файлами и внешними устройствами. Иногда их разделяют на две подсистемы, но современный подход организации работы с устройствами ввода-вывода как с файлами объединяет их.
Файл – это неструктурированная последовательность байтов, имеющая символьное имя и размещенная во внешней памяти.
Следует заметить, что в этом смысле понимается память любого типa (дисковая, электронная и т. д.); она внешняя по отношению к основной памяти, используемой для размещения кодов процессов. Основная память находится только в оперативной памяти компьютера (оперативное запоминающее устройство, ОЗУ). Следует заметить, что каталог – это тоже файл, содержащий данные о входящих в его состав файлах. Поэтому основная часть подсистемы управления файлами и внешними устройствами – это файловая система, которая решает следующие задачи:
· преобразует символьные имена файлов в физические адреса размещения данных этих файлов на диске;
· организует совместный доступ разных процессов к файлам;
· защищает файлы от несанкционированного доступа.
Спектр различных устройств ввода-вывода очень широк. Разные производители реализуют разную логику работы этих устройств. Поэтому необходимы специальные программы – драйверы, которые обеспечивают взаимодействие этих устройств и ОС. Например, для диска – это отображение физических адресов данных на конкретное место поверхности диска с учетом специфики работы механизма управления головками. Кроме этого, выполняется преобразование каждого байта данных в последовательность бит, записываемых на поверхность диска, с определенными физическими параметрами и с применением помехоустойчивого кодирования.
Чем больше драйверов входит в состав операционной системы, тем больше успех ОС у пользователей. Создание драйверов занимаются как разработчики ОС, так и производители внешних устройств. Поэтому ОС должна иметь хорошо определенный интерфейс между драйверами и остальной частью ОС для каждого типа устройств, чтобы разработчики могли разрабатывать драйверы для этой ОС и поставлять в комплекте со своими изделиями.
Подсистема защиты данных и администрирования направлена на защиту данных от:
· сбоев и отказов аппаратуры;
· ошибок программного обеспечения;
· ошибочного или злонамеренного поведения пользователей системы.
Поддержка отказоустойчивости реализуется операционной системой, как правило, на основе резервирования данных и устройств ввода-вывода.
Важная роль отводится администратору сети, который должен правильно назначить права различных пользователей компьютеров системы, политики безопасности и аудита.