В2: Полномочное разграничение с контролем информационных потоков

Правила:

1. Для каждого объекта ОС существует владелец.

2. Владелец объекта может произвольно ограничивать доступ других субъектов к данному объекту.

3. Для каждой четвёрки возможность доступа определена однозначно в каждый момент времени.

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

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

5. В множестве объектов доступа ОС выделяется подмножество объектов полномочного разграничения доступа. Каждый объект полномочного разграничения доступа имеет гриф секретности. Чем выше числовое значение грифа, тем секретнее объект. Если объект не является объектом разграничения доступа или он не секретен, администратор может обратиться к нему по любому методу.

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

7. Каждый процесс ОС имеет уровень конфиденциальности, равный максимальному из грифов секретности атрибутов открытых процессов, на протяжении своего существования. Уровень конфиденциальности фактически правило с грифом секретности информации, хранящейся в ОП процесса.

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

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

В3: Процессы в UNIX. Общие сведения. Основные понятия. Наиболее важные атрибуты и параметры процессов. Ключевые структуры данных, относящихся к процессу: таблица процессов. Команда ps. Демоны.

Процесс – ключевое понятие ОС. Каждая программа выполняется в рамках процесса. Процесс – программа в момент выполнения + необходимый набор системных данных, создаваемый ОС (среда выполнения процесса).Процесс – исполнитель программы, с которой связана некоторая часть памяти и множество доступных файлов.Процесс – это активность некоторого рода. У него есть программа, входные и выходные данные и состояние.

ОС управляет набором процессов: приостанавливает выполнение, активизирует,создает новые и уничтожает. Некоторыми процессами может управлять пользователь.

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

Запуск/завершение процесса. После загрузки ядра ОС планировщик (scheduler) (является частью ядра, а в некоторых – специальным процессом с PID=0) запускает init,который является прародителем всех других процессов (PID=1). В некоторых версиях. Init, в свою очередь, запускает процесс getty, который осуществляет связь с терминалом ЭВМ. Процесс getty выводит приглашение и вместо себя вызывает программу (процесс) login. Login осуществляет ввод имени и пароля и проверяет эту информацию в системных файлах пароля (/etc/passwd и etc/shadow). Если информация корректна, login вызывает вместо себя оболочку, с которой затем и работает пользователь. После окончания сессии командой logout или exit оболочка завершает работу, освобождая терминал. Init запускает новую getty (программу), и другой пользователь может начать работу за этим терминалом.

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

PID (ProcessIDentifier) – идентификатор процесса, целое положительное число. Максимальное число зависит от ОС. Уникальный атрибут. ОС присваивает каждому новому процессу PID на 1 больше, чем у предыдущего созданного процесса. После достижения maxN счетчик номеров сбрасывается. Новые процессы начинают нумерацию с наименьших свободных номеров. Первым (PID=1) всегда является init.При запуске дочернего процесса, родительский процесс получает от ОС его PID и наоборот и тем самым может посылать ему сигналы, следить за его завершением, за его статусом.

PPID (ParentPID) – идентификатор родительского процесса. Этот идентификатор процесс получает во время запуска и может тоже получить информацию о родителе и передавать ему сигналы.

UID – реальный идентификатор пользователя,GID – реальный идентификатор группы,EUID – эффективный идентификатор пользователя,EGID – эффективный идентификатор группы.

Эти атрибуты определяют принадлежность процесса и его права доступа к ресурсам ЭВМ. Реальные идентификаторы совпадают с идентификаторами пользователя, который запустил процесс, и группы, которой он принадлежит. Права доступа процесса к ресурсам ЭВМ определяются EUID и EGID.

Ключевые структуры. ОС поддерживает две ключевые информационные структуры данных, относящихся к процессу:дескриптор процесса (структура structproc), контекст процесса (структура structuser).

Дескриптор процесса содержит такую информацию о процессе, которая необходима ядру в течение всего ЖЦ процесса, независимо от того, находится ли он в активном или пассивном состоянии, находится ли образ процесса в оперативной памяти или выгружен на диск. Дескрипторы отдельных процессов объединены в список, образующий таблицу процессов (ТП). Память для таблицы процессов отводится динамически в области ядра. ТП является резидентной, в ней содержится информация обо всех процессах, даже тех, которых в данный момент нетв ОП. На основании информации, содержащейся в таблице процессов, операционная система осуществляет планирование и синхронизацию процессов. В дескрипторе содержится информация: о состоянии процесса, расположении образа процесса в оперативной памяти и на диске, о значении отдельных составляющих приоритета, глобальный приоритет, идентификатор пользователя, создавшего процесс, информация о родственных процессах, о событиях, осуществления которых ожидает данный процесс и некоторая другая информация.

Контекст процесса содержит менее оперативную, но более объемную часть информации о процессе, необходимую для возобновления выполнения процесса с прерванного места: содержимое регистров процессора, коды ошибок выполняемых процессором системных вызовов, информацию обо всех открытых данным процессом файлов и незавершенных операциях ввода-вывода (указатели на структуры FILE) и другие данные, характеризующие состояние вычислительной среды в момент прерывания. Контекст, так же как и дескриптор процесса, доступен только программам ядра, однако он хранится не в области ядра, а непосредственно примыкает к образу процесса и перемещается вместе с ним, если это необходимо, из оперативной памяти на диск.

Команда ps - выводит информацию о запущенных процессах. Информация может быть представлена в «пользовательском» или «полном» формате (ключи -u или -f соответственно). В Linux команда ps работает в обоих стилях (стиль BSD и стиль SystemV). В стиле SystemV можно указать набор колонок с помощью ключа –o, назв_кол, назв_кол, назв_кол,… названия переключаются через запятую, без пробелов.

Демоны. У каждого пользователя могут быть одновременно несколько активных процессов и десятки фоновых процессов (демонов). Демоны запускаются автоматически при загрузке ОС, а могут и самим пользователем.