- •Файловая система ntfs
- •Структура дискового пространства в ntfs
- •Основные отличия систем fat и ntfs
- •5. Разделы с fat не обеспечивают локальной безопасности, в отличие от системы ntfs, которая может запретить или ограничить доступ, как для удаленных, так и локальных пользователей. РесурсЫ
- •Классификация ресурсов
- •Основные виды ресурсов
- •Вычислительный процесс
- •Реализация процесса
Вычислительный процесс
Процесс – это выполнение отдельной программы с её данными на последовательном процессоре.
Например, выполнение прикладных программ пользователя, утилит, системных обрабатывающих программ и т.д. Процессами могут быть редактирование какого-нибудь текста, трансляция исходной программы, её компоновка и использование. Однако трансляция какой-нибудь исходной программы является одним процессом, а трансляция следующей программы – другим процессом, поскольку, транслятор выступает как одна и та же программа, а данные, которые он обрабатывает, являются разными.
У каждого процесса имеется свое виртуальное адресное пространство. Каждому процессу назначаются свои ресурсы – файлы, окна и т.д. Такая обособленность необходима для того, чтобы защитить один процесс от другого, поскольку они, совместно используя все ресурсы вычислительной системы, конкурируют друг с другом.
Реализация процесса
Как правило, процесс появляется при запуске какой–нибудь программы на исполнение. Этот процесс может находиться в одном из следующих состояний:
Выполнения - все затребованные процессом ресурсы выделены. В этом состоянии в каждый момент времени может находится только один процесс, если речь идет об однопроцессорной вычислительной системе.
Готовности к выполнению – ресурсы могут быть предоставлены, тогда процесс перейдет в состояние выполнения;
Блокировки или ожидания – затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода.
За время своего существования процесс может неоднократно совершать переходы из одного состояния в другое. Это обусловлено обращениями к ОС с запросами ресурсов и выполнения системных функций, которые предоставляет ОС, взаимодействием с другими процессами, появлением сигналов прерывания от таймера, каналов и устройств ввода/вывода, а также других устройств.
Движущей силой, меняющей состояния процессов, являются события. Один из основных видов событий – это прерывания.
Для того, чтобы ОС могла управлять процессами, она на каждый процесс заводит специальную информационную структуру, называемую дескриптором процесса, который включает следующую информацию:
-
Идентификатор процесса.
-
Тип (или класс) процесса, который определяет правила предоставления ресурсов.
-
Приоритет процесса, в соответствии с которым предоставляются ресурсы в рамках одного класса.
-
Переменную состояния, которая определяет в каком состоянии находится процесс (готов к работе, в состоянии выполнения, ожидания устройства ввода/вывода).
-
Защищенную область памяти, в которой сохраняются текущие значения регистров процессора при прерывании его выполнения. Эта информация называется контекстом задачи.
-
Информацию о ресурсах, которыми процесс владеет или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода/вывода).
-
Место (или адрес) в памяти для организации общения с другими процессами.
-
Параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры).
-
В случае отсутствия системы управления файлами, адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружаются из ОП, если ее вытесняет другая задача.
Дескриптор процесса, как правило, постоянно располагается в ОП с целью ускорить работу системной программы, которая организует дескрипторы в списки и отображает изменение состояния процесса перемещением соответствующего дескриптора из одного списка в другой. Для каждого состояния ОС ведет соответствующий список задач, находящихся в этом состоянии. Однако, для состояния ожидания может быть не один список, а столько, сколько различных видов ресурсов могут вызывать состояние ожидания. Например, состояний ожидания завершения операции ввода/вывода может быть столько, сколько устройство ввода/вывода имеется в системе.
Для аппаратной поддержки работы ОС с дескрипторами процесса должны быть реализованы соответствующие механизмы. Например, в микропроцессорах семейства Intel имеется специальный регистр TR, указывающий местонахождение TSS (сегмента состояния задачи), в котором, при переключении с задачи на задачу, автоматически сохраняется содержимое регистров процессора.
ПОТОКИ
Некоторые операции, выполняемые приложением, могут требовать для своего исполнения достаточно длительного использования центрального процессора. В этом случае, при интерактивной работе с приложением, пользователь вынужден долго ожидать завершения заказанной операции и не может управлять приложением до тех пор, пока операция не выполнится до самого конца. Если же программные модули, исполняющие такие длительные операции, оформить в виде самостоятельных «подпроцессов» (легковесных или облегченных процессов – потоков), которые будут выполняться параллельно с другими «подпроцессами» (потоками, задачами), то у пользователя проявляется возможность параллельно выполнять несколько операций в рамках одного приложения (процесса).
Другими словами поток – это одна из задач процесса, с помощью которого распределяется процессорное время между возможными работами.
Потоки не имеют своих собственных ресурсов, они развиваются в том же виртуальном адресном пространстве, что и данный процесс, а также могут пользоваться только теми ресурсами, что и процесс. Поэтому между потоками нет полной защиты.
При манипулировании потоками изменяется только контекст задачи при переключении с одной задачи на другую в рамках одного процесса. Все остальные вычислительные ресурсы при этом не затрагиваются.
Считается, что каждый процесс всегда состоит из одного потока, и только, если имеется внутренний параллелизм, программист может «расщепить» один поток на несколько параллельных. Каждый поток выполняется строго последовательно и имеет свой собственный программный счетчик и стек.
Выводы
Основной задачей любой ОС является управление процессами. ОС должна распределять между ними ресурсы, представлять им возможность совместно использовать информацию и обмениваться ею, защищать ресурсы, используемые одним процессом, от их использования другими процессами, а также обеспечивать возможность синхронной работы процессов. Для этого ОС должна поддерживать для каждого процесса свою структуру данных, в которой задается состояние данного процесса и указываются ресурсы, которыми он владеет.
В многозадачной однопроцессорной системе несколько различных процессов могут выполняться, чередуясь один с другим. В многопроцессорной системе несколько процессов могут не только чередоваться, но и выполняться одновременно. В многопоточной системе принадлежность ресурсов остается атрибутом процесса, в то время как сам процесс представляет собой множество параллельно выполняющихся потоков.