Должна ли ос управлять ресурсами компьютера
Современные вычислительные системы состоят из процессоров, памяти, таймеров, дисков, накопителей на магнитных лентах, сетевых коммуникационной аппаратуры, принтеров и других устройств. В соответствии со вторым подходом функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффективности может быть, например, пропускная способность или реактивность системы.
Управление ресурсами включает решение двух общих, не зависящих от типа ресурса задач:
-планирование ресурса - то есть определение, кому когда, а для делимых ресурсов и в каком количестве, необходимо выделить данный ресурс;
-отслеживание состояний ресурса - то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов - какое количество ресурса уже распределено, а какое свободно.
Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, что в конечном счете и определяет их облик в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Так, например, алгоритм управления времени, системой пакетной обработки или системой реального времени.
Особое место среди программных средств всех типов занимают операционные системы, являясь ядром программного обеспечения.
Операционная система – это комплекс программ, обеспечивающих · управление ресурсами, т.е. согласованную работу всех аппаратных средств компьютера;
управление процессами, т.е. выполнение программ, их взаимодействие с устройствами компьютера, с данными;
пользовательский интерфейс, т.е. диалог пользователя с компьютером, выполнение определенных простых команд – операций по обработке информации.
Операционные системы обеспечивают интерфейс между пользователем и аппаратной частью компьютера.
По числу одновременно выполняемых задач выделяют ОС:
• однозадачныеОС (MS-DOS, ранние версии PC DOS);
• многозадачные (OS/2, UNIX, Windows).
Однозначные ОС предоставляют пользователю виртуальную машину и включают средства управления файлами, периферийными устройствами и средства общения с пользователем. Многозадачные ОС дополнительно управляют разделением между задачами совместно используемых ресурсов.
По числу одновременно работающих пользователей выделяют ОС:
• однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
• многопользовательские (UNIX, Windows NT).
Отличием многопользовательских систем является наличие средств защиты информации пользователей от несанкционированного доступа.
Многопроцессорная обработка предполагает поддержку работы нескольких процессоров и присутствует в ОС Solaris 2.x фирмы Sun, OS/2 фирмы IBM, Windows NT фирмы Microsoft, NetWare 4.1 фирмы Novell и др. Отличием сетевой ОС от локальной являются средства передачи данных между компьютерами по линиям связи и реализация протоколов передачи данных, например IP, IPX и др.
За время существования компьютеров операционные системы претерпели значительную эволюцию. Так, первые ОС были однопользовательскими и однозадачными. Эффективность использования ресурсов компьютера в этом случае оказывалось невысокой из-за простоев всех, кроме одного работающего периферийного устройства компьютера. Например, при вводе данных простаивал центральный процессор, устройства вывода и внешние ЗУ.
По мере роста возможностей, производительности и изменениях в соотношении стоимости устройств компьютера положение стало нетерпимым, что привело к появлению многозадачных операционных систем, остававшихся однопользовательскими.
Такие ОС обеспечивают постановку заданий в первую очередь на выполнение, параллельное выполнение заданий, разделение ресурсов компьютера между выполняющимися заданиями. Так, например, одно задание может выполнять ввод данных, другое – выполняться ЦП, третье – выводить данные, четвёртое – стоять в очереди. Важнейшее техническое решение, обусловившее такие возможности, – появление у внешних устройств собственных процессоров (контроллеров).
При многозадачном режиме:
В оперативной памяти находится несколько заданий пользователей;
Время работы процессора разделяется программами, находящимися в оперативной памяти и готовыми к обслуживанию процессором;
Параллельно с работой процессора происходит обмен информацией с различными внешними устройствами.
Наиболее совершенны и сложны многопользовательские многозадачные ОС, которые предусматривают одновременное выполнение многих заданий многих пользователей, обеспечивают разделение ресурсов компьютеров соответствии с приоритетами пользователей и защиту данных каждого пользователя от несанкционированного доступа. В этом случае ОС работает в режиме разделения времени, т.е. обслуживает многих пользователей, работающих каждый со своего терминала.
Основные линии ОС.
Отличительные особенности Windows:
1) Простота и удобство в использовании. Windows оснащена несколькими функциями поиска неисправностей, включая утилиту системной информации, функцию проверки реестра, функцию проверки конфликтов версий (Version Conflict Manager) и мастер профилактического обслуживания (Maintenance Wizard).
2) Качество. Приложения загружаются быстрее. Windows поддерживает новую файловую систему FAT32, что позволяет существенно увеличить скорость работы с дисковыми накопителями и повысить плотность хранения информации. Windows содержит обновленную и расширенную библиотеку драйверов устройств, что обеспечивает возможность работы с самой различной периферией.
3) Поддержка технологий нового поколения.Windows поддерживает технологии и стандарты нового поколения, включая универсальную шину USB, расширенный стандарт Plug and Play и технические средства контроля энергопотребления. Встроенная поддержка MMX, Accelerated Graphics Port, Microsoft DirectX, поддержка дисков стандарта DVD и других новых технологий обеспечивает Windows великолепную обработку трехмерной графики.
К достоинствам Windows можно отнести:
1. Независимость программ от внешних устройств.
2. Средства для построения пользовательского интерфейса Windows содержат все необходимые функции для построения пользовательского интерфейса программ: окон, меню, запросов и т.д.
3. Доступность всей оперативной памяти. Это облегчает создание на ее базе больших программ.
4. Связь и внедрение объектов - новый способ обмена данными между приложениями, при котором вы имеется возможность комбинировать изображение, звук и текст.
5. Использование масштабируемых шрифтов True Type. В Windows действует принцип WYSIWYG (What you see is what you get), который означает, что та информация, которую вы видите на экране, соответствует тому, что выдается принтером при распечатке.
6. Единый пользовательский интерфейс. Действия с программами в среде Windows стандартизированы.
10. Совместимость с DOS-приложениями.
11. Удобство поддержки устройств и мультимедиа . Windows упрощает работу с внешними устройствами.
MacOS (Apple). MacOS стала первой ОС, предложившей пользователю удобства графического интерфейса, рабочий стол с иконками, соответствующими папкам и программам, удобные средства настройки. MacOS наиболее рационально использует ресурсы компьютера - написанные для нее программы работают вдвое быстрее, чем их конкуренты на PC аналогичной конфигурации.
1973 год - год появления написанной на языке Си операционной системы UNIX. Ее основные свойства: 1-ое -это концепция файлов. Основным объектом, которым оперирует операционная система, является файл. Файл, с точки зрения операционной системы UNIX, -это внешнее устройство. Файл -это каталог, который содержит информацию о содержащихся в нем файлах. И так далее, на сегодняшний день, файлом может считаться, в некотором смысле и процесс, который может работать. 2-ое свойство -это особая структура ОС. В отличие от предыдущих операционных систем, в которых каждая команда была «зашита» внутрь операционной системы, т.е. ее нельзя было как -либо модифицировать, в UNIX-е проблемы команд решены. Во-первых, UNIX декларирует стандартный интерфейс передачи параметров извне внутрь процесса. Во-вторых, все команды реализованы в виде файлов. Это означает, что можно свободно добавлять новые команды в систему, а также убирать и модифицировать их. То есть система UNIX открыта и ее можно легко развивать.
Свое происхождение многозадачная многопользовательская 32-разрядная система Linux ведет от класса универсальных ОС UNIX, которые в течение многих лет (еще с 60-х годов!) обслуживали «большие» промышленные компьютеры. Проект UNIX объединяет десятки (!) различных ОС, созданных для своих компьютеров различными фирмами. Единственной областью, в которой работал Linux, вплоть до самого последнего момента оставались сети. До сих пор большая часть Web-серверов Интернет работает именно под управлением Linux. Да и в локальных сетях крупных компаний Linux неплохо справлялся с ролью администратора.
Режимы работы ОС.
Суть режима разделения времени: каждой программе, находящейся в оперативной памяти и готовой к исполнению, выделяется для исполнения фиксированный, задаваемый в соответствии с приоритетом пользователя интервал времени (интервал мультиплексирования). Если программа не выполнена до конца за этот интервал, её исполнение принудительно прерывается, и программа переводится в конец очереди. Из начала очереди извлекается следующая программа, которая исполняется в течение соответствующего интервала мультиплексирования, затем поступает в конец очереди и т.д. в соответствии с циклическим алгоритмом. Если интервал мультиплексирования достаточно мал (~ 200 мс), а средняя длина очереди готовых к исполнению программ невелика (~ 10 мс), то очередной квант времени выделяется программе каждые 2 с. В этих условиях ни один из пользователей практически не ощущает задержек, т.к. они сравнимы со временем реакции человека.
Одной из разновидностей режима разделения времени является фоновый режим, когда программа с более низким приоритетом работает на фоне программы с более высоким приоритетом. Режим реального времени- схема, при которой ЭВМ управляет некоторым внешним процессом, обрабатывая данные и информацию, непосредственно поступающую от объекта управления.
Основные подсистемы ОС:
командный процессор-программа, отвечающая за интерпретацию и исполнение простейших команд, подаваемых пользователем, и его взаимодействие с ядром ОС; драйверы - специализированные программки для управления различными устройствами, входящими в состав компьютера; интерфейс- диалог пользователя с компьютером, выполнение операций по обработке информации; файловая система- предназначенная для организации работы с хранящимися на диске данными и обеспечения стоимостного использования файлов несколькими пользователями и процессами. Файловая система ОС определяет структуру хранения файлов и каталогов на диске, правила задания имен файлов, допустимые атрибуты, права доступа и др; система прерываний- позволяет микропроцессору выполнять основную работу, не отвлекаясь на проверку состояния сложных систем, или прервать выполняемую работу и переключиться на анализ возникшей ситуации сразу после ее появления; утилиты- небольшие программы, обслуживающие различные устройства компьютера(например, утилита форматирования магнитных дисков);система загрузки –при запуске ОС проверяет наличие на диске ядра ОС, состоящего из файлов, загружает их в ОЗУ, запускает на исполнение системные файлы, дополнительно тестирует оборудование, подключает драйверы и тд; система ввода-вывода.
Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.
К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа — это статический объект, представляющий собой файл с кодами и данными. Процесс — это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prgl. exe, где prgl. exe — это имя файла, в котором хранится код программы.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением операционной системы. Например, мультипрограммная операционная система организует одновременное выполнение сразу нескольких процессов на одном компьютере, поочередно переключая процессор с одного процесса на другой, исключая простои процессора, вызываемые обращениями процессов к вводу-выводу. ОС также отслеживает и разрешает конфликты, возникающие при обращении нескольких процессов к одному и тому же устройству ввода-вывода или к одним и тем же данным. Критерий эффективности, в соответствии с которым ОС организует управление ресурсами компьютера, может быть различным. Например, в одних системах важен такой критерий, как пропускная способность вычислительной системы, в других — время ее реакции. Соответственно выбранному критерию эффективности операционные системы по-разному организуют вычислительный процесс.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
- планирование ресурса — то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
- удовлетворение запросов на ресурсы;
- отслеживание состояния и учет использования ресурса — то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
- разрешение конфликтов между процессами.
Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых в конечном счете и определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Например, применяемый алгоритм управления процессором в значительной степени определяет, может ли ОС использоваться как система разделения времени, система пакетной обработки или система реального времени.
Задача организации эффективного совместного использования ресурсов несколькими процессами является весьма сложной, и сложность эта порождается в основном случайным характером возникновения запросов на потребление ресурсов. В мультипрограммной системе образуются очереди заявок от одновременно выполняемых программ к разделяемым ресурсам компьютера: процессору, странице памяти, к принтеру, к диску. Операционная система организует обслуживание этих очередей по разным алгоритмам: в порядке поступления, на основе приоритетов, кругового обслуживания и т. д. Анализ и определение оптимальных дисциплин обслуживания заявок является предметом специальной области прикладной математики — теории массового обслуживания. Эта теория иногда используется для оценки эффективности тех или иных алгоритмов управления очередями в операционных системах. Очень часто в ОС реализуются и эмпирические алгоритмы обслуживания очередей, прошедшие проверку практикой.
Таким образом, управление ресурсами составляет важную часть функций любой операционной системы, в особенности мультипрограммной. В отличие от функций расширенной машины большинство функций управления ресурсами выполняются операционной системой автоматически и прикладному программисту недоступны.
Функции операционных систем по управлению ресурсами компьютера.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является основным назначением любой операционной системы.
Основные ресурсы современных вычислительных систем: процессоры и основная память. Ресурсы распределяются между процессами. Процесс (задача) –программа в стадии выполнения. Программа – это статический объект, представляющий собой файл с кодами и данными. Процесс – это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы.
Основные критерии эффективности, в соответствии с которым ОС организует управление ресурсами компьютера: пропускная способность вычислительной системы и время реакции.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
1 - планирование ресурса – то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
2 - удовлетворение запросов на ресурсы;
3 - отслеживание состояния и учет использования ресурса – то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
4 - разрешение конфликтов между процессами.
Большинство функций управления ресурсами выполняются операционной системой автоматически и прикладному программисту недоступны.
Функциями ОС по управлению памятью являются отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.
Управление памятью включает распределение имеющейся физической памяти между всеми существующими в системе в данный момент процессами, загрузку кодов и данных процессов в отведенные им области памяти, настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти
Одним из наиболее популярных способов управления памятью в современных операционных системах является использование механизма виртуальной памяти, при котором все данные, используемые программой, хранятся на диске и при необходимости частями (сегментами или страницами) отображаются в физическую память. Это позволяет программисту писать программу так, как будто в его распоряжении имеется однородная оперативная память большого объема, часто существенно превышающего объем имеющейся физической памяти. При перемещении кодов и данных между оперативной памятью и диском подсистема виртуальной памяти выполняет трансляцию виртуальных адресов, полученных в результате компиляции и компоновки программы, в физические адреса ячеек оперативной памяти. Очень важно, что все операции по перемещению кодов и данных между оперативной памятью и дисками, а также трансляция адресов выполняются ОС прозрачно для программиста.
Защита памяти – это избирательная способность предохранять выполняемую задачу от записи или чтения памяти, назначенной другой задаче. Средства защиты памяти, реализованные в операционной системе, должны пресекать несанкционированный доступ процессов к чужим областям памяти.
Функции операционных систем по управлению ресурсами компьютера.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является основным назначением любой операционной системы. Основные ресурсы современных вычислительных систем: процессоры и основная память. Ресурсы распределяются между процессами. Процесс (задача) –программа в стадии выполнения. Программа – это статический объект, представляющий собой файл с кодами и данными. Процесс – это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на
выполнение», то есть создать новую единицу вычислительной работы.
Основные критерии эффективности, в соответствии с которым ОС организует управление ресурсами компьютера: пропускная способность вычислительной системы и время реакции.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
1 - планирование ресурса – то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
2 - удовлетворение запросов на ресурсы;
3 - отслеживание состояния и учет использования ресурса – то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
4 - разрешение конфликтов между процессами.
Большинство функций управления ресурсами выполняются операционной системой автоматически и прикладному программисту недоступны.
Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает синхронизацию процессов, а также обеспечивает взаимодействие между процессами.
Для каждого вновь создаваемого процесса ОС генерирует системные информационные структуры процесса, которые содержат данные о потребностях процесса в ресурсах вычислительной системы, а также о фактически выделенных ему ресурсах. Чтобы процесс мог быть выполнен, операционная система должна назначить ему область оперативной памяти, в которой будут размещены коды и данные процесса, а также предоставить ему необходимое количество процессорного времени.
В мультипрограммной операционной системе одновременно может существовать несколько процессов. Часть процессов порождается по инициативе пользователей и их приложений, такие процессы обычно называют пользовательскими. Другие процессы, называемые системными, инициализируются самой операционной системой для выполнения своих функций.
Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов. Одним из наиболее тщательно защищаемых ресурсов процесса являются области оперативной памяти, в которой хранятся коды и данные процесса. Совокупность всех областей оперативной памяти, выделенных операционной системой процессу, называется его адресным пространством.
На протяжении периода существования процесса его выполнение может быть многократно прервано и продолжено. Для того чтобы возобновить выполнение процесса, необходимо восстановить состояние его контекст. Контекст процесса – состояние операционной среды, которое идентифицируется состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т. д.
Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.
К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа - это статический объект, представляющий собой файл с кодами и данными. Процесс - это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prgi.exe, где prgi.exe - это имя файла, в котором хранится код программы.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением операционной системы. Например, мультипрограммная операционная система организует одновременное выполнение сразу нескольких процессов на одном компьютере, поочередно переключая процессор с одного процесса на другой, исключая простои процессора, вызываемые обращениями процессов к вводу-выводу. ОС также отслеживает и разрешает конфликты, возникающие при обращении нескольких процессов к одному и тому же устройству ввода-вывода или к одним и тем же данным.
Критерий эффективности, в соответствии с которым ОС организует управление ресурсами компьютера, может быть различным. Например, в одних системах важен такой критерий, как пропускная способность вычислительной системы, в других — время ее реакции. Соответственно выбранному критерию эффективности операционные системы по-разному организуют вычислительный процесс.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
1. планирование ресурса — то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
2. удовлетворение запросов на ресурсы;
3. отслеживание состояния и учет использования ресурса — то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
4. разрешение конфликтов между процессами.
Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых, в конечном счете, и определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Например, применяемый алгоритм управления процессором в значительной степени определяет, может ли ОС использоваться как система разделения времени, система пакетной обработки или система реального времени.
Задача организации эффективного совместного использования ресурсов несколькими процессами является весьма сложной, и сложность эта порождается в основном случайным характером возникновения запросов на потребление ресурсов. В мультипрограммной системе образуются очереди заявок от одновременно выполняемых программ к разделяемым ресурсам компьютера: процессору, странице памяти, к принтеру, к диску. ОС организует обслуживание этих очередей по разным алгоритмам: в порядке поступления, на основе приоритетов, кругового обслуживания и т.д.
Таким образом, управление ресурсами составляет важную часть функций любой операционной системы, в особенности мультипрограммной. В отличие от функций расширенной машины большинство функций управления ресурсами выполняются операционной системой автоматически и прикладному программисту недоступны.
Функциональные компоненты операционной системы
Автономного компьютера
Функции операционной системы автономного компьютера обычно группируются либо в соответствии с типами локальных ресурсов, которыми управляет ОС, либо в соответствии со специфическими задачами, применимыми ко всем ресурсам. Иногда такие группы функций называют подсистемами. Наиболее важными подсистемами управления ресурсами являются подсистемы управления процессами, памятью, файлами и внешними устройствами, а подсистемами, общими для всех ресурсов, являются подсистемы пользовательского интерфейса, защиты данных и администрирования.
Управление процессами
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами.
Для каждого вновь создаваемого процесса ОС генерирует системные информационные структуры, которые содержат данные о потребностях процесса в ресурсах вычислительной системы, а также о фактически выделенных ему ресурсах. Таким образом, процесс можно также определить как некоторую заявку на потребление системных ресурсов,
Чтобы процесс мог быть выполнен, операционная система должна назначить ему область оперативной памяти, в которой будут размещены коды и данные процесса, а также предоставить ему необходимое количество процессорного времени. Кроме того, процессу может понадобиться доступ к таким ресурсам, как файлы и устройства ввода-вывода.
В информационные структуры процесса часто включаются вспомогательные данные, характеризующие историю пребывания процесса в системе (например, какую долю времени процесс потратил на операции ввода-вывода, а какую на вычисления), его текущее состояние (активное или заблокированное), степень привилегированности процесса (значение приоритета). Данные такого рода могут учитываться операционной системой при принятии решения о предоставлении ресурсов процессу.
В мультипрограммной операционной системе одновременно может существовать несколько процессов. Часть процессов порождается по инициативе пользователей и их приложений, такие процессы обычно называют пользовательскими. Другие процессы, называемые системными, инициализируются самой операционной системой для выполнения своих функций.
Поскольку процессы часто одновременно претендуют на одни и те же ресурсы, то в обязанности ОС входит поддержание очередей заявок процессов на ресурсы, например очереди к процессору, к принтеру, к последовательному порту.
Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов. Одним из наиболее тщательно защищаемых ресурсов процесса являются области оперативной памяти, в которой хранятся коды и данные процесса. Совокупность всех областей оперативной памяти, выделенных операционной системой процессу, называется его адресным пространством. Говорят, что каждый процесс работает в своем адресном пространстве, имея в виду защиту адресных пространств, осуществляемую ОС. Защищаются и другие типы ресурсов, такие как файлы, внешние устройства и т. д. Операционная система может не только защищать ресурсы, выделенные одному процессу, но и организовывать их совместное использование, например, разрешать доступ к некоторой области памяти нескольким процессам.
Таким образом, подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает синхронизацию процессов, а также обеспечивает взаимодействие между процессами.
Управление памятью
Память является для процесса таким же важным ресурсом, как и процессор, так как процесс может выполняться процессором только в том случае, если его коды и данные (не обязательно все) находятся в оперативной памяти. Управление памятью включает распределение имеющейся физической памяти между всеми существующими в системе в данный момент процессами, загрузку кодов и данных процессов в отведенные им области памяти, настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти каждого процесса.
Существует большое разнообразие алгоритмов распределения памяти. Они могут отличаться, например, количеством выделяемых процессу областей памяти (в одних случаях память выделяется процессу в виде одной непрерывной области, а в других - в виде нескольких несмежных областей), степенью свободы границы областей (она может быть жестко зафиксирована на все время существования процесса или же динамически перемещаться при выделении процессу дополнительных объемов памяти).
Одним из наиболее популярных способов управления памятью в современных операционных системах является так называемая виртуальная память. Наличие в ОС механизма виртуальной памяти позволяет программисту писать программу так, как будто в его распоряжении имеется однородная оперативная память большого объема, часто существенно превышающего объем имеющейся физической памяти. В действительности все данные, используемые программой, хранятся на диске и при необходимости частями отображаются в физическую память. При перемещении кодов и данных между оперативной памятью и диском подсистема виртуальной памяти выполняет трансляцию виртуальных адресов, полученных в результате компиляции и компоновки программы, в физические адреса ячеек оперативной памяти. Очень важно, что все операции по перемещению кодов и данных между оперативной памятью и дисками, а также трансляция адресов выполняются ОС прозрачно для программиста.
Защита памяти — это избирательная способность предохранять выполняемую задачу от записи или чтения памяти, назначенной другой задаче. Правильно написанные программы не пытаются обращаться к памяти, назначенной другим. Но реальные программы часто содержат ошибки и такие попытки иногда предпринимаются. Средства защиты памяти, реализованные в ОС, должны пресекать несанкционированный доступ процессов к чужим областям памяти.
Таким образом, функциями ОС по управлению памятью являются отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.
Читайте также: