КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Субъекты в операционных системах (основные определения, содержимое дескрипторов процессов и потоков, переключение процессов и потоков).Процесс в ОС является динамическим объектом, описывающим выполнение программы. Процессу выделяются системные ресурсы: адресное пространство, семафоры, коммуникационные порты, файлы и т.д. Процесс характеризуется текущим состоянием (выполнение, ожидание, готовность и т.д.). В современных операционных системах реализована виртуальная память процессов. Каждый процесс исполняется в собственном адресном пространстве и не может непосредственно обращаться к памяти других процессоров. Такая изоляция процессов друг от друга обеспечивается механизмами операционной системы и поддерживается на аппаратном уровне в современных процессорах. Каждому процессу соответствует контекст, в котором он выполняется. Этот контекст включает пользовательский контекст, содержимое аппаратных регистров — регистровый контекст (регистр счетчика команд, регистр состояния процессора, регистр указателя стека и регистры общего назначения), а также структуры данных ядра (контекст системного уровня), связанные с этим процессом. Каждый процесс в любой момент времени находится в одном из нескольких определенных состояний: инициализация, исполнение, приостановка, ожидание ввода-вывода, завершение и т. п. Рисунок 1. Состояние процесса в Unix Для операционной системы UNIX характерно особое состояние процесса — зомби. Процесс получает это состояние, если он завершился раньше, чем этого ожидал его родительский процесс. В UNIX перевод процессов в состояние зомби служит для корректного завершения группы процессов, освобождения ресурсов и т. п. Поток – субъект ОС функционирующий в рамках процесса, получающий процессорное время для выполнения. Поток включает содержимое набора переменных регистров, отражающих состояние процессора, стек (обычно их несколько), закрытую область памяти, а также уникальный идентификатор потока. Обычно каждый процесс начинается с одного потока, а остальные (при необходимости) создаются в ходе выполнения. Потоки составляют основу планирования и могут: выполняться на одном из процессоров, ожидать события или находиться в каком-то ином состоянии. Рисунок 2. Упрощенная диаграмма состояний потоков в ОС Windows Содержимое дескрипторов процессов и потоков
Рисунок 3. Содержимое дескриптора процесса в ОС Windows Рисунок 4. Содержимое дескриптора потока в ОС Windows Переключение процессов и потоков Наиболее распространенным алгоритмом планирования в системах разделения времени является кольцевой режим (Round Robin). Основной смысл алгоритма состоит в том, что время процессора делится на кванты фиксированного размера, а процессы, готовые к выполнению, выстраиваются в кольцевую очередь. Рисунок 5. Кольцевая очередь У этой очереди имеются два указателя — начала и конца. Когда процесс, выполняющийся на процессоре, исчерпывает свой квант процессорного времени, он снимается с процессора, ставится в конец очереди, а ресурсы процессора отдаются процессу, находящемуся в начале очереди. Если выполняющийся на процессоре процесс откладывается (например, по причине обмена с некоторым внешним устройством) до того, как он исчерпает свой квант, то после повторной активизации он становится в конец очереди. Однако такая схема не единственная, например, часть процессов, потенциально готовых выполняться, может размещаться во внешней памяти. В операционной системе на основании значения приоритета процесса определяется, во-первых, возможность процесса пребывать в основной памяти и на равных конкурировать за процессор. Во-вторых, от значения приоритета процесса зависит размер временного кванта, который предоставляется процессу для работы на процессоре при достижении своей очереди. В-третьих, значение приоритета влияет на место процесса в общей очереди процессов. Рисунок 6. Схема планирования с кольцевой очередью и приоритетами (Linux)
|