Файл: Комплекс управляющих и обрабатывающих программ.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 36

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Мультипрограммирование (многозадачность)- организация работы, при которой в памяти находятся несколько задач и система в определённые моменты времени переключает выполнение с одной задачи на другую по некоторому алгоритму.

Место операционной системы в любой вычислительной системе

Программы- приложения (прикладные программы)

Компиляторы– трансляция кода из языка программирования в машинный код

Редакторы (поиск ошибок в коде программы)

Интерпретаторы – механизм выполнения программного кода в режиме онлайн

Операционная система

Машинный язык –набор команд конкретной вычислительной системы, который интерпретируется непосредственно процессором

Микроархитектура (встроенное программное обеспечение) -содержимое энергонезависимой памяти, позволяющее выполнять простейшие операции над данными на уровне регистров процессора, АЛУ, УУ..

Физические устройства (контроллеры устройств)

Состав операционной системы

  1. Загрузчик- программа, загружающая модули ОС в память

  2. Интерпретатор- трансляция команд пользователя и прикладных программ в машинный язык

  3. Ядро (Kernel, супервизор)- основная программа, управляет файловой системой, планированием процессов, распределением ресурсов…

  4. Драйверы- программы, обеспечивающие корректную работу устройств

  5. Интерфейсы- механизмы, обеспечивающие взаимодействие между разнородными объектами


Составляющие операционной системы

Модули – программные части со строго определёнными функциями и правилами их взаимодействия- интерфейсами (исполняемые- exe, com и объектные модули obj стандартных форматов, библиотеки разных типов –dll (Dynamic Link Library), конфигурационные файлы (ini- файлы), загрузчик операционной системы, драйверы…)

2 класса модулей:

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

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

Состав ядра:

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

if (x!=0) y=1/x;

- функции поддержки приложений- прикладная программная среда. Приложения обращаются к ядру с запросами на выполнение тех или иных действий (открытие и чтение файла, получение системного времени, вывод графической информации на экран)- системные вызовы (System Calls). Системные вызовы образуют интерфейс прикладного программирования – Application Programming Interface- API

f=open(‘C:\\temp\\users\\tt.txt’,’w’)

f.write(‘mama mila ramu’)

f.close()

Pascal: Assign(f,’c:\temp\tt.txt’);

Rewrite(f); - открытие файла в режиме записи

Writeln(f,’mama mila ramu’);

API- набор функций и процедур в ЯП, поддерживаемых конкретной ОС, которые имеют набор формальных параметров, но выполняют системные действия- открытие файла, создание процесса, диалогового окна, выделение памяти (в Windows- ОС называется Win32/64, в Linux/Unix ОС- POSIX)

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

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

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

Для разработчиков прикладных программ все особенности конкретной ОС представлены особенностями API. ОС с

различной внутренней структурой, но с одним и тем же API кажутся одной и той же ОС. Возможность переносить приложения между ОС с различной архитектурой (кроссплатформенность!)

Приложения выполняют обращения к функциям API с помощью системных вызовов (System calls) - создают, удаляют и используют различные объекты (в основном процессы, потоки и файлы). Способы реализации системных вызовов зависят от внутренней структуры ОС связана с особенностями аппаратной платформы

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

Sleep(n);

Типовое строение операционной системы

Пользователь

Прикладные программы

Графический интерфейс (GUI- Graphical User Interface)

Командная оболочка (CLI- Command Line Interface)- cmd, Cygwin,PowerShell..

Системные вызовы – звено для обслуживания запросов со стороны программ на различные действия с ресурсами и аппаратной частью («железом”)

Ядро (ntoskrnl.exe) - управление памятью, устройствами, диспетчеризация процессов…

Драйверы устройств

Уровень абстрагирования от оборудования (HAL- Hardware Abstraction Layer, hal.dll)- скрывает различия в аппаратном обеспечении от основной части ядра, т.е. большая часть кода, работающая в режиме ядра, не должна изменяться при запуске ОС на вычислительных устройствах с разным аппаратным обеспечением

Средства аппаратного контроля (контроллеры)

Аппаратные устройства («железо»)

Основные модули и подсистемы, входящие в ядро:

1. Диспетчер процессов (Task Manager)- создает и завершает процессы и потоки

Системный сервис winlogon.exe- обрабатывает событие нажатия Ctrl-Alt-Delete

2. Справочный монитор защиты (Security Reference Monitor)- обеспечивает защиту на локальной машине

3. Диспетчер виртуальной памяти (Virtual Memory Manager- VMM)- реализует виртуальную память, при которой каждому процессу предоставляется собственное адресное пространство (один процесс «не мешает» работать остальным задачам)


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

5. Диспетчер электропитания (Advanced Configuration and Power Interface Manager- ACPI- Manager)- управление электропитанием устройств, координация запросов устройств, связанных с изменением режима электропитания

6. Диспетчер Plug-and-Play- обеспечивает распознавание устройств после загрузки и управляет их драйверами

7. Диспетчер окон и интерфейс графических устройств – (GDI- Graphic Device Interface)- управляет отображением окон, обеспечивает прием сигналов от клавиатуры и мыши, распределяя информацию приложениям

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

Общая схема архитектуры ядра

Процесс 1

Процесс 2

Процесс 3

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

Модули ядра: файловая система, подсистема управления процессами, подсистема ввода/вывода…

Средства аппаратного контроля (обеспечение корректности работы устройств и поддержка интерфейса устройств)

Устройства вычислительной системы

Архитектуры ядра

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

При добавлении дополнительного функционала в ядро (добавление нового модуля) приходится перекомпилировать все ядро

Надежность работы всей вычислительной системы определяется надежностью работы модулей ядра.

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


Аппаратура любой вычислительной системы должна поддерживать два режима работы: пользовательский (Usermode), в котором работают приложения пользователя (в том числе, и системные сервисы и службы, запущенные от имени пользователя), и привилегированный режим (режим ядра, Kernel mode)

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

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

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



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



Системный вызов реализуется с помощью программного прерывания

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

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