Articles of sistema operativo

linux: al livello di programmazione ottiene il padre pid di un altro processo?

Ho provato google, ma getppid() trovato getppid() che ottiene il pid genitore del processo corrente . Ho bisogno di qualcosa come getppid(some_other_pid) , c’è una cosa del genere? Praticamente prende il pid di qualche processo e restituisce il processo genitore ‘pid.

Rilevamento dei sistemi operativi in ​​Ruby

C’è un modo per rilevare il sistema operativo in ruby? Sto lavorando allo sviluppo di uno strumento di sketchup che dovrà rilevare MAC rispetto a WINDOWS.

Implementazione di una barriera del processo N utilizzando semafori

Attualmente mi sto allenando per un esame del sistema operativo con iterazioni precedenti e mi sono imbattuto in questo: Implementa una “N Process Barrier”, assicurandoti che ogni processo fuori da un gruppo di essi attenda, ad un certo punto della sua esecuzione, che gli altri processi raggiungano il loro punto dato. Hai le seguenti operazioni […]

Quali sono i trade off per “busy wait” vs “sleep”?

Questo è in estensione alla mia domanda precedente Come funziona la modalità di blocco nei socket unix / linux? Ciò che raccolgo da Internet ora, tutto il processo che richiama le chiamate di blocco, vengono messi in attesa fino a quando lo scheduler non trova i motivi per sbloccarlo. I motivi possono variare dal buffer […]

invocazione della funzione init dei driver compilati nel kernel

In Linux, se i driver di periferica sono costruiti come moduli kernel caricabili, dopo aver inserito il modulo del kernel del driver di periferica, il kernel chiama la funzione init del driver di dispositivo come indicato dalla macro module_init() . Come funziona questo per i driver di periferica che sono staticamente compilati nel kernel? Come […]

La ragione storica dietro la linea diversa termina su piattaforms diverse

Perché DOS / Windows e Mac decidono di usare \ r \ n e \ r per la fine della linea invece di \ n? Era solo il risultato di cercare di essere “diversi” da Unix? E ora che Mac OS X è Unix (-like), Apple ha cambiato \ n da \ r?

Perché un programma eseguibile per una CPU specifica non funziona su Linux e Windows?

Un problema eseguibile come exe non funziona su Linux (senza vino). Durante la compilazione del codice sorgente il compilatore produce un codice object che è specifico per una particolare architettura della CPU. Ma la stessa applicazione non funziona con un altro sistema operativo con la stessa CPU. So che il codice potrebbe includere istruzioni specifiche […]

Comprendere le scritture di file simultanee da più processi

Da qui: il file append atomic in UNIX Considera un caso in cui più processi aprono lo stesso file e si aggiungono ad esso. O_APPEND garantisce che cercare la fine del file e iniziare l’operazione di scrittura è atomico. Quindi più processi possono aggiungere allo stesso file e nessun processo sovrascriverà la scrittura di altri […]

fork in programma multi-thread

Ho sentito che mescolare il biforcarsi e il thread in un programma potrebbe essere molto problematico, spesso con comportamenti misteriosi, specialmente quando si tratta di risorse condivise, come blocchi, pipe, descrittori di file. Ma non ho mai capito appieno quali sono esattamente i pericoli e quando potrebbero accadere. Sarebbe bello se qualcuno con esperienza in […]

Qual è la differenza tra lo spazio del kernel e lo spazio utente?

Qual è la differenza tra lo spazio del kernel e lo spazio utente? Lo spazio del kernel, i thread del kernel, i processi del kernel e lo stack del kernel significano la stessa cosa? Inoltre, perché abbiamo bisogno di questa differenziazione?