2. Ser una unidad con alto prestigio académico, con eficiencia, transparencia y
calidad en la educación, organizada en sus actividades, protagonista del
progreso Regional y Nacional.
Formar profesionales en el campo de la Ciencias Informáticas, que con
honestidad, equidad y solidaridad, den respuesta a las necesidades de la
sociedad elevando su nivel de vida.
3. PROCESOS
Los primeros sistemas de cómputo solo permitían
la ejecución de un programa a la vez y tenía el
control absoluto del sistema y el acceso a todos
sus recursos.
Actualmente permiten cargar
varios programas en la memoria y
ejecutarlos de manera
concurrente.
Un proceso es la
unidad de trabajo en
un sistema moderno
de tiempo compartido.
4. PROCESOS
Un sistema
consiste en una
colección de
procesos.
Procesos del
Procesos de
sistema operativo
usuario ejecutando
ejecutando código
código de usuario
del sistema.
Todos estos procesos pueden ejecutarse de manera
concurrente, multiplexando el o los procesadores.
5. PROCESOS
4.1 CONCEPTO DE PROCESO
Un sistema por lotes ejecuta trabajos
Un sistema de tiempo compartido tiene
programas de usuario o tareas.
En un sistema de un solo usuario, el usuario es capaz
de ejecutar varios programas a la vez.
Si el usuario ejecuta solo un programa a la vez, el
sistema operativo necesita dar soporte a sus propias
actividades internas programadas, como la
administración de la memoria.
6. PROCESOS
4.1.1. EL PROCESO
Un proceso es un programa en ejecución.
Un proceso involucra a un programa en ejecución más información.
4.1.2. ESTADO DE UN PROCESO
NUEVO A medida que se ejecuta
un proceso, cambia su
estado.
EJECUCIÓN El estado de un proceso
TERMINADO
se define en parte por la
actividad actual de dicho
proceso.
Se encuentran en todos
los sistemas.
LISTO ESPERA
7. PROCESOS
4.1.3. BLOQUE DE CONTROL DEL PROCESO
Cada proceso se representa en
el sistema operativo mediante
Estado del proceso un bloque de control del
proceso, denominado bloque
Contador de programa de control de tarea.
Registros de la CPU
Información de planificación de
la CPU
Información de administración
de la memoria
Información Contable
El PCB sirve como depósito de
Información de estado de E/S
cualquier información que
pueda variar de un proceso a
otro.
8. PROCESOS
4.1.4. HILOS
Un proceso es un programa que sigue un solo hilo de
ejecución.
La mayoría de sistemas operativos modernos han extendido el
concepto de proceso para permitir que este tenga varios hilos
de ejecución. De esta forma , se permite que el proceso
realice mas de una tarea a la vez.
4.2. PLANIFICACIÓN DE PROCESOS
El objetivo de la multiprogramación es tener un proceso en
ejecución en todo momento, para maximizar la utilización de la
CPU.
En un sistema con un solo microprocesador, nunca hay mas
de un proceso en ejecución. Si existen mas procesos el resto
debe esperar hasta que la CPU este libre y pueda volver a
planificarse.
9. PROCESOS
4.2.1. COLAS DE PLANIFICACIÓN
• A medida que los • Se mantienen en
procesos van • Los procesos que una lista
entrando al sistema residen en la • Denominada la cola
• Se los coloca en una memoria principal y de procesos listos.
cola de trabajos listos
• Y en espera de
ejecutarse
10. PLANIFICADORES
Un proceso migra entre las diversas colas a lo largo de su existencia.
El SO debe seleccionar en alguna forma los procesos de estas colas. Esta selección
se la realiza mediante un planificador.
En un sistema por lotes, existen procesos que se pueden ejecutar de inmediato;
estos procesos se colocan en reserva en un dispositivo de almacenamiento donde
se mantienen para su posterior ejecución.
El planificador de largo El planificador de corto
plazo (planificador de plazo (planificador de
trabajos) selecciona la CPU) selecciona de
procesos de esta reserva y entre los procesos que
los carga en memoria están listos para su
para su ejecución. ejecución, y asigna la
CPU a uno de ellos.
11. PLANIFICADORES
Algunos SO como los sistemas de tiempo compartido, pueden introducir un
nivel intermedio adicional de planificación.
El planificador de
mediano plazo En algún momento posterior el proceso
puede ser introducido nuevamente a la
memoria y continuar su ejecución desde
tiene el punto donde se suspendió.
Este esquema se denomina intercambio
(swapping).
Como idea clave la ventaja
para remover procesos de
la memoria y de esta
manera reducir el grado
de multiprogramación. Este intercambio puede ser necesario para
mejorar la mezcla de procesos., o debido a
que un cambio en los requerimientos de
memoria ha comprometido en exceso la
memoria disponible y se requiere liberarla.
12. CONMUTACIÓN DE CONTEXTO
La conmutación de la CPU a otro proceso requiere conservar el estado del
proceso anterior y cargar el estado guardado del nuevo proceso. Esto es lo que
llamamos conmutación de contexto.
En su PCB;
El contexto * el valor de los registros de la CPU,
de un * el estado del proceso y
proceso se
representa * la información sobre administración de la
memoria.
Cuando El kernel guarda el contexto del proceso
ocurre una
conmutación anterior en su PCB y carga el del nuevo
de contexto proceso programado para ejecución.
13. OPERACIONES SOBRE PROCESOS
OPERACIONES SOBRE PROCESOS
Los procesos en el sistema pueden ser
ejecutados de manera concurrente y
deben ser creados y eliminarse de
manera dinámica.
Es por esto que el SO debe proporcionar un
mecanismo para crear y terminar procesos.
14. CREACIÓN DE PROCESOS
Un proceso puede crear varios procesos
nuevos, a través de una llamada al
sistema para la creación de procesos
durante el curso de ejecución.
El proceso creador se denomina proceso
padre, mientras que los nuevos son los
hijos. Cada uno de estos nuevos procesos
puede también crear otros procesos
formando así un árbol de proceso.
Un proceso necesitará ciertos recursos para realizar
su tarea. Cuando un proceso crea un subproceso,
este último puede ser capaz de obtener sus recursos
directamente del SO o puede estar restringido a un
subconjunto de recursos del proceso padre.
15. CREACIÓN DE PROCESOS
Cuando un También hay dos
proceso crea uno posibilidades en
nuevo, existen términos del
dos posibilidades espacio de
en términos de direcciones del
ejecución nuevo proceso
1.- El padre continúa 1.- El proceso hijo es
ejecutándose de un duplicado del
manera concurrente proceso padre.
con sus hijos.
2.- El padre espera
2.- Se carga un
hasta que alguno o
programa en el
todos sus hijos hayan
proceso hijo.
terminado.
16. TERMINACIÓN DE UN PROCESO
Un proceso concluye cuando termina de ejecutar su declaración final y le pide al SO
que lo borre usando la llamada exit.
Un proceso
En dicho punto, el proceso puede
regresar datos (salida) a su
proceso padre (mediante wait).
Todos los recursos del proceso
son liberados por el SO. Puede ocasionar la terminación de
otro por medio de una llamada
apropiada al sistema (ejemplo
abort). Tal llamada puede
invocarse sólo por el padre del
proceso que se debe terminar, de lo
contrario los usuarios podrían
matar arbitrariamente sus trabajos
entre ellos.
17. TERMINACIÓN DE UN PROCESO
Un padre puede terminar la ejecución de uno de sus hijos por
varias razones
El padre está saliendo,
El hijo se ha excedido
y el sistema no
en el uso de alguno de Ya no se requiere la
permite que un hijo
los recursos que tiene tarea asignada al hijo.
continúe si su padre
asignados.
termina.
Muchos sistemas no permiten que un hijo exista si su padre ha terminado, es
por esto que si un proceso concluye, entonces todos sus hijos también deben
ser finalizados. Este fenómeno es conocido como una terminación en
cascada, y por la general es iniciado por el SO.
18. PROCESOS COOPERATIVOS
Los procesos concurrentes que
se ejecutan en el SO
pueden ser
Procesos Procesos
Independientes Cooperativos
cuando cuando
Puede afectar o verse
No puede afectar o verse afectado por los otros
afectado por los otros procesos que se están
procesos que se están ejecutando en el sistema.
ejecutando en el sistema. Es cooperativo si
Es independiente si no cualquier proceso
comparte algún dato con comparte datos con otros
cualquier otro proceso. procesos.
19. PROCESOS COOPERATIVOS
Existen varias razones para proporcionar un ambiente que permita la cooperación
entre procesos.
Compartir Debido a que varios usuarios pueden estar interesados en la misma pieza
de información debemos proporcionar un ambiente que permita el acceso
información
concurrente a estos tipos de recursos.
Aceleración Si deseamos que una tarea particular se ejecute más rápido, la debemos
descomponer en subtareas, cada una de las cuales se estará ejecutando en
de cálculos paralelo con las otras.
Modularidad Tal vez queramos construir el sistema de forma modular, dividiendo las
funciones del sistema en procesos distintos o hilos.
Un usuario individual puede tener varias tareas sobre las cuales trabajar
Conveniencia en un momento; por ejemplo, puede estar editando, imprimiendo y
compilando en paralelo.
20. COMUNICACIÓN ENTRE PROCESOS
Los procesos cooperativos pueden
comunicarse en un ambiente de memoria
compartida. Este esquema requiere que
estos procesos compartan un a reserva
común de buffers y que el programador de la
aplicación escriba de manera explícita el
código para implementar el buffer.
Otra forma de lograr el mismo
efecto es que el sistema operativo
proporcione los medios para que los
procesos cooperativos se
comuniquen entre ellos a través de
un servicio de comunicación entre
procesos (IPC).
El IPC proporciona un mecanismo tanto para que los
procesos se comuniquen como para sincronizar sus
acciones sin compartir el mismo espacio de direcciones.
El IPC es útil en un ambiente distribuido, en donde los
procesos que se comunican pueden residir en diferentes
computadoras conectadas en una red.
21. SISTEMA DE PASO DE MENSAJES
La función de un sistema de mensajes es permitir que los
procesos se comuniquen entre ellos, sin necesidad de recurrir a
datos compartidos.
Los servidores IPC proporcionan dos operaciones: envió, send
(mensaje) y recepción, received (mensaje)
El tamaño de los mensajes enviados por un proceso puede ser:
TAMAÑO FIJO
La implementación es sencilla y directa
TAMAÑO VARIABLE
Requieren una implementación mas
compleja pero la tarea de
programación es mas sencilla.
22. ASIGNACIÓN DE NOMBRES
Los procesos que desean comunicarse necesitan una forma
de hacer referencia entre ellos, pueden usar:
COMUNICACIÓN DIRECTA
Cada proceso que quiere comunicarse debe nombrar explícitamente
al receptor o al emisor de la comunicación.
COMUNICACIÓN INDIRECTA
Los mensajes se envían y se reciben de buzones o puertos. Cada
buzón tiene una identificación única , en este esquema , un proceso
se puede comunicar con otro utilizando varios buzones diferentes.
Dos procesos solo se pueden comunicar si tienen un buzón
compartido.
23. Un buzón cuyo propietario es el sistema operativo
tiene una existencia propia. Es independiente y no esta
ligado a un proceso en particular. El sistema operativo
debe entonces proporcionar un mecanismo que
permita los procesos:
•Crear un nuevo buzón
•Enviar y recibir mensajes a través del buzón
•Borrar un buzón
24. SINCRONIZACIÓN
La comunicación entre procesos tiene lugar mediante las llamadas
primitivas send y recibe.
El paso de mensajes puede ser:
Con bloqueo Sin bloqueo
Emisor bloqueado hasta ser Emisor envía el mensaje y
recibido el mensaje Envío
continua su operación
Receptor bloqueado hasta Receptor recupera un
que halla un mensaje Recepción
mensaje valido
disponible
25. USO DE BUFFERS
Los mensajes intercambiados por los procesos comunicados residen en
una cola temporal.
Ahí tres formas de implementarla:
Mensajes sin • Longitud máxima de 0
Buffers Capacidad Cero • El emisor se bloquea hasta que el receptor lea el mensaje
Capacidad • Longitud finita igual a n
Uso automático
de Buffers
Limitada • El emisor continua su ejecución sin espera.
Capacidad • Longitud infinita
ilimitada • El Emisor nunca se bloquea
26. UN EJEMPLO: MACH
Es un sistema operativo basado en mensajes.
Los mensajes se envían y reciben desde buzones o puertos.
El tamaño máximo de la cola es de ocho mensajes
Mach se diseño especialmente para sistemas distribuidos.
27. UN EJEMPLO: WINDOWS NT
Es un sistema operativo de diseño moderno que disminuye el tiempo
necesario para implementar nuevas características.
Su servicio de paso de mensajes se conoce como Servicio local de
llamada a procedimientos.(LPC)
Emplea dos tipos de puertos: puertos de conexión y puertos de
comunicación.