Процессом как экземпляр выполняемой программы, его структура и основные элементы в Windows. Назначение нитей и волокон. Порядок создания и завершения процессов, разработки и уничтожения нитей и волокон. Способы выполнения работы нити, Wait-функции.
Процесс в Windows состоит из следующих компонентов: - структура данных, содержащая всю информацию о процессе, в том числе список открытых дескрипторов различных системных ресурсов, уникальный идентификатор процесса, различную статистическую информацию и т.д.; Нить (thread) - некая сущность внутри процесса, получающая процессорное время для выполнения. Далее эта нить может породить другие нити, те в свою очередь новые и т.д. Квант определяет, сколько времени будет выполняться нить, пока операционная система не прервет ее. Эта операция заключается в сохранении параметров выполняемой нити (регистры процессора, указатели на стек ядра и пользовательский стек, указатель на адресное пространство, в котором выполняется нить и др.), и загрузке аналогичных параметров для другой нити, после чего начинается выполнение новой нити.Создание Win32 процесса осуществляется вызовом одной из таких функций, как CREATEPROCESS, CREATEPROCESSASUSER (для WINNT/2000/Vista) и CREATEPROCESSWITHLOGONW (начиная с Win2000) и происходит в несколько этапов: - Открывается файл образа (EXE), который будет выполняться в процессе. Если исполняемый файл не является Win32 приложением, то ищется образ поддержки (support image) для запуска этой программы. CREATEPROCESS, найдя исполняемый Win32 файл, ищет в SOFTWARE\Microsoft\Windows NT\CURRENTVERSION\Image File Execution Option раздел с именем и расширением запускаемого файла, затем ищет в нем параметр Debugger, и если строка не пуста, запускает то, что в ней написано вместо данной программы.Процесс завершается если: - Входная функция первичной нити возвратила управление. Нить другого процесса вызвала функцию TERMINATEPROCESS. Когда процесс завершается, все User-и GDI-объекты, созданные процессом, уничтожаются, объекты ядра закрываются (если их не использует другой процесс), адресное пространство процесса уничтожается.Первичная нить создается автоматически при создании процесса.Нить завершается если - Функция нити возвращает управление.Волокно может быть создано с помощью системного вызова CREATEFIBER из основной нити процесса или получено путем преобразования текущей нити с помощью функции CONVERTTHREADTOFIBER. Переключение между волокнами может быть организовано с помощью функции SWITCHTOFIBER, но ее вызов можно осуществлять только из волокна. Пример: Программа создает 4 волокна, каждое из которых выполняет переключение на следующее волокно, если число переключений больше 10, работа завершается. // для работы с волокнами следующие 2 строки обязательны! void *fiber[5];Для принудительного уничтожения волокна применяется функция DELETEFIBER.Функция Sleep() приостанавливает работу нити на заданное число миллисекунд. Нить откажется от своего кванта процессорного времени, однако тут же появится в списке нитей, готовых к выполнению. Иными словами произойдет намеренное переключение нитей (вернее сказать, попытка переключения - ведь следующей для выполнения нитью вполне может стать та же самая). Ожидать с помощью wait-функций можно большинство объектов ядра, например, объект «процесс» или «нить», чтобы определить, когда они завершат свою работу. {char * INITSTR1 [2] = {«First thread running!», «11111»}; // строка для первой нити char * INITSTR2 [2] = {«Second thread running!», «22222»}; // строка для второй нити unsigned long UTHREADIDS[2];В реферате рассмотрены различные WIN API функции и последовательность действий для создания и работы с процесами, нитями и фолокнами при созданиии вминдоуз-приложений, их применение и особенности.
План
Содержание
1. Процессы, нити и волокна в ОС Windows
2. Создание процессов
3. Завершение процессов
4. Создание нитей
5. Завершение нитей
6. Создание волокон
7. Уничтожение волокон
8. Wait-функции
Выводы
Список литературы
1. Процессы, нити и волокна в ОС Windows
Вывод
В реферате рассмотрены различные WIN API функции и последовательность действий для создания и работы с процесами, нитями и фолокнами при созданиии вминдоуз-приложений, их применение и особенности. Для получения полной информации о назначении, использовании и синтаксисе всех функций WIN32 API необходимо воспользоваться системой помощи MS SDK, входящей в состав сред программирования Borland Delphi или CBUILDER, а также MSDN, поставляемым в составе системы программирования Visual C.
Список литературы
1. Бэрри Нанс. Компьютерные сети пер. с англ. - М.: БИНОМ, 1996.