Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 26 odgovora
  • 11.900 pregleda

Najnovija ↓

Re: malo teorije.. 12.06.2003. u 18:02 · pre 284 meseca #21
Citat:
Dragi Tata:
Na Windows-u je fiber neka vrsta niti koja nije "preemptively scheduled" (prevedi, Danilo). Umesto da sistem brine o dodeljivanju CPU vremena, ...


A sad jedno glupo pitanje: cemu ovakve stvari sluze?
Re: malo teorije.. 12.06.2003. u 18:12 · pre 284 meseca #22
Bogami ste bas zamrsili diskusiju. Ja mogu da pricam samo o Windows procesima i thread-ovima.
Dakle, pocecu od razlika izmedju njih, pa dokle stignem:

1) Prvo i prvo, nekakav owner-child odnos. Ako se ne varam, process moze 'sadrzati' vise thread-ova, u smislu da je on odgovoran za njihovo unistavanje, posto ih je on i kreirao (ja volim izraz 'lansirao'). Doduse, ovo nije sto posto tacno, jer postoji i nesto sto se zove CreateRemoteThread(), ali da ne ulazimo u tu pricu sad...
2) Prioriteti. Svakom thread-u mozete zasebno podici ili spustiti prioritet, i to ni na koji nacin ne utice na prioritet process-a kojem pripada. Drugim recima, prioritet thread-a je relativan u odnosu na prioritet process-a.
Ali ako promenite prioritet process-a, promenili ste i prioritet svih thread-ova koji njemu 'pripadaju'.
3) Child process-i. Process moze imati roditeljski odnos u jos jednom smislu: a to je da moze lansirati child procese, koji su (ako ne gresim) uslovljeni postojanjem owner process-a. (Mada mislim da ovo zadnje nije i obavezno).
Thread-ovi nemaju mogucnost ownership-a ni u kom obliku. Mislim, svaki thread moze lansirati proizvoljan broj process-a i thread-ova, ali ne moze biti 'owner' ni jednom od njih (bar ne onako kako to Windows uslovljava).
4) I da, cini mi se da sam video da postoji mogucnost kreiranja process-a bez osnovnog thread-a; mada nemam predstavu sta i kako, i da li uopste to nesto radi. Pod 'osnovnim' thread-om podrazumevam ThreadWindow objekat; znaci, nesto sto omogucava komunikaciju process-a sa ostatkom sveta (da, mislim na poruke).
S druge strane, ne mozete kreirati thread bez process-a, to jest svaki thread mora imati svog owner-a (process).

Nemam vise ideja.
Pozdrav

Rajko

P.S. Definicija process-a? Pa, recimo ovako nesto: process je ZAHTEV sistemu za dodelu procesorskog vremena...
Re: malo teorije.. 12.06.2003. u 19:24 · pre 284 meseca #23
Citat:

A sad jedno glupo pitanje: cemu ovakve stvari sluze?


E, na to pitanje neka ti odgovori MSDN:

"In general, fibers do not provide advantages over a well-designed multithreaded application. However, using fibers can make it easier to port applications that were designed to schedule their own threads."

Citat:
Process moze imati roditeljski odnos u jos jednom smislu: a to je da moze lansirati child procese, koji su (ako ne gresim) uslovljeni postojanjem owner process-a. (Mada mislim da ovo zadnje nije i obavezno).


Na Windows-u, child procesi nisu uslovljeni postojanjem parent procesa. Na nekim drugim operativnim sistemima jesu.

Citat:
4) I da, cini mi se da sam video da postoji mogucnost kreiranja process-a bez osnovnog thread-a; mada nemam predstavu sta i kako, i da li uopste to nesto radi. Pod 'osnovnim' thread-om podrazumevam ThreadWindow objekat; znaci, nesto sto omogucava komunikaciju process-a sa ostatkom sveta (da, mislim na poruke).
S druge strane, ne mozete kreirati thread bez process-a, to jest svaki thread mora imati svog owner-a (process).


Uh, ovde si malo zamrsio. Svaki proces mora da ima bar jednu nit. E, ako pod "osnovnom niti" podrazumevaš nit koja vrti message loop, onda je tačno da ne moraju svi programi da je imaju - konzolni programi i servisi je najčešće nemaju.
Potpis
IOCC
Re: malo teorije.. 12.06.2003. u 21:52 · pre 284 meseca #24
Citat:
Dragi Tata:
Jasna mi je razlika između user-space niti kao pthreads na BSD-u i kernel niti ("lakih procesa") kao na Windows-u i Linux-u, a postoje i "hibridne niti" (Solaris) gde se više user niti mapira na jednu kernel nit. Međutim, u svim tim slučajevima niti dele memorijski prostor. Lično, uvek sam smatrao da je deljenje memorijskog prostora granica koja odvaja niti od procesa.


Upravo ... niti su "laksi" procesi koji dele isti memorijski prostor (i varijable) aplikacije iz koje su pokrenuti ... Tipican primer niti ? MS Word, auto-saving dokumenta u pozadini ... Takodje i pri pretrazivanju teksta, formatiranju paragrafa itd ...
Takodje (koliko sam ja upucen) niti su cesto koristene u Web serverima (Apache npr.) u kojima je najbitnija simultana interakcija sa vise korisnika ...

Ono sto bih zeleo da upitam je uloga semafora i mutex-a u "critical" regiji ... Recimo prevencija deadlock-ova ... Da li iko ima nekakav primer ?

Hvala
Potpis
If you want to get anywhere in your life, don't break the rules - make them !
Re: malo teorije.. 13.06.2003. u 16:23 · pre 284 meseca #25
HM, glavna uloga mutex-a je sprecavanje race_conditions-a,
a njihovim postavljanjem se samo povecava sansa za javljanje
deadlock-a (teorijski) (tako da od prevencije deadlock-ova nema nista),
jer cim se neki resurs proglasi "ne deljivim" zadovoljen je jedan od
4 neophodna i dovoljna uslova za deadlock.
Re: malo teorije.. 13.06.2003. u 17:32 · pre 284 meseca #26
Citat:
t3chX:
Ono sto bih zeleo da upitam je uloga semafora i mutex-a u "critical" regiji ... Recimo prevencija deadlock-ova ... Da li iko ima nekakav primer ?


A šta kažeš na ideju da pokreneš novu temu sa ovim pitanjem, pa da sve ipak bude koliko-toliko izdvojeno i uređeno?
Potpis
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme