Funzioni del sistema operativo che vengono utilizzati nei modi kernel e degli utenti

November 20

Funzioni del sistema operativo che vengono utilizzati nei modi kernel e degli utenti


sistemi operativi multi-utente multitasking hanno architetture molto potenti. Essi sono tenuti a mantenere numerosi gli utenti che accedono a attraverso la rete ad un server centrale o workstation. Il kernel del sistema operativo - il nucleo o il centro attorno al quale la funzionalità esterno del sistema operativo è a strati - parla con l'hardware ridotto all'osso tramite i driver di periferica e al software tramite il suo sottosistema di controllo di processo. Il kernel prende il controllo di allocazione delle risorse e pianificazione dei processi. Si spinge i processi dentro e fuori di modalità attive, si sveglia processi a pelo, anelli allarmi e invia segnali.

Processo

Qualsiasi pezzo eseguibile di codice che può caricare in memoria di sistema ed eseguire azioni è un processo. Ci sono processi di sistema e processi utente. A forche processo o genera un processo figlio. Fatta eccezione per il processo di sistema operativo originale, chiamato processo 0 in Unix, tutti i processi vengono creati in questo modo, e quindi avere un processo genitore. Un processo ottiene l'attenzione della CPU solo quando il kernel permette.

Utente e modalità kernel

Un processo viene eseguito in modalità utente o modalità kernel e mantiene due pile separate quando si passa da una modalità all'altra. Alcuni sistemi operativi possono avere più modalità. Se si scrive un programma, costruire ed eseguirlo, il processo in esecuzione è in modalità utente. Si entra in modalità kernel quando si fa una chiamata di sistema o riceve un segnale di interrupt. Il segnale può provenire da un altro processo utente o il kernel stesso. Una volta che un processo è in modalità kernel, il kernel intensifica la sua priorità nel sistema di programmazione. Inoltre non precorrere il processo in modalità kernel fino a quando non finisce il lavoro di sistema critico, dopo di che è tornato in modalità utente. Un processo in modalità utente può accedere solo i propri istruzioni e dati o spazio di elaborazione. Il processo in modalità kernel può accedere agli indirizzi nel kernel. Un buon esempio è un pezzo di codice in linguaggio assembly che fa un salto di un interrupt.

chiamate di sistema

Come accennato in precedenza, è la chiamata di sistema, non importa chi fa e come, che porta un processo in modalità kernel. Una chiamata di sistema è una invocazione di una funzione di sistema operativo a basso livello che accede e manipola entità dei dispositivi di basso livello e le aree riservate della memoria. È praticamente codice operativo. Funzioni che operano su dispositivi OS come file, tubi e semafori sono chiamate di sistema. Open (), close (), read (), write (), blocco (), sblocco (), init (), fork (), sleep (), sveglia () e il segnale () sono chiamate di sistema. Essi controllano risorse e processi, proprio come il kernel del sistema operativo. Segnale e interrompere l'elaborazione è anche l'area del kernel e non il processo utente. In modalità kernel, il controllo è dato alla chiamata di sistema che sta facendo attività di sistema, o il lavoro che il kernel avrebbe fatto altrimenti. E 'il codice che accede alla memoria speciale e registri riservato per le attività del sistema operativo.

Interrupt e istruzioni privilegiate

Alcune istruzioni macchina sono privilegiati e risultato in errore se eseguito in modalità utente. Ad esempio, un processo in modalità utente non dovrebbe essere consentito di modificare il registro di stato del processo. Registri e memoria del kernel privilegiata assistere il kernel nel suo lavoro di controllo di processo. Se qualcun altro arriva e li cambia, i risultati possono essere imprevedibili. Quando un altro processo o kernel interrompe un processo utente, il kernel salva lo stato attuale del processo sulla pila, determina la causa dell'interruzione, servizi l'interrupt e porta il controllo al quale faceva il processo. Il kernel si apre lo stack processo in modo che il processo utente può riprendere da dove era stato interrotto.