Info
Departamento de Computación y
Tecnología de la Información
Sep-Dic 2005
Prof. Yudith Cardinale
Sistemas de Operación II (CI-4821)
Tema I: Introducción a los sistemas concurrentes
1. Introducción:
Concurrencia:
La concurrencia o ejecución simultánea (al mismo tiempo) de procesos aparece inicialmente como una necesidad de los sistemas de operación.Podemos definir que dos actividades son concurrentes si, en un momento dado, cada una está en algún punto entre su punto de comienzo y su punto de finalización.
Hoy en día suele haber confusión entre varios términos que implican ejecución simultánea de procesos:
Concurrencia - Paralelismo - Distribución
En general todos estos conceptos implican la noción de ejecución simultánea de procesossin importar la implementación, es decir la arquitectura física del ambiente donde correrá el sistema de procesos.
Veamos un esquema de comparación entre estos tres conceptos:
Programación Concurrente
(importa el qué y no el cómo)
Programación Concurrente Programación Paralela Programación distribuida
Sistemas de operación Sistemasde operación Sistemas de operación
multitarea paralelos distribuidos
Sistemas de redes
Sólo un CPU Arquitectura paralela Arquitectura de red
Memoria Compartida Memoria compartida o distribuida Memoria distribuidaLos programas Muchos CPUs con una red Muchos CPUs con una red
concurrentes son un de comunicación a nivel de comunicación basada en
conjunto de procesos físico basada en buses OSI (cables + capas)
secuenciales que son de alta velocidad
ejecutados bajo un
paralelismo abstracto
Requerimientos para implementar sistemas concurrentes:
• Soportaractividades separadas. Ejemplos:
- Actividades de monitoreo y control en un sistema de control de procesos
- Correr programas de usuarios por un sistema de operación
- El manejo de dispositivos por parte de un sistema de operación
- Transacciones de clientes de un sistema bancario
- Cálculos concurrentes de una aplicación
• Soporte para la administración de las actividades separadas, enparticular la habilidad para crear, correr, parar y matar tales actividades, y posiblemente indicar sus prioridades relativas.
• Soporte para que actividades relacionadas puedan trabajar juntas. Necesidad de sincronizar
• Habilidad para satisfacer requerimientos de tiempos
• Soporte de tareas compuestas. Ejemplo: threads
En el curso pasado, sistemas de operación I, se realizó programaciónconcurrente a nivel muy básico, donde se creaban procesos o threads que posiblemente requerían comunicación a nivel primitivo (pipes, signals, sockets).
Existen mecanismos más avanzados, agrupados en lo que se denomina ipcs (Interprocess Comunication System). Es así como en la primera parte del curso estudiaremos los fundamentos para programar concurrentemente (a nivel general) un sistema deprocesos.
2. Modelo de Procesos:
Es un modelo necesario que deben implantar los sistemas de operación para proveer concurrencia. Este modelo considera los siguientes aspectos:
Definición de Proceso:
- Programa cuya ejecución ha comenzado pero aún no ha terminado.
- Es una unidad de despacho: un proceso es una entidad activa que puede ser ejecutada
- Programa en ejecuciónincluyendo valores actuales del pc, registros y variables.
- Es la unidad de asignación de recursos: el sistema de operación asigna los recursos necesarios a los procesos
- Un programa no es un proceso. Un programa es el algoritmo, un proceso es un ente de ejecución reconocido por el sistema de operación.
Estado de los procesos:
Estados activos:
running: un proceso está usando CPU....
Regístrate para leer el documento completo.