HPUNIX Сайт о ОС и не только!

Ядро и процессы

25 марта 2011 - unix

Tiny Core Linux File Architecture and Boot Process

Ядро и процессы
Основной функцией операционной системы является предоставление среды, под управлением которой могут производиться пользовательские программки (также именуемые приложениями).
Ядро и процессы
Система определяет базисную структуру для выполнения программ, также предлагает набор разных служб, к примеру таких, как операции работы с файлами либо ввод-вывод, и предоставляет интерфейс взаимодействия с ними. Интерфейс программирования системы UNIX очень гибок и богат своими способностями [4], он может отлично поддерживать широкий диапазон приложений. В этой главе описываются главные составляющие систем UNIX, также их взаимодействие меж собой, предоставляющее юзерам массивное средство программирования. Вентиляционые установки, кстате, имеют схожую технологию.

Существует несколько вариантов системы UNIX. Часть из их — это разные реализации System V компании ATT (на сегодня последняя версия System V под заглавием SVR4 является собственностью компании Novell), реализации системы BSD Калифорнийского института в Беркли, OSF/1 организации Open Software Foundation, также SunOS и Solaris, поставляемые компанией Sun Microsystems. В этой главе описывается архитектура ядра и процессов обычных систем UNIX, другими словами систем, базирующихся на SVR2 [3], SVR3 [2], 4.3BSD [5], и их более ранешних версий. Современные варианты UNIX, такие как SVR4, OSF/1, 4.4BSD и Solaris 2.x, существенно отличаются от базисной модели, их архитектура будет тщательно описана в последующих главах книжки.
Среда приложений системы UNIX базирована на базовой абстракции — процессе. В обычных системах процесс делает единую последовательность инструкций в адресном пространстве. Адресное место процесса представляет собой набор адресов памяти, к которым тот имеет доступ и на которые может ссылаться. Процесс выслеживает последовательность выполняемых инструкций с помощью контрольной точки, используя аппаратный регистр, обычно именуемый указателем (счетчиком) команд. Более поздние варианты UNIX поддерживают сходу несколько контрольных точек и, как следует, несколько параллельно выполняемых последовательностей инструкций в одном процессе, именуемых нитями.
Система UNIX является многозадачной. Это значит, что в ней сразу работают несколько процессов. Для этих процессов система обеспечивает некие характеристики виртуальной машины. В традиционной архитектуре виртуальной машины операционная система делает каждому процессу иллюзию того, что он является единственной задачей, выполняемой в данное время. Программер пишет приложение потому что как будто только его код будет производиться системой. В системах UNIX каждый процесс имеет собственные регистры и память, но для операций ввода-вывода и взаимодействия с устройствами должен полагаться на операционную систему.
Ядро и процессы

Адресное место процесса является виртуальным1, и обычно только часть его соответствует участкам в физической памяти. Ядро хранит содержимое адресного места процесса в разных объектах хранения, в том числе в физической памяти, файлах на диске, также в специально за¬резервированных областях свопинга (swap areas), находящихся на локальных либо удаленных дисках. Подсистема управления памятью ядра переключает странички (блоки фиксированного размера) памяти процесса меж этими объектами при необходимости.
Каждый процесс также имеет набор регистров, которые соответствуют реальным аппаратным регистрам. В системе может быть сразу интенсивно огромное количество процессов, но набор аппаратных регистров только один. Ядро хранит регистры процесса, выполняющегося в текущий момент времени в аппаратных регистрах, и сохраняет регистры других процессов в особых структурах данных, отводимых для каждого процесса.
Процессы конкурируют меж собой, пытаясь захватить разные ресурсы системы, такие как микропроцессор (также именуемый CPU либо центральным микропроцессором), память и периферийные устройства. Операционная система должна работать как диспетчер ресурсов, распределяя их нормально. Процесс, не имеющий способности получить нужный ресурс, должен блокироваться системой (его выполнение приостанавливается) до того времени, пока ресурс опять не станет доступен. Микропроцессор является одним из таких ресурсов, потому на одно процессорной системе только один процесс может по-настоящему производиться на этот момент времени. При всем этом другие блокируются, переходя в режим ожидания освобождения микропроцессора либо других ресурсов. Ядро системы дает иллюзию одновременной работы, предоставляя процессам возможность воспользоваться микропроцессором в течение определенного недлинного промежутка времени, именуемого квантом и составляющего обычно около 10 миллисекунд. По истечении сих пор ресурсы микропроцессора передаются последующему процессу. Таким макаром, каждый просуществует несколько вариантов системы UNIX, не использующих виртуальную память. Это самые ранешние реализации UNIX (1-ые ОС, поддерживающие виртуальную память, появились в конце 70-х годов, см. раздел 1.1.4) и некие версии, работающие в режиме реального времени. В этой книжке описываются только системы, поддерживающие виртуальную память.
процесс получает часть процессорного времени, в течение которого работает.
Такая модель функционирования получила заглавие квантования времени (time-slicing).

С другой точки зрения, компьютер предоставляет юзеру разные устройства, такие как микропроцессор, диски, терминалы и принтеры. Разработчикам приложений нет необходимости вникать в детали функционирования и строительные .особенности этих компонент на малом уровне. Операционная система берет на себя полное управление этими устройствами и предоставляет высокоуровневый, абстрактный программный интер¬фейс, которым приложения могут воспользоваться для доступа к аппаратным компонентам. Система прячет все детали, связанные с оборудованием, очень уйрощая тем работу программиста1. Централизуя все управление устройствами, система также предоставляет дополнительные возмож-ности, такие как синхронизация доступа (в тех случаях, когда два юзера в один миг времени попробуют пользоваться одним и этим же устройством) и устранение ошибок. Семантика хоть какого взаимодействия меж приложениями и операционной системой определяется прикладным интерфейсом программирования (APT).
Мы уже стали относиться к операционной системе как к некоторой сути, которая делает нечто. Что все-таки в точности представляет собой эта суть? С одной стороны, операционная система — это программка (нередко именуемая ядром), которая управляет аппаратурой, делает, уничтожает все процессы и управляет ими (рис. 2.1). Если рассматривать обширнее, операционная система не только лишь содержит в себе ядро, но является также основой функционирования других программ и утилит (командных интерпретаторов, редакторов, компиляторов, программ типа date, Is, who и т. д.), составляющих вкупе применимую для работы среду. Ядро само по себе не достаточно применимо для использования. Юзеры, приобретающие систему UNIX, ждут получить вкупе с ней большой набор дополнительных программ. Но ядро, все же, является очень специфичной программкой по многим причинам. Оно определяет программный интерфейс системы. Ядро — это единственная программка, являющаяся нужной, без которой ничего не будет работать. Эта книжка посвящена исследованию ядра системы, и когда будет упоминаться операционная система либо UNIX, это будет означать ядро, если не обсуждено другое.
Малость изменим наш предшествующий вопрос: так что все-таки такое ядро? Есть ли это процесс либо нечто отличающееся от всех других процессов? Ядро — это особая программка, работающая конкретно с аппаратурой.

Но в неких местах разработчики UNIX немного перестарались. Например, интерпрета¬ция устройств работы с магнитной лентой как потоков знаков очень усложнила приложениям правильную обработку ошибок и исключений. Интерфейс работы с магнитной лентой не совершенно успешно вписывается в интерфейс работы с устройствами в системе UNIX [Allm 87].
Ядро находится на диске в файле, обычно имеющем заглавие /vmunix либо /unix (зависимо от производителя ОС). Когда система стартует, с диска загружается ядро с помощью специальной процедуры исходной загрузки (bootstrapping). Ядро инициализирует систему и устанавливает среду для выполнения процессов. Потом создаются несколько исходных процессов, которые в предстоящем порождают другие процессы. После загрузки ядро находится в памяти повсевременно до того времени, пока работа системы не будет завершена. Ядро управляет процессами и предоставляет им разные службы.

Операционная система UNIX обеспечивает свою функциональность 4-мя разными методами:

♦ Прикладные процессы запрашивают от ядра нужные службы с помощью интерфейса системных вызовов (см. рис. 2.1), являющегося центральным компонентом API системы UNIX. Ядро делает эти запросы от имени вызывающих процессов.
♦ Некие неправильные деяния процесса, такие как пробы деления на ноль либо переполнение стека процесса, являются предпосылкой аппаратных исключений. Возникающие ошибки требуют вмешательства ядра, после этого происходит их обработка от имени процесса.
♦ Ядро обрабатывает аппаратные прерывания от устройств перифирии. Устройства употребляют механизм прерываний для оповещения ядра об окончании процесса ввода-вывода либо изменении состояния. Ядро трактует прерывания как глобальные действия, не относящиеся к какому-то одному определенному процессу.
♦ Набор особых системных процессов, таких как swapper либо pagedaemon, занимается выполнением широких системных задач, таких как управление рядом активных процессов либо поддержка пула свободной памяти.
В последующих разделах этой главы будут описаны перечисленные выше механизмы и будет определено понятие контекста выполнения процесса.

Похожие статьи

Рейтинг: +14 Голосов: 207 1259 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!

Найти на сайте: параметры поиска

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

Если к вашему компьютеру подключено сразу несколько мониторов, и вы регулярно...