GUIDA Cosa sono i calcolatori?

ilfe98

Moderatore
Staff Forum
Utente Èlite
3,049
1,277
CPU
Intel i7 7700K
Dissipatore
Bequiet Dark rock pro 4
Scheda Madre
Msi pc mate z270
HDD
Seagate barracuda 1tb, silicon power NVME 500gb
RAM
Patriot viper steel 3733Mhz
GPU
Inno 3d gtx 1080 herculez design
Monitor
Asus mg279q
PSU
Corsair HX750
Case
Itek lunar 23
Net
Tiscali ftth
OS
windows 10,mint,debian,Arch linux

  • Aritmetica binaria e lo Standard IEEE754 Visualizza allegato 339747
  • Reti logiche combinatorie e costrutti notevoli
  • Reti logiche sequenziali e costrutti notevoli
  • Microarchitettura degli elaboratori(CPU in particolare)
  • Codice di Hamming per la rilevazione degli errori
  • Instruction Set Architecture
  • Le prestazioni di un elaboratore
  • Memorie
  • Periferiche di I/O
  • CPU BUS
  • ILP
  • CPU multiple ISSUE




339120 [​

Il concetto di calcolatore
Il calcolatore è un sistema digitale di elaborazione dell'informazione.
Per sistema si intende un insieme di elementi connessi tra di loro in grado di lavorare come un unico elemento. Il cervello di questo sistema è chiamato non a caso:

CENTRAL PROCESSING UNIT
O semplicemente CPU. I nostri computer elaborano costantemente enormi flussi di dati dai quali ricavano le informazioni utili a gestire il task da noi richiesto. L'interpretazione di questi dati genera dei segnali elettrici: questi segnali elettrici possono essere di tipo digitale o analogico.

La differenza è che il segnale digitale è un segnale discreto ossia che assume valori finiti all'interno del calcolatore(0-1), mentre analogico ha un range.

immagine.png

Purtroppo l'immangine lascia a desiderare ma rende l'idea. Chiariamo alcuni punti:
  • I valori analogici non raggiungono mai le tensioni 0 e 1, ma raggiungono valori di soglia che dipendono dalla composizione fisica dei materiali.
  • Tra i segnali digitali, un segnale si dice binario quando assume solo due valori 0 e 1 rappresentabili con una cifra binaria denominata Bit (Binary Digit).
  • Le stringhe composte dall'affiancamento di questi bit vengono raggruppate in variabili binarie. Queste variabili binarie sono le informazioni elaborate dal nostro computer. Ad esempio un pixel è codificato come RGB, ovvero tre componenti rappresentati a loro volta da 256 valori digitali diversi.

Un po' di storia: il termine informazione fu definito come oggetto quantificabile da Claude Shannon, pubblicando il testo "Una teoria matematica della comunicazione". Shannon misurò l’informazione con la stessa formulazione matematica dell’entropia in fisica, e definì quindi l’informazione come l’entropia A causa di questa interpretazione binaria i computer lavorano con l'aritmetica binaria gestendo dati di dimensioni variabili(integer,floating point...).

I calcolatori si dividono i tre macro categorie:
  • Sistemi Embedded: sono dei sistemi dedicati, composti da una o più CPU, non sempre posseggono un sistema operativo. Sono adibiti a svolgere un compito prefissato durante tutto il periodo di utilizzo. Esempi di sistemi embedded sono Arduino, microcontrollori dei sistemi industriali
  • Sistemi general-purpose: Come dice la parola sono calcolatori che rispondono a qualsiasi tipo di richiesta non definita a priori. I nostri cari computer,non hanno un compito predefinito, ma si "adattano a qualsiasi richiesta"
  • ASIC: sono dei sistemi di elaborazione in cui le unità come CPU,memorie e periferiche sono "cablate" in hardware e progettate specificatamente, non sono programmabili via software ma configurabili. Configurabile significa che è possibile indicare da parte dell’utente un insieme di dati di ingresso specificatamente codificati per modificare o selezionare la funzionalità interna in base a un programma o a una rete logica già definita.
Un esempio intermedio di tecnologia usata per ASIC è l’FPGA (Field Programmable Gate Array) una grande matrice di gate elementari configurabili e riconfigurabili per ottenere un sistema digitale su singolo chip, talmente potenti da poter realizzare un processore ed un System on Chip

Cosa hanno in comune le prime due categorie?
L'unita chiamata a gestire le operazioni logiche e di calcolo: La CPU
Se integrata in un solo chip la CPU si chiama microprocessore, termine utilizzato erroneamente come sinonimo al giorno d'oggi.
I microprocessori attuali hanno ora parte dell’hardware dedicato al supporto del Sistema Operativo, alle cache e alla memoria , alle operazioni multimediali e hanno velocità sempre maggiore per rendere la CPU potente in processi computazionalmente complessi. I microprocessori vengono suddivisi in:
  • CPU (Central Processing Unit): è il processore principale che controlla il sistema operativo e gestisce tutto il sistema di calcolo
  • GPU (Graphic Processing Unit): è il processore nato per gestire il reparto grafico cuore delle schede video. Vengono denominate anche GP-GPU (general purpose) perché grazie al loro elevato numero di core, la loro bassa latenza interna sono ideali per l'elaborazione in parallelo , machine learning e intelligenza artificiale.
  • APU (Accelerated Processing Unit): sono il mix delle precedenti, praticamente onnipresenti nei sistemi embedded come le console.
  • DSP (Digital Signal Processor): sono processori ottimizzati per l’elaborazione del segnale digitale, in particolare dell’audio ma anche delle immagini(in assenza di gpu)
  • Microcontrollori: sono microprocessori specializzati per il controllo di periferiche di I/O soprattutto per ricevere dati da sensori e controllare attuatori.

Livelli di astrazione
Lo studio di un sistema complesso come un calcolatore non può essere analizzato come un conglomerato unico; l'ingegneria ha quindi definito un modello di astrazione della realtà. La gestione dei modelli e dei livelli di astrazione è utile per trovare un collegamento tra il sistema a livello funzionale, il sistema visto dall'esterno e la visione interna a livello strutturale.

Questa necessità è tanto più evidente dove sussiste un divario semantico tra ciò che l'utente chiede virtualmente e ciò che il calcolatore è in grado di fare. A causa di questa problematica i livelli di astrazione nel calcolatore vengono denominati livelli di macchine virtuali. Lo scopo di questa guida è un'analisi del calcolatore a livello hardware potendo quindi usare un modello descritto dai seguenti livelli di astrazione:
  • Livello dei circuiti
  • Livello logico
  • Livello RTL
  • Livello di sistema
Il calcolatore è un unione tra hardware e software, la differenza è diventata sottilissima tale che alcuni testi definiscono:" L' hardware e il software sono logicamente equivalenti".

In parole povere le funzioni ottenibili con una sintesi hardware sono ottenibili in software e viceversa,:ovviamente ciò comporta dei diversi rapporti tra prestazioni e flessibilità. Un moltiplicazione hardwired (cablata in hardware) è nettamente più veloce di una moltiplicazione emulata. Tuttavia per apportare una modifica è necessario riprogettare la parte hardware dedicata. Se realizzata livello software è molto più flessibile, modificabile e riutilizzabile indipendentemente dall'hardware o dai livelli software sottostanti, definiti come il modello a cipolla:

Disegno1.png

Questo concetto di insieme di livelli di astrazione è importantissimo pensando alla vita di un software.

  1. Uno sviluppatore progetta per una macchina virtuale che non risponde necessariamente alla macchina fisica.
  2. Si attua un meccanismo di traduzione che un linguaggio a livello l possa essere tradotto in un linguaggio di livello più basso l-1, fino al linguaggio macchina del calcolatore.
  3. In alcuni casi il linguaggio non è tradotto, ma semplicemente interpretato istruzione per istruzione da un programma.
  4. La differenza sostanziale consiste che nel caso di traduzione o compilazione, il programma viene riadattato per essere conforme ad un linguaggio l-1 più semplice.
  5. Nell'interpretazione il programma viene caricato in memoria ed usato ingresso per un programma in linguaggio L-1 che ha lo scopo di interpretare volta per volta ogni istruzione.
Livello logico digitale
È il livello delle componenti digitali, delle reti logiche e RTL(Register transfer Level) e dei componenti hardware. Il computer può essere studiato come insieme di porte logiche che a loro volta creano le unità elementari per il calcolo o la memorizzazione etc. Sotto questo livello esiste il livello dei circuiti elettronici, sotto ancora dei dispositivi e dei transistor che si studiano in elettronica. A questo livello il computer è visto come un sistema digitale non programmabile in cui ogni elemento viene configurato e compie delle funzioni a seconda degli input che riceve, di cui alcuni input sono i bit di istruzione ed altri i dati. In questo caso il livello viene descritto con linguaggi HDL(hardware description language), il più famoso è il VHDL

Livello Microarchitettural
Il livello hardware che coinvolge le scelte sui blocchi logici che implementano la CPU e l’interno dei componenti del calcolatore, si definiscono ancora il componenti logici impiegati(come RTL e sistema). Viene definita una ALU(Arithmetic Logic Unit) e il suo percorso dei dati (Data Path). In moltissimi calcolatori questo livello è programmabile con un linguaggio di basso livello(Microcode). In passato le macchine erano microprogrammate in questo modo, tuttavia per il motivo descritto prima sono più lente; ora le unità sono per lo più hardwired.

Livello Instruction Set Architecture(ISA)
Ogni produttore ha il proprio linguaggio macchina implementato nell'ISA. Essa è il livello che definisce l'architettura della CPU e di conseguenza ciò che è possibile realizzare. I compilatori devono conoscere ogni dettaglio architetturale per poter tradurre nel modo più efficiente le istruzioni scritte da un linguaggio di alto livello a linguaggio macchina. L’ISA definisce gli aspetti caratteristici e soprattutto il linguaggio macchina che è in corrispondenza con il linguaggio assembly e che è collegato ai linguaggi di alto livello da una traduzione o interpretazione.

Il termine architettura fu coniato dall' IBM all'incirca negli anni 60 per indicare una "famiglia" di calcolatori che avevano le stesse funzionalità, ma organizzazione diversa.

Livello So
È il livello Middleware ossia il software di basso livello. Chi programma in questo livello usa le istruzioni dell'ISA o alcune macro del SO(System Call) o scrive in assembly. La java virtual machine è progettata in questo livello

Livello Assembly
È il livello in cui la macchina viene programmata con l'uso di simboli, dove ogni simbolo corrisponde ad un'istruzione ISA. L'assembly viene interpretato in linguaggio macchina, ossia l'uso dei simboli è in corrispondenza del'ISA il programma viene poi assemblato al livello più basso.

Livello Macchina virtuale o dei linguaggi ad alto livello
È il livello più User-Friendly, dove il calcolatore è visto in modo astratto e virtuale i programmi sono scritti in linguaggio ad alto livello come :C,PHP,Java ecc...

Al momento questo è quanto, spero che questa introduzione vi sia piaciuta. Prossimamente definirò l'aritmetica binaria e lo standard IEEE754 utile a capire i vari livelli che andremo ad analizzare. :D
 
Ultima modifica:

oscarandrea

Utente Attivo
266
37
CPU
i5 5200u
RAM
Samsung sodimm 1600MHz
GPU
nvidia 830m 2gb
Monitor
1366x768
OS
Gentoo/HardenedBSD
binario quando assume solo due valori
tra il passaggio di fronte alto e basso di clock ci sono valori intermedi, solo nel modello di clock ideale il passaggio è netto, ma l'ideale rimane su carta.
interpretato istruzione per istruzione
anche nei linguaggi interpretati deve avvenire la traduzione per poter lavorare con l'hardware, tutto si riduce a codice binario, software compilato o meno.
RTL(Register transfer Level
sicuro che non ti riferisci al Register Transfer LANGUAGE? https://it.wikipedia.org/wiki/Register_Transfer_Language
 
  • Mi piace
Reazioni: ilfe98

ilfe98

Moderatore
Staff Forum
Utente Èlite
3,049
1,277
CPU
Intel i7 7700K
Dissipatore
Bequiet Dark rock pro 4
Scheda Madre
Msi pc mate z270
HDD
Seagate barracuda 1tb, silicon power NVME 500gb
RAM
Patriot viper steel 3733Mhz
GPU
Inno 3d gtx 1080 herculez design
Monitor
Asus mg279q
PSU
Corsair HX750
Case
Itek lunar 23
Net
Tiscali ftth
OS
windows 10,mint,debian,Arch linux
tra il passaggio di fronte alto e basso di clock ci sono valori intermedi, solo nel modello di clock ideale il passaggio è netto, ma l'ideale rimane su carta
ciao Oscarandrea, la trattazione dei segnali intermedi fra la commutazione degli stati del clock esula da questa guida, poichè la trattazione viene svolta in un corso di elettronica, resta comunque un'ottima precisazione. Questi stadi intermedi verrano trattati nelle commutazioni delle porte logiche come alee statiche e dinamiche. Ero dell'idea che la trattazione del segnale di clock era prematura per questa intro.
anche nei linguaggi interpretati deve avvenire la traduzione per poter lavorare con l'hardware, tutto si riduce a codice binario, software compilato o meno.
Nei linguaggi interpretati la traduzione è una corrispondenza 1:1 con ogni istruzione dell'isa, pertanto la netta distinzione dal software compilato è questa.
sicuro che non ti riferisci al Register Transfer LANGUAGE? https://it.wikipedia.org/wiki/Register_Transfer_Language
Mi riferisco alla trattazione del circuito a gate level con l'impiego di registri flip-flop e d-latch quindi RTL, in quanto l'analisi in questo livello è utile a capire i vari meccanismi di un calcolatore.
 
  • Mi piace
Reazioni: oscarandrea

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
sicuro che non ti riferisci al Register Transfer LANGUAGE? https://it.wikipedia.org/wiki/Register_Transfer_Language
E corretto il Register Transfer Level. Nella progrettazione dell'HW(a livello embedded), ci sono principalmente 4 livelli uno meno astratto del precedente: Transactional, dove si scrive codice sw slegato completamente dall'hw, Behavioral, dove si definisce il dettaglio funzionale (utile per simulazione), RTL dove si definiscono componenti e registri dell'hw e infine il livello Gate che penso sia autoesplicativo. I primi tre per esempio possono essere realizzati in SystemC.
Codice RTL in SystemC per esempio, avviene realizzando insieme FSM (stati e transizioni) e datapath (registri, multiplexer, operatori). Viene poi fatta una traduzione automatica in registri e librerie.
 
  • Mi piace
Reazioni: ilfe98

oscarandrea

Utente Attivo
266
37
CPU
i5 5200u
RAM
Samsung sodimm 1600MHz
GPU
nvidia 830m 2gb
Monitor
1366x768
OS
Gentoo/HardenedBSD
E corretto il Register Transfer Level. Nella progrettazione dell'HW(a livello embedded), ci sono principalmente 4 livelli uno meno astratto del precedente: Transactional, dove si scrive codice sw slegato completamente dall'hw, Behavioral, dove si definisce il dettaglio funzionale (utile per simulazione), RTL dove si definiscono componenti e registri dell'hw e infine il livello Gate che penso sia autoesplicativo. I primi tre per esempio possono essere realizzati in SystemC.
Codice RTL in SystemC per esempio, avviene realizzando insieme FSM (stati e transizioni) e datapath (registri, multiplexer, operatori). Viene poi fatta una traduzione automatica in registri e librerie.
Allora mi sa che ho frainteso, io con progettazione di codice (anche se in realtà non è un linguaggio di programmazione, ma di descrizione HW) RTL intendo il linguaggio per descrivere il trasferimento tra registri e scrivere quindi il set di istruzioni quella macchina attraverso esso con l'associazione dei vari codici operativi per istruzione, in pratica intendo la sintesi del repertorio istruzioni attraverso micro-passi/micro-istruzioni.
 

Andretti60

Utente Èlite
6,440
5,091
Scusa sai, ma è una guida un po’ confusa (e che confonde).
Prima di tutto un po’ di terminologia.
Un “calcolatore” è semplicemente un dispositivo capace di fare calcoli. Punto. Esistono da molto tempo e i primi erano semplicemente aggeggi meccanici, estremamente creativi e inventivi. Il “grande salto” accadde quando fummo capace di rendere questi calcolatori in grado di “leggere istruzioni” che permettono tali dispositivi di eseguire lunghe serie di operazioni in base a grandi quantità di dati in ingresso. Non solo, ma queste serie di operazioni possono dipendere dal valore dei dati I ingresso e dal risultato delle operazioni.
Quello che hai scritto qui invece è un semplice riassunto di “alcuni” aspetti dei calcolatori “moderni”, buttati giù senza logica apparente. Per esempio, va bene partire dal concetto di CPU, ma bisogna affiancarlo a quello della memoria, senza la quale la CPU non può fare nulla. E piuttosto che una rassegna di diversi tipi di CPU varrebbe la pena iniziare come sia costituita la CPU, parlando quindi di valori dati e introducendo il concetto di “istruzione”.
Fai inoltre uso di termini che non vengono ancora spiegati, come “sistema operativo”.

Ci sono alcuni svarioni e inesattezze, primo tra cui la definizione di Bit. No: non è un segnale binario. È l’unità elementare di memoria, che può assumere due valori soli, uno e zero. E qui mi fermo, avevo scritto molto di più ma non voglio aggiungere troppa carne sul fuoco
 

ilfe98

Moderatore
Staff Forum
Utente Èlite
3,049
1,277
CPU
Intel i7 7700K
Dissipatore
Bequiet Dark rock pro 4
Scheda Madre
Msi pc mate z270
HDD
Seagate barracuda 1tb, silicon power NVME 500gb
RAM
Patriot viper steel 3733Mhz
GPU
Inno 3d gtx 1080 herculez design
Monitor
Asus mg279q
PSU
Corsair HX750
Case
Itek lunar 23
Net
Tiscali ftth
OS
windows 10,mint,debian,Arch linux
Ci sono alcuni svarioni e inesattezze, primo tra cui la definizione di Bit. No: non è un segnale binario. È l’unità elementare di memoria, che può assumere due valori soli, uno e zero. E qui mi fermo, avevo scritto molto di più ma non voglio aggiungere troppa carne sul fuoco
Ciao @Andretti60, ti ringrazio per le precisazioni, purtroppo riuscir ad esprimere concetti non è semplice come si vuol pensare. L'errore sulla definizione di Bit è dovuta alla revisione dell'articolo che provvederò a correggere immediatamente. Per quanto riguarda la memoria sapresti dirmi come inserirla senza confondere ulteriormente le idee ad un lettore che si affaccia per la prima volta sui computer? Io credo che il funzionamento della memoria sia una delle parti più complicate di un calcolatore, inoltre credo che la tua definizione di calcolatore sia giusta, ma non capisco cosa ci sia che non vada i computer attuali non eseguono calcoli?
Il concetto di istruzione e di rappresentazione dei dati viene rappresentato nella prossima discussione , come posso esplicare i dati se non spiego perché il computer lavora sulla logica del complemento a due?
Cordialmente Ilfe98
 

oscarandrea

Utente Attivo
266
37
CPU
i5 5200u
RAM
Samsung sodimm 1600MHz
GPU
nvidia 830m 2gb
Monitor
1366x768
OS
Gentoo/HardenedBSD
trasferimento tra
Ciao @Andretti60, ti ringrazio per le precisazioni, purtroppo riuscir ad esprimere concetti non è semplice come si vuol pensare. L'errore sulla definizione di Bit è dovuta alla revisione dell'articolo che provvederò a correggere immediatamente. Per quanto riguarda la memoria sapresti dirmi come inserirla senza confondere ulteriormente le idee ad un lettore che si affaccia per la prima volta sui computer? Io credo che il funzionamento della memoria sia una delle parti più complicate di un calcolatore, inoltre credo che la tua definizione di calcolatore sia giusta, ma non capisco cosa ci sia che non vada i computer attuali non eseguono calcoli?
Il concetto di istruzione e di rappresentazione dei dati viene rappresentato nella prossima discussione , come posso esplicare i dati se non spiego perché il computer lavora sulla logica del complemento a due?
Cordialmente Ilfe98
secondo dovresti iniziare con i numeri binari e la somma binaria con il complemento per poi intrudurre half-adder, full-adder dato che l'alu in sostanza esegue solo somme, nessun altra operazione, poi selettori e coder/decoder, parte di controllo, parte operativa e memeoria, magari giusto accenni, ma così è molto confusa
Post unito automaticamente:

sulla logica del complemento a due?
comunque a me non sembra che il complemento a due sia stato esplicato
Post unito automaticamente:

secondo dovresti iniziare con i numeri binari e la somma binaria con il complemento per poi intrudurre half-adder, full-adder dato che l'alu in sostanza esegue solo somme, nessun altra operazione, poi selettori e coder/decoder, parte di controllo, parte operativa e memeoria, magari giusto accenni, ma così è molto confusa
Post unito automaticamente:


comunque a me non sembra che il complemento a due sia stato esplicato
in sostanza non si può racchiudere un corso di ingegneria semestrale in un thread così corto, quindi conviene fare un accenno di un po' di tutto, altrimenti non basterebbero decine di pagine
 
  • Mi piace
Reazioni: ilfe98

ilfe98

Moderatore
Staff Forum
Utente Èlite
3,049
1,277
CPU
Intel i7 7700K
Dissipatore
Bequiet Dark rock pro 4
Scheda Madre
Msi pc mate z270
HDD
Seagate barracuda 1tb, silicon power NVME 500gb
RAM
Patriot viper steel 3733Mhz
GPU
Inno 3d gtx 1080 herculez design
Monitor
Asus mg279q
PSU
Corsair HX750
Case
Itek lunar 23
Net
Tiscali ftth
OS
windows 10,mint,debian,Arch linux
secondo dovresti iniziare con i numeri binari e la somma binaria con il complemento per poi intrudurre half-adder, full-adder dato che l'alu in sostanza esegue solo somme, nessun altra operazione, poi selettori e coder/decoder, parte di controllo, parte operativa e memeoria, magari giusto accenni, ma così è molto confusa
Avete sicuramente ragione,ma questa è una intro di un mio progetto personale che riguarderà tutto il corso che ho frequentato di calcolatori elettronici, è un intro per chi non sa nulla, dare concetti di clock ideale oppure di istruzione credo sia prematuro in questo thread, questa è una intro molto generica dei vari argomenti... Dopo aver trattato l'aritmetica e lo standard parlerò di reti logiche combinatorie e i suoi elementi notevoli(multiplexer, decoder tri-state,adder ed esempi di alu a n bit) Poi reti Logiche sequenziali,microarchitettura, codice di hamming,Isa, prestazioni di un calcolatore,memorie, architetture parallele, periferiche di io,CPU bus ,ilp e CPu multiple issue. Questo è l'ordine cronologico del mio progetto. Non ho spiegato cos'è il clock ma lo farò, non ho spiegato un SO ma lo farò così come tante altre cose. Purtroppo sono umano e tra università e progetti è difficile scrivere tutto molto velocemente,ma se mi date pazienza e fiducia con un po' di tempo credo che definirò tutto
comunque a me non sembra che il complemento a due sia stato esplicato
è in progetto ragazzi ,non potevo scrivere tutto in un solo thread altrimenti sarebbe il sesto giorno di fila a scrivere senza sosta :D
Inviato da LG-H870 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Ultima modifica:

oscarandrea

Utente Attivo
266
37
CPU
i5 5200u
RAM
Samsung sodimm 1600MHz
GPU
nvidia 830m 2gb
Monitor
1366x768
OS
Gentoo/HardenedBSD
Avete sicuramente ragione,ma questa è una intro di un mio progetto personale che riguarderà tutto il corso che ho frequentato di calcolatori elettronici, è un intro per chi non sa nulla, dare concetti di clock ideale oppure di istruzione credo sia prematuro in questo thread, questa è una intro molto generica dei vari argomenti... Dopo aver trattato l'aritmetica e lo standard parlerò di reti logiche combinatorie e i suoi elementi notevoli(multiplexer, decoder tri-state,adder ed esempi di alu a n bit) Poi reti Logiche sequenziali,microarchitettura, codice di hamming,Isa, prestazioni di un calcolatore,memorie, architetture parallele, periferiche di io,CPU bus ,ilp e CPu multiple issue. Questo è l'ordine cronologico del mio progetto. Non ho spiegato cos'è il clock ma lo farò, non ho spiegato un SO ma lo farò così come tante altre cose. Purtroppo sono umano e tra università e progetti è difficile scrivere tutto molto velocemente,ma se mi date pazienza e fiducia con un po' di tempo credo che definirò tutto

è in progetto ragazzi ,non potevo scrivere tutto in un solo thread altrimenti sarebbe il sesto giorno di fila a scrivere senza sosta :D
Inviato da LG-H870 tramite App ufficiale di Tom\'s Hardware Italia Forum
ma anzi apprezzo questo thread, però quello che dico e che quando si parla di argomenti così tecnici non possono tralasciare delle cose :)
 
  • Mi piace
Reazioni: ilfe98

BAT

Moderatore
Staff Forum
Utente Èlite
22,675
11,454
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Apprezzo il thread e lo sforzo fatto, considerando anche che è scomodissimo scrivere articoli del genere su qualsiasi forum.

A mio avviso sarebbe preferibile partire con una breve introduzione sulla Macchina di Von Neumann perché, pur nella sua semplicità concettuale, è IL modello che tutti (gli informatici) dovrebbero conoscere. Anche se la cosa fa ridere (a me fa piangere), è incredibile vedere quanti programmatori in erba si mettono alla tastiera ignorando i concetti basilari e pretendendo di scrivere codice decente, senza avere la minima idea di cosa ci sia "sotto e dentro".

Se ti/ci/gli può essere utile, sulle unità di misura usate in informatica, quasi 5 anni fa ho scritto una lunga ed esauriente (ed estenuante) guida su di esse (la trovate al link precedente) perché stanco di sentirmi fare sempre le stesse domande: perché Windows vede 931 GB ma ho un disco da 1 Tera? già quel GB in rosso è un errore, dovrebbe essere GiB ("grazie" Microsoft)
L'ultimo link contiene un foglio elettronico scaricabile per fare istantaneamente la conversione di una quantità (di informazione) verso TUTTE le altre unità di misura esistenti.
Dovrebbe essere precisa a sufficienza da convincere gli stessi informatici a non commettere errori da principianti come 1 kilo-qualcosa non sono 1024-qualcosa perché "kilo" (k) significa 1000 (sistema internazionale di misura), oppure ignorare che le scale di misurazione usate in informatica (limitatamente a bit, byte ecc.) sono 4 e solo 1 è decisamente poco usata (scala binaria basata sul bit).

Domando scusa se l'argomento è banale, ma la questione delle unità di misura è delicata: come sapete, in passato ci sono stati 2 gravi incidenti costati centinaia di milioni di euro (esplosione di un razzo Ariane, perdita di alcuni satelliti) imputabili o a errori di programmazione (aver ignorato che succede nell'aritmetica in virgola mobile) o per aver scritto sw che calcolavano secondo unità anglosassoni dati da sensori che le misuravano in unità espresse nel sistema decimale...
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili