Autore Topic: Aggiunto componente gb.task  (Letto 2887 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 23 Dicembre 2020, 01:50:09 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #1 il: 27 Agosto 2012, 10:43:57 »
FINALMENTE!!!! FICHISSIMO se và in funzione...

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #2 il: 29 Agosto 2012, 10:27:25 »
Cioè è incluso nell'interprete? Che vuol dire, che poi lo stacca e ne fà un modulo a parte?

Comunque, come descrizione iniziale và bene, solo che non ho ben capito se la funzione della Main (statica poi? boh...) è necessaria, oppure si può controllare il task da qualsiasi parte del nostro programma, ad esempio la Application stessa...

Staremo a vedere, ad ogni modo lascerei un pò di tempo per lo sviluppo, tenendo presente che il multi-tasking è un articolo un pò delicato...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #3 il: 29 Agosto 2012, 11:23:51 »
.... il multi-tasking è un articolo un pò delicato...
Se il multi-tasking è multiprocessualità, o processualità concorrente di più programmi, quale differenza secondo te comporterebbe quella nuova funzionalità del gb.task alla già esistente possibilità  in precedenza di far funzionare comunque contemporaneamente più programmi Gambas ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #4 il: 29 Agosto 2012, 12:40:22 »
Caro vuott, i due concetti sono completamente diversi...

Credo sia il caso che ti vada a leggere qualcosina in merito...  ;D

A tutt'oggi, gambas non è multitasking, quindi gestisce le cose in modalità seriale (tanto per semplificare il discorso...).
Il fatto di poter, internamente ad un'applicazione, gestire più processi contemporanei, porterebbe gambas a livello di altri linguaggi evoluti. E' sottinteso che, per applicazioni normali, la cosa potrebbe essere anche ininfuente, ma questo è solo perchè non si ha conoscenza del problema.

Tanto per fare un esempio banale quanto stupido...
Pensa ad un'applicazione che permette di processare flussi di dati (es. file csv), di diversa natura e diversa provenienza, il tutto gestito da task paralleli a se stanti. Ogni task gestisce un processo di elaborazione di un flusso. Un task viene attivato all'arrivo di un flusso, senza attendere che il precedente abbia terminato. Ogni task apre e chiude il processo, ritornando l'esito al manager principale. Il manager non fà altro che attivare task, e ricevere i suoi eventi/esiti, che avvengono in modo parallelo e asincrono.

Ho fatto un esempio molto banale, ma può darti un'idea delle potenzialità di una cosa del genere. E' ovvio che questo include una certa padronanza del linguaggio e delle logiche, che in questo caso dentano un pò più complesse (vedi semafori, incroci, e via dicendo)...  :D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #5 il: 29 Agosto 2012, 16:26:14 »
Caro vuott, i due concetti sono completamente diversi...

A tutt'oggi, gambas non è multitasking, quindi gestisce le cose in modalità seriale (tanto per semplificare il discorso...).
Il fatto di poter, internamente ad un'applicazione, gestire più processi contemporanei, ...

...cioè, se non ho compreso male, nella stessa applicazione Gambas ora si avrebbe la capacità di svolgere due o più processi, ossia più codici, in modo parallelo ?
« Ultima modifica: 30 Agosto 2012, 06:12:26 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #6 il: 29 Agosto 2012, 19:39:53 »
Novità molto ineterssante, Ho letto qualche cenno sull'argomento qui, ma si parla di eseguire un processo in background senza alcuna possibilità di passare o ricevere dati. Alla fine si ottiene un effetto di processi paralleli, ma in realtà sono gestiti dal processore sempre in modo sequenziale, attraverso il criterio di polling rotativo fra i dispositivi di input-output presenti nella tabella di interfaccia logica.
Non ho ancora capito se un pc dotato di multiprocessore possa comportarsi diversamente. Forse però no, perchè l'impiego dei pluriprocessori è quello di aumentare la frequenza di clock, per cui tutti i processi avviati possono esere eseguiti più velocemente, ma perchè il polling è eseguito più velocemente. Allora quelli che accorciano sono i tempi morti di attesa fra due richieste di polling successive sulla stessa unità periferica.
Ciao.
:ciao:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #7 il: 30 Agosto 2012, 10:49:00 »
Per vuott:
sì, il concetto mediamente è quello

Per picavbg:
il concetto del multitasking è vero solo se la libreria utilizza realmente il multitask del sistema operativo e dei processori. Il fatto che due o più processi girino parallelamente e indipendentemente uno dall'altro fà parte della logica multitasking. E' sottinteso che poi i programmi devono tenerne conto.
A parte questo, posso anche essere d'accordo con te sulla effettiva attività eseguita con il multitask, ma è anche vero che ora i nodi elaborativi sono più di uno (es. un dual-core) che, se sfruttati secondo questa logica, permettono di avere un parallelismo vero e proprio.
Linux è un sistema operativo multitasking, per cui, se si utilizzano le funzioni idonee, un programma può attivare la potenza di questa logica.

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #8 il: 30 Agosto 2012, 13:38:00 »
è anche vero che ora i nodi elaborativi sono più di uno (es. un dual-core) che, se sfruttati secondo questa logica, permettono di avere un parallelismo vero e proprio.
Anch'io pensavo ad un hardware con due cuori pulsanti parallelamentee quindi in grado di svolgere operazioni in contemporanea, ma ho voluto accertarmi su quanto la mia logica mi suggeriva. Ho trovato qualcosa sul dual core che però si riferiva esclusivamente ad una frequenza ravvicinata di clock e nient'altro. Devo dedurre che ho cercato male o di avere concluso la ricerca in modo precipitoso.

Citazione da: md9327
è anche vero che ora i nodi elaborativi sono più di uno (es. un dual-core) che, se sfruttati secondo questa logica, permettono di avere un parallelismo vero e proprio.
Linux è un sistema operativo multitasking, per cui, se si utilizzano le funzioni idonee, un programma può attivare la potenza di questa logica.
Per sfruttare appieno la potenza di cui parli un tale programma applicativo deve passare necessariamente una certo parametro al kernel, oppure è il codice di basso livello del linguaggio di programmazione utilizzato ad occuparsi di fornire l'informazione occorrente al kernel? Mi spiego meglio: un programma sorgente, sottoposto al processo di compilazione produce il così detto programma oggetto che, insieme al codice presente nel software del linguaggio di programmazione si trasforma in un eseguibile fatto a misura dell'hardware su cui girerà. Allora, non avendo mai approfondito gli aspetti legati allo sfruttamento dell'hardware, non ho percezione dell'eventuale intervento da parte del programmatore applicativo, relativamente all'utilizzo o meno della potenza dual core di un pc.
 :ciao:
:ciao:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #9 il: 30 Agosto 2012, 14:37:04 »
Approfondire questo discorso credo sia fuori luogo qui.

Ogni applicazione si appoggia su uno strato base che è il sistema operativo, il quale si interfaccia con l'hardware attraverso moduli appositi scritti ovviamente a basso livello. Per dirla tutta, sotto del sistema operativo c'è il bios della macchina, ma qui il discorso si complica uleriormente. Basta dire che il bios si occupa di direzionare opportunamente l'I/O, dipendentemente dalla struttura specifica dell'hardware (non sono tutti uguali i computer...).

Detto questo, l'applicazione, utilizzando opportunamente le funzioni messe a disposizione dal sistema operativo, può usufruirne e sfruttarle se necessario.
E' sottinteso che le caratteristiche di multitasking devono essere fornite realmente dal sistema operativo, e non solo simulate a livello software.
E' quindi da tener presente una condizione di tasking simulato, e questo ovviamente riporta al sistema di serializzazione che hai indicato nei precedenti post.

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.267
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #10 il: 22 Ottobre 2012, 11:16:13 »
Qualcuno di voi ha utilizzato per qualche test il componente?

Io non ci cavo un ragno dal buco! :(

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #11 il: 22 Ottobre 2012, 11:48:46 »
Perchè, lo vuoi usare per costruire ragnatele?  ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #12 il: 22 Ottobre 2012, 11:51:42 »
Qualcuno di voi ha utilizzato per qualche test il componente?

Io non ci cavo un ragno dal buco! :(


Ci vorrebbe qualcuno che chiedesse nalla Mailing List Internazionale... magari qualche utente lì avrà già usato questo componente.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.267
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #13 il: 22 Ottobre 2012, 11:54:13 »
Ci vorrebbe qualcuno che chiedesse nalla Mailing List Internazionale... magari qualche utente lì avrà già usato questo componente.

Ok, grazie vuott... come sempre gentilissimo e disponibile a sacrificarti per la comunità....  :rotfl:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Aggiunto componente gb.task
« Risposta #14 il: 22 Ottobre 2012, 12:04:52 »
Ok, grazie vuott... come sempre gentilissimo e disponibile a sacrificarti per la comunità....  :rotfl:
sacrificarti ? Io no capire questa parola ! Io no parlo italiano. No capire.
« Ultima modifica: 22 Ottobre 2012, 12:18:10 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »