ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 171
Скачиваний: 1
| Программы- приложения (прикладные программы) | ||
| Компиляторы– трансляция кода из языка программирования в машинный код | Редакторы (поиск ошибок в коде программы) | Интерпретаторы – механизм выполнения программного кода в режиме онлайн |
| Операционная система | ||
| Машинный язык –набор команд конкретной вычислительной системы, который интерпретируется непосредственно процессором | ||
| Микроархитектура (встроенное программное обеспечение) -содержимое энергонезависимой памяти, позволяющее выполнять простейшие операции над данными на уровне регистров процессора, АЛУ, УУ.. | ||
| Физические устройства (контроллеры устройств) | ||
-
Загрузчик- программа, загружающая модули ОС в память -
Интерпретатор- трансляция команд пользователя и прикладных программ в машинный язык -
Ядро (Kernel, супервизор)- основная программа, управляет файловой системой, планированием процессов, распределением ресурсов… -
Драйверы- программы, обеспечивающие корректную работу устройств -
Интерфейсы- механизмы, обеспечивающие взаимодействие между разнородными объектами
Составляющие операционной системыМодули – программные части со строго определёнными функциями и правилами их взаимодействия- интерфейсами (исполняемые- exe, com и объектные модули obj стандартных форматов, библиотеки разных типов –dll (Dynamic Link Library), конфигурационные файлы (ini- файлы), загрузчик операционной системы, драйверы…)2 класса модулей:1. Модули, выполняющие вспомогательные функции (архивация, дефрагментация диска, работа с реестром, системные обрабатывающие программы- редакторы, компиляторы, библиотеки процедур различного назначения – функции ввода/вывода, математические функции)- загружаются в оперативную память только на время выполнения своих функций- транзитные (транзитивные) программы.2. Ядро- модули, выполняющие основные функции ОС и находящиеся в памяти постоянно (резидентные программы)Состав ядра:- функции, реализующие внутрисистемные задачи организации вычислительного процесса – обработка прерываний (любое вмешательство в работу процессора), переключение работы процессора с выполнения одной задачи на другую. Эти функции недоступны для приложенийif (x!=0) y=1/x;- функции поддержки приложений- прикладная программная среда. Приложения обращаются к ядру с запросами на выполнение тех или иных действий (открытие и чтение файла, получение системного времени, вывод графической информации на экран)- системные вызовы (System Calls). Системные вызовы образуют интерфейс прикладного программирования – Application Programming Interface- APIf=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)- скрывает различия в аппаратном обеспечении от основной части ядра, т.е. большая часть кода, работающая в режиме ядра, не должна изменяться при запуске ОС на вычислительных устройствах с разным аппаратным обеспечением | |
| Средства аппаратного контроля (контроллеры) | |
| Аппаратные устройства («железо») | |
4. Подсистема ввода- вывода- отвечает за передачу данных от программы к аппаратуре и наоборот- пересылает данные соответствующим драйверам для дальнейшей обработки, поддержка сетевых протоколов5. Диспетчер электропитания (Advanced Configuration and Power Interface Manager- ACPI- Manager)- управление электропитанием устройств, координация запросов устройств, связанных с изменением режима электропитания6. Диспетчер Plug-and-Play- обеспечивает распознавание устройств после загрузки и управляет их драйверами7. Диспетчер окон и интерфейс графических устройств – (GDI- Graphic Device Interface)- управляет отображением окон, обеспечивает прием сигналов от клавиатуры и мыши, распределяя информацию приложениям8. Защищённые подсистемы – процессы пользовательского режима, создаются ОС во время загрузки и обрабатывают сообщения от прикладных программ и других подсистем (служба рабочей станции, служба сервера, подсистема безопасности)Общая схема архитектуры ядра
| Процесс 1 | Процесс 2 | Процесс 3 |
| Интерфейс системных вызовов- приложения обращаются к ядру для выполнения действий, требующих вмешательства ОС | ||
| Модули ядра: файловая система, подсистема управления процессами, подсистема ввода/вывода… | ||
| Средства аппаратного контроля (обеспечение корректности работы устройств и поддержка интерфейса устройств) | ||
| Устройства вычислительной системы | ||
Аппаратура любой вычислительной системы должна поддерживать два режима работы: пользовательский (Usermode), в котором работают приложения пользователя (в том числе, и системные сервисы и службы, запущенные от имени пользователя), и привилегированный режим (режим ядра, Kernel mode)Модули ОС, выполняющие вспомогательные функции, оформляются в виде приложений и выполняются в пользовательском режиме вместе с обычными приложениями пользователяВ пользовательском режиме приложениям запрещены некоторые действия (переключение процессора с одной задачи на другую, управление механизмом защиты памяти). Условия выполнения ряда инструкций находятся под контролем ОС.Привилегии ОС при доступе к памяти выражаются в том, что код ядра имеет доступ к областям памяти всех приложений, но сам полностью защищен от вмешательства в свою работу приложений, работающих в пользовательском режиме. Каждое приложение, работающее в пользовательском режиме, работает в своей отдельной «области» (виртуальное адресное пространство) и защищено от вмешательства каких-либо других приложений.Взаимодействие между программами пользователя (прикладные программы) и ядром ОС осуществляется с помощью системных вызовов. При системном вызове пользовательский процесс переходит в режим ядра, в этом режиме ядра работает код ядра ОС, который выполняется в адресном пространстве вызвавшей его задачиСистемный вызов реализуется с помощью программного прерывания2. Микроядерная архитектура- в привилегированном режиме работает только модуль микроядра, который защищен от остальных модулей ОС и приложений (базовые механизмы монолитного ядра), а менеджеры ресурсов выносятся в пользовательский режим как модули, предоставляющие свои ресурсы пользовательским приложениям (серверы ОС) – файловая система, менеджер безопасности, подсистемы управления виртуальной памятью и процессами…Приложения, выделенные из состава ядра, предназначаются исключительно для обслуживания запросов других приложений (в том числе, специализированных утилит, работающих с ОС)- создание процесса, выделение памяти, проверка прав доступа к ресурсу..- серверы