Лабораторный практикум по курсу "Операционные системы"
- состояние других устройств в случае, если управление ими осуществляется
непосредственно на уровне команд программы, а не через интерфейс доступа к устройствам
через выполнение системных вызовов операционной системы. Такая ситуация возможна в
случае, если операционная система предоставляет пользовательским программам
непосредственный доступ к аппаратным ресурсам. В настоящее время пользовательским
программам обычно предоставляется
доступ к некоторому объекту операционной системы,
представляющему физическое устройство, и множеству системных вызовов для работы с
этим объектом, а непосредственное взаимодействия с этим устройством осуществляет
операционная система. При организации работе с таким объектом ОС, его владение обычно
закрепляется за процессом, а не за потоком.
3. Множество ресурсов, используемых потоком или принадлежащих
потоку, и их состояния.
В большинстве случаев пользователем (владельцем) ресурсов является процесс, но
существую исключения, например, мьютексы.
В случае, если выполнение потока какого-либо процесса было прервано в ходе обработки
системного вызова, то во многих случаях для продолжения выполнения необходимо также
полностью восстановить состояние подсистемы ядра, обслуживавшей запрос (что может
потребовать
восстановления состояния всего ядра в целом).
Таким образом, мы видим, что возможность восстановление процесса или потока после того
как он был прерван или уничтожен, зависит от возможности восстановления выше
перечисленных параметров. Наибольшую сложность в данном случае представляет собой
восстановления состояния аппаратных устройств, поскольку алгоритмы восстановления
состояния аппаратуры могут быть чрезвычайно
сложны или принципиально не реализуемы
(попробуйте составить алгоритм, в результате выполнения которого жесткий диск примет
желаемые параметры S.M.A.R.T.)
В описании процесса и потока можно выделить некоторую системную составляющую,
которую операционная система хранит для пользовательских процессов/потоков вне
зависимости от того, какой процесс или поток является активным (исполняется) в настоящий
момент. А
также составляющую, состояние которой может быть утеряно при потере
процессом/потоком активного состояния и, соответственно, должно впоследствии
восстанавливаться. Эту составляющую мы будем называть контекстом процесса или
контекстом потока. Например, в контекст процесса может входить описание его
виртуального адресного пространства, а в контекст потока всегда входят значения
доступных ему регистров процессора.
Ядро
операционной системы также имеет свое описание состояния, аналогичное описанию
процесса, свой контекст. Однако ядру никто не предоставляет виртуализованное
представление ресурсов, оно работает с ними напрямую. Поэтому описание состояния ядра
существенно зависит от аппаратной среды. С другой стороны, ядро может не иметь
постоянно исполняемых потоков и заниматься только обслуживанием системных вызовов (
в
этом случае используется поток, осуществивший вызов) и обработкой событий по мере их
возникновения (в этом случае используется поток, исполнявшийся на процессоре, на
котором произошло событие). В зависимости от организации операционной системы, при
таком использовании может осуществляться или не осуществляться смена контекста
процесса и потока.
Классификация ОС по признаку поддержки процессов
и потоков
Существует классификация операционных систем, основанная на их возможностях по работе
с процессами и потоками. В соответствии с ней ОС подразделяются следующим образом.
12 Учебно-исследовательская лаборатория «Информационные технологии»