Операционные системы. Программирование в операционной среде Windows

21 7. Как программно создать процесс? 8. Какие действия выполняет система при запуске процесса? 9. Какие параметры влияют на запуск процесса? Ю.Каким образом родительский процесс может управлять дочерним? 11. Что наследуется дочерним процессом от родительского процесса и как организовать наследование? 12.Какие существуют способы передачи наследуемых описателей ОЯ дочерним процессам? 2. Потоки. Синхронизация потоков с помощью критических секций 2.1. Определение потока. Области их применения При инициализации процесса система всегда создает иервмчный поток. Процессы инертны, сам по себе процесс ничего не исполняет. Чтобы процесс что-нибудь выполнил, в нем нужно создать поток. Программа начинает выполняться со своего первичного потока, который в программах на языке С является функцией main, а в Windows- программах — WinMain. Большинство приложений обходится единственным, первичным потоком. В многопоточной среде программу можно разделить на части, называемые потоками выполнения (threads), которые могут выполняться параллельно. Процессы могут создавать дополнительные вторичные потоки, что позволяет им эффективнее выполнять свою работу. В программе «поток» — это функция, которая может вызывать другие функции программы. Поток состоит из двух компонентов: - ОЯ «поток», через который ОС управляет потоком, там же хранится статистическая информация о потоке; - стека потока, который содержит параметры всех функций и локальные переменные, необходимые потоку для выполнения кода. Потоки не имеют своего адресного пространства, они исполняют код и манипулируют данными в адресном пространстве процесса. Потоки имеют доступ ко всей памяти процесса, т.е. к стекам всех потоков. Потоки могут исполнять один и тот же код и манипулировать одними и теми же данными, а также совместно использовать описатели ОЯ, поскольку таблица описателей создается не в отдельных потоках, а в процессах. Потоки расходуют существенно меньше ресурсов, чем процессы. Для процесса создание виртуального адресного пространства требует значительных системных ресурсов. В адресное пространство загружаются ЕХЕ- и DLL-файлы, а значит, нужны файловые ресурсы. Потоку же требуются лишь соответствующий ОЯ и стек, объем статистических сведений о потоке невелик и много памяти не занимает. Кроме этого легче

RkJQdWJsaXNoZXIy MTY0OTYy