|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Системные вызовыВ любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах IBM они назывались системными макрокомандами, в ОС Unix такие средства называют системными вызовами. Системные вызовы (system calls) иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями. Системные вызовы операционных систем (Unix, Windows, Mac OS, и т. д.) реализуются программами пользователей с помощью интерфейса прикладного программирования API (Application Programming Interface). Интерфейс прикладного программирования — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) ОС для использования во внешних программных продуктах (программах пользователя). Например, если пользовательскому процессу необходимо считать данные из файла, он должен выполнить команду системного вызова, т.е. выполнить прерывание с переключением в режим ядра и активизировать функцию операционной системы для считывания данных из файла. У большинства современных ОС, концепция лежащая в основе интерфейса прикладного программирования практически одинакова, хотя детали могут быть различны. Примеры API операционных систем - POSIX (более 100 СВ ОС UNIX, LINUX, MINIX и т.д.), Windows API (более 1000 св), Linux Kernel API, OS/2 API. Рассмотрим наиболее часто применяемых системных вызовов стандарта POSIX. В POSIX существует более 100 системных вызовов. fork - создание нового процесса exit - завершение процесса open - открывает файл close - закрывает файл read - читает данные из файла в буфер write - пишет данные из буфера в файл stat - получает информацию о состоянии файла mkdir - создает новый каталог rmdir - удаляет каталог link - создает ссылку unlink - удаляет ссылку mount - монтирует файловую систему umount - демонтирует файловую систему chdir - изменяет рабочий каталог
В ОС UNIX процедуры API (более 100 СВ), которые реализуют системные вызовы на уровне ОС, идентичны процедурам, которые используются пользователями в программах для реализации программных прерываний. Например, процедура read - читает данные из файла в буфер В ОС Win32 API существует более 1000 системных вызовов, это связано с тем, что графический интерфейс пользователя UNIX запускается в пользовательском режиме, а в Windows встроен в ядро. Поэтому Win32 API имеет много вызовов для управления окнами, текстом, шрифтами т.д. Кроме того в Win32 API отделен от процедур, непосредственно обрабатывающий системные вызовов. Например, процедура API ReadFile (read) - читает данные из файла в буфер. Это позволяет в разных версиях ОС W менять системные вызовы, не переписывая программы.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.) |