Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - zacx85

Pagine: [1]
1
Programmazione (Gambas 2) / Re: Multiprocesso shell
« il: 15 Febbraio 2010, 22:29:58 »
Grazie a tutti..... mi cucino una piadina poi mi metto subito a provare!!  ;D

2
Programmazione (Gambas 2) / Re: Multiprocesso shell
« il: 15 Febbraio 2010, 19:41:59 »
Aahahhahah, vi spassate con poco è.... mentre io sto smadonnando!!  :o

Datemi una mano, vorrei fare questo:

Codice: [Seleziona]
PUBLIC SUB transfer_Click()
  DIM i AS Integer
  DIM shellMsg, command AS String
  DIM idClass AS NEW Object[]

  IF $hwList.Count > 0 THEN
    FOR i = 0 TO $hwList.Count - 1
      command = "mkfs.ext2 " & $hwList[i] & " -I 128 -L \"UsbDrive\""
    
      TRY idClass[i] = NEW CDuplica ' CDuplica è una classe che svolge principalmente la creazione di un processo
      WITH idClass[i]
        .sCommand = command
        .sNode = $hwList[i]
      END WITH
    NEXT
  
  ENDIF
END

così poi controllo lo stato di ogni processo iterando l'array idClass.

Come si può fare!?!??!

3
Programmazione (Gambas 2) / Re: Multiprocesso shell
« il: 15 Febbraio 2010, 18:35:52 »
Grazie ragazzi....

purtroppo i processi che devo fare comprendono anche la copia di diversi GB di dati (con il comando dd), quindi farli due a due è troppo limitativo. Mi posso permettere di fare più processi perchè il transfer rate dei chip usb mlc sono al quanto lenti (circa 40mbps).

Sto pensando si modificare un pò l'idea di electro creandomi un array di classi, vediamo se si può fare....
 

4
Programmazione (Gambas 2) / Multiprocesso shell
« il: 15 Febbraio 2010, 15:46:24 »
Ciao a tutti ragazzi,
sono nuovo del forum così come del linguaggio gambas (e quindi 'basic').
Vorrei iniziare con il farvi i miei complimenti per l'ottimo lavoro che state facendo.

Ho già cercato nel forum un post che parli di ciò di cui ho bisogno, ma non ho trovato nulla
di simile.

Io ho la necessità di eseguire simultaneamente più comandi SHELL tenendo traccia del progresso,
magari con il READ di ciascun processo.
Il numero dei comandi che devo eseguire simultaneamente non è fisso, ma dipende dal numero
delle periferiche di memorizzazione collegate al PC.

Per ora il programma funziona egregiamente, nel senso che è in grado di rilevare tutto l'hardware di
memorizzazione dati nel bus USB, formattarlo in ext2 con inode size a 128K, duplicare con dc3dd e
tutte le altre operazioni che deve svolgere, ma vorrei perfezionarlo nel renderlo dinamico, ovvero
creare tanti processi tante quante sono le devices collegate.

Il problema che incontro è che non si può creare un array di processi, quindi non sapendo come
ovviare questo "limite" per ora ho dichiarato 4 processi, 4 timer etc... in quanto per ora sono costretto
ad inserire forzatamente 4 periferiche alla volta. Ecco, io vorrei adattare il codice in modo tale che
io non debba essere costretto ad inserire tassativamente 4 pennette/hard disk alla volta, ma magari 3,
o 7, etc....

Io avrei un'idea, che vi scrivo per cercare di spiegarmi meglio:

Codice: [Seleziona]
DIM timer AS NEW timer
DIM processi AS NER process[]
DIM i AS integer
DIM cmd AD string

'$listaPeriferiche e' una var di tipo NEW String[] globale con l'elenco di tutte le periferiche

FOR i=0 TO $listaPeriferiche.Count
  cmd =  "dd if=/image.img of=/dev/" & $listaPeriferiche[i]
  processi[i] = SHELL cmd FOR READ
NEXT

timer.start

Poi nel timer con un ciclo FOR controllo tutti i processi a che punto sono
Spero di essermi spiegato meglio con quest'ultimo esempio.

Vi ringrazio anticipatamente.

Pagine: [1]