Definición
Un proceso puede informalmente entenderse como un programa en ejecución. El concepto se refiere a la ejecución de diversas instrucciones por parte del microprocesador
Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados".
El sistema operativo se encarga de gestionar los procesos pudiendo crear y borrar los procesos y establecer comunicaciones entre ellos.
Un proceso informático puede atravesar diferentes estados. Puede estar en ejecución (cuando está utilizando el microprocesador), bloqueado (su ejecución requiere que se realice otro evento) o listo (cuando libera el microprocesador).
Es posible distinguir entre diferentes tipos de procesos. Los procesos cooperativos, son aquellos que son gestionados por varias configuraciones de hardware. Los procesos distribuidos, en cambio, se encuentran repartidos entre varios elementos de un sistema. También existen los procesos paralelos, que se asemejan a los sistemas más importantes.
1 programa cuenta con varios procesos. Se dividen:
- SO necesita algo
- Entrada de un nuevo usuario (paralelo)
- Si lo ejecuta al entrar termina al salir
Procesos creados por el SO:
- Errores
- Instrucciones inválidas
- Fallos E/S
- Usuarios
- Sistema
Bloque de control de Procesos BCP
Se almacenan los atributos del proceso
Simula a una imagen del proceso en un momento concreto
- Registros
- Ubicación de variables
- Pila
Se usa para concurrencia (los procesos entran y salen de la CPU constantemente)
Información del BCP
Identificadores
- Proceso
- Proceso padre
- Usuario
Información sobre el control del proceso
- Prioridad
- Tiempo de espera
- Procesos hijos generados
Tabla de BCP
Al crearse el proceso se crea el BCP y se almacena en
una tabla de BCP’s
La tabla puede ser
- Estática (tiene un nº máximo)
- Dinámica (sin límite)
Al cargarse el proceso, se cargan los datos (registros,
variables…) en el BCP y al parar el proceso es al revés
Todo lo gestiona el SO por lo que necesita conocer el
estado en que se encuentra el proceso
Acciones de los procesos
- Salvar contexto del proceso que abandona la ejecución
- Cambiar el estado del proceso
- Mover el BCP a otra cola (listo, bloqueado…)
- Solicitar otro proceso
- Actualizar el nuevo BCP
- Actualizar las estructuras de datos y memoria
- Volcar al procesador el contenido del nuevo proceso
División mínima de acciones
1 proceso -Varios hilos
Ventajas de separar hilos y procesos
- La información de los hilos hay mucha que es común
- menos tiempo para consultarla
- Comunicación entre hilos más rápida porque están en zonas comunes de memoria
- Ejecución paralela de varios hilos
Se suele trabajar a nivel de hilos:
- Fin de un proceso = fin de los hilos
- Suspensión de un proceso = suspensión de hilos y liberación de memoria
- Como ocupan menos recursos se liberan más
Interrupción
- Mecanismo para ejecutar un bloque de instrucciones interrumpiendo la ejecución de un programa
- Por ejemplo, las teclas del teclado
Excepción
- Situaciones de error en un programa que requieren que se ejecute un bloque de instrucciones
- Por ejemplo, una división proporcionar una letra para una suma
CRON
- Ejecutar tareas programadas en un momento determinado
- Hay que instalarlo
AT
- Ejecutar tareas programadas una sola vez
- Hay que instalarlo
- Ejercicio: Ejecutar un script cada vez que arranque el equipo
No hay comentarios:
Publicar un comentario