Операции над процессами и потоками. Родительские и дочерние процессы. Наследование объектов ядра.


Операции над потоками: 1) создание потоков:
  • создается объект ядра поток;
  • создается структура контекста потока (в этой структуре контекста присваиваются начальные значения регистров, создается стек, настраивается указатель на стек);
  • инициализируется структура;
  • выделяется память для стека потока (у каждого потока есть стек);
  • поток попадает в состояние готовности.
2) завершение потока (уничтожение): terminatethread. 3) изменение приоритета потока. 4) выделение процессорного времени. 5) перевод в различные состояния (ожидание, работа, и так далее). Операции над процессами: Создание: создается объект ядра процесс и ему присваивается идентификатор процесса. Ему даются в собственность некоторые объекты ядра (открытые файлы) (наследование – inherit). Потоку присваивается базовый приоритет, затем его можно менять. Процесс завершается при: а) завершении всех потоков процесса; б) при вызове любым потоком функции завершения процесса. В вычислительной системе может быть создана иерархическая структура запущенных на выполнение процессов. Один процесс может породить другой процесс, и в этом случае первый процесс называется РОДИТЕЛЬСКИМ, а второй процесс - ДОЧЕРНИМ. При запуске какой-либо программы из командного процессора (например, COMMAND.COM, Нортон коммандер или ДОС Навигатор), он выступает в роли родительского процесса. Дочерний процесс, в свою очередь, может запустить несколько дочерних процессов и так далее, таким образом создается иерархия процессов. В многозадачных операционных системах все запущенные процессы работают параллельно и могут обмениваться информацией в реальном или близком к реальному времени. В однозадачной операционной системе MS-DOS родительский и дочерний процессы работать параллельно не могут, и обычно родительский процесс может продолжить свою работу только после завершения дочернего процесса.