
- •3. Понятие вычислительного процесса и ресурса
- •4. Основные виды ресурсов и возможности их разделения
- •5. Интерфейсы операционных систем
- •6. Интерфейс прикладного программирования (api)
- •7. Реализация функций api на уровне модулей ос, на уровне системы программирования, с использованием внешних библиотек.
- •8. Общий стандарт api Unix (posix) и Win32 api.
- •9. Отличия в реализации системных вызовов в Unix и ms Windows
- •10. Привилегированный и пользовательский режимы работы в ос
8. Общий стандарт api Unix (posix) и Win32 api.
POSIX (Portable Operating System Interface for Computer Environments) — платформенно независимый системный интерфейс для компьютерного окружения. Это стандарт IEEE, описывающий системные интерфейсы для открытых операционных систем, в том числе оболочки, утилиты и инструментарии. Помимо этого, согласно POSIX, стандартизированными являются задачи обеспечения безопасности, задачи реального времени, процессы администрирования, сетевые функции и обработка транзакций. Стандарт базируется на UNIX-системах, но допускает реализацию и в других ОС. Программы, написанные с соблюдением данных стандартов, будут одинаково выполняться на всех POSIX-совместимых системах. Однако стандарт в некоторых случаях носит лишь рекомендательный характер. Часть стандартов описана очень строго, тогда как другая часть только поверхностно раскрывает основные требования. Нередко программные системы заявляются как POSIX-совместимые, хотя таковыми их назвать нельзя. Причины кроются в формальности подхода к реализации POSIX-интерфейса в различных ОС. К сожалению, достаточно часто с целью увеличить производительность той или иной подсистемы либо из соображений введения фирменных технологий, которые ограничивают использование приложения соответствующей операционной средой, при программировании используются другие функции, не отвечающие стандарту POSIX.
9. Отличия в реализации системных вызовов в Unix и ms Windows
Реализации POSIX API на уровне операционной системы различны. Если UNIX-системы в своем абсолютном большинстве изначально соответствуют спецификациям IEEE Standard 1003.1-1990, то WinAPI не является POSIX-совместимым. Однако для поддержки данного стандарта в операционной системе MS Windows NT введен специальный модуль поддержки POSIX API, работающий на уровне привилегий пользовательских процессов. Данный модуль обеспечивает конвертацию и передачу вызовов из пользовательской программы к ядру системы и обратно, работая с ядром через WinAPI. Прочие приложения, написанные с использованием WinAPI, могут передавать информацию POSIX-приложениям через стандартные механизмы потоков ввода/вывода (stdin, stdout).
10. Привилегированный и пользовательский режимы работы в ос
Ядро в привилегированном режиме Для надежного управления ходом выполнения приложений ОС должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу ОС и, например, разрушить часть ее кодов. ОС должна обладать исключи-тельными полномочиями также для того, чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме. Ни одно приложение не должно иметь возможности без ведома ОС получать дополнительную область памяти, занимать процессор дольше разрешенного ОС периода времени, непосредственно управлять совместно используемыми внешними устройствами. Обеспечить привилегии ОС невозможно без спе-циальных средств аппаратной поддержки. Аппа-ратура компьютера должна поддерживать как минимум два режима работы – пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что ОС или некоторые ее части работают в привилегированном режиме, а приложения – в пользовательском режиме. Т.к. ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме. Выполнение некоторых инструкций в пользова-тельском режиме запрещается безусловно (инст-рукция перехода в привилегированный режим), тогда как другие запрещается выполнять только при определенных условиях. Условия разрешения выполнения критичных инструкций находятся под полным контролем ОС и этот контроль обес-печивается за счет набора инструкций, безусловно запрещенных для пользовательского режима. Аналогичным образом обеспечиваются привиле-гии ОС при доступе к памяти. Механизмы защиты памяти используются ОС не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений.