..


Sponzorirani linkovi

Simultano programiranje u C POSIX

Članak je napisao Mark Frison
Stranica 1 od 5

Svi moderni operativni sustavi potrajati godinama da se model multi-proces upravljanja, dodjeljujući izvršenje vrijeme i memorijski prostor za razne programe izvode istovremeno. U posljednjih nekoliko godina, uglavnom zbog pervasiveness mreže komunikacije, ovaj koncept je proširen za pojedine softvera, dijeli isti proces više struje od kontrole tih teme. Ovaj novi pristup donosi ogromne promjene u strukturi programa, kako u teoriji tako iu praksi, kao i uvijek se događa, modularnost i izražajnost su plaćeni u smislu povećanja softvera složenosti.

Programski jezici najnovije, iz Java, svi nude specijalitete domaće Sučelje za kreiranje i upravljanje teme, sustavi temeljeni na virtualne strojeve kao što su Java i C # imaju razvijen razinu apstrakcije u skladu na ovo pitanje i sve druge mora osloniti na primitiva operativnog sustava, često nastanu problemi prenosivost koda. U tom kontekstu, knjižnice su dio POSIX Threads (pthreadsa) kako bi se omogućilo C razvijatelji su također minimalno jamstvo prenosivost između različitih sustava.

Preduvjeti

Ovaj članak je usmjeren na svima koji žele pristupiti temu istodobnih programiranje u jezicima niske razine. U ovoj prezentaciji pretpostavlja da je čitatelj već stekao osnovna znanja o C jezik neće biti tretirane kao osnovne teme kao što su, na primjer, upravljanje memorijom i vrste podataka.

POSIX nit knjižnice

Kao što se lako pogađate iz naziva, POSIX nit knjižnice su dio skupa POSIX (Portable operativni sustav sučelja [za Unix]). Citirajući definiciju "pthread [...] određuje skup sučelja (funkcija, zaglavlje datoteke) za navojne procesa programiranja za jednu [...] može sadržavati više niti, koji su svi izvršenja pregled programa [...] isti udio globalne memorije (podaci i hrpa segmentima), ali njegova Svaka nit ima vlastiti stog. " Ovaj odlomak opisuje upravo ono što je uključen u više programa u POSIX niti:

  • više kontrole tokova (teme) u jedan proces;
  • dijeljenje memorije sadrži kod (podaci segmentu) i dinamičke memorije (hrpa segment);
  • privatni stog.
Što ne čini jasno je status zapisa, posebno onih kao što su osnovni "upute pokazivač i stog pokazivač, tako da smo odredili da svi zapisi su strogo privatni za svaki thread i spasio / obnovljena kada protok kontrola pomaknuo se od između teme (thread prebacivanje).

Koristite POSIX standard osigurava visoku razinu integracije u svim POSIX-compliant sustava kao što su, primjerice, GNU / Linux, Mac OSX, BSD, pa čak i Windows (s nekim dodacima). Kroz ovaj članak mi ćemo se odnose na korištenje GCC pod GNU / Linux, naravno, sve razmatranja prenijeti bilo koje druge POSIX-kao što su okoliš.

Prvi (pogrešan) primjer

Pthread.h knjižnica pruža sve što vam treba za programiranje u više niti, a ne da samo popis primitiva koje ćemo predstaviti praktičan primjer s vremena na vrijeme raspravljaju o svojim razlikama.

Dakle, razmislite o sljedećem problemu: Program mora čitati iz bankovnog transfera nekoliko datoteka za branje i / ili depozit da se na račun, a zatim ove datoteke će imati sljedeći oblik:






 120







 -550







 896







 5541







 -85







 ...



Da biste ubrzali različite teme "blagajnik" svaki djeluju na jednu datoteku i obnovljeno istovremeno kupca račun, obavlja sve poslove u izlazni status računa.

U istoj kategoriji ...
E-učenje
Excel (Ebook) Excel (Ebook)
Stvaranje tablice i kalkulacije. Samo 25 €.
MS Access (Napredno) MS Access (Napredno)
Saznajte kako stvoriti i upravljati bazama podataka brzo i jednostavno. Počevši od 29 €.
Visual Basic 6 (cjelina) Visual Basic 6 (cjelina)
Napravite računalne aplikacije s VB6. Od 39 €.
Sponzorirani linkovi