18. Охарактеризуйте функционирование управления процессором и состояния процесса.
Управление процессором и состояние процесса являются важными аспектами операционных систем, которые позволяют эффективно управлять ресурсами компьютера и обеспечивать работу приложений.
Управление процессором происходит через планировщик задач операционной системы. Планировщик задач отвечает за распределение процессорного времени между запущенными процессами в системе. Он решает, какой процесс будет выполняться следующим и на какое время. Планировщик может использовать различные алгоритмы планирования, такие как Round Robin, FIFO, Priority-based и другие.
Состояние процесса отражает текущее положение процесса в системе и может быть одним из нескольких возможных значений: работающий, готовый, блокированный или завершенный. Работающий процесс активно использует процессорное время, готовый процесс готов к выполнению, но не использует процессорное время, блокированный процесс находится в ожидании завершения операции ввода-вывода или другого события, а завершенный процесс закончил свою работу.
Операционная система управляет состоянием процессов, переводя их из одного состояния в другое в зависимости от их текущего положения и выполняющихся операций. Например, когда процесс начинает выполняться, его состояние изменяется с готового на работающий. Когда процесс завершается, его состояние меняется с работающего на завершенный.
В целом, управление процессором и состояние процесса являются ключевыми элементами операционных систем, которые обеспечивают эффективную работу компьютера и приложений.
19. Охарактеризуйте стратегии выбора процесса.
Существует несколько возможных стратегий выбора готовых процессов из очереди. Для определения той или иной стратегии необходимо принимать во внимание несколько противоречащих друг другу факторов - общее время, необходимое для решения задачи, ограничение на время реакции, важность и т. п. Рассмотрим две стратегии аналогичные тем, которые применяются при арбитраже шины.
Наиболее простой стратегией выбора является циклический (round-robin) метод - процессы выбираются последовательно один за другим в фиксированном порядке и через равные интервалы времени. Основное достоинство метода - простота, однако, поскольку процессам с различными требованиями выделяются равные ресурсы процессора, некоторые из них обслуживаются неадекватно своим потребностям.
Более сложный принцип выбора основан на приоритетах (priorities). При каждом переключении планировщик передает управление готовому процессу с наивысшим приоритетом. Приоритет присваивается процессу в момент его создания и остается постоянным в течение всего времени - статический приоритет (static priority). Такой приоритет, как правило, определяется на основе информации, предоставленной пользователем.
Планирование на основе статических приоритетов может привести к неприятным ситуациям. Процесс с наивысшим приоритетом, если он не находится в состояния ожидания, будет всегда выбираться для исполнения и практически полностью занимать процессор. Нетривиальным является также выбор между процессами с одинаковым приоритетом. Для исключения подобной ситуации применяется какой-либо алгоритм динамического назначения приоритетов (dynamic priority allocation). Haпример, планировщик снижает приоритет исполняемого процесса на фиксированную величину. В результате его приоритет будет ниже, чем у другого готового процесса, который затем и выбирается для исполнения. Таким образом, обеспечивается выполнение всех процессов. Через некоторое время ожидающим процессам возвращаются номинальные значения их приоритетов. Этот метод обеспечивает исполнение процессов даже с низким приоритетом и гарантирует, что процесс с высоким начальным приоритетом не будет непрерывно занимать процессор.
Разница в первоначально назначенных приоритетах приводит к тому, что процессы с более высокими приоритетами будут получать управление чаще, чем другие. Процессы, обращение к которым происходит более интенсивно и/или время реакции которых ограничено, получают в начальный момент более высокие приоритеты; менее важным процессам, для которых допустима отложенная реакция, присваиваются более низкие приоритеты.
Планирование процессов, основанное на приоритетах, работает хорошо, только если разные процессы имеют неодинаковые приоритеты. Присвоение наивысших приоритетов всем процессам не повышает скорость исполнения, так как это не увеличивает быстродействие процессора, - каждый процесс будет ждать в очереди до тех пор, пока все остальные не будут выполнены. Система, в которой всем процессам присвоены одинаковые приоритеты, работает по циклическому принципу. Наилучшие результаты достигаются в системе реального времени, если относительные приоритеты тщательно выбраны и сбалансированы.