Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры-коллоквиум2.doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
137.22 Кб
Скачать

Процесс – совокупность машинных команд и данных, которая исполняется в рамках ВС и обладает правами на владение некоторым набором ресурсов.

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

Жизненный цикл процесса включает в себя типовые этапы обработки процесса в ВС: образование (порождение) процесса; обработка (выполнение) процесса; ожидание (по тем или иным причинам) постановки на выполнение; завершение процесса.

Типы процессов:

«полновесные процессы». Это процессы, которые выполняются внутри защищенных участков памяти ВС, т.е. эти процессы имеют свою виртуальную адресацию и соответствующие атрибуты, которые необходимы для их поддержания, – это традиционный процесс, т.е. процесс, который имеет монопольное владение адресным пространством.

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

Контекст процесса – это совокупность данных, которые характеризуют актуальное состояние процесса.

Идентификатор процесса – это есть некоторый номер, который характеризует размещение информации о регистрации процесса в системе в таблице процессов.

Контекст процесса в Unix – это есть некоторая совокупность данных, которая принадлежит как адресному пространству самого процесса, так и находится в адресном пространстве ОС.

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

Параметры окружения. Системным переменным ОС Unix можно присваивать некоторые значения, и эти значения образуют окружение процесса. Через окружение процесса можно задавать те или иные режимы заботы процесса. Соответственно, в зависимости от нюансов окружения могут по разным режимам работать системные вызовы.

 Файлы, открытые в процессе-отце.

 Способы обработки сигналов

 Разрешение переустановки эффективного идентификатора пользователя

 Разделяемые ресурсы процесса-отца

 Текущий рабочий каталог и домашний каталоги

 …

Не наследуются:

 Идентификатор процесса;

 Идентификатор родительского процесса;

 Сигналы, ждущие доставки в родительский процесс.

 Время посылки ожидающего сигнала, установленное системным вызовом alarm();

 Блокировка файлов, установленных родительским процессом.

Параллельные процессы - процессы, выполнение которых так или иначе перекрывается во времени полностью либо частично.

Параллельные процессы могут быть:

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

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

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

Блокирование – это ситуация, когда один из процессов никогда не получит доступа к ресурсу.

Семафоры Дейкстры – это переменные целого типа, на которых определены не обычные операции, которые обычно определяются для целого типа, а вполне определенные две операции – это Down(S) (или P(S)) и Up(S) (или V(S)).

Монитор – это совокупность структур данных и процедур, которые работают с ними. Они объединены в один программный модуль и этот модуль специального типа и называется монитор.

Вообще обмен сообщениями – это программное средство, которое используется для проблем синхронизации. Это некоторая система, в котором реализованы два примитива – это отправка сообщения - send и получение сообщения –receive.

Сигнал – это некоторое средство уведомления процессора о том, что в системе произошло то или иное событие.

Неименованные каналы – это некоторая область на диске, с которой ассоциированы два дескриптора. Один из дескрипторов используется для чтения из канала, другой для записи в канал.

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

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

Схема «главный-подчиненный» предполагает, что один из процессов является главным, т.е. управляет поведением другого процесса. В системе Unix к такой модели относится трассировка, т.е. отладка процессов. Трассировка осуществляется двумя процессами, которые родственны между собой.

Сетевая ОС – это ОС, которая обеспечивает функционирование распределенных приложений.

ФС – это компонент ОС, который обеспечивает именованный доступ к данным.

Атрибуты файлов - набор параметров, которые определяют свойства этого файла.

Каталог – это часть ФС, в котором размещается информация об именах файлах и их свойствах, которые размещены в данной ФС.

Суперблок – это блок ФС, в котором находится информация о настройках ФС и информация об актуальном состоянии ФС.

Настройки ФС - это информация о дисковом пространстве, которое выделено для хранения файлов, это информация о возможных предельных размерах файлов и т.д. и т.п., это информация о свободных блоках, которые можно использовать для файлов, это информация о данных, которые содержат каталоги.

Блок – это порция данных фиксированного размера, с терминах которой осуществляется обмен с данным устройством.

Блок дискового устройства – это блок, который определяется свойствами этого устройства.

Индексный дескриптор – это некоторая системная структура данных, которая описывает состояние и размещение файлов в ФС.

Жесткая ссылка - с одним и тем же индексным дескриптором будет ассоциироваться два или более имени, размещенных в произвольных точках ФС.

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

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

Концепция IPC: Для именования доступа используется так называемые ключи IPC. Т.е. система позволяет работать с определенными разделяемыми ресурсами. Этими разделяемыми ресурсами могут быть: Очередь сообщений, Разделяемая оперативная память, Семафоры.

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

Ipc: разделяемая память

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

Ipc: массив семафоров

Это средство реализуется программно. Требование атомарности операции – свойство семафоров Дейкстры и также это требование имеет место и в прерываниях. Атомарность семафорных операций ΙPC обеспечивается системой. Разница между массивом семафоров IPC и семафорами Дейкстры заключается в том, что первое программная реализуется в реальных условиях, а второе является модельной реализацией.

1. Первый тип сокетов – это так называемое соединение с использованием виртуального канала (по модели организации виртуального канала). В семействе протоколов TCP/IP виртуальный канал обеспечивает протокол TCP.

2. Второй тип сокетов обеспечивает так называемое датаграммное соединение, т.е. соединение аналогичное протоколу UDP.

Квант времени – непрерывный период процессорного времени.

Приоритет процесса – числовое значение, показывающее степень привилегированности процесса при использовании ресурсов ВС (в частности, времени ЦП).

Планировщик – это некоторая программа, которая реализует некоторый алгоритм, который связан с его системными функциями.

Свопинг – это откачка и закачка тех или иных страниц (если имеет место страничная организация) или процессов из внешней памяти в ОП.

Управление оперативной памятью

Одиночное непрерывное распределение

Предполагается, что физическая ОП делится на две области. 1-я область – это область, в которой размещается ОС. 2-я область – это оставшаяся часть, которая доступна для задач или для процессов пользователя. И предполагается, что для одного процесса (или для одной задачи) выделяется вся эта область.

Распределение неперемещаемыми разделами

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

Распределение перемещаемыми разделами

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

Страничное распределение

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

Задача обедающих философов

# define N 5 /* количество философов */

# define LEFT (i-1)%N

# define RIGHT (i+1)%N

# define THINKING 0 /* философ думает */

# define HUNGRY 1 /* философ голоден */

# define EATING 2 /* философ ест */

 typedef int semaphore; /* определяем семафор */

int state[N]; /* массив состояний каждого из философов */

semaphore mutex=1; /* семафор для критической секции */

semaphore s[N]; /* по одному семафору на философа */

 void philosopher (int i) /* i : номер философа от 0 до N-1 */

{ while (TRUE) /* бесконечный цикл */

{ think(); /* философ думает */

take_forks(i); /*философ берет обе вилки или блокируется */

eat(); /* философ ест */

put_forks(i); /* философ кладет обе вилки на стол */}}

void take_forks(int i) /* i : номер философа от 0 до N-1 */

{down(&mutex); /* вход в критическую секцию */

state[i] = HUNGRY;

test(i); /* попытка взять обе вилки */

up(&mutex); /* выход из критической секции */

down(&s[i]); /* блокируемся, если вилок нет */}

void put_forks(i) /* i : номер философа от 0 до N-1 */

{down(&mutex); /* вход в критическую секцию */

state[i] = THINKING; /* философ закончил есть */

test(LEFT); /* может ли левый сосед сейчас есть */

test(RIGHT); /* может ли правый сосед сейчас есть*/

up(&mutex); /* выход из критической секции */}

 void test(i) /* i : номер философа от 0 до N-1 */

{if (state[i] == HUNGRY && state[LEFT] != EATING &&

state[RIGHT] != EATING){

state[i] = EATING;

up (&s[i]);}}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]