In un processore multicore, cosa succede al contenuto della cache di un core (diciamo L1) quando si verifica un cambio di contesto su quella cache? Il comportamento dipende dall'architettura o è un comportamento generale seguito da tutti i produttori di chip?
Dopo aver letto diverse fonti sono ancora confuso sui thread a livello di utente e kernel. In particolare: I thread possono esistere sia a livello di utente che a livello di kernel Qual è la differenza tra il livello utente e il livello kernel?
Sto studiando CPU e so come legge un programma dalla memoria ed eseguo le sue istruzioni. Capisco anche che un sistema operativo separa i programmi nei processi, e quindi si alternano tra loro così velocemente che pensi che siano in esecuzione contemporaneamente, ma in realtà ogni programma funziona da solo …
Ho un set di coppie. Ogni coppia ha la forma (x, y) in modo tale che x, y appartengano a numeri interi dell'intervallo [0,n). Quindi, se n è 4, allora ho le seguenti coppie: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) Ho già le coppie. Ora, devo costruire una combinazione usando …
Nel famoso saggio di Richard Gabriel, The Rise of Worse is Better , contrappone versioni caricate delle filosofie di design del MIT / Stanford (Lisp) e del New Jersey (C / Unix) lungo gli assi della semplicità, correttezza, coerenza e completezza. Fornisce l'esempio del "problema di perdita del PC" ( …
Bene, questa è una domanda generale. E se qualcuno vuole renderlo specifico per l'implementazione, preferirò cose relative a Unix. Ma prima devi conoscere i seguenti problemi in generale: Ho letto singolo processo può avere più thread. Più thread dello stesso processo condividono cose tra loro. Voglio sapere cosa condividono e …
Molti riferimenti di sistemi operativi affermano che con il multitasking cooperativo (anziché preventivo), un processo mantiene la CPU fino a quando non si sospende volontariamente. Se un processo in esecuzione esegue una richiesta I / O che non può essere immediatamente soddisfatta (ad esempio, richiede un colpo di chiave non …
Consideriamo un segmento di memoria (le cui dimensioni possono aumentare o ridursi, come un file, quando necessario) su cui è possibile eseguire due operazioni di allocazione di memoria di base che coinvolgono blocchi di dimensioni fisse: assegnazione di un blocco liberando un blocco precedentemente assegnato che non viene più utilizzato. …
Dalle mie letture sui sistemi operativi (lettura del materiale di base su Wikipedia, siti tecnologici, ecc.) Ho appreso che il sistema operativo è un programma che consente a programmi e applicazioni di interagire con l'hardware in modo efficiente e sicuro. Tuttavia, sono confuso su come il sistema operativo sovrintenda al …
Penso di sapere cos'è un sistema operativo in tempo reale "difficile". È un sistema operativo con uno scheduler che fornisce un contratto con il programmatore dell'applicazione. Un'applicazione fornisce una scadenza per ogni richiesta di allocazione delle risorse. Se le richieste di scadenza sono realizzabili , lo scheduler garantisce che ogni …
Un microkernel implementa tutti i driver come programmi per lo spazio utente e implementa funzionalità di base come IPC nel kernel stesso. Un kernel monolitico, tuttavia, implementa i driver come parte del kernel (ad es. Gira in modalità kernel). Ho letto alcune affermazioni secondo cui i microkernel sono più lenti …
Supponiamo che io voglia costruire un sistema operativo basato su un kernel inferiore nativo molto piccolo che funge da interprete / runtime di codice gestito e un kernel superiore più grande compilato in un linguaggio macchina non nativo (bytecode Java, CIL, ecc.). Esempi di sistemi operativi simili sarebbero Singolarità e …
Supponiamo stiamo dato due numeri lll e e che vogliamo trovare per l \ le i, \, j \ le r .rrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r L'algoritmo ingenuo controlla semplicemente tutte le coppie possibili; ad esempio in ruby avremmo: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| …
Alcuni hypervisor ottimizzano l'utilizzo della memoria utilizzando un metodo chiamato ballooning (almeno così lo chiama KVM), questo metodo deduplica la memoria tra macchine virtuali e imposta le pagine comuni in sola lettura con copia in scrittura. Questo è il contrario di una chiamata fork. È possibile implementare a livello di …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.