Программы решающие отдельные задачи управления и сопровождения компьютерной системы что это такое

Архитектура операционной системы. Ядро ОС. Привилегированный и пользовательский режимы работы. Монолитные операционные системы. Многослойные операционные системы. Операционные системы на основе микроядра.

Упрощенная схема архитектуры Windows.

Под архитектурой операционной системы понимают структурную организацию ОС на основе различных программных модулей. Под модулем в общем случае понимают функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами. По своему определению модуль предполагает легкий способ его замены другим при наличии заданных интерфейсов.

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

  • ядро – модули, выполняющие основные функции ОС;
  • модули, выполняющие вспомогательные функции ОС.

В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка страниц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами – системными вызовами – для выполнения тех или иных действий, например, для открытия и чтения файла, получения системного времени и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API. Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными. Вспомогательные модули ОС обычно подразделяются на следующие группы:

  • утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования и т.п.;
  • системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, отладчики;
  • программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор и т.д.;
  • библиотеки процедур различного назначения, упрощающие разработку приложений – библиотека математических функций, функций ввода-вывода и т.д.

Как и обычные приложения, вспомогательные модули ОС обращаются к функциям ядра посредством системных вызовов. Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, то есть являются транзитными. Для надежного управления ходом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. В ином случае некорректно работающее приложение может вмешаться в работу ОС и, например, разрушить часть ее кодов. Обеспечить привилегии операционной системе невозможно без аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы – пользовательский режим (user mode) и привилегированный режим, называемый также режимом ядра (kenel mode) или режимом супервизора (supervisor mode). Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме. Иногда это свойство – работа в привилегированном режиме – служит основным определением понятия «ядро». Приложения ставятся в подчиненное положение за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных с переключением процессора с процесса на процесс, управлением устройствами ввода-вывода, доступом к механизмам распределения и защиты памяти. Выполнение некоторых инструкций в пользовательском режиме запрещается безусловно, тогда как другие запрещается выполнять только при определенных условиях. Например, инструкции ввода-вывода могут быть запрещены приложениям при доступе к контроллеру жесткого диска, но разрешены при доступе к последовательному порту, который выделен в монопольное владение для определенного приложения. Аналогично, выполнение инструкции доступа к памяти для приложения разрешается, если инструкция обращается к области памяти, отведенной данному приложению, и запрещается при обращении к областям памяти, занимаемым ОС и другими приложениями. Таким образом, каждое приложение работает в своем адресном пространстве. Под адресным пространством процесса понимается совокупность всех областей оперативной памяти, выделенных операционной системой данному процессу. Механизм защиты памяти позволяет локализовать некорректно работающее приложение в собственной области памяти, так что его ошибки не оказывают влияния на другие приложения и операционную систему. Повышение устойчивости операционной системы, обеспечиваемое переходом в привилегированный режим, достигается за счет замедления системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению – переключение из привилегированного режима в пользовательский (рис. 3.1) Рис. 3.1. Смена режимов при выполнении системного вызова. Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала, по существу, классической. Ее используют многие операционные системы типа UNIX, Windows NT. В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура операционной системы называется монолитным ядром (monolithic kernel). Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме. Таким образом, монолитное ядро – это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Структура ОС с монолитным представлена на рис. 3.2.

Рис. 3.2. Структура ОС с монолитным ядром Вычислительную систему, работающую под управлением ОС с монолитным ядром, можно рассматривать как систему, состоящую их трех иерархически расположенных слоев. Нижний слой образует аппаратура, промежуточный – ядро, а утилиты, обрабатывающие программы и приложения составляют верхний слой. При этом каждый слой взаимодействует только со смежным слоем. Дальнейшее развитие этой идеи привело к появлению многослойных(layered) операционных систем. В соответствии с многослойным подходом система состоит из иерархии слоев. Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс. На основе функций нижележащего уровня следующий слой строит свои функции – более сложные и мощные, которые, в свою очередь, оказываются примитивами для создания еще более мощных функций вышележащего слоя. Строгие правила касаются только взаимодействия между слоями системы, а между модулями внутри слоя связи могут быть произвольными. Отдельный модуль может выполнить свою работу либо самостоятельно, либо обратиться к другому модулю своего слоя, либо обратиться за помощью к нижележащему слою через межслойный интерфейс. В упрощенном виде ОС многослойной структуры может выглядеть, как показано на рис. 3.3. В общем случае ядро такой ОС может состоять из следующих слоев:

  • Средства аппаратной поддержки ОС. К средствам аппаратной поддержки ОС относят средства поддержки привилегированного режима, систему прерываний, средства переключения контекстов процессов, средства защиты областей памяти и т.п.
  • Машино-зависимые компоненты ОС. Этот слой образуют программные модули, в которых отражаются специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры. Это позволяет разрабатывать вышележащие слои на основе машинно-независимых модулей, существующих в единственном экземпляре для всех видов платформ.
  • Базовые механизмы ядра. Этот слой выполняет наиболее примитивные операции ядра, такие как программное переключение контекстов процессов, диспетчеризацию прерываний, перемещение страниц из памяти на диск и обратно и т.п.
  • Менеджеры ресурсов. Этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами операционной системы. На данном уровне работают менеджеры (называемые также диспетчерами) процессов, ввода-вывода, файловой системы и оперативной памяти. Каждый из менеджеров ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений.
  • Интерфейс системных вызовов. Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы.

Приведенное разбиение ядра ОС на слои является достаточно условным. В реальной системе количество слоев и распределение функций между ними может быть иным. Например, схема на рис. 3.3 в значительной мере отражает слои операционной системы THE Дейкстры. Рис. 3.3. Структура многослойной операционной системы. Альтернативой классическому способу построения операционных систем является микроядерная архитектура. Суть ее состоит в следующем. В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. В состав микроядра обычно входят машинно-зависимые модули, а также модули, выполняющие базовые (но не все) функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью, пересылке сообщений и управлению устройствами ввода-вывода, связанные с загрузкой или чтением регистров устройств. Все остальные высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме. Основным назначением таких приложений является обслуживание запросов других приложений, например, создание процесса, выделение памяти, проверка прав доступа к ресурсу и т.д. Поэтому менеджеры ресурсов, вынесенные в пользовательский режим, называются серверами ОС. Очевидно, что для реализации микроядерной архитектуры необходимым условием является наличие в операционной системе удобного и эффективного способа вызова процедур одного процесса из другого. Поддержка такого механизма и является одной из главных задач микроядра. Структура ОС на основе микроядра показана на рис. 3.4.

Рис. 3.4. Структура ОС на основе микроядра. Схематично механизм обращения к функциям ОС, оформленным в виде серверов, выглядит следующим образом. Клиент, которым может быть либо прикладная программа, либо другой компонент ОС, запрашивает выполнение некоторой функции у соответствующего сервера, посылая ему сообщение. Непосредственная передача сообщений между приложениями невозможна, так как их адресные пространства изолированы друг от друга. Микроядро, работая в привилегированном режиме, имеет доступ к адресным пространствам всех приложений, и поэтому может работать в качестве посредника. Микроядро сначала передает сообщение, содержащее имя и параметры вызываемой процедуры, нужному серверу, затем сервер выполняет запрошенную операцию, после чего микроядро возвращает результаты клиенту с помощью другого сообщения. Таким образом, работа микроядерной ОС соответствует модели клиент-сервер, в которой микроядро выполняет роль транспорта. Операционные системы на основе микроядра удовлетворяют большинству требований, предъявляемым современным ОС, обладая переносимостью, расширяемостью, надежностью и создавая хорошие предпосылки для поддержки распределенных вычислений. Основным недостатком такой архитектуры является снижение производительности. Нетрудно убедиться, что выполнение любого системного вызова будет сопровождаться четырьмя переключениями режимов в привилегированный режим и обратно, в то время как для ОС макроядерной архитектуры таких переключений будет только два (см. рис. 3.1). В соответствии с такой архитектурой построены многие операционные системы реального времени, например, ОС QNX. Как было сказано выше, операционная система Windows является в основном монолитной ОС. Упрощенная схема архитектуры Windows показана на рис. 3.5. В Windows существуют четыре типа пользовательских процессов:

  • фиксированные процессы поддержки системы (system support processes) – например, процесс обработки входа в систему и диспетчер сеансов, не являющиеся сервисами Windows;
  • процессы сервисов (service process) – носители Windows-сервисов, таких как Task Scheduler и Spooler;
  • пользовательские приложения;
  • подсистемы окружения (environment subsystems) – реализованы как часть поддержки среды операционной системы, предоставляемой пользователям и программистам. В настоящее время Windows поставляется только с подсистемой Windows. Подсистема POSIX доступна как часть бесплатного продукта Services for UNIX.
Читайте также:
Что за программа boot

В Windows пользовательские приложения не могут вызывать родные сервисы операционной системы напрямую. Вместо этого они работают с одной или несколькими DLL подсистем. Их назначение заключается в трансляции документированных функций в соответствующие внутренние (и обычно недокументированные) вызовы системных сервисов Windows.

Рис. 3.5. Упрощенная схема архитектуры Windows Windows включает следующие компоненты режима ядра:

  • Исполнительная система (executive) Windows, содержащая базовые сервисы операционной системы, которые обеспечивают управление памятью, процессами и потоками, защиту, ввод-вывод и взаимодействие между процессами.
  • Ядро (kernel) Windows, содержащее низкоуровневые функции операционной системы, которые поддерживают планирование потоков, диспетчеризацию прерываний и исключений, синхронизацию при использовании нескольких процессоров. Оно также предоставляет набор процедур и базовых объектов, применяемых исполнительной системой для реализации структур более высокого уровня.
  • Драйверы устройств (device drivers), в состав которых входят драйверы аппаратных устройств, транслирующие пользовательские вызовы функций ввода-вывода в запросы, специфичные для конкретного устройства, а также сетевые драйверы и драйверы файловых систем.
  • Уровень абстрагирования от оборудования (hardware abstraction level, HAL), изолирующий ядро, драйверы и исполнительную систему Windows от специфики оборудования на данной аппаратной платформе.
  • Подсистема поддержки окон и графики (windowing and graphics system), реализующая функции графического пользовательского интерфейса. Эти функции обеспечивают поддержку окон, элементов управления пользовательского интерфейса и отрисовку графики.

ИНФОРМАТИКА 11 класс: Операционные системы | Видеоурок

Информатика 10 класс (Урок№7 — Программное обеспечение (ПО) компьютеров и компьютерных систем.)

Источник: studfile.net

Ядро и вспомогательные модули ОС

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

ядро — модули ОС, выполняющие основные функции;

модули, выполняющие вспомогательные функции ОС.

Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т. п. Ядро составляет сердцевину операционной системы. Без него ОС является полностью неработоспособной и не сможет выполнить ни одну из своих функций.

В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие, как переключение контекстов, загрузка/выгрузка страниц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами — системными вызовами — для выполнения тех или иных действий, например, для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т. д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования — API.

Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются
резидентными.

Ядро является движущей силой всех вычислительных процессов в компьютерной системе, и крах ядра равносилен краху всей системы. Поэтому разработчики операционной системы уделяют особое внимание надежности кодов ядра, в результате процесс их отладки может растягиваться на многие месяцы.

Обычно ядро оформляется в виде программного модуля некоторого специального формата, отличающегося от формата пользовательских приложений. Термин «ядро» в разных ОС трактуется по-разному. Одним из определяющих свойств ядра является работа в привилегированном
режиме.

Остальные модули ОС выполняют весьма полезные, но менее обязательные функции. Например, к таким вспомогательным модулям могут быть отнесены программы архивирования данных на магнитной ленте, дефрагментации диска, текстового редактора. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек про-цедур.

Поскольку некоторые компоненты ОС оформлены как обычные приложения, то есть в виде исполняемых модулей стандартного для данной ОС формата, то часто бывает очень сложно провести четкую грань между операционной системой и приложениями. Решение о том, является какая-либо программа частью ОС или нет, принимает производитель ОС. Среди многих факторов, способных повлиять на это решение, немаловажными являются перспективы того, будет ли программа иметь массовый спрос у потенциальных пользователей данной ОС.

Вспомогательные модули ОС обычно подразделяются на следующие группы:

утилиты -программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;

системные обрабатывающие программы — текстовые или графи-ческие редакторы, компиляторы, компоновщики, отладчики;

программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор и даже игры;

библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.

Как и обычные приложения, утилиты, обрабатывающие программы и библиотеки ОС для выполнения своих задач, обращаются к функциям ядра посредством системных вызовов.

Разделение операционной системы на ядро и модули-приложения обеспечивает легкую расширяемость ОС. Чтобы добавить новую высокоуровневую функцию, достаточно разработать новое приложение, и при этом не требуется модифицировать ответственные функции, образующие ядро системы. Однако внесение изменений в функции ядра может оказаться гораздо сложнее, и сложность эта зависит от структурной организации самого ядра. В некоторых случаях каждое исправление ядра может потребовать его полной перекомпиляции.

Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, то есть являются транзитными. Постоянно в оперативной памяти располагаются только самые необходимые коды ОС, составляющие ее ядро. Такая организация ОС экономит оперативную память компьютера.

Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функций ядра в привилегированном режиме.

Источник: studopedia.ru

ЯДРО В ПРИВИЛЕГИРОВАННОМ РЕЖИМЕ

Некоторые ОС выполнены так, что ядро содержит лишь 1 модуль, в этом случае изменение свойств ядра весьма сложно (Linux). Другие ядра содержат несколько модулей, они называются микроядерными (напр.Word 2000).

Функции ядра

В состав ядра входят функции, выполняющие внутрисистемные задачи организации вычислительных процессов: переключение контекстов, загрузка-выгрузка страниц, обработка прерываний. Эти функции недопустимы для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них прикладную программную среду.

Приложения могут обращаться к ядру с запросами, т.е. системными вызовами для выполнения тех или иных задач, напр. Чтение – открытие файлов; вывод графической информации на дисплей. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программинга.

Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями ОС, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра (их большая часть) постоянно находятся в оперативной памяти, т.е. являются резидентными.

Ядро является движущей силой всего вычислительного процесса, поэтому особенно важно обеспечить его надежность (защищенность). Часто ядро оформлено в виде модуля специального формата, отличающегося от формата пользовательских приложений. Ядро вычислительной системы– это аппаратные средства, в которые входят процессор и память. Современные ОС состоят не только из программ, а содержат аппаратные средства самого процессора.

Читайте также:
Acer screensaver что это за программа

Вспомогательные модули

1) Утилиты – это программы, решающие отдельные задачи управления и сопровождения компьютерной сист, такие как: программа сжатия дисков, архивации данных и т.д.

2) Системные обрабатывающие программы: текстовые и графические редакторы, компиляторы, компоновщики и т.д.

3) Программы, предоставляющие пользователю дополнительные услуги: специальные программы пользовательского интерфейса, игры и т.д.

4) Библиотеки процедур различного назначения, упрощающие разработку приложений.

Как и обычные приложения, для выполнения своих задач утилиты и обрабатывающие программы и библиотеки ОС обращаются к функциям ядра посредством системных вызовов. Разделение ОС на ядро и приложение обеспечивает легкую расширяемость ОС.

Например, чтобы добавить новую высокоуровневую функцию достаточно разработать новое приложение, при этом не требуется модифицировать ответственные функции, образующие ядро системы. Внесение изменений в функции ядра может оказаться гораздо сложнее. В некоторых случаях такое изменение может потребовать его полной перекомпиляции.

Модули ОС, которые оформлены в виде утилит, системных обработчиков программ и библиотек, обычно загружаются в оперативную память только для выполнения своих функций, т.е. являются транзитными. Постоянно в оперативной памяти находятся только самые необходимые коды ОС, составляющие ее ядро. Такая организация экономит оперативную память компьютера. Важным свойством архитектуры ОС, построенной на ядре, является возможность защиты кодов и данных ОС за счет использования ядра в привилегированном режиме.

ЯДРО В ПРИВИЛЕГИРОВАННОМ РЕЖИМЕ

Для надежного выполнения кода вычислительного процесса ОС должна иметь по отношению к приложениям привелегии, иначе некорректно работающее приложение может разрушить часть кода. Поэтому ОС должна обладать полномочиями, а так же для того, чтобы играть роль «арбитра в споре» приложений за ресурсы системы.

Ни одно из приложений не должно иметь возможность без ведома ОС получить дополнительную область памяти, занимать процессор дольше разрешенного времени, управлять совместно используемыми внешними устройствами. Также привелегии можно обеспечить без специальных средств аппаратной поддержки.

Аппаратура ПК должна поддерживать как минимум 2 режима работы: Пользовательский режим и Привилегированный режим (режим ядра). Приложение ставится в подготовительное положение за счет запрета воспроизведения в привилегированном режиме некоторых критических команд, связанных с переключением процессора с задачи на задачу, управлением устройства ввода-вывода, доступа к механизмам распределения и защиты памяти.

Выполнение некоторых команд в пользовательском режиме запрещается (например команда перехода из польз. режима в привилегированный и обратно). Тогда как другие программы могут быть запрещены для выполнения в определенных условиях. Например, команды вв-выв могут быть запрещены при доступе к контроллеру жесткого диска, который хранит данные, общие для ОС и приложений.

Если какому-то приложению требуется последовательный порт, то ОС может разрешить его. Условие выполнения критической команды находится под полным контролем ОС. Контроль обеспечивается за счет набора команд, защищенных в пользовательском режиме. Аналогичным способом обеспечиваются привелегии ОС при доступе к памяти.

Например, выполнение команды доступа к памяти для приложения разрешается, если команда обращается к области, отведенной для данного приложения; и запрещается, если такое обращение происходит в области, где расписаны коды самой ОС. Полный контроль ОС над доступом к памяти достигается за счет того, что команды конфигурирования механизма защиты памяти (напр., команды, управляющие указателем таблицы дескриптеров памяти) разрешается выполнять только в привилегированном режиме. Важно, что ОС ограничивает обращение не только к своим областям, но и к областям, используемым другими приложениями. В этом случае говорят, что каждая программа выполняется в своем адресном пространстве. Это свойство позволяет локализовать некорректно работающее приложение и обеспечить т.о. общую стабильность работы ОС.

СТРУКТУРА ЯДРА

Состоит из следующих слоев:

1) Средства аппаратной поддержки ОС. К ОС относят не все аппаратные средства компьютера, а только средства ее аппаратной поддержки, т.е. те, которые прямо участвуют в организации вычислительного процесса: — средства поддержки привилегированного режима; — система прерываний; — средства переключения контекстов процессов; — средства защиты области памяти.

2) Машинно-зависимые компоненты ОС (интегрированная схема, выполняющая определенные функции), низкоуровневый код (непосредственно с микросхемами), микрокод. Слоистая структура ядра делает всю ОС расширяемой (открытой), сл-но изменение какого либо из слоев ядра не затрагивает другие ее части.

3) Слой базовые механизмы – выполняет основные функции ядра (низкоуровневые: переключение контекстов процессора; загрузка-выгрузка страниц памяти; низкоуровневые операции вв-вывода), ведет осн. таблицы. В этом слое не принимаются никакие решения относительно действий ядра в какой-либо ситуации; а выполняет лишь те директивы, которые приняты на более высоких слоях.

4) Менеджеры ресурсов (диспетчеры ресурсов) – состоят из модулей, решающих задачи по управлению основными ресурсами ОС.

— процессор, а точнее время, которое выделяется на определенные задачи;

Обычно на данном слое работают диспетчеры процессов, основной задачей которых является учет имеющихся ресурсов, освобождение и их распределение между потребителями (процессами). Каждый из менеджеров ведет учет ресурсов строго определенного типа и планирует их распределение в соответствии с запросами приложений.

Напр., менеджер виртуальной памяти управляет перемещениями страниц из оперативной памяти на диск и обратно. Этот менеджер должен отслеживать интенсивность обращения к страницам, время пребывания в памяти, состояния процессов, использующих данные и многие другие параметры, на основании которых он время от времени принимает решения о том, какие страницы выгрузить, а какие загрузить.

Все менеджеры используют табличную структуру. Для исполнения принятых решений менеджер обращается к нижестоящему слою базовых механизмов с запросами о загрузке-выгрузке конкретной страницы. Внутри слоя существуют тесные взаимные связи, отображающие тот факт, что для выполнения процессу нужен доступ единовременно к нескольким ресурсам, а именно: процессору, области памяти, к определенному файлу или устройству вв-выв. Напр., при создании процесса менеджер процессов обращается к менеджеру памяти, который должен выделить процессу определенную область памяти для его кодов и данных.

5) Интерфейс системных вызовов – является самым верхним слоем ядра, он взаимодействует непосредственно с приложениями, системными утилитами и образует прикладной программный интерфейс (API). Функции API (обслуживание системных вызовов) предоставляют доступ к ресурсам системе в удобной и компактной форме. Для осуществления таких действий системные вызовы обычно обращаются за помощью к функциям менеджеров ресурсов, причем для выполнения одного системного вызова может потребоваться несколько таких обращений.

Источник: poisk-ru.ru

Операционные системы. Назначение. Архитектура операционных систем.

Операционная система (ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом.

Операционная система абстрагирует пользователя от внутреннего представления компьютера.

Назначение:

— Планирование заданий и использования процессора.

— Обеспечение программ средствами коммуникации и синхронизации.

— Управление файловой системой.

Каждая из приведенных функций обычно реализована в виде подсистемы, являющейся структурным компонентом ОС. В каждой операционной системе эти функции, конечно, реализовывались по-своему, в различном объеме.

Архитектура:

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

— ядро — модули, выполняющие основные функции ОС;

— модули, выполняющие вспомогательные функции ОС.

Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т. п. В состав ядра входят функции, решающие задачи организации переключения контекстов, загрузка/выгрузка станиц, обработка прерываний и т. п.

Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти.

Вспомогательные модули ОС обычно подразделяются на следующие группы:

• утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных;

• системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

• программы предоставления пользователю дополнительных услуг — специальный вариант пользовательского интерфейса, калькулятор и даже игры;

• библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.

Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.

Для надежного управления ходом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу ОС и нарушить ее работу.

Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.

Очень важно, что механизмы защиты памяти используются операционной системой не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений. Говорят, что каждое приложение работает в своем адресном пространстве.

Читайте также:
Emoji updater что это за программа на Андроид

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

Виды ядра:

1. Микроядро — это минимальная реализация функций ядра операционной системы.

Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.

К ним относятся:

· управление адресным пространством оперативной памяти.

· управление адресным пространством виртуальной памяти.

· управление процессами и потоками (нитями).

· средства межпроцессной коммуникации.

Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве пользователя и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы.

Достоинство — высокая степень модульности ядра операционной системы. Это упрощает добавление в него новых компонентов. Эта архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.

В то же время микроядерная архитектура операционной системы вносит накладные расходы, связанные с передачей сообщений, что отрицательно влияет на производительность. Требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Примеры Minix, Symbian OS.

2. Монолитное ядро – это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой.

Это повышает быстродействие системы, но пагубно сказывается на ее надежности.

Так как ядро является единой программой, перекомпиляция – это единственный способ добавить в него новые компоненты или исключить неиспользуемые. Следует отметить, что присутствие в ядре лишних компонентов крайне нежелательно, так как ядро всегда полностью располагается в оперативной памяти. Примеры: Windows, Linux, Unix.

3. Наноядро.Крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний.

Наноядро может быть настолько маленьким и примитивным, что даже важнейшие устройства, находящиеся непосредственно на материнской плате или на плате контроллера встраиваемого устройства, такие, как таймер или программируемый контроллер прерываний, обслуживаются специальными драйверами устройств, а не непосредственно ядром.

4. Экзоядро -система, которая обеспечивает каждого пользователя абсолютной копией реального компьютера, но со своим подмножеством ресурсов. В ее задачу входит распределение ресурсов для виртуальных машин, а после этого проверка их использования (то есть отслеживание попыток машин задействовать чужой ресурс). Каждая виртуальная машина на уровне пользователя может работать с собственной операционной системой.

Часто очень трудно отнести конкретное ядро к определенному типу.
10) Файловые системы. Архитектура файловых систем.

Файловые системы — это некий регламент, договоренность, соблюдая которую, мы можем работать с файлами.

Примеры ФС: NTFS, FAT32, ext2, ext3, ext4, ReiserFS; ISO 9660, UDF…

Файлы предоставляют способ хранения информации на диске и последующего ее считывания, который должен оградить пользователя от подробностей способа и места хранения информации и деталей фактической работы дисковых устройств.

Основные атрибуты файла: имя, тип, ссылка на размещение на устройстве, размер, признаки защиты, время создания, чтения и модификации. Информация о файлах хранится в структуре директорий.

Основные операции над файлом: создание, запись, чтение, позиционирование, удаление, сокращение, открытие и закрытие.

Директория (каталог, папка) — directory, folder — структура во внешней памяти, содержащая символьные имена файлов и других директорий и ссылки на них.

Хранение файла на жестком диске:

Смежное размещение.

Простейший способ — хранить каждый файл как непрерывную последовательность блоков диска. При непрерывном расположении файл характеризуется адресом и длиной (в блоках). Файл, стартующий с блока b, занимает затем блоки b+1, b+2, . b+n-1.

· Легко реализовать, так как выяснение местонахождения файла сводится к вопросу, где находится первый блок.

· Обеспечивает хорошую производительность, т.к. целый файл может быть считан за одну дисковую операцию.

· Не всегда имеется подходящий по размеру свободный фрагмент для нового файла.

· Непрерывное распределение внешней памяти неприменимо до тех пор, пока неизвестен максимальный размер файла. Иногда размер выходного файла оценить легко (при копировании). Чаще, однако, это трудно сделать, особенно в тех случаях, когда размер файла меняется.

Единственным приемлемым решением перечисленных проблем является периодическое уплотнение содержимого внешней памяти(дефрагментация, «сборка мусора»), цель кот. состоит в объединении свободных участков в один большой блок. Но это дорогостоящая операция, которую невозможно осуществлять слишком часто.

Т.о., когда содержимое диска постоянно изменяется, данный метод нерационален. Однако для стационарных ФС, например для ФС компакт-дисков, он вполне пригоден.

Связный список.

Внешняя фрагментация — основная проблема рассмотренного выше метода — м.б. устранена за счет представления файла в виде связного списка блоков диска. Запись в директории содержит указатель на первый и последний блоки файла (иногда в качестве варианта используется специальный знак конца файла — EOF). Каждый блок содержит указатель на следующий блок.

· Любой свободный блок м.б. использован для удовлетворения запроса. Нет необходимости декларировать размер файла в момент создания. Файл может расти неограниченно.

· Во-первых, при прямом доступе к файлу для поиска i-го блока нужно осуществить несколько обращений к диску, последовательно считывая блоки от 1 до i-1, то есть выборка логически смежных записей, которые занимают физически несмежные секторы, может требовать много времени. Здесь мы теряем все преимущества прямого доступа к файлу.

· Во-вторых, данный способ не очень надежен. Наличие дефектного блока в списке приводит к потере информации в оставшейся части файла и потенциально к потере дискового пространства, отведенного под этот файл.

· Наконец, для указателя на следующий блок внутри блока нужно выделить место, что не всегда удобно. Емкость блока, традиционно являющаяся степенью двойки (многие программы читают и пишут блоками по степеням двойки), таким образом, перестает быть степенью двойки, так как указатель отбирает несколько байтов.

Таблица отображения файлов.

Одним из вариантов предыдущего способа является хранение указателей не в дисковых блоках, а в индексной таблице в памяти, которая называется таблицей отображения файлов (FAT — file allocation table)

По-прежнему существенно, что запись в директории содержит только ссылку на первый блок. Далее при помощи таблицы FAT можно локализовать блоки файла независимо от его размера. В тех строках таблицы, которые соответствуют последним блокам файлов, обычно записывается некоторое граничное значение, например EOF.

Главное достоинство данного подхода состоит в том, что по таблице отображения можно судить о физическом соседстве блоков, располагающихся на диске, и при выделении нового блока можно легко найти свободный блок диска, находящийся поблизости от других блоков данного файла.

Минусом данной схемы может быть необходимость хранения в памяти этой довольно большой таблицы.

Индексные узлы.

Наиболее распространенный метод выделения файлу блоков диска — связать с каждым файлом небольшую таблицу, называемую индексным узлом (i-node), которая перечисляет атрибуты и дисковые адреса блоков файла. Запись в директории, относящаяся к файлу, содержит адрес индексного блока. По мере заполнения файла указатели на блоки диска в индексном узле принимают осмысленные значения.

Индексированное размещение широко распространено и поддерживает как последовательный, так и прямой доступ к файлу.

Обычно применяется комбинация одноуровневого и многоуровневых индексов. Первые несколько адресов блоков файла хранятся непосредственно в индексном узле, т.о., для маленьких файлов индексный узел хранит всю необходимую информацию об адресах блоков диска. Для больших файлов один из адресов индексного узла указывает на блок косвенной адресации. Данный блок содержит адреса дополнительных блоков диска. Если этого недостаточно, используется блок двойной (тройной) косвенной адресации, который содержит адреса блоков косвенной адресации.

Ссылки:

· Жесткую ссылку невозможно отличить от файла, на который она указывает — для системы они идентичны. При удалении файла, на который есть несколько жестких ссылок, система не освобождает блоки до тех пор, пока существует хоть одна ссылка.

· Мягкая ссылка (символьная ссылка, или symlink) полностью отличается от жесткой: она является маленьким спец. файлом, который содержит путь к файлу.

Каталоги (директории):

1. Самая простая форма системы каталогов состоит из одного каталога, содержащего все файлы. Иногда он называется корневым каталогом, но поскольку он один-единственный, то имя особого значения не имеет. Эта система была широко распространена на первых персональных компьютерах. Преимущества такой схемы заключаются в ее простоте и возможности быстрого нахождения файлов, поскольку поиск ведется всего в одном месте.

2. Дерево каталогов — Такой подход позволяет иметь столько каталогов, сколько необходимо для группировки файлов естественным образом.

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

Источник: cyberpedia.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru