ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. 
ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ВСория ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ОсновноС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ процСссов — прСдставлСниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмой ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΌΠΈ Π½Π° Π½Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСны Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ процСссов, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ процСсс… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСм) — ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π» программирования, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ систСмным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ «ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠ΅» ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ этого Π²ΠΈΠ΄Π° программирования сущСствСнно ΠΌΠ΅Π½ΡΡŽΡ‚ свойства ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя бСсспорным остаётся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ стСпСни этот Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, выполняСмых Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ «ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΌ» ΠΈ «Π½Π΅ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΌ» (ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ") Π½Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… слоСв, Π½Π° Π²Π½Π΅ΡˆΠ½Π΅ΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ — Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Условная ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ систСмности нарастаСт ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ всС Π±ΠΎΠ»Π΅Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ систСмы.

Одной ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‡Π΅Ρ€Ρ‚ систСмного программирования ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ послСднСго являСтся выпуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСкстовый процСссор). Π’ Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ систСмного программирования являСтся выпуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для взаимодСйствия с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ обСспСчСниСм (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дСфрагмСнтация Тёсткого диска), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ части.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ пСрСдаСтся Π΄Π²Π° числовых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΏΠΈΠΉ любого стандартного ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния, входящСго Π² ΠΏΠΎΡΡ‚Π°Π²ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Для ОБ сСмСйства Windows это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Π»ΠΎΠΊΠ½ΠΎΡ‚. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΏΠΈΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… процСссов задаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ числовым ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ числовой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ количСство сСкунд, ΠΏΠΎ ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ процСсс ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… процСссов.

ВСория ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ОсновноС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ процСссов — прСдставлСниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмой ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΌΠΈ Π½Π° Π½Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСны Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ процСссов, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ процСсс ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ рСсурсы Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ нСскольким Π·Π°Π΄Π°Ρ‡Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ систСмС. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ исполнСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… процСссов называСтся ΠΏΡΠ΅Π²Π΄ΠΎΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π’ Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… процСссов выполняСтся, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΆΠ΄ΡƒΡ‚ своСй ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

Для выполнСния задания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для открытия ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅. Π’Π°ΠΊΠΆΠ΅ задСйствованы ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π° для задания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΎΠΊΠΎΠ½ прилоТСния «Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚».

ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

#include.

#include.

#include.

#include.

#include.

using namespace std;

int main (int argc, char *argv[]).

{.

int num_process;

int process_live_time;

int x;

int t;

cout<<" vvedite collichestvi okon «; // Задаётся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — колличСство ΠΎΠΊΠΎΠ½.

cin>>x;

cout<<" vvedite vremya gizni okon «; // задаСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — врСмя Π΄ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ закрытия ΠΎΠΊΠΎΠ½.

cin>>t;

if (argc < 3) { // Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½ΡŒΡˆΠ΅ Ρ‚Ρ€Π΅Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

num_process = x;

process_live_time = t;

}.

else {.

// ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ строки. Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‡ΠΈΡΠ»ΠΎ.

num_process = atoi (argv[1]);

process_live_time = atoi (argv[2]);

}.

QString target = «c:/WINDOWS/notepad.exe» ;

STARTUPINFO * si = new STARTUPINFO[num_process];

PROCESS_INFORMATION *pi = new PROCESS_INFORMATION[num_process];

for (int i=0; i.

{.

memset (&si[i], 0, sizeof (STARTUPINFO));

memset (&pi[i], 0, sizeof (PROCESS_INFORMATION));

si[i]. cb = sizeof si;

CreateProcess (target.toStdWString ().c_str (), 0, 0, FALSE, 0, 0, 0, 0, &si[i], &pi[i]);

}.

Sleep (process_live_time*1000); // ΠΏΠΎΡ‚ΠΎΠΊ зависаСт Π½Π° process_live_time сСкунд.

for (int i=0; i.

{.

:PostThreadMessage (pi[i]. dwThreadId, WM_QUIT, 0, 0);

WaitForSingleObject (pi[i]. hProcess, INFINITE);

CloseHandle (pi[i]. hProcess);

CloseHandle (pi[i]. hThread);

}.

cout << «Kill them all» << endl;

system («pause»);

}.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ПослС старта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ открываСтся ΠΎΠΊΠ½ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π΄Π΅ΡΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π³Π΄Π΅ пСрвая строка — это количСство ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Π²Ρ‚орая врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (рисунок 7).

Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рисунок 7 — Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ По ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ процСссы ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ сообщСниС ΠΎΠ± ΠΈΡ… Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ (рисунок 8).

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΊΠΎΠ½.

Рисунок 8 — Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΊΠΎΠ½ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с 6 ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдусмотрСны возмоТности управлСния: приостановка, смСна ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ², Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ запуск, Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅.

ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ задания Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ряд ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡, ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡, ΠΈΠ»ΠΈ с ΠΈΡ… ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ (Π² ΠΎΠ΄Π½ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ систСмС) ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ систСмС. Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ каТдая такая ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Π° сущСствуСт ΠΊΠ°ΠΊ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ процСсса. ΠŸΡ€ΠΈ этом процСсс дСлится Π½Π° Π΄Π²Π΅ части. Одна Ρ‡Π°ΡΡ‚ΡŒ содСрТит рСсурсы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Другая содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΡ‚Π½ΠΎΡΡΡ‰ΡƒΡŽΡΡ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ выполнСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ счСтчик ΠΈ ΡΡ‚Π΅ΠΊ. Π­Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ называСтся ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ.

ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

#ifndef MAIN_WINDOW_H.

#defineMAIN_WINDOW_H.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

static int max_time = 10 000 000;

class thread_t: public QThread.

{.

Q_OBJECT.

size_t progress;

virtual void run().

{// это функция которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… (ΠΏΠ°Ρ€Π°Π»Π΅Π»ΡŒΠ½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ).

// каТдая копия Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ 1 ядро процСссора Π½Π° 100%.

_end = pause = false;

for (int i=0; i<200; i++).

{.

for (int j=1; j.

progress += progress*progress*10/j;

progress += progress*progress*10/j;

}.

emit signalForProgressBar (i);//сигнал ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ прогрСссБар. высылаСтся всСго 200 Ρ€Π°Π·.

if (_end) break;

while (pause) Sleep (10);

}.

}.

public:

bool _end, pause;

thread_t (QWidget *parent = 0).

: QThread (parent).

{.

}.

~thread_t().

{.

if (isRunning ()).

wait ();

}.

signals:

void signalForProgressBar (int);

};

class box_wgt_t: public QGroupBox.

{.

Q_OBJECT.

QProgressBar *bar = new QProgressBar (this);

QRadioButton *high_property = new QRadioButton (trUtf8(«Π’ысокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚»), this);

QRadioButton *nomal_property = new QRadioButton (trUtf8(«ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚»), this);

QRadioButton *low_property = new QRadioButton (trUtf8(«ΠΠΈΠ·ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚»), this);

QPushButton *pause_button = new QPushButton (trUtf8(«ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ»), this);

QPushButton *resume_button = new QPushButton (trUtf8(«Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ»), this);

QPushButton *start_button = new QPushButton (trUtf8(«ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ»), this);

QPushButton *stop_button = new QPushButton (trUtf8(«ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ»), this);

QGridLayout *lay = new QGridLayout (this);

thread_t *thread = 0;

public:

box_wgt_t (const char* name, QWidget *parent = 0).

: QGroupBox (trUtf8(name), parent).

{.

bar->setMinimum (0);

bar->setMaximum (200);

lay->addWidget (bar, 0, 0, 1, 3);

lay->addWidget (start_button, 1, 0);

lay->addWidget (stop_button, 1, 1);

stop_button->setEnabled (false);

lay->addWidget (pause_button, 2, 0);

pause_button->setEnabled (false);

lay->addWidget (resume_button, 2, 1);

resume_button->setEnabled (false);

lay->addWidget (low_property, 3, 0);

lay->addWidget (nomal_property, 4, 0);

lay->addWidget (high_property, 5, 0);

connect (pause_button, SIGNAL (clicked ()), this, SLOT (pause_thread ()));

connect (resume_button, SIGNAL (clicked ()), this, SLOT (resume_thread ()));

connect (start_button, SIGNAL (clicked ()), this, SLOT (start_thread ()));

connect (stop_button, SIGNAL (clicked ()), this, SLOT (stop_thread ()));

connect (nomal_property, SIGNAL (clicked ()), this, SLOT (priority_func ()));

connect (low_property, SIGNAL (clicked ()), this, SLOT (priority_func ()));

connect (high_property, SIGNAL (clicked ()), this, SLOT (priority_func ()));

}.

public slots:

void priority_func ().

{.

// Priority {.

// IdlePriority,.

// LowestPriority,.

// LowPriority,.

// NormalPriority,.

// HighPriority,.

// HighestPriority,.

thread->setPriority (QThread:HighestPriority);

}.

void pause_thread () {.

thread->pause = true;

pause_button->setEnabled (false);

resume_button->setEnabled (true);

}.

void resume_thread () {.

thread->pause = false;

resume_button->setEnabled (false);

pause_button->setEnabled (true);

}.

void start_thread () {.

start_button->setEnabled (false);

stop_button->setEnabled (true);

thread = new thread_t (0);

connect (thread, SIGNAL (signalForProgressBar (int)), this, SLOT (set_progress (int)));

thread->start ();

pause_button->setEnabled (true);

}.

void stop_thread () {.

thread->_end = true;

thread->pause = false;

thread->exit ();

delete thread;

resume_button->setEnabled (false);

pause_button->setEnabled (false);

start_button->setEnabled (true);

stop_button->setEnabled (false);

}.

void set_progress (int i) {.

bar->setValue (i);

}.

};

class main_wgt_t: public QWidget.

{.

Q_OBJECT.

QGridLayout *lay = new QGridLayout (this);

box_wgt_t *thread1 = new box_wgt_t («ΠŸΠΎΡ‚ΠΎΠΊ № 1», this);

box_wgt_t *thread2 = new box_wgt_t («ΠŸΠΎΡ‚ΠΎΠΊ № 2», this);

box_wgt_t *thread3 = new box_wgt_t («ΠŸΠΎΡ‚ΠΎΠΊ № 3», this);

box_wgt_t *thread4 = new box_wgt_t («ΠŸΠΎΡ‚ΠΎΠΊ № 4», this);

box_wgt_t *thread5 = new box_wgt_t («ΠŸΠΎΡ‚ΠΎΠΊ № 5», this);

box_wgt_t *thread6 = new box_wgt_t («ΠŸΠΎΡ‚ΠΎΠΊ № 6», this);

public:

main_wgt_t (QWidget *parent = 0).

: QWidget (parent).

{.

lay->setRowStretch (0,0);

lay->setColumnStretch (0,0);

lay->addWidget (thread1,0,0);

lay->addWidget (thread2,0,1);

lay->addWidget (thread3,0,2);

lay->addWidget (thread4,1,0);

lay->addWidget (thread5,1,1);

lay->addWidget (thread6,1,2);

}.

private slots:

};

class main_window_t: public QMainWindow.

{.

Q_OBJECT.

public:

main_window_t ().

{.

setCentralWidget (new main_wgt_t (this));

setWindowTitle («Threads»);

setMinimumHeight (200);

setMinimumWidth (200);

show ();

}.

};

#endif // MAIN_WINDOWS_H.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 6 настраиваСмых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ². РСсурсы систСмы ΠΎΡ…ΠΎΡ‚Π½Π΅ΠΉ Ρ€Π°ΡΡ…ΠΎΠ΄ΡƒΡŽΡ‚ΡΡ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, соотвСтствСнно ΠΏΠΎΡ‚ΠΎΠΊΠΈ с Π²Ρ‹ΡΠΎΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ быстрСС (рисунок 9).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

Рисунок 9 — ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ