Функции и структура ОС Windows и Linux

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

Принцип работы системы

Принцип работы системы

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

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

Логические файловые системы

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

Файлы операционной системы

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

Виды

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

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

Виды конструкционных структур ОС

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

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

Дизайн архитектуры ОС

Дизайн архитектуры ОС

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

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

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

Современные монолитные конструкции

Современные монолитные конструкции

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

CP/M и DOS являются простыми примерами монолитных операционных систем. Это системы, которые совместно используют приложения с одним адресным пространством. В CP/M 16-разрядное адресное пространство начинается с системных переменных и области приложения и заканчивается тремя частями:

  • CCP - консольный командный процессор;
  • BDOS - базовая ОС;
  • BIOS - базовый ввод/вывод System.

В DOS 20-разрядное адресное пространство начинается с массива векторов прерываний и системных переменных, за которыми следует резидентная часть и область приложений, а заканчивается блоком памяти, используемым видеокартой и BIOS. Большинство современных систем, включая Linux и структуру ОС Windows, также считаются монолитными, хотя они, безусловно, значительно отличаются от простых примеров CP/M и DOS.

Многослойные системы

Многослойные системы

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

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

Конструкция микроядра

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

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

MACH является ярким примером микроядра, который использовался в современных системах, включая системы NextStep и OpenStep и, в частности, OS X. Большинство исследовательских систем также квалифицируются как ОС с микроядрами.

Виртуальные гипервизоры

Виртуальные гипервизоры

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

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

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

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

Гибридные операционные системы

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

Архитектура Max OSX опирается на микроядро Mach для базовых служб управления системой и ядро BSD для дополнительных сервисов. Остальные функциональные возможности ОС предоставляют сервисы приложений и динамически загружаемые модули (расширения ядра):

  1. IOS операционная система была разработана Apple для iPhone и IPADS. Она работает с меньшим потреблением памяти и вычислительной мощностью, чем Max OS X, и поддерживает сенсорный интерфейс и графику для небольших экранов.
  2. Android OS была разработана для Android-смартфонов и планшетов Open Handset Alliance, в первую очередь Google. Android - это ОС с открытым исходным кодом, в отличие от iOS, что привело к ее популярности. Android имеет структуру ОС Linux и виртуальную машину Java, оптимизированные для небольших платформ. Приложения для Android разработаны с использованием специальной среды разработки для Java-for-Android.

Микроядра и модули

Микроядра и модули

Основная идея микроядер заключается в том, чтобы удалить все несущественные сервисы из ядра и вместо этого реализовать их как системные приложения, тем самым делая ядро настолько малым и эффективным, насколько это возможно. Mach был первым и самым известным микроядром, и теперь он является основным компонентом Mac OSX. Windows NT изначально представляла собой микроядро, но она страдала от проблем с производительностью (по сравнению с Windows 95). Усовершенствованная производительность NT 4.0 за счет перемещения большего количества сервисов в ядро возвратила XP к более монолитному. Другим примером микроядра является QNX, ОС реального времени для встроенных систем.

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

Манипуляции с файловой системой

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

Основные виды деятельности операционной системы в отношении управления файлами:

  1. Прочитывает или записывает файл.
  2. Дает разрешение программе на работу с файлом, которое зависит от чтения, записи, отказа.
  3. Предоставляет пользователю интерфейс для создания/удаления файлов.
  4. Предоставляет интерфейс для создания резервной копии файловой системы.

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

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

Основные виды деятельности ОС в отношении коммуникации:

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

Функциональная операционная система Linux

Функциональная операционная система Linux

Это самая известная и наиболее используемая система с открытым исходным кодом. Многие программисты используют термин Linux для обозначения ядра Linux, а также набора программ, инструментов и сервисов, которые обычно поставляются вместе с ядром Linux. Некоторые пользователи относятся к этой коллекции GNU, поскольку многие инструменты включают компоненты GNU. Хотя и не все установки Linux используют компоненты GNU как часть системы. Android, например, использует структуру ядра ОС Linux и очень мало полагается на инструменты GNU.

Linux отличается от других систем:

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

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

На протяжении многих лет было создано несколько различных систем, которые пытались быть unix-like или unix-compatible, но Linux был самым успешным, намного превосходящим предшественников в популярности.

Большая часть ядра Linux написана на языке программирования C с небольшим количеством сборок из других языков. Каждый дистрибутив содержит сотни или тысячи программ, которые могут быть распределены вместе с ним и для каждой из этих программ.

Типы файловых систем Linux

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

Прогрессивная версия Extended Filesystem (ext), которая в первую очередь была разработана для MINIX. Вторая расширенная версия (Ext2) была улучшенной версией. Ext3 добавил улучшение производительности, Ext4 обеспечил еще больше дополнительных возможностей.

Journaled File System (JFS) была разработана IBM для AIX UNIX. JFS является альтернативой Ext4 в настоящее время и применяется там, где требуется стабильная работа при использовании очень немногих ресурсов. JFS подходит для случаев, когда мощность процессора ограничена.

ReiserFS был представлен как альтернатива Ext3 с улучшенной производительностью и расширенными функциями. Было время, когда файл формата SuSE Linux по умолчанию был ReiserFS, но позже "Рейзер" вышел из бизнеса, и у SuSe не было другого варианта, кроме как вернуться к Ext3. ReiserFS динамически поддерживает расширение файлов, что является относительно расширенной функцией, системе не хватало определенной области производительности.

XFS - это высокоскоростная JFS, которая направлена на параллельную обработку ввода-вывода. NASA по-прежнему использует эту файловую структуру ОС на своих 300-терабайтных серверах хранения.

B-Tree File System (Btrfs) фокусируется на отказоустойчивости, управлении развлечениями, ремонте системы, большой конфигурации хранилища и все еще находится в разработке. Btrfs не рекомендуется для производства.

Существует много форматов файлов, недоступных в Linux, но использующихся при работе с другими ОС: VIS, NTFS от Microsoft, HFS от Apple. Тем не менее работу с файловой структурой ОС можно выполнять в Linux при помощи определенных инструментов, таких как ntfs-3g, для монтирования файловой системы NTFS, не привилегированных под Linux.

Процессор. Совместное использование

Совместное использование процессора

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

Назначение ОС, структуры ОС связаны с мультипрограммированием:

  1. Система одновременно сохраняет несколько заданий в памяти.
  2. Этот набор является подмножеством заданий, хранящихся в пуле.
  3. Система выбирает и начинает выполнять одно из заданий в памяти.
  4. Многопрограммные операционные системы контролируют состояние всех активных программ и ресурсов с использованием программ управления памятью, чтобы гарантировать, что ЦП никогда не будет работать, если нет рабочих процессов для обработки.

Такая схема работы помогает эффективно использовать ЦП.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.