Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Secvential vs Sincron, Paralel vs Asincron
Last Updated: Jun 22 2018 08:59, Started by
worm94
, Jun 20 2018 21:03
·
0
#1
Posted 20 June 2018 - 21:03
Salut,
Poate am venit cu cea mai banala intrebare insa nu gasesc nicaieri pe "gogle" unde sa scrie negru pe alb ca secvential e acelasi lucru cu sincron(cel putin asa cred eu, ca e acelasi lucru). Diferenta dintre asincron(thread-uri, task-uri) si sincron(secvential, in acelasi thread) e clara zic eu insa as vrea sa imi confirme cineva. Cum de altfel e aceiasi poveste si in cazul asincron si paralel. Sunt notiunile mai sus mentionate sinonime sau se refera la cu totul si cu totul alte lucruri? Multumesc. |
#2
Posted 20 June 2018 - 21:09
Asincron: incepi un download de pe net si faci si altceva intretimp. De exemplu mentii interfata grafica in functie si/sau permiti utilizatorului sa faca alte lucruri pana se termina downloadul.
Paralel: imparti munca in mai multe parti si rezolvi mai multe parti odata. De exemplu cand ai o matrice/poza si faci operatii individuale cu fiecare valoare. Nu orice se preteaza la asa ceva. Sincron & secvential: opusul a ce-am scris mai sus. Edited by dani.user, 20 June 2018 - 21:16. |
#4
Posted 20 June 2018 - 21:50
dani.user, on 20 iunie 2018 - 21:09, said:
Asincron: incepi un download de pe net si faci si altceva intretimp. De exemplu mentii interfata grafica in functie si/sau permiti utilizatorului sa faca alte lucruri pana se termina downloadul. Paralel: imparti munca in mai multe parti si rezolvi mai multe parti odata. De exemplu cand ai o matrice/poza si faci operatii individuale cu fiecare valoare. Nu orice se preteaza la asa ceva. Sincron & secvential: opusul a ce-am scris mai sus. Pot sa am executie paralela cu implementara sincrona (vezi seriala via P-ATA) Pot sa am executie paralela cu implementare asincrona. Chestia asta se poate observa mai lesne daca studiezi proiectarea circuitelor digitale.In cazul asincronismului se transmit biti de start si stop (1 si 0) intotdeauna bitul de stop trebuie sa aiba paritatea inversa celui de start. In cazul sincronismului in transmisia datelor in paralel, se cauta numitorul comun ale frecventelor de ceas ale canalelor de transmisie paralela, dupa care folosindu-se circuite divizoare de frecventa , se stabileste frecventa de ceas maxima suportata de toate canalele paralele, apoi se steaza pt fiecare canal aceiasi semnal de ceas la emitator si acelasi semnal de ceas la receptor si se porneste simultan transmisia datelor pe canalele paralele.Daca informatia nu a ajuns completa la capat (un circuti validator de CRC , stabileste asta) atunci se asteapta ca informatia lipsa sa vine si ea pe receptorul sau, apoi odata venite toate se stocheaza simultan informatia in bistabilii circuitelor de memorie dupa in prealabil a trecut de filtru CRC. worm94, on 20 iunie 2018 - 21:03, said:
sa scrie negru pe alb ca secvential e acelasi lucru cu sincron Interfata seriala sincrone: Circuitul SPI(Serial Peripheral Interface) full duplex Interfata seriala asincrona: Circuitul UART si Circuitul USART _Smiley_, on 20 iunie 2018 - 21:25, said:
da, sunt sinonime Faptul de invata multithreading in C fara a invata cum functioneaza circuitele electronice pe care le actioneaza C-ul duce la confuzii si la imagine gresita a lucrurilor. Aceiasi problema au avut-o producatorii de drivere care in trecut angajau programatori de C pentru drivere si mergea hardwareul ala prost. Cand au inlocuit programatorii de C cu ingineri electronisti/automatisti care stiau si C dar si proiectare hardware , problemele au disparut. Edited by WinstonMontana, 20 June 2018 - 21:58. |
#5
Posted 20 June 2018 - 21:58
Pe mine ma intereseaza la nivel de C++.
De exemplu task-urile din C++(std::async) e acelasi cu un std::thread. Facand abstractie aici de particularitatile care le are async( sa zicem ca are specificat std::lunch::async pentru a lansa un nou thread de fiecare data). Acum aici cand vorbesc de task asincron si lansarea unui thread, sunt lucruri sinonime? |
#6
Posted 20 June 2018 - 22:12
poti sa ai threaduri asincrone si threaduri sincrone(vezi mutex locking in linux kernel)
|
#7
Posted 20 June 2018 - 22:33
WinstonMontana, on 20 iunie 2018 - 21:50, said:
Nu, nu-s. ba da, sunt https://www.bisque.c...s_Execution.htm |
#8
Posted 20 June 2018 - 23:32
#9
Posted 21 June 2018 - 03:55
Thread si asincron nu-s acelasi lucru. In general cam vrei ca threadurile sa-si faca treaba asincron, dar nu de putine ori vrei sa le si sincronizezi.
|
#10
Posted 21 June 2018 - 16:40
Pentru mine inca e putin ciudat asincron vs paralel. Sa zicem ca am codul asta.
void f() { cout<<"test"; } int main() { for(int i=0;i<10;i++) { std::async(std::launch::async, &f); } } Lucrul asta imi garanteaza ca o sa proneasca task-uri separate (paralele) fara sa se astepte unul pe celalalat? Este acelasi lucru cu: for (size_t i = 0; i < 10; i++) { m_threads.emplace_back(f); } for (size_t i = 0; i < 10; i++) m_threads[i]->join(); Edited by worm94, 21 June 2018 - 16:41. |
|
#11
Posted 21 June 2018 - 18:57
Cam da conform http://en.cppreferen...p/thread/launch Cat de in paralel vor rula decide schedulerul sistemului de operare.
std::async e o unealta mai high-level care te ajuta cand scrii cod de genul: fa ceva si iti cer eu mai tarziu rezultatul. E mai usor de folosit decat sa creezi de mana threadul, sa gasesti o metoda de a returna rezultatul, sa ai grija sa dai join, etc. Nu e insa restrictionata doar la threaduri noi. Vezi in link std::launch::deferred care te ajuta sa obtii ceva lazy: evita sa faci ceva pana nu iti cer, ca poate nu mai e nevoie... Se poate insa si mai high-level, alte framework-uri oferind suport pentru a inlantui actiuni: fa treaba X, cand e gata fa treaba Y, etc. |
#13
Posted 22 June 2018 - 08:59
Dar totusi m-am mai lovit de o nelamurire. Daca trimit unui task async ca parametru o functie ce printeaza niste date cu cout nu am nevoie de mutex. Datele sunt printate ok, pe cand daca faceam lucrul asta cu thread-uri textul era amesecat si trebuia sa folosesc un mecanism de excludere.
Daca pana la urma ar fi o posibila sansa ca un task sa lanseze un nout thread nu ar trebui sa se intample si aici acelasi lucru? Mersi |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users