Nwlapcug.com


Funzioni del sistema operativo che vengono utilizzate nella modalità utente e Kernel

Funzioni del sistema operativo che vengono utilizzate nella modalità utente e Kernel


Sistemi operativi multiutente di multitasking hanno architetture molto potente. Dovrebbero mantenere numerosi utenti accesso in rete a una workstation o un server centrale. Il kernel del sistema operativo..--il core o il centro attorno al quale la funzionalità esterna del sistema operativo è a strati..--parla per l'hardware di bare bones tramite driver di periferica e software tramite il sottosistema di controllo di processo. Il kernel prende il controllo dell'allocazione delle risorse e pianificazione dei processi. Caccia i processi dentro e fuori modalità attive, processi di sonno si sveglia, anelli allarmi e invia segnali.

Processo

Qualsiasi eseguibile pezzo di codice che può caricare nella memoria di sistema ed eseguire azioni è un processo. Ci sono i processi di sistema e processi utente. Un processo forcelle 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 pertanto hanno un processo padre. Un processo ottiene l'attenzione della CPU solo quando il kernel lo permette.

Modalità Kernel e utente

Un processo viene eseguito in modalità utente o in modalità kernel e mantiene due pile separate di monete durante la commutazione tra le modalità. Alcuni sistemi operativi può avere più modi. Se si scrive un programma, costruirla ed eseguirlo, il processo in esecuzione è in modalità utente. Entra in modalità kernel quando rende un sistema chiamare o riceve un segnale di interrupt. Il segnale può venire da un altro processo utente o kernel stesso. Una volta un processo in modalità kernel, il kernel si intensifica la sua priorità nel regime di pianificazione. Esso inoltre non precorrere il processo in modalità kernel finché finisce il lavoro di sistema critici, dopo di che è tornato in modalità utente. Un processo in modalità utente può accedere solo la propria istruzioni e dati o processo spazio. 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 lo fa e come, che porta un processo in modalità kernel. Una chiamata di sistema è una chiamata di una funzione di sistema operativo di basso livello che accede e manipola le entità di basso livello dispositivo e aree riservate di memoria. È praticamente il codice del sistema operativo. Funzioni operative su dispositivi di OS come file, pipe e i semafori sono chiamate di sistema. Open (), Close (), Read (), Write (), Lock (), Unlock (), init (), fork (), Sleep (), wakeup e Signal () vengono chiamate di sistema. Essi controllano i processi e le risorse del sistema operativo proprio come farebbe con il kernel. Segnale e l'elaborazione degli interrupt è anche la zona del kernel e non il processo utente. In modalità kernel, il controllo viene assegnato per la chiamata di sistema che sta facendo attività di sistema, o il lavoro che il kernel farebbe altrimenti. È codice che accede alla memoria speciale e registri riservati per attività di OS.

Gli interrupt e istruzioni privilegiate

Alcune istruzioni di macchina sono privilegiati e causare 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 il kernel interrompe un processo utente, il kernel Salva lo stato corrente del processo di stack, determina la causa dell'interrupt, servizi l'interrupt e riporta il controllo in quello che stava facendo il processo. Il kernel estrae lo stack di processo affinché il processo utente può riprendere dove si era interrotto.