Está en la página 1de 17

PROCESOS E HILOS

Procesos e hilo
Concepto de procesos

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

Un proceso, en informática, puede entenderse informalmente como un


programa en ejecución. 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".
Procesos e hilo
Concepto de procesos

 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)
Procesos e hilo
Concepto de Hilos

En sistemas operativos, un hilo o hebra (del inglés thread), proceso


ligero o subproceso es una secuencia de tareas encadenadas muy
pequeña que puede ser ejecutada por un sistema operativo.

Funcionalidad de los hilos:

Al igual que los procesos, los hilos poseen un estado de ejecución y


pueden sincronizarse entre ellos para evitar problemas de compartición
de recursos. Generalmente, cada hilo tiene una tarea específica y
determinada, como forma de aumentar la eficiencia del uso del
procesador.
Procesos e hilo
Concepto de Hilos

Diferencias entre hilos y procesos:


Los hilos se distinguen de los tradicionales procesos en que los procesos son –
generalmente– independientes, llevan bastante información de estados, e
interactúan solo a través de mecanismos de comunicación dados por el
sistema. Por otra parte, muchos hilos generalmente comparten otros recursos
de forma directa. En muchos de los sistemas operativos que dan facilidades a
los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso,
que cambiar de un proceso a otro.
Comunicación entre procesos
Procesos e hilo
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.
Procesos e hilo
Comunicación entre procesos

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.

La comunicación puede ser:

- Síncrona o asíncrona
- Persistente o momentánea
- Directa o indirecta
- Simétrica o asimétrica
- Con uso de buffers explícito o automático
- Envío por copia del mensaje o por referencia
- Mensajes de tamaño fijo o variable
Programacion
Procesos e hilo
Programación

La programación es el proceso de crear un conjunto de instrucciones


que le dicen a una computadora como realizar algún tipo de tarea.
Pero no solo la acción de escribir un código para que la computadora
o el software lo ejecute. Incluye, además, todas las tareas necesarias
para que el código funcione correctamente y cumpla el objetivo para
el cual se escribió.
Procesos e hilo
Programación (Continuación)

Programación de sistemas operativos tiene como finalidad principal el


mostrar la forma en que se programa un sistema operativo, distinguir
cómo administra el procesador, la memoria, así como los dispositivos
de entrada y salida que conocemos: teclado, monitor, mouse,
etcétera.

Muchos de los sistemas operativos que conocemos están desarrollados


utilizando lenguajes de Programación tales como C, C++ o lenguaje
ensamblador, a excepción de los sistemas de apple que suelen utilizar
su propio lenguaje llamado Swift.
Problemas clásicos de IPC
Procesos e hilo
Problemas clásicos de IPC

EL PROBLEMA DE LA CENA DE LOS FILÓSÓFOS

Este problema es útil para modelar


procesos que están en competencia por
el acceso exclusivo a un número limitado
de recursos.
Procesos e hilo
Problemas clásicos de IPC

Este problema se puede enunciar de la siguiente manera: Cinco


filósofos se sientan a la mesa. Cada uno tiene un plato de
espagueti. El espagueti es tan escurridizo, que un filósofo
necesita dos tenedores para comerlo. Entre cada dos platos hay
un tenedor.
Procesos e hilo
Problemas clásicos de IPC
EL PROBLEMA DE LOS LECTORES Y LOS ESCRITORES (Se utiliza para modelar el
acceso a una base de datos.)

Cuando se tiene una enorme base de datos, como por ejemplo un sistema de
reservaciones de una aerolínea, con muchos procesos en disputa por la escritura
o lectura a dicha base. ¿Cómo se deben programar los lectores y los escritores?.

Una solución es dar en primera instancia prioridad primaria a los lectores y


secundaria a los escritores, es decir, si existen lectores el escritor debe
esperar hasta que ya no haya lectores.

En segunda instancia, cuando el escritor tome prioridad primaria los lectores


deben esperar a que el escritor termine su función.
fin
by Patrick Martinez

Matricula: 2023-1474

Materia: Sistemas operativos l

Prof: Kelvyn Luis Albuez Blanco

También podría gustarte