Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПЕРАЦИОННЫЕ СИСТЕМЫ И ОБОЛОЧКИ.doc
Скачиваний:
46
Добавлен:
21.09.2019
Размер:
799.74 Кб
Скачать

6.2. Основные понятия системы unix

Основным достоинством ОС UNIX является то, что система базируется на

небольшом числе понятий.

53

6.2.1. Виртуальная машина

ОС UNIX – многопользовательская _________система. Каждому пользователю после

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

ресурсы:

- процессор (карусельная диспетчеризация RR, динамические приоритеты);

- память;

- устройства;

- файлы.

Текущее состояние такого виртуального компьютера называется образом. Процесс

выполнение образа. Образ состоит из следующих элементов:

- образа памяти;

- значений общих регистров процессора;

- состояния открытых файлов;

- текущего каталога и др.

Образ процесса во время его выполнения размещается в основной памяти. В

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

прежде всего выгружаются неиспользуемые страницы.

Образ памяти делится на три логических сегмента:

1) сегмент реентерабельных процедур;

2) сегмент данных;

3) сегмент стека.

6.2.2. Пользователь

ОС UNIX предназначена для мультитерминальной работы. Чтобы начать работу

пользователь должен «войти» в систему:

- ввести учетное имя;

- ввести пароль.

Пользователь называется зарегистрированным, если на него заведена

соответствующая учетная запись в файле /etc/passwd. Регистрацию новых пользователей

выполняет администратор системы. Пользователь не может изменить свою

регистрационное имя, но может изменить пароль. Пароли хранятся в закодированном

виде в файле /etc/shadow.

Файловая система ОС UNIX имеет древовидную структуру. Каждому

зарегистрированному пользователю устанавливается некоторый каталог файловой

системы, который называется «домашним» для данного пользователя. При удачной

регистрации пользователя в системе, он попадает в свой «домашний» каталог.

Доступ пользователя к «чужим» файлам и каталогам ограничен установленными

правами доступа к этим файлам и каталогам.

6.2.3. Интерфейс пользователя

После регистрации пользователя в ОС UNIX для его запускается один из

командных интерпретаторов, который прописан в файле /etc/passwd. В системах UNIX

поддерживаются несколько командных интерпретаторов с похожими, но

различающимися возможностями. Общее название для любого командного

интерпретатора – shell (оболочка).

54

Вызванный командный интерпретатор приглашает пользователя ввести команду,

после выполнения которой снова выводится приглашение.

Командные языки достаточно просты и в то же время мощны.

6.2.4. Привилегированный пользователь

При регистрации пользователя в системе ему присваивается уникальный

идентификатор (UID). Каждый пользователь относится к той или иной группе

пользователей с идентификатором группы (GID). Сведения о группах пользователей и

значения идентификаторов хранятся в файле /etc/group.

Значения идентификаторов UID и GID наследуются процессами, порожденными

текущим пользователем.

Администратор системы также является зарегистрированным пользователем, но он

должен обладать большими возможностями, чем обычный пользователь. В ОС UNIX

суперпользователю root выделяется нулевое значение идентификатора. Пользователь с

таким идентификатором имеет неограниченные права доступа к любому файлу и на

выполнение любой программы. Суперпользователь имеет возможность полного контроля

над системой.

На суперпользователя не действуют ограничения на использование ресурсов, такие

как:

- максимальный размер файла;

- максимальное число сегментов разделяемой памяти;

- максимальное допустимое пространство на диске и т.д.

6.2.5. Команды и командный интерпретатор

Оболочкой shell в ОС UNIX называется механизм взаимодействия между

пользователем и системой.

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

разделенных пробелами. Оболочка разбивает командную строку на компоненты.

Любой командный язык семейства shell состоит из трех частей:

1) служебных конструкций, позволяющих манипулировать с текстовыми

строками и строить сложные команды на основе простых;

2) встроенных команд, выполняемых непосредственно интерпретатором

командного языка;

3) команд, представляемых отдельными выполняемыми файлами.

6.2.6. Процессы

В ОС UNIX процесс программа, выполняемая в собственном адресном

пространстве. При удачной регистрации пользователя в системе автоматически создается

процесс, в котором выполняется программа командного интерпретатора. Если

командному интерпретатору встречается команда, соответствующая выполняемому

файлу, то он создает новый процесс и запускает в нем эту команду.

55

6.3. Функционирование системы UNIX

6.3.1 Выполнение процессов

Процесс может выполняться в одном из двух состояний:

- пользовательском. Процесс выполняет пользовательскую программу и имеет

доступ к пользовательскому сегменту данных;

- системном. Процесс выполняет программы ядра и имеет доступ к системному

сегменту данных.

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

создает системный вызов. Фактически происходит вызов ядра системы как

подпрограммы. С момента появления системного вызова процесс считается системным.

Пользовательский и системный процессы являются двумя фазами одного и того же

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

собственным стеком. Стек задачи содержит:

- аргументы;

- локальные переменные;

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

Диспетчерский процесс не имеет пользовательской фазы.

В ОС UNIX используется разделение времени, каждому процессу выделяется квант

времени:

- процесс завершается сам до истечения отведенного ему кванта времени;

- процесс откладывается по истечении кванта времени.

Пользовательским процессам устанавливаются приоритеты в зависимости от

количества получаемого ими процессорного времени:

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

более низкие приоритеты;

- процессам, которые получили небольшое количество процессорного времени,

приоритет повышают.

Такой метод диспетчеризации обеспечивает хорошее время реакции для всех

пользователей системы.

Все системные процессы имеют более высокие приоритеты по сравнению с

пользовательскими и поэтому всегда обслуживаются в первую очередь.