Programación concurrente

Páginas: 23 (5596 palabras) Publicado: 23 de febrero de 2010
1

Programación Concurrente
Conceptos básicos
Por José Mª Toribio Vicente Universidad de Valladolid
edited by jsm

Barcelona, España. 7/11/2000

Comunicaciones entre procesos
En este capítulo vamos a intentar explicar los conceptos básicos necesarios para entender el significado de los hilos y la programación multihilo. Se explican, de forma genérica, los conceptos de sistema operativo,proceso, paralelismo, concurrencia y comunicación y sincronización de procesos. Para una explicación más detallada se puede consultar cualquier libro sobre conceptos de sistemas operativos como puede ser [TAN93].

Concepto de Sistema Operativo
La definición de sistema operativo es complicada, aunque todos los usuarios de computadoras tienen cierta experiencia con él. Su definición se basa enlas dos funciones principales que realiza: Sistema operativo como máquina extendida: La función del sistema operativo es presentar al usuario el equivalente de una máquina extendida o máquina virtual que sea más fácil de programar que el hardware subyacente, de forma que se le oculten características de bajo nivel relacionadas con el manejo de los discos, las interrupciones, cronómetros, control dememoria, etc. Sistema operativo como controlador de recursos: La función del sistema operativo es proporcionar una asignación ordenada y controlada de los procesadores, memorias y dispositivos de E/S para los distintos programas que compiten por ellos. Es decir, el sistema operativo se encarga de llevar un registro de la utilización de los recursos, dar servicio a las solicitudes de recursos,contabilizar su uso y mediar entre las solicitudes en conflicto de los distintos programas y usuarios. Los sistema operativos han ido evolucionando a lo largo de los años. La evolución de los sistemas operativos ha estado ligada con la arquitectura de las máquinas en las que se ejecutan : La primera generación (1945-1955): Las primeras computadoras empleaban válvulas y su programación se realizabadirectamente mediante conexiones o lenguaje máquina. No existían lenguajes de programación, ni sistemas operativos. La segunda generación (1955-1965): Las computadoras se construían empleando transistores. Los programas se escribían en un lenguaje de programación (Ensamblador o Fortran) para después pasarlo a tarjetas perforadas. Se desarrollaron los primeros sistemas de procesamiento por lotes, queconsistían en agrupar una serie de trabajos en un lote y pasárselos a la computadora para su resolución de forma secuencial, uno tras otro. Las grandes computadoras de esta época se dedicaban al cálculo científico y de ingeniería. Los sistemas

operativos más habituales eran FMS (Fortran Monitor System) e IBSYS, el sistema operativo de IBM para la 7094 (la computadora más conocida de la época).La tercera generación (1965-1978): La aparición de los circuitos integrados a pequeña escala favoreció la producción de máquinas más potentes, de dimensiones más reducidas, y de menor precio. Se desarrollaron familias de computadoras, como el sistema 360 de IBM, con el fin de lograr la compatibilidad entre las distintas máquinas de la familia, y poder emplear los mismos programas, incluso elsistema operativo, en toda la familia. Esto originó un sistema operativo monstruoso, el OS/360, que contenía miles de errores, y requería continuas revisiones que arreglaban una serie de errores, introduciendo muchos otros. Se generalizó la técnica de multiprogramación, que consistía en dividir la memoria en varias partes, con un trabajo distinto en cada una. Mientras un trabajo esperaba por E/S, otropodía emplear la CPU, lo cual mejoraba la utilización de la máquina. Para aislar cada una de las particiones se empleaba un hardware especial. Se inventó la técnica de spooling (Simultaneous Peripheral Operation On Line, Operación simultánea y en línea de periféricos), que se empleó para las entradas y salidas. Sin embargo, aunque los sistemas operativos de esta época eran adecuados para los...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • PROGRAMACION CONCURRENTE
  • programación concurrente
  • Programacion concurrentes hilos
  • Programación concurrente servlet
  • Programacion concurrente y paralela
  • Programación concurrente en java
  • Python en programación concurrente
  • Unidad IV Programación concurrente (Multihilo)

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS