Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Характеристики и состояния процессов




Понятие и классификация процессов. Понятие ресурса

СБОР С ЗАГОТОВИТЕЛЕЙ.

 

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

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

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

Ставки сбора с заготовителей устанавливаются в размере, не превышающем 5 процентов.

Налоговым периодом сбора с заготовителей признается календарный квартал.

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

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

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

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

 

 

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

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

Все центральные процессоры содержат внутренние регистры для хранения ключевых переменных и временных результатов. Регистры представляют собой наборы схем памяти (триггеры – электронные схемы с двумя устойчивыми состояниями, предназначенные для хранения одного бита информации), которые действуют как временные запоминающие устройства в процессе функционирования центрального процессора. Регистры данных (Data Register) применяется для хранения промежуточных данных, участвуют в арифметических и логических операциях процессора и включают:

- аккумулятор (Accumulator) – регистр, используемый для хранения промежуточных результатов вычисления;

- счетчик повторений (Counter) – регистр, участвующий в качестве счетчика для некоторых команд;

- индексные регистры (Index register) – регистры, участвующие в операциях с индексной адресацией, при операциях с массивами, строками и другими линейно-упорядоченными объектами (объектами однотипных данных, расположенных в памяти «подряд»).

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

- базовый регистр (Base) – регистр, который служит для указания начального адреса объекта в памяти при операциях с массивами и неявной адресации;

- указатель стека (Stack Pointer) – регистр, который используется для организации работы со стеком;

- указатель базы (Base Pointer) – регистр, который используется для удобства доступа к данным в стеке, которые не находятся в его вершине (например, параметры подпрограмм, переменные с модификатором auto в программах на С и т.д.)

Стек (англ. stack, стопка) – структура данных (способ хранения данных) с методом доступа к элементам LIFO (Last In - First Out – последним пришел, первым вышел). Добавление элемента (push) возможно только в вершину стека (добавленный элемент становится первым в стеке), удаление (pop) только из вершины стека. Стек широко используется в программировании на низком уровне (как правило, на языке ассемблера) и является неотъемлемой частью архитектуры современных процессоров. Компиляторы языков программирования высокого уровня используют стек для передачи параметров при вызове подпрограмм, процессоры – для хранения адреса возврата из подпрограмм.

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

1.По способу достижения конечного результата обработки информации:

- эквивалентные процессы – при одинаковых исходных данных, различных программах обработки информации и трассах[1] процессов достигается одинаковый конечных результат;

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

- равные процессы – трассы процессов и все остальное совпадают;

- различные процессы – во всех остальных случаях.

2.По времени существования друг относительно друга:

- последовательные процессы – интервалы существования процессов не пересекаются во времени;

- параллельные процессы – на рассматриваемом интервале времени процессы существуют одновременно;

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

3.По принадлежности к операционным системам:

- системные процессы – процессы, порожденные операционной системой;

- пользовательские процессы – процессы, порожденные по запросу пользователя.

4.По связности:

- изолированные процессы – нет связей друг с другом;

- информационно-независимые процессы – процессы, которые совместно используют некоторые ресурсы, но не обмениваются информацией;

- взаимодействующие процессы – процессы, связанные обменом информацией;

- конкурирующие процессы – процессы, связанные по ресурсам.

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

- отношение предшествования – первый процесс должен переходить в активное состояние всегда раньше второго;

- отношение приоритетности – процесс переводится в активное состояние только при соблюдении двух условий: в состоянии готовности этого процесса не существует процессов с большим приоритетом и процессор либо свободен, либо используется процессом с меньшим приоритетом.

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

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

1.По реальности существования:

- физические ресурсы – ресурсы, реально обладающие всеми физическими характеристиками;

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

2.По характеру использования: параллельно-используемый ресурс; последовательно-используемый ресурс.

3.По возможности расширения свойств:

- жесткий ресурс – ресурс, который не допускает виртуализацию;

- расширяемый ресурс – ресурс, который допускает виртуализацию.

4.По активности:

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

- пассивный ресурс.

5.По времени существования:

- постоянный ресурс – ресурс, который существует до момента порождения процесса;

- временный ресурс – ресурс, который может появляться и уничтожаться динамически в течение времени существования процесса.

6.По степени важности – главный ресурс; второстепенный ресурс.

7.По функциональной избыточности – дорогой ресурс; дешевый ресурс.

8.По структуре: простой ресурс; составной ресурс.

9.По восстанавливаемости: воспроизводимый ресурс; потребляемый ресурс.

Процесс выполняет в отношении ресурсов три типа действий:

- запрос – в ответ на который операционная система выделяет процессу некоторый ресурс, либо отказывает в его выделении;

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

- освобождение – действие, которое выполняется по требованию процесса и переводит ресурс в состояние «свободен».

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

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

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

- ресурс свободен и нет задач с более высоким приоритетом;

- ресурс получил текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;

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

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

 

 

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

- адресное пространство памяти – список адресов в памяти от минимума (обычно нуля) до некоторого максимума, которые процесс может прочесть и в которые он может писать; адресное пространство содержит саму программу, данные к ней и ее стек (англ. stack – стопка, структура данных);

- код программы и данные, помещаемые в адресное пространство для исполнения и обработки;

- идентификатор процесса и его контекст – информация о состоянии аппаратных средств, выделенных процессу, и стадии его выполнения;

- список ресурсов компьютера, которые требуются процессу;

- средства защиты памяти процесса от постороннего вмешательства в код и данные процесса;

- программа, выполняемая процессором.

Во многих операционных системах информация о каждом процессе, дополнительная к содержимому его адресного пространства, хранится в таблице операционной системы. Эта таблица называется таблицей процессов и представляет собой массив (связанный список) структур (элементов), по одной на каждый существующий процесс. Часто элементы таблицы называют блоками управления процессом (РСВ, Process Control Block). Элемент таблицы (табл. 3.1.) содержит следующую информацию о процессе:

- информацию о состоянии процесса;

- информацию о счетчике команд (программный счетчик процесса – адрес команды, которая должна быть выполнена следующей);

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

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

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

- информацию об использовании и распределении ресурсов, связанную с данным процессом.

В таблице процессов поля (табл. 3.1.) первой колонки относятся к управлению процессом. Остальные колонки описывают управление памятью и файлами. Перечень полей в таблице процессов зависит от конкретной операционной системы. Информацию в блоке управления процессом удобно разделить на две части:

- регистровый контекст процесса – содержимое регистров и значение программного счетчика;

- системный контекст процесса – оставшееся содержимое блока управления процессом.

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

Таблица 3.1.

Поля типичного элемента таблицы процессов

 

Блок управления процессом, PCB Управление памятью Управление файлами
Регистры Указатель на текстовый сегмент Корневой каталог
Счетчик команд Указатель на сегмент данных Рабочий каталог
Слово состояния программы Указатель на сегмент стека Дескрипторы файла
Указатель стека   Идентификатор пользователя
Состояния процесса:   Идентификатор группы
Приоритет Параметры планирования Идентификатор процесса Родительский процесс Группа процесса Сигналы Время начала процесса Использованное процессорное время Процессорное время дочернего процесса Время следующего аварийного сигнала    

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

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

2. Пользовательские процессы – процессы, которые работают только в своем адресном пространстве и не влияют на ход функционирования системных процессов, но могут быть ими принудительно завершены. Пользовательским процессам доступны библиотеки подпрограмм и функции API (Application Program Interface – программный интерфейс), при необходимости они переходят на уровень системных процессов.

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

В некоторых системах один процесс может порождать другой, при этом порождающий процесс будет предком, а порожденный – потомком. Родительский процесс и процессы потомки остаются связанными между собой. Если процесс создает несколько других процессов, которые тоже могут создавать процессы, образуется дерево процессов. Например: процесс А создал два процесса потомка В и С. Процесс В создал три процесса потомка D, Е и F (рис. 3.1.).

В Unix процесс и все его потомки образуют группу процессов. Сигнал, посылаемый пользователем с клавиатуры, доставляется всем членам группы, взаимодействующим с клавиатурой в данный момент. Каждый из процессов может перехватить сигнал, игнорировать его или выполнить другое действие, предусмотренное по умолчанию. В Windows не существует иерархии процессов, все процессы равноправны. Проявление подобия иерархии происходит только при создании процесса, когда родительский процесс получает специальный маркер – дескриптор, позволяющий контролировать процесс потомок. Но маркер можно передать другому процессу, нарушая иерархию, что в Unix невозможно.

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

- рождение – подготавливаются условия для первого исполнения на процессоре;

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

- ожидание – процесс не исполняется на процессоре по причине занятости какого-либо требуемого ресурса;

- исполнение – процесс исполняется;

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

Процесс находится в каждом из допустимых состояний в течение некоторого времени, после чего переходит в какое-либо другое допустимое состояние. Состав допустимых состояний обычно задается в виде графа (рис. 3.2.).


 

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

Каждый процесс, как минимум, может находиться в двух состояниях: процесс исполняется, и процесс не исполняется (рис.3.3.). Процесс, находящийся в состоянии процесс исполняется, через некоторое время может быть завершен или приостановлен и переведен в состояние процесс не исполняется. Приостановка процесса происходит по двум причинам: для его дальнейшей работы потребовалось какое-либо событие (например, завершение операции ввода-вывода) или истек временной интервал, отведенный операционной системой для работы данного процесса. Операционная система по определенному алгоритму выбирает один из процессов, находящихся в состоянии процесс не исполняется, и переводит его в состояние процесс исполняется. Состояние процесс не исполняется подразделяется на два новых состояния: готовность и ожидание (рис. 3.2.).

Новый родившийся процесс в системе из состояния рожден попадает в состояние готовность (рис. 3.2.). Операционная система, пользуясь алгоритмом планирования, выбирает один из готовых процессов и переводит его в состояние исполнение. В состоянии исполнение происходит непосредственное выполнение программного кода процесса. Выйти из состояния исполнения процесс может по трем причинам:

- операционная система прекращает деятельность процесса (окончание);

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

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

В ряде операционных систем состояния процесса могут быть еще более детализированы. Например, модель состояния процессов для операционной системы Windows NT содержит 7 различных состояний, для операционной системы UNIX – 9. Однако все операционные системы подчиняются изложенной выше модели.

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

- обычные (пакетные) процессы – длительность интервала существования не определенная;

- интерактивные процессы – интервал существования не более времени реакции компьютера на запросы пользователя;

- процессы реального времени – интервал существования процесса менее некоторого определенного момента времени (гарантированного интервала).

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

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 1299; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.052 сек.