|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Ядро операционной системы и реализация базовых функций ОСОперации, выполняемые в системе над ее объектами, ведут к изменению информации в соответствующих дескрипторах. Основные операции над процессами и ресурсами в ОС выполняются компонентами ядра ОС. Ядро ОС - это базовый набор примитивов и процессов, на основе которых строится остальная часть системы. В состав ядра включают обычно компоненты ОС, реализующие основные, наиболее часто используемые ее функции: · управление процессами; · управление ресурсами; · обработка прерываний и · ввод/вывод. Для реализации базовых функций компоненты ядра должны выполнять следующий набор операций над процессами: · создание (порождение) процесса; · уничтожение процесса (завершение); · блокирование процесса (перевод в состояние ожидания); · разблокирование процесса (перевод в состояние готовности); · активизация процесса (переключение процессора на выполнение соответствующей программы, запуск процесса); · прерывание процесса (приостановка выполнения программы в результате внешнего события, например, истечения кванта времени, выделенного процессору, - перевод процесса из состояния активности в состояние готовности). Для создания процесса вызывается соответствующая функция ОС с параметрами (его имя, первоначально распределяемые ресурсы, память, выделенная для загрузки и инициализации программы, приоритет и т.п.). При вызове данной функции в памяти ВС строится дескриптор, описывающий данный процесс. Этот дескриптор помещается в соответствующую очередь процессов, находящихся в состоянии готовности (если процесс не активизируется сразу после его создания). Порожденный процесс может унаследовать ресурсы родительского процесса, его окружение. Этот механизм используется и при создании нитей (потоков) в многопотоковых системах. Для реализации “родственных связей” процессов информация о непосредственных предках и потомках процессов хранится в их дескрипторах. Активизация (запуск). Запуск одного процесса (более приоритетного) может вызвать прерывание выполнения другого, активного процесса и перераспределение процессора. В этом случае прерванный процесс переходит в состояние готовности и помещается в очередь процессов, претендующих на выделение им времени центрального процессора. Состояние реального процессора на момент прерывания выполнения на нем процесса запоминается в дескрипторе прерванного процесса или в контекстной памяти этого процесса. Блокирование процесса происходит в результате выполнения им запроса к системе на выполнение какого-либо действия (например, ввода или вывода) или на предоставление какого-либо ресурса. Процесс, сделавший запрос, переходит в состояние ожидания, его дескриптор попадает в соответствующую очередь процессов, ожидающих удовлетворения своих запросов. Операция уничтожения процесса является обратной операцией для создания процесса. При уничтожении процесса уничтожается его виртуальный процессор, все распределенные ему ресурсы возвращаются в систему. Если по какой-либо причине родительский процесс завершается раньше, чем порожденные им потомки, то его завершение может быть отложено до завершения порожденных процессов или они могут быть завершены принудительно. Окончание процесса ведет к уничтожению его дескриптора. Кроме того, как уже было показано, ОС может выполнять дополнительно операции по управлению процессами: · приостановки (задержки) процесса; · возобновления задержанного процесса; · изменения приоритета процесса; · изменение полномочий процесса. Приостановка процесса выводит его из списка процессов, конкурирующих за получение ресурсов в системе. Возобновление процесса возвращает его в состав списка, который он занимал до приостановки (если процесс был прерван и задержан в состоянии активности, то его дескриптор попадает в список процессов, находящихся в состоянии готовности и ожидающих выделения им времени центрального процессора; если задерживался процесс, сделавший запрос на какой-либо ресурс, то он остается в очереди процессов, ожидающих распределения этого ресурса). Приостановка/возобновление процесса реализуется через изменение значения соответствующего поля (текущее состояние процесса) в дескрипторе этого процесса. Изменение приоритета процесса может вызвать изменение положения его дескриптора в занимаемой им очереди. Операция изменения приоритета процесса выполняется в соответствии с установленными в данной системе правилами. Ресурсы в системе отслеживаются с помощью дескрипторов ресурсов. Состояние ресурсов в системе изменяется при выполнении одной из следующих операций: · запрос на ресурс от процесса; · выделение ресурса процессу; · освобождение ресурса процессом, которому этот ресурс был распределен, или процессом-производителем данного ресурса (в зависимости от типа ресурса). Запрос на ресурс выполняется процессом. В запросе указывается запрашиваемый ресурс и (для составных ресурсов) количество запрашиваемых единиц ресурса. Результатом запроса является перевод процесса в состояние ожидания и активизация программы распределения ресурса. В том случае, когда ресурс не может быть выделен процессу немедленно, процесс оказывается блокированным в соответствующей очереди, связанной с данным ресурсом. Если ресурс может быть выделен процессу, изменяется состояние ресурса или список доступных для распределения единиц этого ресурса, а процесс запоминается в списке процессов, получивших данный ресурс. Этот список используется системой в том случае, когда возникает необходимость перераспределения ресурса (ресурс может быть изъят у менее приоритетного процесса для удовлетворения запроса, поступившего от процесса с большим приоритетом). При выделении ресурса изменяется и блок управления процессом (описание виртуального процессора процесса). Операция выделения ресурса процессу - ответ системы на соответствующий запрос от процесса. Она выполняется либо немедленно после получения системой запроса на ресурс (если ресурс доступен для распределения), либо после освобождения ресурса другим процессом (ресурс распределяется процессу, находящемуся в очереди первым). Операция освобождения ресурса выполняется процессом, которому ранее был распределен повторно используемый ресурс. В этом случае процесс может освободить только те единицы ресурса, которые были ему выделены системой. Для потребляемого ресурса операцию освобождения может выполнить процесс-производитель этого ресурса. Выполнение операции освобождения ресурса ведет к изменению его состояния или к появлению доступных для распределения единиц этого ресурса в его описи. Для повторно используемых ресурсов ссылка на освободивший ресурс процесс удаляется из списка процессов, которым этот ресурс распределен. Изменяется также и описание виртуального процессора процесса, освободившего ресурс, в его дескрипторе. Таким образом, все операции, выполняемые в системе над ее объектами (процессами и ресурсами) отражаются в соответствующих управляющих блоках системы - дескрипторах этих объектов. Структура дескрипторов различна в разных операционных системах и зависит от свойств процессов в конкретной системе и от типов ресурсов.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |