
- •Оглавление
- •Введение
- •Основы теории операционных систем Общие сведения об операционных системах
- •Организация диалога пользователя
- •Графический режим диалога пользователя
- •Файловые менеджеры
- •Назначение функциональных клавиш
- •Системные вызовы
- •Архитектура операционной системы
- •Машино-независимые свойства операционных систем Файловая система пк
- •Типы файлов
- •Физическая организация fat
- •Работа с файлами и каталогами средствами ос ms dos
- •Команды общесистемного назначения
- •Работа с каталогами
- •Работа с файлами
- •Процессы
- •Запрос пользователя на создание процесса.
- •Защищенность и отказоустойчивость ос
- •Система raid – массивов дисков
- •Распределение ресурсов пк
- •Разрешение конфликтов при распределении ресурсов
- •Запрос – ожидание – запрос – ожидание - …..
- •Управление процессами в интерактивных ос
- •Организация ввода – вывода
- •Работа подсистемы по ввода – вывода
- •Поддерживать несколько файловых систем
- •Вести системную информацию о состоянии и распределение устройств:
- •Распределение ресурсов пк
- •Разрешение конфликтов при распределении ресурсов
- •Запрос – ожидание – запрос – ожидание - …..
- •Управление памятью
- •Раздел 1 Раздел 1
- •Раздел 2 Раздел2
- •Кэширование данных
- •Общая схема выполнения запроса к оп в системах с Кэш – памятью (выполнение системного вызова)
- •Операционная система Windows
- •Загрузка windows xp
- •Архитектура Windows xp
- •Основные компоненты ос Windows xp
- •Технологические принципы ос Windows
- •Физическая организация данных ntfs
- •Каталоги ntfs
- •Архивирование данных
- •Компьютерные вирусы
- •Реестр Windows xp
- •Операционная система Linux
- •Основные понятия ос linux
- •Файловая система ос linux
- •Процессы
- •Основные команды ос linux
- •Архивирование и сжатие файлов
- •Shell – сценарии
- •Архитектура сетевой операционной системы
Архитектура операционной системы
Любая сложная система, к которым относиться и ОС компьютера, должна иметь понятную и рациональную структуру, которая может быть получена делением всей системы на отдельные модули. Каждый модуль имеет свое функциональное назначение, между модулями существуют строго определенные правила взаимодействия.
Под архитектурой ОС понимают структурную организацию ОС на основе набора программных модулей. Современные ОС состоят из двух больших частей:
Ядра – модули, которые выполняют основные (базовые) функции ОС, такие как, управление процессами, памятью, устройствами ввода-вывода.;
Вспомогательные модули, которые выполняют вспомогательные функции ОС.
В состав ядра входят функции, которые выполняют внутрисистемные задачи организации вычислительного процесса – распределение ОП, обработка прерываний, подкачка с диска и т.д. Эти функции не доступны приложениям. Функции ядра, которые доступны приложениям, образуют Интерфейс прикладного программирования, API, и создают прикладную программную среду.
Ядро составляет сердцевину ОС и без него ОС не может выполнить ни одну из своих функций. Функции, которые выполняются модулями ядра ОС, часто используются и от скорости их выполнения зависит производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находиться в оперативной памяти, то есть являются резидентными. Надежности ядра ОС уделяется особое значение. Обычно, ядро оформляется в виде программного модуля специального формата, который отличается от формата пользовательских приложений.
Вспомогательные модули загружаются в ОП только на время выполнения своих функций, то есть являются нерезидентными или транзитными.
Вспомогательные модули обычно подразделяются на группы:
Утилиты – программы, решающие отдельные задачи сопровождения и управления компьютерной системой, например программа сжатия дисков, архивирования данных и т.д.
Системные обрабатывающие программы – текстовые и графические редакторы, компиляторы, компоновщики, отладчики, командный интерпретатор (процессор).
Программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры.
Библиотеки процедур – библиотека математических функций, функции ввода – вывода.
Вспомогательные модули оформляются в виде отдельных программ или библиотек процедур.
Решение о том является ли какая-то программа частью ОС или нет принимает разработчик ОС. Некоторые программы могут быть какое-то время приложениями, а затем стать частью ОС, например Internet Explorer.
Операционная система
-
Ядро ОС
Вспомогательные модули
-
Модули для решения внутрисистемных задач
Утилиты
Системные обрабатывающие программы
Библиотеки процедур
Интерфейс прикладного программирования
Программы дополнительных услуг
Разделение ОС на ядро и вспомогательные модули обеспечивает легкую расширяемость ОС, то есть возможность добавление новых программ без внесение изменений в ядро ОС.
Ядро, как правило, состоит из следующих слоев:
-
Аппаратура
Средства аппаратной поддержки ОС
Часть функций ОС может выполняться аппаратными средствами, включают средства защиты областей памяти, поддержки привилегированного режима, систему прерываний и т.д.
Машино - зависимые компоненты ОС
Программные модули, в которых отражается специфика аппаратной платформы компьютера, созданы для возможности разрабатывать вышележащие слои на основе машинно-независимых модулей.
Базовые механизмы ядра
Выполняют наиболее низкие (примитивные) операции ядра, принятые верхним слоем, например выполнить остановку одного процесса и начать выполнение другого
Менеджер (диспетчеры) ресурсов
Выполняют управление основными ресурсами компьютера, менеджеры процессов, ввода-вывода, файловой системы, каждый менеджер ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений. Внутри слоя существуют взаимосвязи между менеджерами разного типа. Часть функций выполняется драйверами устройств. Процессу для выполнения нужен доступ к нескольким ресурсам - определенной области ОП, возможно к определенному файлу или устройству ввода-вывода.
Интерфейс системных вызовов
Осуществляет взаимодействие непосредственно с приложениями и системными утилитами, образует прикладной программный интерфейс ОС. Функции API через системные вызовы предоставляют доступ к ресурсам системы в удобной форме без указания физического расположения ресурса
Такое разбиение ядра является достаточно условным, для конкретной ОС состав может быть иным. Если ОС предназначена для одной аппаратной платформы, то слой машинно-зависимых модулей не выделяется (ОС NetWare). Слой менеджеров может быть разделен на несколько, например выделен слой драйверов устройств.
Обычно у ОС, прошедших большой путь развития, например UNIX, ядро имеет небольшое число слоев, а у сравнительно молодых (Windows NT) ядро разделено на большее число слоев и взаимодействие более четко формализовано.
Многослойная структура ОС
Вычислительную систему, работающую под управлением ОС на основе ядра, можно представить как систему , состоящую из трех слоев: нижний слой – аппаратура ПК, средний – ядро ос и верхний слой – вспомогательные модули ОС. При такой организации ОС приложения не могут непосредственно взаимодействовать с аппаратурой, а только через слой ядра.
приложения
Вспомогательные
модули ОС приложения
Ядро ОС
Аппаратура ПК
Режимы работы ОС
Для надежного управления ходом работы компьютера ОС должна иметь определенные привилегии по отношению к другим задачам (приложениям). Иначе некорректно работающее приложение может вмешаться в работу ОС и испортить часть ее кода.
Обеспечить привилегии ОС невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать, как минимум, два режима работы:
Пользовательский режим (user mode)
Привилегированный режим, режим ядра (kernel mode)
Так как ядро выполняет все основные функции ОС, то ядро работает в привилегированном режиме. Приложения работают в пользовательском режиме.
Приложение ставиться в подчиненное положение за счет запрета выполнения в пользовательском режиме команд, связанных с управлением ресурсами компьютера. Например, команда доступа к памяти для приложения разрешается, когда команда обращается к области памяти, отведенной данному приложению, и запрещается при обращении к областям памяти, занятых самой ОС или другими приложениями. Может быть создано несколько уровней привилегий, процессор Intel поддерживает четыре уровня.
Ядро и приложения могут работать в одном режиме, без поддержки привилегированного режима, например процессор Intel 8088/86, первый процессор для персональных компьютеров фирмы IBM. Некорректно написанные приложения для MS DOS могли разрушить модули самой ОС, что иногда и происходило, но область использования ОС MS DOS не предъявляла высоких требований к надежности.
Часть операционной системы, которая работает в режиме пользователя, так же называется операционным окружением (вспомогательные модули). Операционное окружение предназначено для связи приложений и самой операционной системы.
При выполнении приложений, как правило, требуется обращение к ОС, для выполнения определенных действий, например получения системного времени. Приложение обращается к функциям ОС с помощью системных вызовов. Таким образом, операционное окружение должно обеспечить:
Организацию диалога пользователя;
Выполнение системных вызовов;
Обращение к библиотечным функциям;
Вызов стандартных обслуживающих программ;
Переносимость ОС
Если код ОС может быть сравнительно легко перенесен с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа, то такую ОС называют переносимой или мобильной.
Переносимость ОС может быть достигнута при соблюдении следующих правил:
Большая часть кода ОС должна быть написана на языке, трансляторы, которого имеются на всех компьютерах, куда предполагается переносить ОС (язык С);
Объем машинно-зависимых частей кода, который непосредственно взаимодействует с аппаратными средствами компьютера, должен быть минимизирован;
Аппаратно-зависимый код должен находиться в нескольких модулях, к которым предъявляются требования повышенной надежности.
Совместимость ОС.
Совместимость ОС – возможность операционной системы выполнять приложения, созданные для других ОС. Различается совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов программных модулей.
Двоичная совместимость означает, что можно взять исполнимый файл и запустить его на выполнение в среде другой ОС.
Совместимость на уровне исходных текстов требует наличие соответствующего компилятора в составе программного обеспечения того компьютера, где предполагается выполнять данное приложение, а также совместимость на уровне библиотек и системных вызовов. При этом следует перекомпилировать текст программы в новый исполнимый модуль.
Обладает ли новая ОС совместимостью с существующей ОС зависит от многих факторов. Самый главный из них – архитектура процессора, на котором работает новая ОС. Если процессор имеет тот же набор команд, возможно с добавлением, и тот же диапазон адресов, то совместимость достигается достаточно просто. Для этого достаточно, что бы:
Вызовы функций прикладного программного интерфейса, API , которые содержит приложение, поддерживались данной ОС;
Внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной ОС.
Если совместимость должна быть достигнута для выполнения приложения на процессоре другого типа, то следует организовать эмуляцию двоичного кода.
Для этого разрабатывается специальное программное обеспечение – эмулятор, который последовательно выбирает каждую двоичную команду кода приложения, определяет какие действия выполняет эта команда и создает новую команду для другого процессора.
Прикладная программная среда – совокупность средств ОС, предназначенная для организации выполнения приложений, использующих определенную систему машинных команд, определенный тип прикладного программного интерфейса (системных вызовов) и определенный формат исполнимого файла. Каждая ОС имеет как минимум одну программную среду.