Está en la página 1de 7

GESTIÓN DE PROCESOS

Objetivo

En un entorno de multiprogramación, el objetivo el sistema operativo es decidir qué

proceso recibe el procesador cuándo y cuánto tiempo.

Objetivos específicos

 Crear y eliminar procesos de usuario y sistema.

 Suspender y reanudar procesos.

 Proporcionar mecanismos para la sincronización de procesos.

 Proporcionar mecanismos para la comunicación de procesos.

 Proporcionar mecanismos para el manejo de interbloqueo.

Marco Teórico

Un programa que se ejecuta como un proceso está determinado de forma única por

varios parámetros. Estos parámetros se almacenan en un bloque de control de

procesos (PCB) para cada proceso. Es una estructura de datos que almacena la

siguiente información:

Características del proceso en el sistema operativo

Un proceso es un programa en ejecución. Es una parte integral de cualquier sistema

operativo (SO) actual. El SO debe asignar recursos a los procesos, permitir que los

procesos compartan e intercambien información, proteger los recursos de cada

proceso de otros procesos y permitir la sincronización entre procesos. Para cumplir

estos requisitos, el SO debe mantener una estructura de datos para cada proceso, que

describa el estado y la propiedad de los recursos de ese proceso, y que permita al SO

ejercer el control sobre cada proceso.

En cualquier sistema operativo moderno puede haber más de una instancia de un

programa cargado en memoria al mismo tiempo. Por ejemplo, más de un usuario


podría estar ejecutando el mismo programa, teniendo cada usuario copias separadas

del programa cargado en memoria. Con algunos programas, es posible tener una

copia cargada en memoria, mientras que varios usuarios tienen acceso compartido a

ella para que cada uno pueda ejecutar el mismo código de programa. Se dice que un

programa de este tipo es reentrante. El procesador, en cualquier momento, sólo puede

estar ejecutando una instrucción de un programa, pero se pueden mantener varios

procesos durante un periodo de tiempo asignando cada proceso al procesador a

intervalos mientras el resto queda temporalmente inactivo. Una serie de procesos que

se ejecutan durante un periodo de tiempo en lugar de al mismo tiempo se denomina

ejecución concurrente.

Importancia de la gestión de procesos en el sistema operativo

Una de las funciones del sistema operativo es gestionar el hardware en nombre de las

aplicaciones. Cuando una aplicación se almacena en el disco, es estática. Una vez

que se lanza una aplicación, se carga en la memoria y comienza a ejecutarse; se

convierte en un proceso. Un proceso es una entidad activa.

Un proceso encapsula todo el estado de una aplicación en ejecución. Esto incluye el

código, los datos, el montón y la pila. Cada elemento del estado del proceso tiene que

ser identificado de forma única por su dirección. Una abstracción del sistema operativo

utilizada para encapsular todo el estado del proceso es un espacio de direcciones.

El hardware de gestión de memoria y los componentes del sistema operativo

mantienen un mapeo entre las direcciones de memoria virtual y las direcciones de

memoria física. Al utilizar este mapeo, podemos desacoplar la disposición de los datos

en el espacio de direcciones virtual de la disposición de los datos en la memoria física.


Gestión de la memoria principal en el sistema operativo

Cuando un programa se carga en la memoria y se convierte en un proceso, se puede

dividir en cuatro secciones ─ pila, montón, texto y datos. La siguiente imagen muestra

una disposición simplificada de un proceso dentro de la memoria principal.

Un programa es un trozo de código que puede ser una sola línea o millones de líneas.

Un programa de ordenador suele ser escrito por un programador en un lenguaje de

programación. Por ejemplo, este es un programa sencillo escrito en lenguaje de

programación C –

Un programa de ordenador es un conjunto de instrucciones que realiza una tarea

específica cuando es ejecutado por un ordenador. Cuando comparamos un programa

con un proceso, podemos concluir que un proceso es una instancia dinámica de un

programa de ordenador.

El proceso está a la espera de ser asignado a un procesador. Los procesos listos

están esperando que el sistema operativo les asigne el procesador para poder

ejecutarse. El proceso puede entrar en este estado después del estado de inicio o

mientras se ejecuta, pero es interrumpido por el programador para asignar la CPU a

algún otro proceso.

CONCURRENCIA DE PROCESOS

Objetivos

El objetivo de la concurrencia de proceso es, coordinar la ejecución de los procesos en

las situaciones en las que dos o más procesos puedan coincidir en el acceso a un

recurso compartido.

Objetivos específicos

 Detectar sucesos externos que se producen en un orden aleatorio.

 Responder a los sucesos externos que se producen en un orden.


 Garantizar que estos sucesos se respondan en un intervalo requerido mínimo.

Marco Teórico

Aunque una de las tareas principales de los sistemas operativos es dar a cada

proceso la ilusión de que se está ejecutando en una computadora dedicada, de modo

que el programador no tenga que pensar en la competencia por recursos, a veces un

programa requiere interactuar con otros: parte del procesamiento puede depender de

datos obtenidos en fuentes externas, y la cooperación con hilos o procesos externos

es fundamental. Pueden aparecer muchos problemas cuando se estudia la interacción

entre hilos del mismo proceso, la sincronización entre distintos procesos, la asignación

de recursos por parte del sistema operativo a procesos simultáneos, o incluso cuando

interactúan usuarios de diferentes computadoras de una red.

Los retos de diseñar sistemas concurrentes derivan principalmente de las

interacciones que se producen entre actividades concurrentes. Cuando las actividades

concurrentes interactúan, es necesario algún tipo de coordinación.


Dos o más procesos decimos que son concurrentes, o que se ejecutan

concurrentemente, cuando son procesados al mismo tiempo, es decir, que para

ejecutar uno de ellos, no hace falta que se haya ejecutado otro.

En sistemas multiprocesador, esta ejecución simultánea podría conseguirse

completamente, puesto que podremos asignarle, por ejemplo, un proceso A al

procesador A y un proceso B al procesador B y cada procesador realizaran la

ejecución de su proceso.

Cuando tenemos un solo procesador se producirá un intercalado de las instrucciones

de ambos procesos, de tal forma que tendremos la sensación de que hay un

paralelismo en el sistema (concurrencia, ejecución simultánea de más de un proceso).

Desde un punto de vista formal, la concurrencia no se refiere a dos o más eventos que

ocurren a la vez sino a dos o más eventos cuyo orden es no determinista, esto es,

eventos acerca de los cuales no se puede predecir el orden relativo en que ocurrirán.

Principios de la concurrencia:

En un sistema de multiprogramación de un solo procesador, los procesos se intercalan

en el tiempo para dar la apariencia de ejecución simultánea.

En un sistema de múltiples procesadores, es posible no solo intercalar la ejecución de

múltiples procesos sino también superponerlos.

Surgen las siguientes dificultades:

El intercambio de recursos globales está plagado de peligros.

Es difícil para el sistema operativo gestionar la asignación de recursos de manera

óptima.

Se vuelve muy difícil localizar un error de programación porque los resultados son

típicamente no deterministas y reproducibles.


Preocupaciones del sistema operativo

El sistema operativo debe ser capaz de realizar un seguimiento de los diversos

procesos.

El sistema operativo debe asignar y desasignar varios recursos para cada proceso

activo.

El sistema operativo debe proteger los datos y los recursos físicos de cada proceso

contra la interferencia involuntaria de otros procesos.

El funcionamiento de un proceso y la salida que produce deben ser independientes de

la velocidad a la que se lleva a cabo su ejecución en relación con la velocidad de otros

procesos concurrentes.

Algunos conceptos de concurrencia:

Operación atómica: Manipulación de datos que requiere la garantía de que se

ejecutará como una sola unidad de ejecución, o fallará completamente, sin resultados

o estados parciales observables por otros procesos o el entorno.

Esto no necesariamente implica que el sistema no retirará el flujo de ejecución en

medio de la operación, sino que el efecto de que se le retire el flujo no llevará a un

comportamiento inconsistente.

Condición de carrera (Race condition): Categoría de errores de programación que

involucra a dos procesos que fallan al comunicarse su estado mutuo, llevando a

resultados inconsistentes. Es uno de los problemas más frecuentes y difíciles de

depurar, y ocurre típicamente por no considerar la no atomicidad de una operación.

Sección (o región) crítica: El área de código que requiere ser protegida de accesos

simultáneos donde se realiza la modificación de datos compartidos.


Recurso compartido: Un recurso al que se puede tener acceso desde más de un

proceso. En muchos escenarios esto es una variable en memoria (como cuenta en el

jardín ornamental), pero podrían ser archivos, periféricos, etcétera.

Dado que el sistema no tiene forma de saber cuáles instrucciones (o áreas del código)

deben funcionar de forma atómica, el programador debe asegurar la atomicidad de

forma explícita, mediante la sincronización de los procesos.

El sistema no debe permitir la ejecución de parte de esa área en dos procesos de

forma simultánea (sólo puede haber un proceso en la sección crítica en un momento

dado).

Referencias

Santiago Candela, Carmelo Rubén García, Alexis Quesada, Francisco Santana, José

Miguel Santos (2007). Fundamentos de sistemas operativos. Editores Thomson Spain

Paraninfo S.A.

https://1984.lsi.us.es/wiki-ssoo/index.php/Concurrencia_de_procesos

https://canvaperiodico.club/informatica/que-es-gestion-de-procesos-en-sistemas-

operativos/

También podría gustarte