Está en la página 1de 17

Sistemas Operativos

Procesos
Procesos
• Es un programa en ejecución (Un programa
cargado en memoria).
• Es una abstracción de un programa en
ejecución creado por el OS (Permite tener
varias instancias de un mismo programa).
Procesos
• Programa: entidad pasiva
– Binario ejecutable
– Secuencia de instrucciones de máquina en alguna parte
del disco
• Proceso: entidad activa
– ejecución de código binario, contador del programa (pc)
apuntando a la siguiente instrucción
– código en la memoria y un conjunto de recursos
disponibles para el proceso
– Cada proceso tendrá su propio contexto lo que los
mantendrá aislado entre procesos
– Al estar los procesos aislados, no hay comunicación entre
ellos
Procesos
• El proceso necesita recursos para completar su tarea
– CPU, memoria, I/O, archivos
– Inicialización datos
• Al terminar un proceso entrega los recursos utilizados
(Siendo los recursos reutilizables).
• Proceso de un hilo tiene un program counter
especificando la ubicación de la sgt. instrucción a
ejecutar.
• Proceso ejecuta instrucciones secuencialmente uno a
la vez hasta que se complete todas.
• Procesos multi-hilos tienen un program counter por
hilo.
Procesos
• Típicamente los sistemas tienen muchos
procesos de usuarios y OS ejecutándose de
manera concurrente en uno o varios CPUs.
• Concurrencia se considera la capacidad de
multiplexación entre CPU y procesos/hilos.
Procesos
• Multiplexar sus ejecuciones en un único
procesador (multiprogramación).
• Multiplexar sus ejecuciones en un sistema
multiprocesador con acceso a memoria
compartida (multiprocesamiento).
• Multiplexar sus ejecuciones en diversos
procesadores que no comparten memoria
(sistema distribuido).
Procesos
• Típicamente los sistemas tienen muchos
procesos de usuarios y OS ejecutándose de
manera concurrente en uno o varios CPUs.
• Concurrencia se considera la capacidad de un
CPU de multiplexarse entre los procesos e
hilos
• El contexto de un proceso estará almacenado
en una región de memoria continua el cual
será dividido en stack, head, data y code
Modelo de memoria
• La stack se usa para llamadas de
procedimiento, aloja variables locales y
parámetros de procedimiento.
• La memoria asignada por malloc() está
en la sección de heap.
• La stack crece hacia abajo desde
direcciones altas a bajas, mientras que
el heap crece hacia arriba.
• El segmento de data es donde se
almacenan las variables globales,
cadenas y enteros grandes.
• Las instrucciones del código de
máquina se almacenan en el segmento
de code de nuestro modelo de
memoria.
Modelo de memoria
Modelo de memoria
• El contador del programa (pc) es
establecido para la siguiente instrucción que
se cargará en el registro de instrucciones.
• El program break divide la memoria
lógicamente en dos partes
• La memoria debajo del programa del
program break es estática
• el layout está completamente determinado
en tiempo de compilación y se corrige
durante la ejecución.
• La memoria por encima del program break
es dinámica
• El layout cambia durante la ejecución.
Layout de memoria de un programa
en C
Funciones o servicios de los Sistemas
Operativos sobre los procesos
• Crear/Eliminar
• Suspende/Bloquear/Reanudar
• Mecanismos para:
– Sincronicar Procesos/hilos
– Comunicar Procesos/hilos
• Estructuras de un Sistema Operativo para los
procesos/hilos.
Estados del Proceso
Cuando un proceso se ejecuta
tiene los siguientes estados:
New: el proceso está siendo
creado
Running: las instrucciones
están siendo ejecutadas
Waiting: el proceso está
esperando por que ocurra
algún evento
Ready: el proceso está
esperando para ser asignado
tiempo de CPU
Terminated: el proceso ha
terminado
Estados del Proceso
Bloque de Control de Proceso
• Information associated with each
process(also called task control block)
• Process state – running, waiting, etc.
• Program counter – location of
instruction to next execute
• CPU registers – contents of all process-
centric registers
• CPU scheduling information- priorities,
scheduling queue pointers
• Memory-management information –
memory allocated to the process
• Accounting information – CPU used,
clock time elapsed since start, time limits
• I/O status information – I/O devices
allocated to process, list of open files
Planificación de procesos
• El scheduler de procesos selecciona
entre los procesos disponibles para la
próxima ejecución
• Objetivo: maximizar el uso de la CPU,
cambiar rápidamente los procesos a la
CPU
• Mantiene scheduling queues de
procesos
• Cola ready: conjunto de todos los
procesos que residen en la memoria
principal, listos y en espera de
ejecución
• Colas de wait: conjunto de procesos
que esperan un evento (e.g., I / O)
• Los procesos migran entre las diversas
colas.
Demo: jerarquía de procesos
pstree command

ps command

También podría gustarte