Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 132

Автор ДТонсон Π₯Π°Ρ€Ρ‚

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. МногиС поставщики систСм UNIX ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собствСнныС срСдства ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π“Π»Π°Π²Π° 5: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL ΠžΠ±Π»Π°ΡΡ‚ΡŒ Windows UNIX Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π‘ ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² CreateFileMapping shmget - ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² MapViewOfFile mmap, shmat - ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² MapViewOfFileEx mmap, shmat - ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² OpenFileMapping shmget - ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² UnmapViewOfFile munmap, shmdt, shmctl - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ GetProcessHeap - - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ GetSystemInfo - - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ HeapAlloc sbrk, brk ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π‘ malloc, calloc Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ HeapCreate - - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ HeapDestroy - - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ HeapFree Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π‘ free Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ HeapReAlloc Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π‘ realloc Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ HeapSize - - РаздСляСмая ΠΏΠ°ΠΌΡΡ‚ΡŒ CloseHandle (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ дСскриптора ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° отобраТСния Ρ„Π°ΠΉΠ»Π°)  shmctl - РаздСляСмая ΠΏΠ°ΠΌΡΡ‚ΡŒ CreateFileMapping, OpenFileMapping shmget - РаздСляСмая ΠΏΠ°ΠΌΡΡ‚ΡŒ MapViewOfFile shmat - РаздСляСмая ΠΏΠ°ΠΌΡΡ‚ΡŒ UnmapViewOfFile shmdt - Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL LoadLibrary dlopen - Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL FreeLibrary dlclose - Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL GetProcAddress dlsyn - Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ DLL DllMain pthread_once - Π“Π»Π°Π²Π° 6: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами ΠžΠ±Π»Π°ΡΡ‚ΡŒ Windows UNIX Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π‘ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами CreateProcess fork(); execl()*, system() - БущСствуСт 6 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ СхСсхх Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами ExitProcess _exit exit Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetCommandLine argv[] argv[] Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetCurrentProcess getpid* - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetCurrentProcessId getpid* - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetEnvironmentStrings  - getenv Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetEnvironmentVariable - getenv Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetExitCodeProcess wait, waitpid - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetProcessTimes times, wait3, wait4 - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами GetProcessWorkingSetSize wait3, wait4 - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - execl*,execv*,execle*,execve*,execlp*,execvp* - Π’ Windows прямой эквивалСнт отсутствуСт Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - fork, vfork - Π’ Windows прямой эквивалСнт отсутствуСт Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - getppid - ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ "ΠΏΡ€Π΅Π΄ΠΎΠΊ/ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ" Π² Windows ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - getgid, getegid - ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ процСссов Π² Windows отсутствуСт Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - getpgrp - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - setpgid - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - setsid - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - tcgetpgrp - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами - tcsetpgrp - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами OpenProcess  - - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами SetEnvironmentVariable putenv - putenv Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π‘ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами TerminateProcess kill - Бинхронизация: процСсс WaitForMultipleObjects (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ дСскрипторов процСсса) waitpid - Бинхронизация: процСсс WaitForSingleObject (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ дСскриптора процСсса) wait, waitpid - Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ KillTimer alarm(0) - Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ SetTimer alarm - Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Sleep sleep - Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Sleep poll ΠΈΠ»ΠΈ select Π±Π΅Π· указания Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ дСскриптора - Π“Π»Π°Π²Π° 7: ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ выполнСния ΠžΠ±Π»Π°ΡΡ‚ΡŒ Windows UNIX/Pthreads ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ CreateRemoteThread - TLS TlsAlloc pthread_key_alloc TLS TlsFree pthread_key_delete TLS TlsGetValue pthread_getspecific TLS TlsSetValue pthread_setspecific Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ CreateThread, _beginthreadex pthread_create Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ExitThread, _endthreadex pthread_exit Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ GetCurrentThread pthread_self Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ GetCurrentThreadId - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ GetExitCodeThread pthread_yield Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ResumeThread - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ SuspendThread - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ TerminateThread pthread_cancel pthread_cancel являСтся Π±ΠΎΠ»Π΅Π΅ бСзопасной Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ WaitForSingleObject (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ дСскриптора ΠΏΠΎΡ‚ΠΎΠΊΠ°) pthread_join ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² GetPriorityClass pthread_attr_getschedpolicy, getpriority ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² GetThreadPriority pthread_attr_getschedparam ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² SetPriorityClass pthread_attr_setschedpolicy, setpriority, nice ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² SetThreadPriority pthread_attr_setschedparam

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ всСх соврСмСнных систСм UNIX, ΠΏΠΎΡ‚ΠΎΠΊΠΈ Pthreads доступны Ρ‚Π°ΠΊΠΆΠ΅ Π² систСмах, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ UNIX.