Procesos en Sistemas Operativos: Estados, Planificación y Gestión de Memoria
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,75 KB
Procesos en Sistemas Operativos
Los procesos son trozos de programas en ejecución. Todo programa en ejecución dentro de un ordenador va a necesitar una serie de recursos para poder realizar su trabajo.
El sistema operativo es el encargado de coordinar y controlar todos los recursos y condiciones de ejecución que demandan los procesos. Los sistemas operativos se clasifican según el número de programas o procesos que se pueden ejecutar simultáneamente en:
- Monotarea: El sistema ejecuta solo un programa, de forma que todos los recursos se le dedican en exclusiva. Por ejemplo: MS-DOS
- Multitarea: Permite ejecutar varios programas al mismo tiempo. Se logra compartiendo el uso de los recursos entre los programas que los solicitan. Por ejemplo: Microsoft Windows
Estados de un Proceso
Los estados típicos de un proceso son:
- Preparado o en espera: Listo para ejecutarse cuando quede libre la CPU.
- Activo: Le corresponde la CPU y se está ejecutando. Puede abandonar este estado por varias causas.
- Bloqueado: Espera a que se cumpla un determinado evento para pasar al estado preparado, puede ser una señal de sincronización con otro proceso.
- Muerto: Terminó su ejecución en la CPU o el sistema operativo detectó un error fatal.
Bloque de Control de Proceso (BCP)
El Bloque de Control de Proceso (BCP) contiene información asociada a dicho proceso. Cuando se inicia la ejecución de un proceso, se crea un BCP que se mantendrá hasta que finalice. Este BCP incluye, entre otros datos:
- Identificador del proceso, por ejemplo, el PID de Linux.
- Estado en el que se encuentra el proceso: preparado, bloqueado, etc.
- Prioridad del proceso: respecto de los demás procesos.
- Recursos: asignados, solicitados, etc.
Algoritmos de Planificación
Los algoritmos de planificación son las políticas que se seguirán para elegir qué procesos entran en cada momento a ejecutarse en el sistema.
- Objetivo: Maximizar la utilización y productividad de la CPU.
- Objetivo: Minimizar el tiempo de retorno, de espera y de respuesta.
El sistema operativo dispone de algoritmos de gestión y planificación para decidir qué procesos va a ejecutar y llevar la cuenta de los procesos que están en el sistema, de sus prioridades y de toda la información referente a ellos.
Criterios de Rendimiento de un Algoritmo de Planificación
- Utilización de la CPU: Porcentaje de tiempo que está ocupado el procesador, debe tender a ser el máximo posible.
- Productividad: Trabajos que se completan o finalizan por unidad de tiempo.
- Tiempo de retorno: Intervalo de tiempo desde la entrada de un proceso en el sistema hasta su finalización.
- Tiempo de respuesta: Tiempo que un proceso bloqueado tarda en entrar en la CPU desde que ocurre el evento que lo desbloquea.
Donde:
- t es el tiempo de ejecución.
- ti es el instante en que el usuario solicita la ejecución del proceso.
- tf es el momento en el que el proceso termina su ejecución.
- Tiempo de servicio (T): Es el que necesitaría un proceso para ejecutarse si fuera el único presente en el sistema: T = tf - ti
- Tiempo de espera (E): Es el tiempo que permanece un proceso en el sistema sin que esté ejecutando: E = T - t
- Índice de servicio (I): Representa el tanto por uno de tiempo que el proceso está en el sistema.
Memoria Virtual
Un proceso puede entrar y salir de la memoria varias veces, no es necesario que un programa esté en su totalidad en la memoria para que se ejecute. La memoria virtual es una técnica que, utilizando la memoria secundaria, permite ejecutar programas más grandes que el tamaño de la memoria. Mediante esta técnica, el espacio libre que existe en el disco se usa virtualmente como memoria RAM. Los programas que están ejecutando tendrán partes en la memoria principal (capas activas) y el resto en la memoria secundaria (capas inactivas). Si en un determinado instante varios fragmentos de un programa están ejecutándose y alguno de ellos hace referencia a otro trozo aún no cargado en la memoria principal, se produce un fallo de página.
Si la memoria está llena, para poder asignar un nuevo fragmento del programa a la memoria principal, tenemos que descargar antes otro trozo.
Puede llegar un momento en que el sistema operativo esté más tiempo ocupado con el intercambio de páginas que con la ejecución de los procesos, problema conocido como hiperpaginación. Las técnicas que se utilizan para usar la memoria secundaria como memoria virtual son la de paginación y la de segmentación.
- Paginación: Consiste en dividir la memoria en zonas fijas llamadas frames o marcos de página y, de la misma forma, dividir los programas en porciones iguales a estos marcos denominados páginas.
- Segmentación: El programa se divide en segmentos que se diferencian de las páginas en que su tamaño no es fijo, aunque sí existe un tamaño máximo de segmento. Este sistema tiene que contar con la colaboración del programador, que debe organizar sus programas dividiéndolos en segmentos.