Este documento trata sobre procesos e hilos. Un proceso es cualquier programa en ejecución que necesita recursos como instrucciones, estado de ejecución, memoria y otra información. Un hilo es una unidad básica de ejecución que comparte recursos con otros hilos del mismo proceso. Los procesos se comunican mediante memoria compartida o paso de mensajes.
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
Sistema Operativo Unidad II Procesos e Hilos
1. Unidad II
Procesos e hilos
¿Qué es un Proceso?
Comunicación
entre procesos
K
Planificación de
la CPU
Z
Creación y
eliminación de
procesos.
x
Problemas clásicos de
la comunicación
entre procesos
Qué es un Thread?
b
8
5
a
>
[
Dispositivos
de E/S.
2. Ing. Joan Manuel Gregorio Pérez
Cel.: +1(829) 343 7113 | e-mail: joangregorio@f.uapa.edu.do
Un proceso es cualquier programa en ejecución. este necesita ciertos recursos para
realizar satisfactoriamente su tarea:
• Las instrucciones de un programa destinadas a ser ejecutadas por el
microprocesador.
• Su estado de ejecución en un momento dado, esto es, los valores de los registros
de la CPU para dicho programa.
• Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
• Otra información que permite al sistema operativo su planificación.
Queesunproceso
3. Ing. Joan Manuel Gregorio Pérez
Cel.: (809) 343 7113 | e-mail: joangregorio@f.uapa.edu.do
Instrucciones para
hacer el pastel.
(Programa)
El hacer el pastel
siguiendo las
instrucciones es el
(Proceso)
Los ingredientes son los
datos.
Diferenciaentreunprocesoyunprograma.
j
å
5. Ing. Joan Manuel Gregorio Pérez
Cel.: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
Un hilo es una unidad básica de
utilización de CPU, la cual contiene
un id de hilo, su propio program
counter, un conjunto de registros,
y una pila; que se representa a
nivel del sistema operativo con
una estructura llamada TCB
(thread control block).
Los hilos comparten con otros
hilos que pertenecen al mismo
proceso la sección de código, la
sección de datos, entre otras
cosas. Si un proceso tiene
múltiples hilos, puede realizar más
de una tarea a la vez (esto es real
cuando se posee más de un CPU).
Hilos
H
6. Ing. Joan Manuel Gregorio Pérez
Cel.: +1(829) 343 7113 | e-mail: joangregorio@f.uapa.edu.do
Respuesta: el tiempo de respuesta mejora, ya que el programa puede
continuar ejecutándose, aunque parte de él esté bloqueado.
Compartir recursos: los hilos comparten la memoria y los recursos del
proceso al que pertenecen, por lo que se puede tener varios hilos de
ejecución dentro del mismo espacio de direcciones.
Economía: Es más fácil la creación, cambio de contexto y gestión de
hilos que de procesos.
Utilización múltiples CPUs: permite que hilos de un mismo proceso
ejecuten en diferentes CPUs a la vez. En un proceso mono-hilo, un
proceso ejecuta en una única CPU, independientemente de cuantas
tenga disponibles.
Ventajasdeusarhilos
Algunas de ellas.
7. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
Hilosaniveldeusuarioydekernel
Hilos a nivel
de usuario:
son implementados en
alguna librería. Estos hilos
se gestionan
sin soporte del SO, el cual
solo reconoce un hilo de
ejecución.
Hilos a nivel de
kernel
el SO es quien crea,
planifica y gestiona los
hilos. Se
reconocen tantos hilos
como se hayan creado.
Recuerda que
Los hilos a nivel de
usuario tienen como
beneficio que su cambio
de contexto es más
sencillo que el cambio
de contexto entre hilos
de kernel.
A demás
se pueden
implementar aún si el
SO no utiliza hilos a
nivel de kernel. Otro de
los beneficios
consiste en poder
planificar diferente a la
estrategia del SO.
Ñ
8. Ing. Joan Manuel Gregorio Pérez
Cel.: 829-343-7113| e-mail: joangregorio@f.uapa.edu.do
Memoria compartida
Se basa en que los procesos que desean
comunicarse compartan una misma región de
memoria física. Para llevar a cabo la
comunicación, uno escribe y otro lee de la región
de memoria compartida.
Los procesos utilizan servicios del sistema
operativo para compartir la región.
Paso de mensajes
Los procesos utilizan una pareja de servicios del
sistema operativo para
comunicarse. Estos servicios son conocidos
habitualmente como Send y
Receive.
Comunicaciónentreprocesos
La cooperación entre procesos requiere que estos se comuniquen. A continuación se
indican los mecanismos básicos de comunicación:
9. Planificación de la
CPU
La planificación de la CPU es la base de
los sistemas operativos
multiprogramados.
II
10. Ing. Joan Manuel Gregorio Pérez
Cel.: 829-343-7113| e-mail: joangregorio@f.uapa.edu.do
Monoprocesador
Multiprocesador
Planificaciónde laCPU
En un sistema monoprocesador, sólo puede ejecutarse un proceso
cada vez Cualquier otro proceso tendrá que esperar hasta que la
CPU quede libre y pueda volver a planificarse.
El objetivo de la multiprogramación es tener continuamente varios
procesos en ejecución, con el fin de maximizar el uso de la CPU.
Criterio de planificación.
Deseamos mantener la CPU tan ocupada como sea posible.
La utilización de CPU se define en un rango que va del 0% al 100
%.
En un sistema real, debe variar entre el 40% (sistema ligeramente
cargado) y el 90% (sistema intensamente utilizado).
12. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
AlgoritmodePlanificación
Planificación de
la CPU
SJF
Shortest-job-first.
El trabajo mas corto
primero
Planificación por prioridades
A cada proceso se le
asocia una prioridad y
la CPU se asigna al
proceso que tenga la
prioridad más alta.
FCFS
First-come first-served.
Primero en llegar, primero en ser
servido.
Planificación por turno
Es similar a la
planificación FCFS, pero
se añade la técnica de
desalojo para conmutar
entre procesos.
Planificación colas multinivel
Un algoritmo de planificación
mediante colas multinivel
divide la cola de procesos
preparados en varias colas
distintas.
Planificación mediante colas
multinivel realimentadas
Este algoritmo de permite mover
un proceso de una cola a otra.
La idea es separar los procesos en
función de las características de
sus ráfagas de CPU.
Ü
13. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
Problemas clásicos delacomunicación entre
procesos.
Problema / Desventajas
(Comunicación & Procesos)
Productor
Consumidor
Lectores-Escritores
Sección Crítica
14. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
Se denomina sección crítica, en
programación concurrente, a la
porción de código de un programa de
computador en la cual se accede a un
recurso compartido (estructura de
datos o dispositivo) que no debe ser
accedido por más de un hilo en
ejecución.
La sección crítica por lo general
termina en un tiempo determinado y
el hilo, proceso o tarea sólo tendrá
que esperar un período determinado
de tiempo para entrar.
Problemade laseccióncrítica
15. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
Consiste en el acceso concurrente por
parte de procesos productores y
procesos consumidores sobre un
recurso común que resulta ser un
buffer de elementos. Los productores
tratan de introducir elementos en el
buffer de uno en uno, y los
consumidores tratan de extraer
elementos de uno en uno.
Para asegurar la consistencia de la
información almacenada en el buffer,
el acceso de los productores y
consumidores debe hacerse en
exclusión mutua.
Ejemplo la cena de los Filósofos
Problemaproductor- consumidor
16. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
Un objeto de datos (registro o archivo) es
compartido por varios procesos
concurrentes. Algunos tan solo
pretenden leer mientras que otros
pueden actualizar los datos (leer y
escribir); nos referimos a estos procesos
como lectores y escritores. Obviamente,
si dos lectores intentan acceder a los
datos simultáneamente, no se presentará
ningún problema. Sin embargo, si un
escritor y algún otro lector o escritor
quieren acceder simultáneamente a los
datos, entonces puede producirse un
caos.
Problemade loslectores/escritores
17. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
Procesos E Hilos: Concurrencia,
Sincronización Y Comunicación
https://w3.ual.es/~rguirado/so/t
ema2.pdf
Procesos vs hilos
http://systope.blogspot.com/201
2/05/procesos-e-hilos.html
Problema productor-consumidor
https://es.wikipedia.org/wiki/Pr
oblema_productor-consumidor
Problema De Los Lectores-escritores.
https://www2.infor.uva.es/~clla
mas/concurr/pract98/sisos30/ind
ex.html
Bibliografía
18. Esperamos tener la respuestas
a cualquier pregunta que
tengan
Preguntas
&
Respuestas
19. Ing. Joan Manuel Gregorio Pérez
Cel: 829-343-7113 | e-mail: joangregorio@f.uapa.edu.do
FACEBOOK
facebook.com/hometrix007
Twitter
twitter.com/hometrix
Google+
plus.google.com/+JoanGregorioPérez
pinterest
pinterest.com/hometrix
linkedin
linkedin.com/hometrix
Sigueme
t
v