
- •Состав и принципы работы операционных систем и сред. Понятие, основные функции, типы операционных систем.
- •Определение операционной системы
- •Определение операционной среды
- •Последовательность действий оператора при решении задач на ранних компьютерах без операционной системы
- •Ранние операционные системы имели следующие характеристики
- •Язык управления заданиями
- •Операционные оболочки
- •Иерархическая структура компьютера и операционной системы
- •Последовательность развития системного программного обеспечения
- •9.Последовательность развития системного программного обеспечения
- •Методы обработки пользовательских программ в зависимости от их характеристик
- •Поколения операционных систем
- •Классификационные признаки в определении поколения операционной системы
- •13. Задачи, решаемые операционными системами
- •14. Единицы работ операционных систем
- •15. Классификация операционных систем
- •16. Основные характеристики однопрограммных ос
- •17. Основные характеристики многопрограммных ос
- •18. Организация памяти современного компьютера
- •19. Стековая память
- •Виртуальная память
- •Ассоциативная память
- •Внешняя память
- •Мультипрограммность и мультизадачность
- •Понятие задания в ос
- •Управление ресурсами в ос
- •Понятия процесса и потока
- •Понятие волокна
- •Управление процессами и потоками
- •Формы мультипрограммной работы
- •30.Критерии организации пакетной обработки
- •31. Критерии организации режима разделения времени
- •32.Характеристики систем реального времени
- •33.Характеристики симметричных мультипроцессорных систем
- •34. Последовательность создания процессов в компьютере
- •35. Характеристика образа процесса
- •36. Дескриптор процесса и его характеристика
- •37. Контекст процесса и его характеристика
- •38 Способы реализации потоков
- •39 Достоинства реализации потоков в ядре
- •40 Недостатки реализации потоков в ядре
- •41 Достоинства реализации потоков в пространстве пользователя
- •42) Недостатки реализации потоков в пространстве пользователя
- •43) Потенциальные проблемы, возникающие при выполнении процессов, не осведомленных друг о друге
- •44) Методы взаимоисключения
- •45) Условия возникновения тупиковой ситуации
- •Классы прерываний в компьютерах
- •Состав аппаратных средств систем прерываний компьютеров
- •Последовательность обработки прерываний (запоминание контекста)
- •Последовательность обработки прерываний (собственно обработка прерывания)
- •50. Эволюция ввода – вывода
- •51. Согласование скоростей обмена и кэширования данных
- •52. Системный монитор и его использование
- •53. Диспетчер задач Windows
- •Файл подкачки и его характеристики
- •Адресное пространство операционной системы
- •Соответствие между видом планирования единиц работы ос и выполняемыми функциями планирования
- •Соответствие между алгоритмом планирования и его характеристиками
- •Невытесняющие (non-preemptive)
- •Вытесняющие (preemptive)
- •Концепция квантования потоков
- •60. Приоритеты в алгоритмах планирования мультипрограммного вычислительного процесса.
- •61. Цели создания файловых систем
- •62. Фундаментальные способы организации файлов
- •63. Физическая организация размещения файлов на диске
- •Менеджер ввода-вывода
- •Шифрующая файловая система efs
- •Ресурсы, требуемые для работы устройству ввода-вывода
- •Фрагментация и ее виды, дефрагментация
- •68. Квотирование дискового пространства
- •69. Алгоритм дискового планирования
- •70. Установка разрешений файлам и каталогам
- •71. Семафор Дейкстры.
- •Архитектура операционной системы
- •Достоинства многослойной иерархической архитектуры ос
- •Достоинства микроядерной архитектуры ос
- •Эффективность операционной системы
- •77. Совместимость ос
- •78. Основные преимущества виртуализации ос
- •Драйверы устройств
- •80. Структура адресного пространства прикладного процесса
- •81. Понятие файла и файловой системы
- •82. Главная загрузочная запись диска и ее структура
- •83. Характеристика первичных и расширенных разделов диска
- •84. Виды логической организации файлов
- •85. Точки соединения с ос Windows
- •86. Каталоги файловой системы ntfs
- •87. Интерфейс прикладного программирования
- •88. Сегментная организация памяти
- •89. Страничная организация памяти
- •90. Сегментно-страничная организация памяти
- •91. Последовательность выполнения .Exe файлов
- •Защита и восстановление ос Windows 2000. Архивация. Установочные дискеты. Безопасный режим загрузки.
- •93. Защита и восстановление ос Windows 2000. Консоль восстановления, диск аварийного восстановления. Резервное копирование и восстановление.
- •95. Общая характеристика системы unix. Интерфейсы системы и их характеристика.
- •96. Структура ядра системы unix. Состав и характеристика компонентов ядра.
- •Оболочка системы unix. Работа в оболочке. Командная строка. Основные команды работы с файлами, каналы, сценарии.
- •Команды по работе с файловой системой
- •Операционная система Windows 2000. Структура системы. Основные компоненты и их характеристика.
- •Операционная система Windows 2000. Уровень аппаратных абстракций. Функции уровня. Уровень ядра.
- •Технология аутентификации. Сетевая аутентификация на основе одноразового пароля.
87. Интерфейс прикладного программирования
Интерфейс прикладного программирования. Прикладные программисты исполь-
зуют в своих приложениях обращения к операционной системе, когда для выполнения
тех или иных действий им требуется особый статус, которым обладает только ОС. Воз-
можности операционной системы доступны программисту в виде набора функций, ко-
торый называется интерфейсом прикладного программирования (Application Programming Interface, API). Приложения обращаются к функциям API с помощью системных
вызовов. Способ, которым приложение получает услуги операционной системы, очень
похож на вызов подпрограмм.
Способ реализации системных вызовов зависит от структурной организации ОС,
особенностей аппаратной платформы и языка программирования.
В ОС UNIX системные вызовы почти идентичны библиотечным процедурам. Ситу-
ация в Windows иная (более подробно это рассмотрим далее).
Пользовательский интерфейс. ОС обеспечивает удобный интерфейс не только для
прикладных программ, но и для пользователя (программиста, администратора). В ран- них ОС интерфейс сводился к языку управления заданиями и не требовал терминала.
Команды языка управления заданиями набивались на перфокарты, а результаты вы-
полнения задания выводились на печатающее устройство.
Современные ОС поддерживают развитые функции пользовательского интерфейса
для интерактивной работы за терминалами двух типов: алфавитно-цифровыми и гра-
фическими. При работе за алфавитно-цифровым терминалом пользователь имеет в сво-
ем распоряжении систему команд, развитость которой отражает функциональные воз-
можности данной ОС. Обычно командный язык ОС позволяет запускать и останавли-
вать приложения, выполнять различные операции с каталогами и файлами, получать
информацию о состоянии ОС, администрировать систему. Команды могут вводиться не
только в интерактивном режиме с терминала, но и считываться из так называемого ко-
мандного файла, содержащего некоторую последовательность команд.
Программный модуль ОС, ответственный за чтение отдельных команд или же по-
следовательности команд из командного файла, иногда называют командным интерпре-
татором (в MS DOS - командным процессором).
Вычислительные системы, управляемые из командной строки, например, UNIX-
системы имеют командный интерпретатор, называемый оболочкой (Shell). Она собст-
венно не входит в состав ОС, но пользуется многими функциями операционной системы.
Когда какой-либо пользователь входит в систему, запускается оболочка. Стандартным
терминалом для нее является монитор с клавиатурой. Оболочка начинает работу с печа-
ти приглашения (prompt) - знака доллара (или иного знака), говорящего пользователю,
что оболочка ожидает ввода команды (аналогично управляется MS DOS). Если теперь
пользователь напечатает какую-либо команду, оболочка создает системный вызов и ОС
выполнит эту команду. После завершения оболочка опять печатает приглашение и пы-
тается прочесть следующую входную строку.
Ввод команд может быть упрощен, если операционная система поддерживает гра-
фический пользовательский интерфейс. В этом случае пользователь выбирает на экра-
не нужный пункт меню или графический символ (так это происходит, например, в ОС
Windows).
8.1. Интерфейс прикладного программирования
8.1.1. Основные определения
Под интерфейсом прикладного программирования (ИПП) понимается совокупность
функций, предоставляемая операционной системой и системой программирования раз-
работчикам приложений для получения того или иного сервиса. Кроме множества
функций с понятием ИПП неразрывно связан способ получения доступа к этим функ-
циям. На уровне ОС ИПП определяется механизмом его реализации.
Перед разработчиками ИПП встают следующие задачи:
1. ИПП должен обеспечивать доступ к ресурсам ОС, к которым относятся физическая
и виртуальная память, файлы и каталоги, процессы и потоки, защищенные области
данных ОС и т. д.
2. ИПП должен быть совместимым во всех ОС одного типа. Например, во всех 32-раз-
рядных ОС Windows (95, 98, NT, 2000, ХР, 2003 и др.) реализован общий стандарт
интерфейса API Win 32.
3. ИПП должен быть безопасным. То есть никакая программа, используя любую
функцию интерфейса, не должна повредить операционную систему или другие про-
цессы. Отсюда и сами системные функции должны быть защищены от модифика-
ции или подмены.
4. ИПП должен быть простым в использовании и эффективным по времени выполне-
ния функций.
5. Добавление новых функций или замена старых новыми версиями не должны
оказывать влияние на программы.
Эти требования обеспечиваются соответствующей реализацией интерфейса.
Следует заметить, что в разных ОС интерфейсы реализованы по-разному. Так, напри-
мер, требование безопасности в MS DOS не выполняется. Связано это с тем, что про-
цессор Intel 8086 поддерживает лишь 1 Мб оперативной памяти и не обеспечивает опе-
рационную систему какими-либо средствами защиты. В таких условиях MS DOS раз-
рабатывалась как система одного пользователя для однозадачного режима. В то же время
современные ОС - это многозадачные системы (Windows, OS Mac, OS/2, UNIX, Linux
и др.), и многие из них поддерживают коллективный доступ (это прежде всего ОС боль-
ших ЭВМ, например UNIX, VMS, OS/390).
В современных ОС доступ к функциям ИПП выполняется с помощью вызовов.
В зависимости от уровня реализации интерфейса различают:
• прикладные вызовы (вызовы функций библиотек языка программирования
и библиотек классов);
• системные вызовы (например, вызовы функций API Win32/64);
• вызовы базовых функций ОС (вызовы функций ядра ОС или подсистемы
Win32);
• промежуточные вызовы.
ИПП делится на две группы функций. Одна и наиболее большая группа - это
функции, предоставляемые операционной системой, а другая - функции, входящие в
состав стандартных библиотек системы программирования, а также библиотек классов,
например, MFC языка C++ или FCL платформы Microsoft .NET Framework (рис. 8.1).
Системные функции, в свою очередь, реализуются через промежуточные функции (за-
глушки), которые вызывают базовые функции ОС. Последние опираются на примити-
вы ядра системы.
Во всех операционных системах, исходя из видов ресурсов, с которыми они
связаны, функции ИПП можно разделить на несколько групп. Так, в Windows можно
выделить следующие группы функций API:
• управление процессами, потоками и синхронизацией;
• управление виртуальной и физической памятью;
• управление вводом-выводом.
В API Windows также есть еще ряд групп:
• графический интерфейс пользователя;
• управление защитой;
• управление реестром;
• консольные функции
• и другие группы специальных функций.