Основные понятия системы UNIX

Система UNIX – многопользовательская. Каждому пользователю после регистрации предоставляется виртуальный компьютер, в котором есть все необходимые ресурсы: процессор (процессорное время выделяется на основе «карусельной» диспетчеризации – RR и с использованием динамических приоритетов), память, устройства, файлы. Текущее состояние такого виртуального компьютера называется образ. Образ состоит из:

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

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

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

· текущего директория (каталога файлов) и другой информации.

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

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

· сегмент реентерабельных процедур – начинается с нулевого адреса в виртуальном адресном пространстве процесса;

· сегмент данных – располагается сразу за сегментом процедур;

· сегмент стека – начинается со старших адресов и растет в сторону младших.

Чтобы войти в систему пользователь должен со свободного терминала ввести свое учетное имя (account name) и, возможно, пароль (password). Каждый зарегистрированный пользователь получает неограниченный доступ к своему домашнему (home) каталогу.

Традиционный способ взаимодействия пользователя с системой UNIX – использование командных языков. Но сейчас работают все чаще с графическим интерфейсом X Window. Общее название для любого командного интерпретатора ОС UNIX – shell (оболочка). Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки, которая может содержать простую команду, конвейер команд или последовательность команд.

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

· служебных инструкций;

· встроенных команд, выполняемых интерпретатором командного языка;

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

Процессы в ОС UNIX понимаются в классическом смысле этого термина, т.е. как программа, выполняемая в собственном виртуальном адресном пространстве. Когда пользователь входит в систему, автоматически создается процесс. Для создания нового процесса и запуска в нем программы используются два системных вызова API – fork() и exec(имя_выполняемого_файла). Каждый процесс, за исключением нулевого, порождается в результате запуска другим процессом операции fork(). Каждый процесс имеет одного родителя, но может породить много процессов. Процесс с идентификатором 1, известный под именем unit является предком любого другого процесса в системе и связан с каждым процессом особым образом.


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



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