0% encontró este documento útil (0 votos)
105 vistas8 páginas

Conceptos Clave de Procesos OS

El documento habla sobre conceptos básicos de sistemas operativos como procesos, estados de procesos, bloque de control de procesos, operaciones con procesos, comunicación entre procesos y problemas comunes de comunicación. Define un proceso como un programa en ejecución que incluye valores de registros y variables. Explica los estados principales de un proceso como nuevo, ejecutando, bloqueado, listo y terminado, así como las transiciones entre estados. También describe el bloque de control de proceso y la información que contiene como ident
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
105 vistas8 páginas

Conceptos Clave de Procesos OS

El documento habla sobre conceptos básicos de sistemas operativos como procesos, estados de procesos, bloque de control de procesos, operaciones con procesos, comunicación entre procesos y problemas comunes de comunicación. Define un proceso como un programa en ejecución que incluye valores de registros y variables. Explica los estados principales de un proceso como nuevo, ejecutando, bloqueado, listo y terminado, así como las transiciones entre estados. También describe el bloque de control de proceso y la información que contiene como ident
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sistemas Operativos

Nombre: Edgar Stalin Duran

Matrícula: 2022-2100

Maestro: Maria Antonia Pineda

Tema: Concepto de Procesos

Fecha: 3/10/2022
Introducción
En este trabajo le hablaré sobre que es un proceso, los distintos bloques de control de un
proceso, los estados que pueden tener un proceso, operaciones de un proceso entre mas
terminologías.

Desarrollo

3.1 Definición de un proceso:

El principal concepto en cualquier sistema operativo es el de proceso. Un proceso es un


programa en ejecución, incluyendo el valor del program counter, los registros y las variables.
Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es visto como un CPU
virtual. El recurso procesador es alternado entre los diferentes procesos que existan en el
sistema, dando la idea de que ejecutan en paralelo (multiprogramación)

3.2 Estados de un proceso:

El estado de un proceso es definido por la actividad corriente en que se encuentra.


Los estados de un proceso son:
– Nuevo (new): Cuando el proceso es creado.
– Ejecutando (running): El proceso tiene asignado un procesador y está ejecutando sus
instrucciones.
– Bloqueado (waiting): El proceso está esperando por un evento (que se complete un pedido
de E/S o una señal)
. – Listo (ready): El proceso está listo para ejecutar, solo necesita del recurso procesador
. – Finalizado (terminated): El proceso finalizó su ejecución.
Transiciones entre estados

Nuevo ⇒ Listo
– Al crearse un proceso pasa inmediatamente al estado listo.

Listo ⇒ Ejecutando
– En el estado de listo, el proceso solo espera para que se le asigne un procesador para
ejecutar (tener en cuenta que puede existir más de un procesador en el sistema). Al liberarse
un procesador el planificador (scheduler) selecciona el próximo proceso, según algún criterio
definido, a ejecutar.

Ejecutando ⇒ Listo
– Ante una interrupción que se genere, el proceso puede perder el recurso procesador y pasar
al estado de listo. El planificador será el encargado de seleccionar el próximo proceso a
ejecutar.

Ejecutando ⇒ Bloqueado
– A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes
(ej.: genera un pedido de E/S). Teniendo en cuenta que el pedido puede demorar y, además, si
está en un sistema multiprogramado, el proceso es puesto en una cola de espera hasta que se
complete su pedido. De esta forma, se logra utilizar en forma más eficiente el procesador.

Bloqueado ⇒ Listo
– Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el
proceso es puesto nuevamente en la cola de procesos listos.

Ejecutando ⇒ Terminado
– Cuando el proceso ejecuta sus última instrucción pasa al estado terminado. El sistema
libera las estructuras que representan al proceso.

3.3 Bloque de control de un proceso:

El bloque de control del proceso (BCP) o en inglés PCB (Process Control Block) es un
registro especial donde el sistema operativo agrupa toda la información que necesita conocer
respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el
BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la
vida del proceso.

Cuando el proceso termina, su BCP es borrado y el registro puede ser utilizado para otros
procesos. Un proceso resulta conocido para el sistema operativo y por tanto elegible para
competir por los recursos del sistema sólo cuando existe un BCP activo asociado a él.
El bloque de control de proceso es una estructura de datos con campos para registrar los
diferentes aspectos de la ejecución del proceso y de la utilización de recursos. La información
almacenada en un BCP incluye típicamente algunos o todos los campos siguientes:

Identificador de proceso (Process Identificator -PID-, de sus siglas en inglés).


Estado del proceso. Por ej: listo, en espera, bloqueado.

Contador de programa: dirección de la próxima instrucción a ejecutar.


Valores de registro de CPU. Se utilizan también en el cambio de contexto.

Espacio de direcciones de memoria.

Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.

Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).


Estadísticas del proceso.

Datos del propietario (owner).

Permisos asignados.

Señales (Signals) pendientes de ser servidas. (Almacenados en un mapa de bits).


.

3.4 Operaciones con procesos:

Operaciones de procesos

La manifestación de un proceso en Un sistema operativo es Un bloque de control de


proceso (PCB). El es una estructura de datos que contiene cierta información importante
acerca del proceso, incluyendo:

Estado actual del proceso


Identificación única del proceso
Prioridad del proceso
Apuntadores para localizar la memoria del proceso
Apuntadores para asignar recursos
Área para preservar registros

Así pues, el PCB es la entidad que define un proceso en el sistema operativo. Dado que
los PCB necesitan ser manejados con eficiencia por el sistema operativo, muchos
ordenadores tienen un registro hardware que siempre apunta hacia el PCB del proceso
que se está ejecutando. A menudo existen instrucciones hardware que cargan en el PCB
información sobre su entorno, y la recuperan con rapidez

3.5 Hilos de ejecución (“threads”):

Los hilos se distinguen de los tradicionales procesos en que los procesos son generalmente
independientes, llevan bastante información de estados, e interactúan sólo a través de
mecanismos de comunicación dados por el sistema. Por otra parte, muchos hilos
generalmente comparten otros recursos directamente. En los sistemas operativos que proveen
facilidades para los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso,
que cambiar de un proceso a otro. Este fenómeno se debe a que los hilos comparten datos y
espacios de direcciones, mientras que los procesos al ser independientes no lo hacen. Al
cambiar de un proceso a otro el sistema operativo (mediante el dispacher) genera lo que se
conoce como overhead, que es tiempo desperdiciado por el procesador para realizar un
cambio de modo (mode switch), en este caso pasar del estado de Runnig al estado de Waiting
o Bloqueado y colocar el nuevo proceso en Running. En los hilos como pertenecen a un
mismo proceso al realizar un cambio de hilo este overhead es casi despreciable. Sistemas
operativos como Windows NT, OS/2 y Linux (2.5 o superiores) han dicho tener hilos
"baratos", y procesos "costosos" mientras que en otros sistemas no hay una gran diferencia.

3.6 Administración de Procesos:

La actividad más importante del núcleo del sistema operativo es implementar los procesos.
Cada proceso es un procesador virtual en donde se ejecuta una aplicación o una herramienta
del sistema operativo. El núcleo debe encargarse entonces de administrar los recursos del
hardware del computador para que sean asignados convenientemente a los procesos. En este
capítulo examinaremos cómo el núcleo asigna el o los procesadores reales a los procesos. En
una primera etapa supondremos que el hardware sólo ofrece un procesador real. Más tarde
generalizamos a varios procesadores.

3.7 Comunicación entre procesos:

La comunicación entre procesos (comúnmente IPC, del inglés Inter-Process Communication)


es una función básica de los sistemas operativos. Los procesos pueden comunicarse entre sí a
través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través
de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que
permite a los procesos comunicarse y sincronizarse entre sí, normalmente a través de un
sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.
La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación).
Los protocolos desarrollados para internet son los mayormente usados: IP (capa de red),
protocolo de control de transmisión (capa de transporte) y protocolo de transferencia de
archivos, protocolo de transferencia de hipertexto (capa de aplicación).
La forma básica de comunicación entre dos procesos o hilos en un sistema operativo con
micronúcleo son los mensajes. Un mensaje incluye una cabecera que identifica a los procesos
remitente y receptor y un cuerpo que contiene directamente los datos, un puntero a un bloque
de datos, o alguna información de control del proceso. Normalmente podemos pensar que las
IPC se fundamentan en puertos asociados a cada proceso.
Un puerto es, en esencia, una cola de mensajes destinada a un proceso particular; un proceso
puede tener múltiples puertos. Asociada a cada puerto existe una lista que indica qué
procesos se pueden comunicar con éste. Las identidades y funcionalidades de cada puerto se
mantienen en el núcleo. Un proceso puede concederse nuevas funcionalidades mandando un
mensaje al núcleo con las nuevas funcionalidades del puerto.
Los procesos pueden estar ejecutándose en una o más computadoras conectadas a una red.
Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes,
sincronización, memoria compartida y llamadas de procedimientos remotos (RPC). El
método de IPC usado puede variar dependiendo del ancho de banda y latencia (el tiempo
desde el pedido de información y el comienzo del envío de la misma) de la comunicación
entre procesos, y del tipo de datos que están siendo comunicados.

3.8 Problemas comunes de comunicación entre procesos:


El problema de la sección crítica:
Este es uno de los problemas que con mayor frecuencia aparece cuando se ejecutan procesos
concurrentes tanto si son cooperantes como independientes. Considérese un sistema
compuesto por procesos {P1, P2, ..., PN} en el que cada uno tiene un fragmento de código,
que se denomina sección crítica. Dentro de la sección crítica, los procesos pueden estar
accediendo y modificando variables comunes, registros de una base de datos, un archivo, en
general cualquier recurso compartido. La característica más importante de este sistema es que
cuando un proceso se encuentra ejecutando código de la sección crítica, ningún otro proceso
puede ejecutar en su sección.
Para resolver el problema de la sección crítica es necesario utilizar algún mecanismo de
sincronización que permita a los procesos cooperar entre ellos sin problemas. Este
mecanismo debe proteger el código de la sección crítica y su funcionamiento básico es el
siguiente:
Cada proceso debe solicitar permiso para entrar en la sección crítica mediante algún
fragmento de código, que se denomina de forma genérica entrada en la sección crítica.
Cuando un proceso sale de la sección crítica debe indicarlo mediante otro fragmento de
código, que se denomina salida de la sección crítica. Este fragmento permitirá que otros
procesos entren a ejecutar el código de la sección crítica.
El problema del productor-consumidor:
Es uno de los problemas más habituales que surge cuando se programan aplicaciones
utilizando procesos concurrentes. En este tipo de problemas, uno o más procesos, que se
denominan productores, generan cierto tipo de datos que son utilizados o consumidos por
otros procesos, que se denominan consumidores. Un claro ejemplo de este tipo de problemas
es el del compilador que se describió anteriormente. En este ejemplo el compilador hace las
funciones de productor al generar el código ensamblador que consumirá el proceso
ensamblador para generar el código máquina. En la Figura se representa la estructura clásica
de este tipo de procesos.

Conclusión:
Como pudimos ver en este trabajo, tratamos los temas sobre los conceptos de los procesos.

los hilos y sus funcionamientos, la diferencia entre estos y los procesos, también los estados
de los mismo, e incluso los bloques de procesos, también la comunicación entre procesos y
los problemas que se podrían llegar a dar entre dicha comunicación.

Bibliografía:
[Link]

[Link]

[Link]

[Link]

[Link]

[Link]

[Link]

También podría gustarte