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

Лекция 14. UNIX.

1. Общая архитектура системы UNIX. Модули ядра.
Основные черты UNIX.

  1. Код системы написан на языке высокого уровня С, что сделало ее простой для понимания, изменений и переноса на другие платформы. По оценкам одного из создателей UNIX, Дэнниса Ритчи, система на языке С имела на 20—40% больший размер, а производительность ее была на 20% ниже аналогичной системы, написанной на ассемблере. Однако ясность и переносимость, а в результате — и открытость системы сыграли решающую роль в ее популярности. Можно смело сказать, что UNIX является одной из наиболее открытых систем. Несмотря на то, что большинство UNIX поставляется сегодня не в исходных текстах, а в виде бинарных файлов, система остается легко расширяемой и настраиваемой.
  2. UNIX — многозадачная многопользовательская система с широким спектром услуг. Один мощный сервер может обслуживать запросы большого количества пользователей. При этом необходимо администрирование только одной системы. Система может выполнять различные функции — работать как вычислительный сервер, сервер базы данных, сетевой сервер, поддерживающий важнейшие сервисы сети (telnet, ftp, электронную почту, службу имен DNS и т. д.), как сетевой маршрутизатор.
  3. Наличие стандартов. Несмотря на многообразие версий UNIX, основой всего семейства являются принципиально одинаковая архитектура и ряд стандартных интерфейсов. Опытный администратор без большого труда сможет обслужить другую версию системы, для пользователей переход на другую версию и вовсе может оказаться незаметным.
  4. Простой и мощный модульный пользовательский интерфейс. Имея в своем распоряжении набор утилит, каждая из которых решает узкую специализированную задачу, можно конструировать из них сложные комплексы.

Для пользователя запускается командный интерпретатор (один из них) – shell.

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

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

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

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

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

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

Процессы.

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

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

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

Рис. 14.2. Модули ядра UNIX

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

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

Системные вызовы и выполнение кода ядра

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

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

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: