PDF de programación - Programacion concurrente y tiempo real

Imágen de pdf Programacion concurrente y tiempo real

Programacion concurrente y tiempo realgráfica de visualizaciones

Publicado el 23 de Enero del 2021
1.079 visualizaciones desde el 23 de Enero del 2021
33,9 MB
208 paginas
Creado hace 10a (09/01/2014)
David Vallejo Fernández
Carlos González Morcillo
Javier A. Albusac Jiménez

Título:
Autores: David Vallejo Fernández,

Programación Concurrente y Tiempo Real
Carlos González Morcillo y
Javier Alonso Albusac Jiménez
978-84-942116-3-8
Edlibrix

ISBN:
Edita:
1ª Edición: Julio 2012
2ª Edición: Enero 2014
Diseño:

Carlos González Morcillo
Impreso en España

Este libro fue compuesto con LaTeX a partir de una plantilla de Carlos González Morcillo y Sergio
García Mondaray. Las imágenes fueron diseñadas con GIMP, Blender, InkScape y LibreOffice.

Creative Commons License: Usted es libre de copiar, distribuir y comunicar públicamente la obra, bajo
las condiciones siguientes: 1. Reconocimiento. Debe reconocer los créditos de la obra de la manera
especificada por el autor o el licenciador. 2. No comercial. No puede utilizar esta obra para fines
comerciales. 3. Sin obras derivadas. No se puede alterar, transformar o generar una obra derivada a
partir de esta obra. Más información en: http://creativecommons.org/licenses/by-nc-nd/3.0/

David Vallejo (2010, Doctor Europeo en Informática,
Universidad de Castilla-La Mancha) es Profesor
Ayudante Doctor e imparte docencia en la Escuela de
Informática de Ciudad Real (UCLM) en asignaturas
relacionadas
Programación Concurrente,
Informática Gráfica, y Sistemas Operativos desde
2007. Actualmente, su actividad investigadora gira en
torno a
los Sistemas
Multi-Agente y el Rendering Distribuido.

la Vigilancia

Inteligente,

con

Carlos González
(2007, Doctor Europeo en
Informática, Universidad de Castilla-La Mancha) es
Profesor Titular de Universidad e imparte docencia en
la Escuela de Informática de Ciudad Real (UCLM) en
asignaturas
Programación
Concurrente, Informática Gráfica y Sistemas Opera -
tivos desde 2002. Actualmente, su actividad investiga-
dora gira en torno a los Sistemas Multi-Agente, el
Rendering Distribuido y la Realidad Aumentada.

relacionadas

con

Javier Albusac (2010, Doctor Europeo en Informática,
Universidad de Castilla-La Mancha) es Profesor
Ayudante Doctor e imparte docencia en la Escuela de
Ingeniería Minera e Industrial de Almadén (EIMIA) en
las asignaturas de Informática, Ofimática Aplicada a la
Ingeniería y Sistemas de Comunicación en Edificios
desde 2007. Actualmente, su actividad investigadora
gira en torno a la Vigilancia Inteligente, Robótica Móvil
y Aprendizaje Automático.

Prefacio

La evolución en el mercado de los procesadores y de los sistemas
de procesamiento en general gira en torno a la integración de más
unidades físicas de procesamiento que permitan ejecutar una mayor
cantidad de tareas de manera simultánea. Una de las principales con-
secuencias de este planteamiento, desde el punto de vista de la pro-
gramación, es la necesidad de utilizar herramientas que permitan ges-
tionar adecuadamente el acceso concurrente a recursos y datos por
parte de distintos procesos o hilos de ejecución, entre otros aspectos.
Este libro pretende ser una contribución, desde una perspectiva
principalmente práctica, al diseño y desarrollo de sistemas concurren-
tes, haciendo especial hincapié en las herramientas que un programa-
dor puede utilizar para llevar a cabo dicha tarea. Así mismo, en este
libro se introduce la importancia de estos aspectos en el ámbito de los
sistemas de tiempo real.

Sobre este libro

Este libro discute los principales contenidos teóricos y prácticos de
la asignatura Programación Concurrente y Tiempo Real, impartida en
el segundo curso del Grado en Ingeniería Informática de la Escuela
Superior de Informática de Ciudad Real (Universidad de Castilla-La
Mancha). Puede obtener más información sobre la asignatura, código
fuente de los ejemplos, prácticas de laboratorio y exámenes en la web
de la misma: http://www.libropctr.com.

La versión electrónica de este libro puede descargarse desde la web
anterior. La segunda edición, actualizada y revisada para corregir erra-
tas, del libro «físico» puede adquirirse desde la página web de la edito-
rial online Edlibrix en http://www.edlibrix.es.

Lectores destinatarios

Este libro está especialmente pensado para estudiantes de segundo
o tercer curso de titulaciones de Ingeniería en Informática, como por
ejemplo Grado en Ingeniería Informática. Se asume que el lector tiene
conocimientos de Programación (particularmente en algún lenguaje de
programación de sistemas como C) y Sistemas Operativos. El material
que compone el presente libro ha sido desarrollado por profesores vin-
culados durante años a aspectos relacionados con la Programación,
los Sistemas Operativos y los Sistemas Distribuidos.

Programas y código fuente

El código fuente de los ejemplos del libro puede descargarse en
la siguiente página web: http://www.libropctr.com. Salvo que se es-
pecifique explícitamente otra licencia, todos los ejemplos del libro se
distribuyen bajo GPLv3.

Agradecimientos

Los autores del libro quieren dar las gracias a los profesores Carlos
Villarrubia Jiménez, Eduardo Domínguez Parra y Miguel Ángel Redon-
do Duque por su excepcional soporte en cualquier cuestión relaciona-
da con el mundo de los Sistemas Operativos, particularmente en la
generación de una imagen de sistema operativo especialmente modifi-
cada para la parte práctica de la asignatura Programación Concurrente
y Tiempo Real. Este agradecimiento se hace extensivo al profesor Fé-
lix Jesús Villanueva Molina por su soporte en la parte de Sistemas de
Tiempo Real.

Gracias a Alba Baeza Pinés por la revisión gramatical y ortográfica

del presente documento.

Finalmente, nuestro agradecimiento a la Escuela de Informática de
Ciudad Real y al Departamento de Tecnologías y Sistemas de Informa-
ción de la Universidad de Castilla-La Mancha.

Resumen

Este libro recoge los aspectos fundamentales, desde una perspec-
tiva esencialmente práctica y en el ámbito de los sistemas operativos,
de Programación Concurrente y de Tiempo Real, asignatura obligato-
ria en el segundo curso del Grado en Ingeniería en Informática en la
Escuela Superior de Informática (Universidad de Castilla-La Mancha).
El principal objetivo que se pretende alcanzar es ofrecer al lector una
visión general de las herramientas existentes para una adecuada pro-
gramación de sistemas concurrentes y de los principales aspectos de
la planificación de sistemas en tiempo real.

La evolución de los sistemas operativos modernos y el hardware de
procesamiento, esencialmente multi-núcleo, hace especialmente rele-
vante la adquisición de competencias relativas a la programación con-
currente y a la sincronización y comunicación entre procesos, para
incrementar la productividad de las aplicaciones desarrolladas. En es-
te contexto, el presente libro discute herramientas clásicas, como los
semáforos y las colas de mensajes, y alternativas más flexibles, como
los monitores o los objetos protegidos. Desde el punto de vista de la
implementación se hace uso de la familia de estándares POSIX y de
los lenguajes de programación C, C++ y Ada.

Por otra parte, en este libro también se discuten los fundamentos
de la planificación de sistemas en tiempo real con el objetivo de poner
de manifiesto su importancia en el ámbito de los sistemas críticos.
Conceptos como el tiempo de respuesta o el deadline de una tarea son
esenciales para la programación de sistemas en tiempo real.

V

Abstract

This book addresses, from a practical point of view and within the
context of Operating Systems, the basics of Concurrent and Real-Time
Programming, a mandatory course taught in the second course of the
studies in Computer Science at the Faculty of Computing (University of
Castilla-La Mancha). The main goal of this book is to provide a general
overview of the existing tools that can be used to tackle concurrent
programming and to deal with real-time systems scheduling.

Both the evolution of operating systems and processing hardware,
especially multi-core processors, make the acquisition of concurrent
programming-related competences essential in order to increase the
performance of the developed applications. Within this context, this
book describes in detail traditional tools, such as semaphores or mes-
sage queues, and more flexible solutions, such as monitors or protec-
ted objects. From the implementation point of view, the POSIX family
of standards and the programming languages C, C++ and Ada are em-
ployed.

On the other hand, this book also discusses the basics of real-time
systems scheduling so that the reader can appreciate the importance
of this topic and how it affects to the design of critical systems. Con-
cepts such as response time and deadline are essential to understand
real-time systems programming.

VII

Índice general

1. Conceptos Básicos .

1.1.

1.2.

1.3.

.

.

.

.

.

.

.
.

.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
El concepto de proceso .

.
.
.
.
.
1.1.1. Gestión básica de procesos .
1.1.2. Primitivas básicas en POSIX .
1.1.3. Procesos e hilos .
.

.
.
.
.
.
Fundamentos de programación concurrente .
.
.
.
Interbloqueos y tratamiento del deadlock .
.
.
.
1.3.1. ¿Qué es un sistema de tiempo real? .
1.3.2. Herramientas para sistemas de tiempo real

1.2.1. El problema del productor/consumidor .
1.2.2. La sección crítica .
.
1.2.3. Mecanismos básicos de sincronización .
1.2.4.

Fundamentos de tiempo real

.
.

.

.

.

.

.

.

.

.

.

.

.

.

.
.
.

.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.

2.1.
2.2.

Conceptos básicos .
.
Implementación .
.
.

.
.
2.2.1. Semáforos
.
2.2.2. Memoria compartida .

2. Semáforos y Memoria Compartida .
.
.
.
.

.
.
.
.
.
Problemas clásicos de sincronización .
.
.
.
.

.
2.3.1. El buffer limitado.
.
.
.
2.3.2. Lectores y escritores
.
2.3.3. Los filósofos comensales .
.
2.3.4. El puente de un solo carril .

2.3.

.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

IX

.
.
.
.
.
.
.
.
  • Links de descarga
http://lwp-l.com/pdf18745

Comentarios de: Programacion concurrente y tiempo real (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad