ТОП 10:

Графический интерфейс X Window.



5. Использование единой, легко обслуживаемой иерархической файловой системы. Файловая система — это не только доступ к данным, хранящимся на диске. Через унифицированный интерфейс файловой системы осуществляется доступ к терминалам, принтерам, магнитным лентам, сети и даже к памяти.

6. Очень большое количество приложений, в том числе свободно распространяемых, начиная от простейших текстовых редакторов и заканчивая мощными системами управления базами данных.

Общая архитектура системы UNIX(рис. 14.1)

Классическая UNIX представляет собой многопользовательскую операционную систему, основным компонентом которой является ядро (рис. 14.2)

Ядро отвечает за:

· управление устройствами от имени приложений,

· планирование доступа к ресурсам,

· обеспечение защиты процессов друг от друга.

Процессы.

init и swapper - системные процессы.

Обычные процессы-выполняющие приложения от имени пользователей (например, программа shell используется для выполнения команд, вводимых пользователем с клавиатуры, а компилятор является одн им из инструментов разработки приложений).

 

Рис. 14.1. Общая архитектура системы UNIX Рис. 14.2. Модули ядра UNIX

 

Основные модули ядра:

· интерфейс системного вызова - позволяет процессам обращаться к сервисам операционной системы;

· модули символьного и блочного ввода-вывода, а также драйверов устройств - используются при реализации файловых систем и для доступа к устройствам;

· буферный кэш - отвечает за кэширование данных, над которыми выполняются блочные операции ввода-вывода; он повышает производительность системы;

· файловая подсистема - управляет иерархическим пространством имен файлов, каталогов и устройств ввода-вывода, именование которых унифицировано;

· модуль управления памятью - поддерживает виртуальную память UNIX;

· модуль управления процессами — отвечает за создание и планирование процессов, прекращение их работы и поддержку базовых средств их взаимодействия

 

Вопрос 19.Системные вызовы и выполнение кода ядра ОС UNIX.

В ядре операционной системы UNIX реализован ряд сервисов, доступ к которым осуществляется из процессов прикладного уровня посредством системного вызова.

Интерфейс системного вызова - это стандартный управляемый способ входа прикладных процессов в ядро операционной системы с переключением в привилегированный режим выполнения.

Когда процесс входит в ядро, идентификатор данного процесса остается неизменным, но сам он получает полный доступ к памяти и устройствам компьютера.

Таким образом, можно сказать, что ядро UNIX выполняется процедурно, поскольку при системном вызове происходит нечто похожее на выполнение процедуры в обычной прикладной программе.

Данная архитектура противоположна архитектуре на основе передачи сообщений, при которой ядро может функционировать параллельно с пользовательскими процессами, взаимодействующими с ним путем отправки и получения сообщений.

Ядрооперационной системы UNIX выполняется без вытеснения.

Это означает, что процесс, функционирующий в режиме ядра, не может быть вытеснен планировщиком с целью передачи управления другому процессу.

Однако при этом процесс ядра может вызвать блокирующую операцию, в частности, когда он выполняет ввод-вывод и вынужден приостановить работу до тех пор, пока устройство не удовлетворит запрос. Если во время выполнения процесса ядра происходит прерывание, то после его обработки управление возвращается тому же процессу.

В отличие от процесса ядра пользовательский процесс в такой ситуации может быть вытеснен с процессора, особенно в том случае, когда прерывание сигнализирует о завершении блокирующей операции ввода-вывода.

Наличие перечисленных выше ограничений объясняется тем обстоятельством, что UNIX первоначально разрабатывалась для использования на однопроцессорных компьютерах, где переключение между процессами сильно замедляет работу.

Невытесняющее планирование процессов ядра помогает избежать многих сложностей, связанных с управлением параллельным выполнением процессов.

Исходная ориентация на однопроцессорную платформу определяет всю архитектуру классической UNIX. При такой архитектуре доступ процессов к общим структурам данных ядра не представляет проблемы. Войдя в ядро, процесс работает до тех пор, пока не примет решение о блокировании, следовательно, может выполнять свои критические секции без вмешательства со стороны других процессов. Если же существует вероятность модификации программой обработки прерывания некоторой структуры данных, с которой процесс работает, он может просто запретить прерывания на время выполнения критического кода.

Обычно в UNIX-системах определены приоритеты прерываний. Например, если нужно без помех обрабатывать важные для системы прерывания от таймера, можно так определить приоритеты, чтобы во время обработки другого прерывания, скажем, от сетевого устройства, было разрешено поступление прерываний от таймера, но не наоборот.







Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.204.202.44 (0.003 с.)