Qualsiasi pezzo di codice eseguibile che può caricare nella memoria di sistema ed eseguire le azioni è un processo . Ci sono processi di sistema e processi utente . A forche di processo o genera un processo figlio . Tranne per il processo originale OS , chiamato processo 0 in Unix , tutti i processi sono creati in questo modo e quindi hanno un processo padre . Un processo ottiene l'attenzione della CPU solo quando il kernel permette
.
Utente e modalità kernel
Un processo viene eseguito in modalità utente o in modalità kernel e mantiene due pile separati quando si passa da una modalità all'altra . Alcuni sistemi operativi possono avere più modalità. Se si scrive un programma , costruisce ed esegue, il processo in esecuzione è in modalità utente . Si entra in modalità kernel quando si fa una chiamata di sistema o riceve un segnale di interruzione . Il segnale può provenire da un altro processo utente o il kernel stesso . Una volta che un processo è in modalità kernel , il kernel si intensifica la sua priorità nel sistema di pianificazione . Inoltre non precorrere il processo in modalità kernel fino a quando non finisce il lavoro critico del sistema , dopo di che è tornato in modalità utente . Un processo in modalità utente può accedere solo le proprie istruzioni e dati o spazio di processo. Il processo in modalità kernel può accedere 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 chiamata di una funzione del sistema operativo a basso livello che accede e manipola entità dei dispositivi di basso livello e le aree riservate della memoria . E 'praticamente il codice operativo . Funzioni che operano su dispositivi OS come file, le tubazioni ed i semafori sono chiamate di sistema . Open () , close ( ) , read () , write () , lock ( ) , unlock ( ) , init ( ) , fork ( ) , sleep ( ) , wakeup ( ) e signal () sono chiamate di sistema . Essi controllano le risorse del sistema operativo e dei processi proprio come il kernel sarebbe. Segnale di interrupt e di 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 ricordo speciale e registra riservata per le attività del sistema operativo .
Allarmi e di istruzioni privilegiate
Alcune istruzioni macchina sono privilegiati e il risultato in errore se eseguito in modalità utente . Ad esempio, un processo in modalità utente non dovrebbe essere consentito di cambiare registro di stato del processo . Registri e memoria kernel privilegiata assistono 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 gli interrupt del kernel di un processo utente , il kernel salva lo stato attuale del processo sullo stack , determina la causa di interruzione , i servizi di interrupt e porta di nuovo il controllo di ciò che il processo stava facendo. Il kernel si apre la pila processo in modo che il processo utente può riprendere da dove si era interrotto .
sistemi © www.354353.com