Cualquier pieza de código ejecutable que puede cargar en la memoria del sistema y realizar acciones es un proceso. Hay procesos del sistema y los procesos de usuario . Un proceso de horquillas o genera un proceso hijo . Excepto para el proceso operativo original, llamado proceso 0 en Unix , todos los procesos se crean de esta manera y por lo tanto tienen un proceso padre . Un proceso llama la atención de la CPU cuando el kernel lo permite.
Usuario y modos Kernel
proceso se ejecuta en modo usuario o modo de núcleo y mantiene dos pilas separadas al cambiar entre los modos. Algunos sistemas operativos pueden tener más modos . Si usted escribe un programa, lo construye y ejecuta, el proceso que se ejecuta en modo de usuario. Entra en el modo de núcleo cuando se hace una llamada al sistema o recibe una señal de interrupción . La señal puede venir de otro proceso de usuario o el propio kernel. Una vez que el proceso se encuentra en modo de núcleo , el núcleo se intensifica su prioridad en el esquema de planificación . Asimismo, no reemplaza el proceso de modo de núcleo hasta que termine el trabajo crítico del sistema , después de lo cual está de vuelta en el modo de usuario . Un proceso en modo de usuario sólo puede acceder a sus propias instrucciones y datos o espacio de proceso . El proceso en modo kernel puede acceder a las direcciones del kernel. Un buen ejemplo es un fragmento de código en lenguaje ensamblador que hace un salto a una interrupción.
System Calls
Como se mencionó anteriormente, es la llamada al sistema , no importa quién lo hace y cómo, que trae un proceso en modo kernel. Una llamada al sistema es una invocación de una función del sistema operativo de bajo nivel que accede y manipula las entidades de dispositivos de bajo nivel y las áreas reservadas de la memoria. Es prácticamente código del sistema operativo . Funciones que operan en los dispositivos del sistema operativo como los archivos, las tuberías y los semáforos son las llamadas al sistema . Open () , close () , read ( ) , write ( ) , lock () , desbloqueo () , init (), tenedor (), sleep () , activación () y la señal ( ) son las llamadas al sistema . Ellos controlan los recursos del sistema operativo y los procesos al igual que el kernel lo haría. Procesamiento de la señal de interrupción y es también el área del núcleo y no el proceso de usuario . En el modo kernel, se le da el control a la llamada al sistema que está haciendo las tareas del sistema , o el trabajo que el núcleo podría hacer otra cosa. Es el código que tiene acceso a la memoria especial y registros reservados para las tareas del sistema operativo.
Interrupciones e instrucciones privilegiadas
Algunas instrucciones de la máquina son privilegiados y dar lugar a error si se ejecuta en modo de usuario . Por ejemplo , un proceso en el modo de usuario no se debe permitir que cambiar el registro de estado del proceso. Registros y la memoria kernel privilegiada ayudar al kernel en su labor de control de procesos . Si alguien viene y los cambia , los resultados pueden ser impredecibles . Cuando otro proceso o las interrupciones del núcleo de un proceso de usuario, el kernel guarda el estado actual del proceso en la pila , determina la causa de la interrupción, la interrupción de los servicios de control y trae de vuelta a lo que estaba haciendo el proceso. El núcleo aparece la pila de proceso para que el proceso de usuario puede continuar donde lo dejó.