Cosa significa 01001001 in codice binario?


Risposta migliore

Domanda: cosa significa 01001001 in codice binario?

Risposta: in quale contesto?

01001001 su e IBM 360 è esadecimale 49 o CH che è il codice operativo Confronta mezza parola. Viene inserito su una scheda IBM come 12–1–8 punch.

01 001 001 Raggruppato come ottale è 1 1 1 quindi su un CDC 600 questo sarebbe “A9”

Nei dati di campo su un Univac questo sarebbe il carattere “D”

Cosè il contesto?

Risposta

Windows 10 è già in esecuzione come codice binario (macchina linguaggio). È stato compilato dal codice sorgente (principalmente C e C ++) fino al codice macchina (binario) utilizzando compilatori di ottimizzazione.

Quindi, la domanda diventa … potrebbe una persona (in realtà, un numeroso team di esperti con un gigantesco budget e molto di tempo) riscrivere Windows 10 da zero in linguaggio macchina e ottenere prestazioni migliori rispetto al linguaggio macchina generato dai compilatori di ottimizzazione utilizzati oggi?

Gli ottimizzatori sono molto buoni oggigiorno, così buoni che può essere difficile trovare codice generato che possa essere ottimizzato manualmente per funzionare meglio e allo stesso livello di affidabilità. Tieni presente che ci sono circa 50 milioni di righe di codice sorgente del linguaggio di alto livello in Windows 10 e ognuna di queste righe può potenzialmente tradursi in molte righe di linguaggio assembly e ogni riga di linguaggio assembly si traduce in genere tra una e più byte di codice macchina.

Con tutto questo in mente, se parliamo di una riscrittura completa del sistema operativo da zero in codice macchina, il 99\% (o più) dello sforzo non risulterebbe più codice macchina efficiente, in modo che parte dello sforzo sarebbe sprecato. E il restante 1\% possibile dei casi in cui il codice potrebbe funzionare meglio avrebbe un costo astronomico. E questo se potessi trovare abbastanza esperti con una conoscenza sufficiente dellarchitettura per scrivere occasionalmente codice migliore di quello che il compilatore di ottimizzazione può generare.

Se qualcuno (o un team) tentasse di eseguire questa operazione, lapproccio giusto lo farebbe essere quello di utilizzare strumenti di profilazione per cercare i colli di bottiglia legati alla CPU nel sistema operativo, guardare attentamente il codice generato dal compilatore e vedere se qualsiasi regolazione manuale del codice (o una modifica nelle opzioni di ottimizzazione del compilatore) potrebbe migliorare le prestazioni.

Dal 1989 circa, Microsoft dispone di un team per analizzare attentamente le prestazioni di vari componenti del sistema operativo, cercare i colli di bottiglia e apportare miglioramenti in quelle aree.

Questo è il modo giusto per ottimizzare il software in generale: misurare effettivamente, cercare i colli di bottiglia e vedere cosa si può fare su ciascuno di essi.

La semplice riscrittura di un intero prodotto software gigante in un linguaggio di basso livello è unenorme perdita di tempo e risorse .

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *