lunes, 2 de febrero de 2015

Procesos



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)
           -2 usuarios ejecutando un programa
          - Si lo ejecuta al entrar termina al salir 


Procesos creados por el SO: 

  • Errores 
  • Instrucciones inválidas 
  • Fallos E/S
Dos tipos de procesos 
  • Usuarios 
  • Sistema 
Se ejecutan por prioridad

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
Cada proceso -1 BCP 

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 estado del proceso (condición de la última instrucción, por dónde va…) 

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
Hilos 

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
Interrupciones y Excepciones 

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
Comandos para la automatización de tareas en linux 

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