Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-05-2013, 10:31   #1
nick1992
Junior Member
 
Iscritto dal: May 2013
Messaggi: 10
[JAVA] software che simula raid 4 e raid 2?

Ciao a tutti!! sono nuovo nel forum....io dovrei fare un software java che simula il raid 4..io ho gia fatto quello per il raid 3 che è questo riportato sotto..il fatto che raid 3 e 4 sono uguali solo che il 3 lavora a il livello di byte e il 4 con blocchi di dati..il fatto è che quando li devi simulare alla fine sono identici o no?
dovrei fare anche il raid 2 ma non so proprio da dove iniziare.. mi potreste dare qualche spunto?
Grazie.

Codice:
import java.io.IOException;
import java.io.RandomAccessFile;


 class Raid3 implements Raid {
	 String inFileName;
	 String outFileName;
	 RandomAccessFile in;
	 RandomAccessFile out[];
	 int checkdisk;//Numero disco usato per la parità
	 int n;
	 int length;
	 int capacita_disco;
	 public int[] capacita_rimanente;
	 int[] scarto;
	 byte[] buffer;
	 int leggibile;
	 RandomAccessFile rec;
	 public boolean leggibile()
	 {
		 return(leggibile!=-1);
	 }
	 public boolean memorizzabile()
	 {
		 boolean a=true;
		 for(int i=0;i<n;i++)
		 {
			 if(capacita_rimanente[i]-scarto[i]<length)
			 {
				 a=false;

			 }
			 if(a==false)System.out.println ("Disco " +i+ " Lo spazio non è sufficente,Non è più possibile scrivere..");
		 }
		 return a;
	 }
		public int Cap_disco()
		{
			return capacita_disco;
		}
		public void cap_Rimanente(int[]a)
		{
			for(int i=0;i<n;i++)
			{
				a[i]=capacita_rimanente[i];
			}
		}
		public int Cap_disponibile()
		{
			int a=0;
			for(int i=0;i<n;i++)
			{
				a+=capacita_rimanente[i]-scarto[i];
			}
			return a*(n-1)/n;
		}
		public void ReadBlock() throws IOException
		{
			leggibile=in.read(buffer,0,(n-1)*length);
			for(int i=0;i<((n-1)*length);i++){
				System.out.println("Buffer "+i+" "+(char)buffer[i]);}
			if(leggibile==-1){System.out.println("Fine del file...");}
			
		}
		public void StoreBlock()throws IOException{
			
			int begin=0;
			Cal ca=new Cal();	
			byte[] xor_check = new byte[length];
			ca.Init(xor_check, length);
			for (int i=0;i<n;i++)
			{
				
				if (i == checkdisk) {
					out[i].write(xor_check);
					capacita_rimanente[i] -= length;
					System.out.println("Disco " + i + " scrivere il controllo..");
					ca.Init(xor_check, length);// A tutti zeri
					break;
				}
				out[i].write(buffer,begin,length);
				System.out.println("Disco "+i+" Scrive dati...");
				capacita_rimanente[i] -= length;
				System.out.println("Disco "+i+" Capacità Residua "+capacita_rimanente[i]);
				begin += length;
				xor_check = ca.Xor(buffer,length,n-1);
				
				}
		}
		
		public void Recover(int downID) throws IOException
		{
			int key=0;
			Cal cacu=new Cal();
			RandomAccessFile[] bac=new RandomAccessFile[n];
			byte[] temp=new byte[1];
			byte[] result =new byte[1];
			cacu.Init(result, 1);
			for(int i=0;i<n;i++)
			{
				if(i!=downID)//downID numero disco da recuperare
					bac[i]= new RandomAccessFile("" +i+ "_"+outFileName,"r");
			}
			
			
			rec = new RandomAccessFile("" +downID+ "_"+"RECOVER_"+outFileName,"rw");
			
			while(key!=-1)
			{
				for(int i=0;i<n;i++)
				{
					if(i!=downID)
					{
						key= bac[i].read(temp);
						
						if(key!=-1)
						result=cacu.Xor(result, temp, 1);
											}
				}
				if(key!=-1)	
					{
						rec.write(result);/*Scrive i byte recuperati 
						a mano a mano sul file rec*/
						cacu.Init(result, 1);/*Rinizializza gli elementi dell'array result con 0*/
					}
			}
		}
		public Raid3(String inf,String outf,int n,int l,int[]cap) throws IOException
		{
			Cal c=new Cal();
			int min=c.Min(cap, n);
			buffer=new byte[(n-1)*l];
			inFileName=inf;
			outFileName=outf;
			checkdisk=n-1;
			this.n=n;
			capacita_rimanente=new int[n];
			for(int i=0;i<n;i++)
			{
				 capacita_rimanente[i]=cap[i];
				 System.out.println("Disco n "+i+" Capacità residua effettiva "+capacita_rimanente[i]);
			}
			length=l;
			in= new RandomAccessFile(inf,"r");
			out = new RandomAccessFile[n];
			for(int i=0;i<n;i++)
				out[i] = new RandomAccessFile ("" + i + "_" +outFileName,"rw");
			capacita_disco=min/length*length*(n-1);
			scarto=new int[n];
			for(int i=0;i<n;i++)
			{
				scarto[i]=cap[i]-min/length*length;
			}
		}
 }
nick1992 è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2013, 15:08   #2
ezio
Senior Member
 
L'Avatar di ezio
 
Iscritto dal: Apr 2001
Città: Giovinazzo(BA) ...bella città, riso patat e cozz a volontà!
Messaggi: 26494
Leggi sempre i thread in rilievo nella sezione, in futuro inserisci il linguaggio di programmazione fra parentesi quadre nel titolo del thread...
ezio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
HPE punta sull'IA agentica e dichiara gu...
macOS avvisa quando si incolla un comand...
Everpure ridisegna lo storage per l’IA: ...
NVIDIA RTX Remix 1.5: realizzare remaste...
Come configurare Windows 11 like a pro, ...
Windows 11 cambia finalmente la gestione...
Arianespace: lanciata la missione Amazon...
iPhone 17 escluso dalle funzioni AI più ...
Rokarolla, il trojan Android che ruba cr...
Qwen-Robot Suite: la strategia di Alibab...
Threads raggiunge 500 milioni di utenti ...
Un chip nel cervello gli restituisce la ...
NVIDIA svela la tecnologia che trasforma...
iPhone del 20° anniversario e AirPods co...
Non solo Prime: ecco le 13 offerte su Am...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:06.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v