Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Функционально программный интерфейс ОС UNIX может быть условно подразделен на две подсистемы: файловую систему и систему управления процессами. Первая представляет собой совокупность специально организованных наборов данных, хранящихся на внешних устройствах ЭВМ, и программных средств, гарантирующих доступ к этим данным и их защиту, а вторая обеспечивает разделение времени. Программный интерфейс, т.е. интерфейс между пользовательской программой и ядром ОС UNIX реализуется с помощью так называемых системных вызовов. Интерфейс между двумя пользовательскими программами (или между пользовательской программой и внешним устройствам, а также между двумя процессами) в ОС UNIX реализуется в рамках единой структуры данных, называемой файлом. Теоретически, файл ОС UNIX представляет собой последовательность байт данных, завершающуюся символом логического конца файла. Физически, такая последовательность байт может представлять собой, например, набор блоков диска или магнитной ленты, либо область оперативной памяти. Среди менее привычных представлений файла в ОС UNIX можно назвать пользовательский терминал, печатающее устройство, трафик сети ЭВМ и т. п. Таким образом, если пользователь умеет программировать операцию ввода-вывода в файл, то сможет запрограммировать и операцию ввода-вывода на любое устройство.
Все файлы ОС UNIX имеют имена, которые могут быть использованы пользовательскими программами как средства получения доступа к данным, содержащимся в соответствующих файлах. Файлы ОС UNIX являются составляющими некоторой системы данных, называемой файловой системой ОС UNIX.
Система управления процессами реализует такие элементарные функции, как порождение процесса, завершение его функционирования и обмен данными между двумя функционирующими процессами. Кроме того, она осуществляет динамическое распределение оперативной памяти ЭВМ между двумя или несколькими процессами.
Интерфейс между любой пользовательской программой (процессом) и ядром ОС UNIX (программный интерфейс ОС UNIX), реализуется с помощью системных вызовов. Синтаксически, применение системного вызова (СВ) похоже на вызов подпрограммы, однако, код, реализующий этот СВ, находится в ядре ОС UNIX. При осуществлении СВ, как правило, используется механизм прерываний, реализуемый аппаратно. Более подробно эту процедуру можно описать так: при осуществлении СВ, в стек пользовательского процесса заносятся соответствующие параметры (как и в случае вызова подпрограммы), после чего на процессор вызывается инструкция программного прерывания (в случае вызова подпрограммы на процессор вызывается инструкция перехода по стартовому адресу вызываемой подпрограммы). В результате обработки прерывания аппаратурой центрального процессора ЭВМ, управление передается по адресу, хранящемуся в некоторой заранее определенной ячейке памяти ЭВМ, так называемом векторе прерывания, и, тем самым, начинается выполнение подпрограммы обработки прерывания, исполняемый код которой находится в ядре ОС UNIX. Подпрограмма обработки прерывания прежде всего извлекает из стека пользовательского процесса ранее помещенные туда параметры, а затем передает управление подпрограмме, реализующей системную функцию, соответствующую осуществленному СВ; исполняемый код этой подпрограммы также находится в ядре ОС UNIX. После того, как подпрограмма, реализующая указанную системную функцию, завершится, ядро ОС UNIX передаст управление в пользовательскую программу, осуществившую СВ, точно так же, как если бы завершилась подпрограмма, вызванная на выполнение пользовательской программой.
Системным вызовам соответствуют подпрограммы, объединенные в объектную библиотеку, которая компонуется с пользовательской программой по умолчанию. Каждая такая подпрограмма предоставляет возможность пользовательской программе осуществлять СВ.
В следующем разделе будут рассмотрены наиболее употребляемые системные вызовы.
Дата публикования: 2015-10-09; Прочитано: 203 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!