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