Распределение ресурсов ЭВМ между процессами
После запуска программы создается соответствующий ей процесс, которому выделяются ресурсы ЭВМ. Каждый процесс получает адресное пространство в ОЗУ, содержащее стек, регистры, счетчик команд и другие необходимые элементы. Также ресурсами являются время процессора и доступ к устройствам ввода-вывода.
В каждый момент времени процесс может находиться в одном из следующих состояний:
- создание – подготовка условий для исполнения процессором;
- выполение – непосредственное исполнение процессором;
- ожидание по причине занятости какого-либо требуемого ресурса;
- готовность – процесс не исполняется, но все необходимые для выполнения процесса, кроме времени процессора, предоставлены;
- завершение – нормальное или аварийное окончание работы процесса, после которого время процессора и другие ресурсы ему не предоставляются.
Процесс могут породить ОС, пользователь или другой процесс. ОС может выполнять несколько процессов одновременно, однако в каждый момент времени выполняется только один процесс. Таким образом, создается иллюзия многозадачности за счет мгновенного перераспределения ресурсов ЭВМ, прежде всего, времени процессора. Завершение процесса осуществляется ОС, другими процессами или пользователем, например, закрывающим программу.
Специальная программа планировщик, являющаяся частью ОС, распределяет ресурсы ЭВМ между процессами. Таким образом, процессы конкурируют за ресурсы. Каждый процесс имеет приоритет, в соответствии с которым он получает ресурсы ЭВМ. Наибольший приоритет имеют компоненты ОС, наименьший – программы пользователя. Приоритет процесса зависит также от частоты запроса процессом ресурсов. Чем более требователен процесс к ресурсам, тем он имеет более высокий приоритет.
Пример распределения времени процессора между процессами представлен на рисунке.
Процесс 1 – высокий приоритет.
Процесс 2 – средний приоритет.
Процесс 3 – низкий приоритет.
Переключение между процессами осуществляется каждые несколько миллисекунд. Поэтому у пользователя создается впечателение одновременной работы нескольких процессов. Однако в некоторых случаях доступ к устройствам ввода-вывода следующего процесса осуществляется только после того, как другой процесс освободил его. Например, распечатка документов на принтере несколькими пользователями.
Пример распределения ОЗУ между процессами представлен на рисунке.
После запуска процесса ему выделяется адресное пространство. В памяти могут располагаться несколько процессов, причем один процесс не имеет доступ к адресному пространству другого процесса. Если объема ОЗУ не хватает для выполнения всех процессов, то выделяется виртуальная память на жестком диске, где хранится часть данных процесса. Жесткий диск, на котором располагается виртуальная память, гораздо медленнее, чем ОЗУ, поэтому в виртуальной памяти хранятся процессы, остановленные в данный момент или с самым низким приоритетом.
В рамках одного процесса могут создаваться потоки. Потоки сообща используют ресурсы, выделяемые для процесса, прежде всего, объем ОЗУ. По существу, потоки выполняются в рамках одного процесса точно так же, как процессы выполняются на одном компьютере. Но в каждый отдельный момент выполняется один процесс и один поток, только переключение между ними осуществляется очень быстро.
Основной причиной появления потоков является возможность разделения функций процесса между потоками и выполнение их параллельно. Например, некоторому процессу необходимо выполнить печать документа, однако принтер занят печатью документа другого процесса. Если процесс однопоточный, то процесс остановится и будет ждать разрешения на печать. В случае многопоточного процесса во время простоя другой поток процесса может выполнять свои функции, например, сохранить файл документа на жестком диске.
Кроме этого, создание и удаление потоков осуществляется намного быстрее, чем создание и удаление процессов, что ускоряет работу процесса в целом.
Дата добавления: 2015-08-08; просмотров: 590;