Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...

Kanal D va difuza serialul “...

Upgrade xiaomi mi11
 securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...

De unde cumparati suspensii / gar...

[UNDE] Reconditionare obiecte lemn
 Infiltratii casa noua

sugestie usa interior

ANAF si plata la selfpay

Imprimanta ciss rezista perioade ...
 Garmin fēnix 7 / PRO / Saphi...

Care sunt cele mai mari regrete a...

Alfa Romeo Stelvio 2.2 jtd

Intrebari srl nou
 

Secvential vs Sincron, Paralel vs Asincron

- - - - -
  • Please log in to reply
12 replies to this topic

#1
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007
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.


#3
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,026
  • Înscris: 24.02.2006
da, sunt sinonime

#4
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

View Postdani.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.
Ehm nu.
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.

View Postworm94, on 20 iunie 2018 - 21:03, said:

sa scrie negru pe alb ca secvential e acelasi lucru cu sincron
pai nu este, poti sa ai secvential asincron si secvential sincron si asta pentru ca avem interfete seriale sincrone si interfete seriale asincrone.
Interfata seriala sincrone: Circuitul SPI(Serial Peripheral Interface) full duplex
Interfata seriala asincrona: Circuitul UART si Circuitul USART

View Post_Smiley_, on 20 iunie 2018 - 21:25, said:

da, sunt sinonime
Nu, nu-s.

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
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
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
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
poti sa ai threaduri asincrone si threaduri sincrone(vezi mutex locking in linux kernel)

#7
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,026
  • Înscris: 24.02.2006

View PostWinstonMontana, on 20 iunie 2018 - 21:50, said:

Nu, nu-s.

ba da, sunt :)
https://www.bisque.c...s_Execution.htm

#8
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

View Post_Smiley_, on 20 iunie 2018 - 22:33, said:

Nu, nu sunt, poti sa ai si threaduri sincrone. Thread nu este sinonim cu asincron.Confunzi threadul cu propietatile acestuia.Un thread poate fi asincron sau sincron, vezi ce am scris mai sus despre
circuite si vezi blocarea mutexelor in kernelul de linux.

#9
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
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
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007
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.

#12
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
Cred ca am inteles ideea.
Mersi

#13
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
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

Second Opinion 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

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate