Este documento presenta todos los apuntes (que confeccioné en su día) de la asignatura Sistemas Informáticos en Tiempo Real de 2º de Ing. industrial de la UMH impartida por Luis Miguel Jiménez y Rafael Puerto.
En esta asignatura aprendí la arquitectura básica de un Sistema Operativo en Tiempo Real, justificando su importancia en las aplicaciones de ingeniería.
En esta asignatura también se describen y analizan los elementos que conforman un sistema distribuido, justificando su importancia en aplicaciones industriales.
Además, se nos enseñó cómo emplear herramientas para el desarrollo aplicaciones de tiempo real (UNIX/POSIX).
En el siguiente enlace podés acceder a los datos del libro de la asignatura:
http://zbiblio.umh.es/uhtbin/cgisirsi/0/UMH/0/5?searchdata1=^C39987
Este documento introduce los conceptos básicos de los sistemas informáticos de tiempo real. Explica que estos sistemas deben cumplir restricciones temporales impuestas por el entorno para responder a estímulos externos de forma oportuna. También clasifica los sistemas de tiempo real según su nivel de exigencia temporal y describe algunas de sus necesidades clave como la especificación, programación, sistemas operativos, arquitecturas y comunicaciones para satisfacer los requisitos temporales.
Este documento presenta una introducción a los sistemas de tiempo real. Define los sistemas de tiempo real como sistemas informáticos que interactúan repetidamente con su entorno físico y responden dentro de un plazo de tiempo determinado a los estímulos que reciben. Explica los conceptos de planificación de tareas, pruebas, prototipos e interacción humano-ordenador como elementos clave en el diseño de sistemas de tiempo real.
Este documento describe dos tipos principales de sistemas de tiempo real: duros y blandos. Los sistemas de tiempo real duros garantizan que las tareas críticas se completen a tiempo limitando estrictamente todos los retardos. Los sistemas de tiempo real blandos son menos estrictos y permiten que las tareas de tiempo real tengan prioridad sobre otras tareas, pero no pueden garantizar tiempos de respuesta. Ambos tipos se usan para controlar experimentos, imágenes médicas y sistemas industriales, pero los sistemas duros son más
Este documento introduce los sistemas en tiempo real, que interactúan repetidamente con su entorno físico y responden a estímulos dentro de un plazo de tiempo. Explica que los sistemas en tiempo real suelen estar integrados en sistemas más grandes para control y monitoreo, y cubre temas como clases de sistemas en tiempo real, tareas temporales, características, programación, sistemas operativos de tiempo real y la norma POSIX.
El documento discute los conceptos clave de los sistemas de tiempo real, incluyendo el determinismo, la responsividad, la confiabilidad y los usuarios controladores. Explica que los sistemas de tiempo real requieren que las operaciones computacionales se completen dentro de ciertos límites de tiempo para funcionar correctamente.
Un sistema de tiempo real es necesario cuando los requisitos de tiempo para procesar datos o controlar un dispositivo son estrictos. Existen dos tipos principales: los sistemas de tiempo real duro garantizan que las tareas críticas se completen a tiempo con recursos limitados, mientras que los sistemas de tiempo real blando otorgan prioridad temporal a ciertas tareas pero permiten otras funciones del sistema. Ambos tipos son comunes en aplicaciones de control industrial, medicina y ciencia.
El documento describe los sistemas de tiempo real, incluyendo su definición, tipos (blandos y duros), características, áreas de aplicación comunes y un problema que HERMES, un nuevo sistema, puede ayudar a resolver al proporcionar seguimiento continuo de las operaciones comerciales de una empresa.
El documento trata sobre el tema 1 de los sistemas operativos II. Se describe el núcleo del sistema operativo, incluyendo sus requisitos hardware como mecanismos de interrupción, protección de memoria e instrucciones reservadas. También se explican los conceptos de núcleos monolíticos y micronúcleos, así como la arquitectura de estos últimos. Finalmente, se introducen los conceptos básicos de procesos, incluyendo su representación y estados.
Este documento introduce los conceptos básicos de los sistemas informáticos de tiempo real. Explica que estos sistemas deben cumplir restricciones temporales impuestas por el entorno para responder a estímulos externos de forma oportuna. También clasifica los sistemas de tiempo real según su nivel de exigencia temporal y describe algunas de sus necesidades clave como la especificación, programación, sistemas operativos, arquitecturas y comunicaciones para satisfacer los requisitos temporales.
Este documento presenta una introducción a los sistemas de tiempo real. Define los sistemas de tiempo real como sistemas informáticos que interactúan repetidamente con su entorno físico y responden dentro de un plazo de tiempo determinado a los estímulos que reciben. Explica los conceptos de planificación de tareas, pruebas, prototipos e interacción humano-ordenador como elementos clave en el diseño de sistemas de tiempo real.
Este documento describe dos tipos principales de sistemas de tiempo real: duros y blandos. Los sistemas de tiempo real duros garantizan que las tareas críticas se completen a tiempo limitando estrictamente todos los retardos. Los sistemas de tiempo real blandos son menos estrictos y permiten que las tareas de tiempo real tengan prioridad sobre otras tareas, pero no pueden garantizar tiempos de respuesta. Ambos tipos se usan para controlar experimentos, imágenes médicas y sistemas industriales, pero los sistemas duros son más
Este documento introduce los sistemas en tiempo real, que interactúan repetidamente con su entorno físico y responden a estímulos dentro de un plazo de tiempo. Explica que los sistemas en tiempo real suelen estar integrados en sistemas más grandes para control y monitoreo, y cubre temas como clases de sistemas en tiempo real, tareas temporales, características, programación, sistemas operativos de tiempo real y la norma POSIX.
El documento discute los conceptos clave de los sistemas de tiempo real, incluyendo el determinismo, la responsividad, la confiabilidad y los usuarios controladores. Explica que los sistemas de tiempo real requieren que las operaciones computacionales se completen dentro de ciertos límites de tiempo para funcionar correctamente.
Un sistema de tiempo real es necesario cuando los requisitos de tiempo para procesar datos o controlar un dispositivo son estrictos. Existen dos tipos principales: los sistemas de tiempo real duro garantizan que las tareas críticas se completen a tiempo con recursos limitados, mientras que los sistemas de tiempo real blando otorgan prioridad temporal a ciertas tareas pero permiten otras funciones del sistema. Ambos tipos son comunes en aplicaciones de control industrial, medicina y ciencia.
El documento describe los sistemas de tiempo real, incluyendo su definición, tipos (blandos y duros), características, áreas de aplicación comunes y un problema que HERMES, un nuevo sistema, puede ayudar a resolver al proporcionar seguimiento continuo de las operaciones comerciales de una empresa.
El documento trata sobre el tema 1 de los sistemas operativos II. Se describe el núcleo del sistema operativo, incluyendo sus requisitos hardware como mecanismos de interrupción, protección de memoria e instrucciones reservadas. También se explican los conceptos de núcleos monolíticos y micronúcleos, así como la arquitectura de estos últimos. Finalmente, se introducen los conceptos básicos de procesos, incluyendo su representación y estados.
1) El documento describe las funciones básicas del núcleo de un sistema operativo, incluyendo el manejo de interrupciones, la creación y planificación de procesos, y el soporte de E/S y memoria.
2) Explica que el hardware mínimo necesario incluye un mecanismo de interrupción, protección de memoria, y modos de operación de usuario y núcleo.
3) Detalla los tipos de interrupciones y cómo el manipulador de interrupciones las gestiona, salvando el contexto y transfiriendo el control
Este documento describe los diferentes estados que pueden tener los procesos, incluyendo activo, preparado y bloqueado. También explica conceptos como planificación de procesos, comunicación entre procesos, procesos concurrentes e interrupciones. Las interrupciones pueden ser internas, externas o de software y afectan la ejecución de los procesos.
Un sistema de tiempo real es un sistema informático que interactúa con su entorno físico y responde a estímulos dentro de un plazo de tiempo determinado. Las actividades de un sistema de tiempo real se llaman tareas, las cuales tienen propiedades funcionales, temporales, de fiabilidad y seguridad. Los sistemas de tiempo real deben garantizar que cada tarea se complete dentro de su plazo de respuesta.
El documento explica qué es un proceso y describe los diferentes estados por los que puede pasar un proceso, incluyendo ejecución, listo, bloqueado, nuevo y terminado. También describe el bloque de control de procesos que el sistema operativo usa para hacer un seguimiento del estado de cada proceso.
El documento describe los diferentes tipos de sistemas operativos, incluyendo sistemas operativos de multiprogramación, por lotes, monotareas, monousuario, multiusuario, tiempo real, tiempo compartido, distribuidos, paralelos y de red. Explica las características clave de cada tipo y proporciona ejemplos de sistemas operativos populares. También incluye una cronología de los principales sistemas operativos y sus versiones a través de los años 1960-1990.
Comunicación y Sincronizacion de ProcesosLorena Ramos
Los procesos concurrentes pueden competir por recursos o cooperar compartiendo información. La sección crítica es la región del código donde un proceso accede a un recurso compartido. Se deben evitar las condiciones de competencia mediante la exclusión mutua en la sección crítica. Existen soluciones basadas en variables de cerradura, alternancia estricta, semáforos, monitores y paso de mensajes para garantizar la exclusión mutua.
Un sistema operativo de tiempo real (SOTR) es un sistema operativo diseñado para aplicaciones que requieren respuestas en tiempo determinado. Un SOTR garantiza respuestas dentro de ciertos límites de tiempo y se caracteriza por requisitos de determinismo, sensibilidad, control del usuario, fiabilidad y tolerancia a fallos. Un ejemplo temprano fue el programa de control desarrollado por IBM y American Airlines para el sistema de reservas Sabre.
Que es mantenimiento a PC y tipos de mantenimiento a PCnena-maydeline
Este documento describe los tipos de mantenimiento de una PC. Existen dos tipos principales: el mantenimiento correctivo, que ocurre después de una falla para corregir el error; y el mantenimiento preventivo, que se realiza de forma planificada antes de que ocurra una falla para prevenir problemas y mantener un rendimiento óptimo. El mantenimiento preventivo es recomendable hacerlo cada tres meses y permite evitar paradas no planificadas y contar con un historial y presupuesto para la máquina.
Vision general de los sistemas operativossuperone314
El documento proporciona una visión general de los sistemas operativos, describiendo su evolución, funciones, tipos y cómo los usuarios interactúan con ellos. Explica que un sistema operativo gestiona los recursos y presenta una interfaz de usuario, evolucionando desde máquinas sin SO hasta sistemas distribuidos en red. También describe tipos de SO como monoprogramación, por lotes, multiprogramación y en tiempo real, así como sistemas operativos para redes y distribuidos.
Gestion De Procesos sistemas operativosMarvin Romero
El documento describe los estados de un proceso en un sistema operativo. Explica un modelo de dos estados (ejecución y no ejecución) y un modelo más completo de cinco estados: nuevo, listo, ejecución, espera y terminado. Los diferentes estados representan donde se encuentra un proceso en el sistema a medida que se crea, ejecuta y finaliza.
El mantenimiento preventivo de una PC debe realizarse cada 2-3 meses si se usa 4 horas diarias en un ambiente favorable, mientras que si se usa más de 4 horas diarias se recomienda hacerlo mensualmente. Existen dos tipos de mantenimiento: el correctivo, que ocurre luego de una falla, y el preventivo, que se realiza de forma planificada cada cierto tiempo para prevenir fallas. El mantenimiento preventivo es recomendable ya que permite evitar paradas no planificadas y contar con un presupuesto aprobado.
El documento describe diferentes métodos de medición de tiempo (MTM) que proveen valores estándar para los tiempos de realización de movimientos manuales. Describe los métodos MTM-1, MTM-2, MTM-3, MTM-V, MTM-C, MTM-M, MTM-TE, MTM-MEK y MTM-UAS, incluyendo sus áreas de aplicación y niveles de precisión respecto a MTM-1.
El documento describe los conceptos básicos de procesos y planificación de procesos. Explica que un proceso es un programa en ejecución que requiere recursos como CPU, memoria y E/S. Los procesos pueden estar en estados de ejecución, bloqueado o listo. También describe los hilos o subprocesos, algoritmos de planificación como round robin y por prioridades, y técnicas como planificación de dos niveles para gestionar procesos en memoria y disco.
El documento describe los conceptos de procesos y estados de procesos en sistemas operativos. Explica que un proceso es una entidad activa que compite por recursos como la CPU, y que el sistema operativo administra los procesos y su ejecución. Los procesos pueden estar en estados como nuevo, listo, en ejecución, bloqueado o terminado. También habla sobre la creación, terminación y transiciones entre estados de los procesos.
Este documento presenta los procedimientos para caracterizar plásticos mediante ensayos de densidad, solubilidad y comportamiento a la llama. Describe los tipos principales de plásticos como termoplásticos, termoestables y elastómeros. Incluye una tabla con códigos para identificar plásticos comunes y sus usos más frecuentes. Los resultados experimentales muestran datos sobre la densidad, solubilidad y comportamiento al fuego de varios plásticos patrones.
El documento resume las principales fuentes de financiación para actividades de investigación, desarrollo e innovación (I+D+i), tanto públicas como privadas. Incluye convocatorias de la Universidad Miguel Hernández, del gobierno autonómico de la Comunidad Valenciana, del gobierno nacional de España, y de la Unión Europea.
En este fichero comparto mis prácticas de la asignatura de Fundamentos de Matemáticas de la Universidad Miguel Hernández de Elche donde se resuelven diversos problemas matemáticos empleando DERIVE.
Los ejercicios son:
-Justificar la convergencia de una sucesión y calcular su límite.
-Deducir la suma de la siguiente serie.
-Encontrar los valores de p para los que la una serie es de términos positivos y estudiar, para dichos valores, el carácter de la misma.
-Calcular el radio y el intervalo de convergencia, así como la suma de dicho intervalo, de una serie de potencias. Estudiar también el carácter de la serie en los extremos del intervalo de convergencia.
-Dada una función:
Hallar los extremos relativos de f y clasificarlos.
Hallar, justificando previamente la existencia, los extremos absolutos de f en R.
Calcular el volumen comprendido entre las gráficas de f y el plano z = 0 sobre el recinto R.
También incluye un conjunto de funciones customizadas para resolver este tipo de ejercicios.
Actualmente existen numerosos programas de cálculo simbólico: Macsyma, Reduce, Mathematica, Maple, Axiom, Form, GNU-Calc, Derive,... DERIVE es un software con muchas ventajas y que es ampliamente utilizado en universidades por varios motivos fundamentales:
1. La facilidad de su aprendizaje: no necesita muchos conocimientos previos de informática, y se puede aprender a utilizar en un corto espacio de tiempo, sin necesidad de invertir muchas horas en la lectura del manual.
2. La sencillez de su entorno de trabajo, ya que permite ejecutar los comandos vía menú, o a través de la edición de los mismos por pantalla.
Este documento son unos apuntes para aprender a usar DERIVE que tiene los siguientes contenidos:
MODULO 1 (Introducción al programa)
1. Introducción al programa DERIVE, principales comandos.
2.Operaciones algebraicas básicas.
MODULO 2. (Matemáticas I).
3. Comandos básicos para el cálculo diferencial.
4. Análisis de Funciones de una variable.
5. Análisis de funciones de varias variables.
6. Cálculo Integral.
MODULO 3 (Matemáticas II)
7. Principales comandos para el álgebra lineal.
8. Espacios vectoriales y aplicaciones lineales.
9. Sistemas de ecuaciones lineales.
10. Diagonalización.
11. Formas cuadráticas.
Este documento describe el ensayo de tracción, que se utiliza para determinar las propiedades mecánicas de los materiales. Explica cómo se realiza el ensayo, midiendo la fuerza aplicada a una probeta a medida que se deforma, y cómo se pueden obtener propiedades como el módulo de Young y los límites de fluencia y rotura de la curva fuerza-deformación resultante. También describe el equipo de ensayo que se utilizará, incluida una máquina de ensayo con capacidad de 50 kN.
Este documento presenta el programa de la asignatura Tecnología Energética impartida en la Escuela Politécnica Superior de Elche. El programa describe los objetivos generales y específicos de la asignatura, el programa de teoría dividido en siete bloques temáticos, el programa de prácticas y la forma de evaluación. La asignatura analiza las fuentes de energía, la gestión energética industrial y los usos de la energía en la industria con el fin de formar a los estudiantes sobre este importante tema.
Este documento describe un experimento para determinar la conductividad térmica de diferentes piedras naturales y artificiales. Explica que la conducción de calor ocurre cuando hay contacto entre materiales a diferentes temperaturas. Luego, detalla el montaje experimental que utiliza vapor de agua como fuente caliente y hielo como fuente fría, midiendo la cantidad de agua derretida para calcular el flujo de calor a través de las muestras y así determinar su conductividad térmica.
Los métodos numéricos sirven para obtener una solución aproximada de un problema matemático mediante la implementación de un algoritmo.
Por tanto, la solución que obtenemos posee un margen de error que es conveniente controlar.
En este tema se estudian varios métodos de derivación e integración empleando métodos numéricos y, además, se estudia como controlar el error de cálculo (de redondeo y truncamiento) que éstos generan.
Estos apuntes fueron utilizados en la asignatura de Matemática Numeríca impartida por el Dr. José Valero Cuadra dentro del Máster Universitario de Investigación en Tecnologías Industriales y de Telecomunicación.
1) El documento describe las funciones básicas del núcleo de un sistema operativo, incluyendo el manejo de interrupciones, la creación y planificación de procesos, y el soporte de E/S y memoria.
2) Explica que el hardware mínimo necesario incluye un mecanismo de interrupción, protección de memoria, y modos de operación de usuario y núcleo.
3) Detalla los tipos de interrupciones y cómo el manipulador de interrupciones las gestiona, salvando el contexto y transfiriendo el control
Este documento describe los diferentes estados que pueden tener los procesos, incluyendo activo, preparado y bloqueado. También explica conceptos como planificación de procesos, comunicación entre procesos, procesos concurrentes e interrupciones. Las interrupciones pueden ser internas, externas o de software y afectan la ejecución de los procesos.
Un sistema de tiempo real es un sistema informático que interactúa con su entorno físico y responde a estímulos dentro de un plazo de tiempo determinado. Las actividades de un sistema de tiempo real se llaman tareas, las cuales tienen propiedades funcionales, temporales, de fiabilidad y seguridad. Los sistemas de tiempo real deben garantizar que cada tarea se complete dentro de su plazo de respuesta.
El documento explica qué es un proceso y describe los diferentes estados por los que puede pasar un proceso, incluyendo ejecución, listo, bloqueado, nuevo y terminado. También describe el bloque de control de procesos que el sistema operativo usa para hacer un seguimiento del estado de cada proceso.
El documento describe los diferentes tipos de sistemas operativos, incluyendo sistemas operativos de multiprogramación, por lotes, monotareas, monousuario, multiusuario, tiempo real, tiempo compartido, distribuidos, paralelos y de red. Explica las características clave de cada tipo y proporciona ejemplos de sistemas operativos populares. También incluye una cronología de los principales sistemas operativos y sus versiones a través de los años 1960-1990.
Comunicación y Sincronizacion de ProcesosLorena Ramos
Los procesos concurrentes pueden competir por recursos o cooperar compartiendo información. La sección crítica es la región del código donde un proceso accede a un recurso compartido. Se deben evitar las condiciones de competencia mediante la exclusión mutua en la sección crítica. Existen soluciones basadas en variables de cerradura, alternancia estricta, semáforos, monitores y paso de mensajes para garantizar la exclusión mutua.
Un sistema operativo de tiempo real (SOTR) es un sistema operativo diseñado para aplicaciones que requieren respuestas en tiempo determinado. Un SOTR garantiza respuestas dentro de ciertos límites de tiempo y se caracteriza por requisitos de determinismo, sensibilidad, control del usuario, fiabilidad y tolerancia a fallos. Un ejemplo temprano fue el programa de control desarrollado por IBM y American Airlines para el sistema de reservas Sabre.
Que es mantenimiento a PC y tipos de mantenimiento a PCnena-maydeline
Este documento describe los tipos de mantenimiento de una PC. Existen dos tipos principales: el mantenimiento correctivo, que ocurre después de una falla para corregir el error; y el mantenimiento preventivo, que se realiza de forma planificada antes de que ocurra una falla para prevenir problemas y mantener un rendimiento óptimo. El mantenimiento preventivo es recomendable hacerlo cada tres meses y permite evitar paradas no planificadas y contar con un historial y presupuesto para la máquina.
Vision general de los sistemas operativossuperone314
El documento proporciona una visión general de los sistemas operativos, describiendo su evolución, funciones, tipos y cómo los usuarios interactúan con ellos. Explica que un sistema operativo gestiona los recursos y presenta una interfaz de usuario, evolucionando desde máquinas sin SO hasta sistemas distribuidos en red. También describe tipos de SO como monoprogramación, por lotes, multiprogramación y en tiempo real, así como sistemas operativos para redes y distribuidos.
Gestion De Procesos sistemas operativosMarvin Romero
El documento describe los estados de un proceso en un sistema operativo. Explica un modelo de dos estados (ejecución y no ejecución) y un modelo más completo de cinco estados: nuevo, listo, ejecución, espera y terminado. Los diferentes estados representan donde se encuentra un proceso en el sistema a medida que se crea, ejecuta y finaliza.
El mantenimiento preventivo de una PC debe realizarse cada 2-3 meses si se usa 4 horas diarias en un ambiente favorable, mientras que si se usa más de 4 horas diarias se recomienda hacerlo mensualmente. Existen dos tipos de mantenimiento: el correctivo, que ocurre luego de una falla, y el preventivo, que se realiza de forma planificada cada cierto tiempo para prevenir fallas. El mantenimiento preventivo es recomendable ya que permite evitar paradas no planificadas y contar con un presupuesto aprobado.
El documento describe diferentes métodos de medición de tiempo (MTM) que proveen valores estándar para los tiempos de realización de movimientos manuales. Describe los métodos MTM-1, MTM-2, MTM-3, MTM-V, MTM-C, MTM-M, MTM-TE, MTM-MEK y MTM-UAS, incluyendo sus áreas de aplicación y niveles de precisión respecto a MTM-1.
El documento describe los conceptos básicos de procesos y planificación de procesos. Explica que un proceso es un programa en ejecución que requiere recursos como CPU, memoria y E/S. Los procesos pueden estar en estados de ejecución, bloqueado o listo. También describe los hilos o subprocesos, algoritmos de planificación como round robin y por prioridades, y técnicas como planificación de dos niveles para gestionar procesos en memoria y disco.
El documento describe los conceptos de procesos y estados de procesos en sistemas operativos. Explica que un proceso es una entidad activa que compite por recursos como la CPU, y que el sistema operativo administra los procesos y su ejecución. Los procesos pueden estar en estados como nuevo, listo, en ejecución, bloqueado o terminado. También habla sobre la creación, terminación y transiciones entre estados de los procesos.
Este documento presenta los procedimientos para caracterizar plásticos mediante ensayos de densidad, solubilidad y comportamiento a la llama. Describe los tipos principales de plásticos como termoplásticos, termoestables y elastómeros. Incluye una tabla con códigos para identificar plásticos comunes y sus usos más frecuentes. Los resultados experimentales muestran datos sobre la densidad, solubilidad y comportamiento al fuego de varios plásticos patrones.
El documento resume las principales fuentes de financiación para actividades de investigación, desarrollo e innovación (I+D+i), tanto públicas como privadas. Incluye convocatorias de la Universidad Miguel Hernández, del gobierno autonómico de la Comunidad Valenciana, del gobierno nacional de España, y de la Unión Europea.
En este fichero comparto mis prácticas de la asignatura de Fundamentos de Matemáticas de la Universidad Miguel Hernández de Elche donde se resuelven diversos problemas matemáticos empleando DERIVE.
Los ejercicios son:
-Justificar la convergencia de una sucesión y calcular su límite.
-Deducir la suma de la siguiente serie.
-Encontrar los valores de p para los que la una serie es de términos positivos y estudiar, para dichos valores, el carácter de la misma.
-Calcular el radio y el intervalo de convergencia, así como la suma de dicho intervalo, de una serie de potencias. Estudiar también el carácter de la serie en los extremos del intervalo de convergencia.
-Dada una función:
Hallar los extremos relativos de f y clasificarlos.
Hallar, justificando previamente la existencia, los extremos absolutos de f en R.
Calcular el volumen comprendido entre las gráficas de f y el plano z = 0 sobre el recinto R.
También incluye un conjunto de funciones customizadas para resolver este tipo de ejercicios.
Actualmente existen numerosos programas de cálculo simbólico: Macsyma, Reduce, Mathematica, Maple, Axiom, Form, GNU-Calc, Derive,... DERIVE es un software con muchas ventajas y que es ampliamente utilizado en universidades por varios motivos fundamentales:
1. La facilidad de su aprendizaje: no necesita muchos conocimientos previos de informática, y se puede aprender a utilizar en un corto espacio de tiempo, sin necesidad de invertir muchas horas en la lectura del manual.
2. La sencillez de su entorno de trabajo, ya que permite ejecutar los comandos vía menú, o a través de la edición de los mismos por pantalla.
Este documento son unos apuntes para aprender a usar DERIVE que tiene los siguientes contenidos:
MODULO 1 (Introducción al programa)
1. Introducción al programa DERIVE, principales comandos.
2.Operaciones algebraicas básicas.
MODULO 2. (Matemáticas I).
3. Comandos básicos para el cálculo diferencial.
4. Análisis de Funciones de una variable.
5. Análisis de funciones de varias variables.
6. Cálculo Integral.
MODULO 3 (Matemáticas II)
7. Principales comandos para el álgebra lineal.
8. Espacios vectoriales y aplicaciones lineales.
9. Sistemas de ecuaciones lineales.
10. Diagonalización.
11. Formas cuadráticas.
Este documento describe el ensayo de tracción, que se utiliza para determinar las propiedades mecánicas de los materiales. Explica cómo se realiza el ensayo, midiendo la fuerza aplicada a una probeta a medida que se deforma, y cómo se pueden obtener propiedades como el módulo de Young y los límites de fluencia y rotura de la curva fuerza-deformación resultante. También describe el equipo de ensayo que se utilizará, incluida una máquina de ensayo con capacidad de 50 kN.
Este documento presenta el programa de la asignatura Tecnología Energética impartida en la Escuela Politécnica Superior de Elche. El programa describe los objetivos generales y específicos de la asignatura, el programa de teoría dividido en siete bloques temáticos, el programa de prácticas y la forma de evaluación. La asignatura analiza las fuentes de energía, la gestión energética industrial y los usos de la energía en la industria con el fin de formar a los estudiantes sobre este importante tema.
Este documento describe un experimento para determinar la conductividad térmica de diferentes piedras naturales y artificiales. Explica que la conducción de calor ocurre cuando hay contacto entre materiales a diferentes temperaturas. Luego, detalla el montaje experimental que utiliza vapor de agua como fuente caliente y hielo como fuente fría, midiendo la cantidad de agua derretida para calcular el flujo de calor a través de las muestras y así determinar su conductividad térmica.
Los métodos numéricos sirven para obtener una solución aproximada de un problema matemático mediante la implementación de un algoritmo.
Por tanto, la solución que obtenemos posee un margen de error que es conveniente controlar.
En este tema se estudian varios métodos de derivación e integración empleando métodos numéricos y, además, se estudia como controlar el error de cálculo (de redondeo y truncamiento) que éstos generan.
Estos apuntes fueron utilizados en la asignatura de Matemática Numeríca impartida por el Dr. José Valero Cuadra dentro del Máster Universitario de Investigación en Tecnologías Industriales y de Telecomunicación.
Os presento unas prácticas de la asignatura de Modelado e Identificación de Sistemas (concretamente de la parte de identificación) que realicé durante mi carrera de Ing. Industrial. Entre otras cosas, en esta asignatura estudié se estudian técnicas de filtrado y acondicionamiento de señales para permitir a los distintos algoritmos de identificación operar de forma óptima.
Las prácticas son las cinco siguientes:
- Práctica 1: Análisis y diseño de filtros analógicos
- Práctica 2: Diseño de filtros digitales
- Práctica 3: Filtrado Digital. Aplicación a imagen.
- Práctica 4: Identificación de un sistema mediante el algoritmo LS.
- Práctica 5:Identificación de un sistema real mediante el algoritmo RLS.
Con estas prácticas aprenderás a:
- Aplicar técnicas de filtrado de señales para mejorar el proceso de identificación experimental de sistemas (eliminación de ruidos y perturbaciones).
- Utilizar las técnicas de identificación paramétrica de sistemas más usuales tanto para sistemas lineales como para sistemas no lineales.
- Conocer los métodos matemáticos e informáticos necesarios para realizar una identificación paramétrica.
Los bloques de la asignatura que están vinculados con las prácticas son:
BLOQUE I: ACONDICIONAMIENTO Y FILTRADO DE SEÑALES
1. Análisis de Filtros Analógicos
2. Diseño de Filtros Analógicos
3. Análisis de Filtros Digitales
4. Diseño de Filtros Digitales por discretización de filtros analógicos
5. Diseño de Filtros Digitales no recursivos
BLOQUE II: IDENTIFICACIÓN DE SISTEMAS
6. Introducción a la Identificación
7. Identificación en línea. Algoritmo LS
8. Propiedades del Algoritmo LS
BLOQUE I: ACONDICIONAMIENTO Y FILTRADO DE SEÑALES. En él se introduce al alumno en el área de filtrado de señales. Este aspecto es importante ya que se suele emplear en casi la totalidad de las aplicaciones de captura de datos y/ control de sistemas y porque es necesario que los datos experimentales obtenidos para una identificación sean lo más correcto posibles.
BLOQUE II: IDENTIFICACIÓN DE SISTEMAS. En este bloque se estudia la identificación experimental de sistemas físicos. Para ello se parte del estudio y análisis del algoritmo de identificación LS y a partir de él se estudian otros más completos y/o eficientes.
Este trabajo describe el diseño de un robot para fines quirúrgicos. El robot se trata de un cartesiano al que se le ha añadido una muñeca con dos juntas rotacionales. En el documento está plasmado todo el proceso de diseño: Cinemática, Dinámica y Control de Accionamientos.
Se trata de un documento muy interesante para aquellos que empiecen en el mundo de la robótica ya que está todo explicado al detalle y eso facilita la comprensión.
Este documento representa los apuntes de la asignatura de Física de la Visión de 3º de Ing. Industrial de la UMH. En esta asignatura inicia al alumno en los fundamentos teóricos y los aspectos prácticos de la visión artificial aplicada al ámbito industrial. La asignatura se centra en dar a conocer al alumno las primeras etapas de los procesos de visión artificial para ampliar éstos en posteriores asignaturas.
Primeramente se estudia los aspectos físicos de la luz y posteriormente la anatomía del ojo humano. Posteriormente se divide el bloque en dos grandes grupos: la iluminación y la visión artificial. Los temas tratados son:
- Óptica geométrica
- Anatomía del ojo humano
- iluminación
- Colorimetría
- Sistemas de adquisición de imágenes
- Tratamiento de imágenes
- Procesado básico de imágenes
- Transformación de imágenes
- Detección de bordes
De manera adicional, este documento también incluye las prácticas de la asignatura (la práctica 1 de iluminación fue un trabajo conjunto mío y de M. Nieves Robles Botella).
Este documento recopila los apuntes de la asignatura de "Aplicación de herramientas de análisis avanzadas al diseño mecánico" impartida por Miguel Sánchez.
Este texto proporciona una guía para aprender cómo funciona el lagoritmo en el que se basa el análisis por elementos finitos y, en concreto, contiene información sobre cómo trabajar con el software ANSYS.
Apuntes de Economía Aplicada de la Universidad Miguel Hernández de Elche impartida por Rafael Carlos, Domenech Sánchez.
Los puntos tratados son los siguientes:
TEMA 1: Introducción: fundamentos de la economía.
TEMA 2: El mecanismo de mercado: demanda y oferta
TEMA 3: La teoría de la producción.
TEMA 4: Los costes de producción.
TEMA 5: Las formas de mercado: competencia perfecta y monopolio.
TEMA 6: Los mercados de competencia imperfecta. La competencia monopolística y el oligopolio
TEMA 7: Mercados de factores, mercado de trabajo y salarios.
TEMA 8: La inversión, el tiempo y los mercados de capitales.
TEMA 9: El enfoque macroeconómico y la contabilidad nacional.
TEMA 10: La determinación de la renta nacional.
TEMA 11: Intervención del estado en la actividad económica.
TEMA 12: Oferta y demanda de dinero.
TEMA 13: El Sector Exterior
Trabajo de la asignatura de Ingeniería de Transporte de 5º de Ingeniería Industrial de la Universidad Miguel Hernández de Elche.
Profesor de la asignatura:
Alumnos: Javier Sogorb, Antonio Montón, Carmen Antona y Jaime Martínez.
El documento que presento es el resultado de un trabajo en grupo donde se analizaba la el Tema 7 de la asignatura, Grúas Auxiliares.
El tema 7, del que es objeto nuestro trabajo, se centra en las grúas auxiliares, tanto autopropulsadas como remolcadas. Para situarnos en este ámbito, en primer lugar se clasifican y describien los tipos de grúas auxiliares, tanto desde la perspectiva de la norma UNE, como desde la clasificación que realizan los catálogos consultados. Posteriormente se estudian los detalles técnicos y el principio de funcionamiento. Finalmente, se presenta un criterio de selección de grúas, aspectos de seguridad y también normativos.
En el final del documento puedes acceder a una serie de preguntas (con sus respectivas respuestas) sobre el mismo trabajo.
Apuntes y prácticas de la asignatura Fiscalidad de la Empresa del MBA de la Universidad de Alicante e impartida por Lorenzo Gil Maciá.
Podéis acceder a los cálculos de la práctica en la siguiente hoja de cálculo de la práctica:
https://docs.google.com/spreadsheets/d/1_TaTx-4SkJFQ9xOyTUmjFnuEIM32PldXTtP9SRAp-0g/edit?usp=sharing
El temario es:
- Impuesto sobre la Renta de las Personas Físicas.
- Impuesto sobre Sociedades.
- Impuesto sobre el Valor Añadido.
- Informática tributaria.
- Planificación fiscal.
Lo que se puede aprender estudiando los apuntes y prácticas es:
La asignatura tiene por objeto el análisis, desde una perspectiva eminentemente práctica, de los principales impuestos que gravan la actividad empresarial. Conocer el contenido y las fuentes normativas del Impuesto sobre Sociedades, del Impuesto sobre el Valor Añadido, y del Impuesto sobre la Renta de las Personas Físicas. El conocimiento de los impuestos mencionados se complementará con el aprendizaje de los programas informáticos de declaración y la adecuada cumplimentación de los modelos oficiales.
Este documento presenta el programa de la asignatura de Introducción a la Química. Se divide en 7 temas principales: conceptos preliminares, estructura de la materia, estados de agregación, termodinámica química, cinética química, equilibrio químico y electroquímica. Los objetivos son describir la estructura atómica y molecular, aplicar conceptos termodinámicos a reacciones químicas, describir la cinética química y el equilibrio químico, y present
Prácticas y exámenes de control óptimo (subida a slide share)Jaime Martínez Verdú
Control óptimo está incluido como unidad docente de la asignatura Control Avanzado de Sistemas impartido en la UMH por José María Azorín Poveda.
http://ocw.umh.es/ingenieria-y-arquitectura/control-avanzado
El objetivo general de las prácticas es que los alumnos diseñen y comprueben en simulación el comportamiento de los controladores estudiados en teoría. En particular:
- Técnicas de optimización para su aplicación en ingeniería de control.
- Diseño de reguladores que optimicen el índice de prestaciones de un sistema (control óptimo).
Se incorporan también ejemplos de examen.
Trabajo de la asignatura de DIFUSIÓN Y ACCESO A LA INFORMACIÓN EN LA INVESTIGACIÓN del Máster Universitario de Investigación en Teconologías Tndustriales y de Telecomunicación.
El documento describe los conceptos fundamentales de la visión por computador, incluyendo la formación de imágenes, sistemas de visión artificial vs. sistema de visión humana, etapas típicas de un sistema de visión artificial, y aplicaciones comunes de la visión por computador como la inspección industrial y el control de calidad.
Transparencias Guía docente para el diseño de robots de servicioJaime Martínez Verdú
El libro "Guía docente para el diseño de robots de servicio", de Jaime Martínez, presenta una metodología para el diseño de sistemas mecánicos. En la página de ejemplos se pueden encontrar diversos ejercicios solucionados resueltos con la metodología anterior: https://sites.google.com/a/goumh.umh.es/hidma/home
Este documento presenta una introducción a los sistemas de tiempo real. Explica que estos sistemas deben reaccionar a estímulos del entorno dentro de intervalos de tiempo predeterminados. Luego, describe varios temas clave relacionados con los sistemas de tiempo real como su clasificación, ejemplos, requisitos temporales, tolerancia a fallos y planificación de tareas. Finalmente, incluye definiciones más detalladas de conceptos como sistemas de tiempo real estrictos y no estrictos, y diferencias con los sistemas tradicional
El documento describe los sistemas de tiempo real, incluyendo su definición, tipos (blandos y duros), características, áreas de aplicación comunes y un problema que HERMES, un nuevo sistema, puede ayudar a resolver al proporcionar seguimiento continuo de las operaciones comerciales de una empresa.
Este documento describe dos tipos de sistemas de tiempo real: duros y blandos. Los sistemas de tiempo real duros garantizan que las tareas críticas se completen a tiempo limitando todos los retardos del sistema. Los sistemas de tiempo real blandos son menos estrictos y permiten que las tareas de tiempo real tengan prioridad sobre otras tareas hasta que se completen, pero no pueden limitar indefinidamente los retardos del núcleo. Los sistemas de tiempo real blandos también pueden combinarse con otros sistemas, mientras que los duros
Este documento describe dos tipos principales de sistemas de tiempo real: duros y blandos. Los sistemas de tiempo real duros garantizan que las tareas críticas se completen a tiempo limitando estrictamente todos los retardos. Los sistemas de tiempo real blandos son menos estrictos y permiten combinarse con otros sistemas, aunque son más riesgosos para control industrial. Ambos tipos se usan para controlar experimentos científicos, imágenes médicas, control industrial y sistemas automotrices y de armamento.
Los sistemas operativos de tiempo real son aquellos en los que la atención se centra en los procesos en lugar de los usuarios. Se utilizan donde se procesan grandes cantidades de eventos y requieren respuestas inmediatas. Funcionan en aplicaciones como el control de tráfico aéreo, bolsas de valores y control industrial, donde los resultados deben entregarse dentro de los márgenes de tiempo establecidos.
Este documento describe los sistemas operativos de tiempo real. Explica que estos sistemas deben cumplir con ciertos requisitos de tiempo y ser predecibles. También describe algunas de sus características clave como el uso eficiente de la memoria, el manejo de interrupciones, y la comunicación determinista entre tareas mediante semáforos o mensajes.
Este documento describe los sistemas operativos de tiempo real. Explica que estos sistemas deben cumplir con ciertos requisitos de tiempo y ser predecibles. También describe algunas de sus características clave como el uso eficiente de la memoria, el manejo de interrupciones, y la comunicación determinista entre tareas mediante semáforos o mensajes.
Los sistemas operativos multimedia son capaces de procesar información en tiempo real como video, audio e imágenes. Gestionan recursos como la memoria y dispositivos de entrada y salida para procesar datos multimedia. Se caracterizan por requerir determinismo, sensibilidad, control del usuario, fiabilidad y tolerancia a fallos para procesar datos en tiempo real de forma fiable.
Los sistemas distribuidos permiten que sistemas independientes se comuniquen y ayuden entre sí a través de una interconexión hardware-software, distribuyendo trabajos entre procesadores conectados en red con memoria compartida. Aunque las máquinas estén dispersas, los usuarios perciben un solo sistema integrado. Los sistemas de tiempo real deben proveer una respuesta adecuada e instantánea a eventos, con baja latencia y variación. Los sistemas en línea permiten la interconexión entre equipos a través de un medio físico
Los sistemas distribuidos permiten que sistemas independientes se comuniquen y ayuden entre sí a través de una interconexión hardware-software, distribuyendo trabajos entre procesadores conectados en red con memoria compartida. Aunque las máquinas estén dispersas, los usuarios perciben un solo sistema integrado. Los sistemas de tiempo real deben proveer una respuesta adecuada e instantánea a eventos, con baja latencia y variación. Los sistemas en línea permiten la interconexión entre equipos a través de un medio físico
Este documento describe los sistemas en tiempo real, los cuales interactúan con su entorno físico y responden a estímulos dentro de un plazo determinado. Explica que el software de tiempo real depende de la arquitectura de hardware y software, características del sistema operativo, y requisitos y lenguaje de programación. También describe los sistemas operativos de tiempo real que priorizan los procesos sobre el usuario, y diferencia entre sistemas blandos que toleran respuestas tardías y sistemas duros donde una respuesta tardía ca
El documento trata sobre el tema 1 de los sistemas operativos II. Se describe el núcleo del sistema operativo, incluyendo sus requisitos hardware, tipos de núcleos (monolítico y micronúcleo), procesos, y comunicación y sincronización entre procesos.
El documento trata sobre el tema 1 de los sistemas operativos II. Se describe el núcleo del sistema operativo, incluyendo sus requisitos hardware como mecanismos de interrupción, protección de memoria e instrucciones reservadas. También se explican los conceptos de núcleos monolíticos y micronúcleos, así como la arquitectura de estos últimos. Finalmente, se introducen los conceptos básicos de procesos, incluyendo su representación y estados.
El documento trata sobre el tema 1 de los sistemas operativos II. Se describe el núcleo del sistema operativo, incluyendo sus requisitos hardware, tipos de núcleos (monolítico y micronúcleo), procesos, y comunicación y sincronización entre procesos.
El documento trata sobre el tema 1 de sistemas operativos II, el cual cubre los conceptos básicos del núcleo de un sistema operativo, incluyendo los requisitos de hardware, los tipos de núcleos (monolíticos y micronúcleos), la representación de procesos, y la comunicación y sincronización entre procesos.
La computación autonómica tiene cuatro características clave para la autogestión: auto-configuración, auto-sanación, auto-optimización y autoprotección. Estas características permiten a los sistemas adaptarse automáticamente a los cambios y optimizar el uso de recursos sin intervención humana. IBM introdujo la iniciativa de computación autonómica en 2001 para desarrollar sistemas capaces de autogestionarse a medida que la complejidad de los sistemas informáticos continúa creciendo.
Los sistemas operativos han evolucionado de sistemas por lotes simples a sistemas interactivos de tiempo compartido y luego a sistemas operativos de computadoras personales. Los sistemas operativos paralelos y distribuidos permiten el uso de múltiples procesadores y computadoras. Los sistemas de tiempo real garantizan que las tareas críticas se completen dentro de plazos predefinidos.
Los sistemas operativos han evolucionado de sistemas por lotes simples a sistemas interactivos de tiempo compartido y luego a sistemas operativos para computadoras personales. Los sistemas operativos paralelos y distribuidos permiten el uso de múltiples procesadores y computadoras. Los sistemas de tiempo real garantizan que las tareas críticas se completen dentro de plazos predefinidos.
Este documento introduce los sistemas operativos, definiéndolos como programas que actúan como enlace entre el usuario y el hardware de un ordenador, proporcionando un entorno para ejecutar otros programas. Explica las funciones básicas de los sistemas operativos como la gestión de la CPU, memoria, E/S y almacenamiento. También clasifica los sistemas operativos y describe los modos de explotación monousuario, multiusuario, monoprogramación y multiprogramación. Finalmente, compara los sistemas operativos Windows
Este documento introduce los sistemas operativos, definiéndolos como programas que actúan como enlace entre el usuario y el hardware de un ordenador, proporcionando un entorno para ejecutar otros programas. Explica las funciones básicas de los sistemas operativos como la gestión de la CPU, memoria, E/S y almacenamiento. También clasifica los sistemas operativos y describe los modos de explotación monousuario, multiusuario, monoprogramación y multiprogramación. Finalmente, compara los sistemas operativos Windows
Apuntes de la asignatura Finanzas Empresariales del MBA de la Universidad de Alicante e impartida por Francisco Merino.
TEMA 1.- FINANZAS EMPRESARIALES
1.1 Introducción
1.2 Objetivos de la función financiera en la empresa.
1.3 Estructura económica y estructura financiera de la empresa.
1.4 Principios básicos de valoración.
TEMA 2.- VALORACION DE PROYECTOS DE INVERSION EN ACTIVOS REALES Y EN ACTIVOS FINANCIEROS
2.1 Introducción
2.2 La dimensión financiera de los proyectos.
2.3 Métodos usuales de selección de inversiones.
2.4 Otros métodos de selección de inversiones.
2.5 Análisis de inversiones en régimen de incertidumbre.
2.6 La valoración de activos financieros.
Si te han resultado interesante no dudes en darle a "Me gusta", comentar o compartirlo ;)
Apuntes de 3º de Ingeniería Industrial de la Universidad Miguel Hernández de Elche que tratan los Ensayos No Destructivos. Estos apuntes incorporan diapositivas de dos cursos distintos, apuntes de clase, cuestiones y soluciones y prácticas de laboratorio.
Los temas que se tratan son:
Fundamentos
Ultrasonidos
Líquidos penetrantes
Partículas magnéticas
Corrientes inducidas
Radiología
Control inteligente está incluido como unidad docente de la asignatura Control Avanzado de Sistemas impartido en la UMH por Ramón Pedro Ñeco García.
http://ocw.umh.es/ingenieria-y-arquitectura/control-avanzado
El objetivo general de las prácticas es que los alumnos diseñen y comprueben en simulación el comportamiento de los controladores estudiados en teoría. En particular:
- Estudiar el uso de técnicas combinadas de inteligencia artificial y control para sistemas de difícil modelado, o cuyo modelo no está disponible o contiene información imprecisa o para sistemas que necesitan variar los parámetros de control con el tiempo (control inteligente y adaptativo).
- Control borroso.
Se incorporan también transparencias de clase y ejemplos de examen.
Presentación para la asignatura de Habilidades Directivas del MBA de la Universidad de Alicante (Tema - Presentaciones Eficaces).
Puedes acceder a la presentación en VIDEO en:
https://present.me/view/119255-191-qu-233-estoy-haciendo-aqu-237
En esta presentación pretendo hacer reflexionar sobre la importancia de definir unos objetivos y una estrategia.
Prácticas y exámenes de control estocastico y de mínima varianzaJaime Martínez Verdú
Control estocástico y predictivo está incluido como unidad docente de la asignatura Control Avanzado de Sistemas impartido en la UMH por Rafael Puerto Manchón.
http://ocw.umh.es/ingenieria-y-arquitectura/control-avanzado
El objetivo general de las prácticas es que los alumnos diseñen y comprueben en simulación el comportamiento de los controladores estudiados en teoría. En particular:
- Diseño y simulación de reguladores de mínima varianza para procesos con y sin retardo.
- Diseño y simulación de reguladores predictivos.
Se incorporan también ejemplos de examen.
This document provides details on an experiment conducted on Chua's circuit, a chaotic electronic circuit. The document includes:
1) An introduction describing Chua's circuit and the goal of studying its synchronization properties.
2) A literature review covering the history of chaos theory and key discoveries like the Lorenz attractor.
3) A theoretical overview of the differential equations that model Chua's circuit and how it was implemented in MATLAB.
4) Experimental results from building and testing a physical Chua's circuit, including how its behavior changes with adjustments to resistor values.
5) Analysis of controlling and synchronizing the circuit by addressing factors like component tolerances that influence its chaotic behavior.
Este documento introduce el método de Euler para resolver numéricamente ecuaciones diferenciales ordinarias de primer orden. Explica que el método de Euler aproxima la derivada de la solución mediante un esquema hacia delante y calcula el valor de la solución en puntos discretos. Además, analiza el error de discretización del método y muestra que es de orden O(h), donde h es el tamaño del paso.
Tras recibir esta información de manos del del secretario técnico del Colegio Oficial de Ingenieros Industriales de la Comunidad Valenciana (Demarcación de Alicante), comparto con todos aquellos seguidores de este blog el texto en cuestión.
Se trata de un documento de Preguntas y Respuestas sobre la Certificación Energética de Edificios elaborado por la Comisión Permanente de la Comisión Asesora de la Certificación Energética de Edificios.
Este documento incluye las preguntas más frecuentes sobre la certificación de la eficiencia energética de los edificios, en relación con los siguientes aspectos:
1. Técnicos competentes
2. Ámbito de aplicación
3. Edificios ocupados por una autoridad pública
4. Edificios frecuentados habitualmente por el público
5. Condiciones técnicas y administrativas relativas a los certificados de eficiencia energética:
6. Etiqueta de eficiencia energética
Diapositivas sobre el trabajo de la asignatura de Ingeniería de Transporte de 5º de Ingeniería Industrial de la Universidad Miguel Hernández de Elche.
Profesor de la asignatura:
Alumnos: Javier Sogorb, Antonio Montón, Carmen Antona y Jaime Martínez.
El documento que presento es el resultado de un trabajo en grupo donde se analizaba la el Tema 7 de la asignatura, Grúas Auxiliares.
El tema 7, del que es objeto nuestro trabajo, se centra en las grúas auxiliares, tanto autopropulsadas como remolcadas. Para situarnos en este ámbito, en primer lugar se clasifican y describien los tipos de grúas auxiliares, tanto desde la perspectiva de la norma UNE, como desde la clasificación que realizan los catálogos consultados. Posteriormente se estudian los detalles técnicos y el principio de funcionamiento. Finalmente, se presenta un criterio de selección de grúas, aspectos de seguridad y también normativos.
En el final del documento puedes acceder a una serie de preguntas (con sus respectivas respuestas) sobre el mismo trabajo.
Este documento describe la Directiva Europea de Máquinas 2006/42/CE y la compara con el Real Decreto 1215/1997 de España sobre seguridad en máquinas. Explica la cronología de aplicación de ambas normativas y las principales diferencias y novedades introducidas por la Directiva, como requisitos más estrictos de seguridad y nuevos tipos de máquinas cubiertas.
Este documento presenta un curso sobre la homologación y reformas de vehículos. El curso cubre la normativa aplicable a la homologación, inspección técnica y reformas de vehículos, así como la redacción de proyectos técnicos de reforma. El programa incluye bloques sobre el análisis de la normativa, el manual de reformas, y la redacción de proyectos de reforma. El objetivo del curso es enseñar los cambios normativos relacionados con la homologación y reformas de vehículos y su aplicación práctica.
Este documento describe el diseño de un robot quirúrgico. Explica la cinemática directa e inversa del robot, incluyendo la matriz jacobiana. También cubre la dinámica directa e inversa mediante el uso de las ecuaciones de Newton-Euler. Finalmente, selecciona servomotores adecuados para cada articulación basándose en los pares máximos requeridos.
Estudio de investigación sobre técnicas de calibración de cámarasJaime Martínez Verdú
En este texto se pretende sintetizar un curso Calibración de Cámaras integradas a un Sistema de Visión Artificial. En este trabajo se plantea la existencia, inherente a cualquier Sistema de Visión Artificial, de un proceso de calibración de su cámara. Se considera como sistema de visión, una cámara de video con la suficiente capacidad técnica para realizar los estudios y lograr nuestros objetivos, así como los algoritmos desarrollados para calibrar la cámara.
Muchas técnicas diferentes, en la actualidad, muestran como obtener información 3D del mundo físico usando una imagen o secuencia de imágenes capturadas por una o más cámaras. Cada técnica incluye una serie de procesos que influyen directamente en lograr un rendimiento eficaz; dentro de éstos, el principal proceso es la calibración. La calibración es el inconveniente básico en aplicaciones de sistemas de visión en las que se pretenda obtener información geométrica del espacio. Este problema consiste en encontrar los valores de la posición y orientación de una cámara, así como sus propiedades ópticas, geométricas y digitales a partir de puntos conocidos en el espacio que son proyectados en una imagen. Es decir, la calibración de cámaras tiene como objetivo establecer los parámetros que intervienen en el proceso geométrico de formación de la imagen.
En la mayoría de los medios actuales, las propiedades de una cámara pueden considerarse como estables y conocidas por lo que el problema se reduce a determinar la orientación y posición del sistema de referencia de una imagen. Un modelo matemático que describa y relacione correctamente la información del espacio 3D y su correspondiente información 2D de una o unas imágenes, es la base principal de realizar una buena calibración. De hecho, la calibración depende de la precisión con que obtengamos la información del espacio y de la imagen.
El contenido de este texto comienza en el Capítulo 1 - Introducción que se trata una breve presentación al desarrollo del trabajo. Al Capítulo anterior le sucede el Capítulo 2 – Planteamiento matemático Geometría de la formación de imágenes y que realiza un estudio de las herramientas matemáticas en las cuales nos basaremos.
A continuación, se ilustrarán distintos modelos existentes para establecer la función de transferencia 3D 2D en un Sistema de Visión Artificial y se analizarán los algoritmos más conocidos para llevar a cabo la calibración del sistema. Entre los expuestos podremos encontrar los cuatro siguientes:
• Método de calibración del cálculo de la matriz de transformación perspectiva.
• Método de calibración de los dos planos.
• Método de calibración de Roger Y. Tsai.
• Técnica de Ayache.
• Técnica de Song De Ma.
• Método de calibración de Zhang.
Finalmente, realizaremos un breve estudio sobre el auge de las aplicaciones de un sistema de calibración de cámaras en la actualidad.
Con esta presentación se consigue proporcionar la información necesaria para adquirir las destrezas necesarias para la resolución de una necesidad informativa. Efectivamente, explica el acceso a las fuentes bibliográficas puesto que ayuda a conocer y manejar adecuadamente las herramientas de búsqueda bibliográfica que pueden resultar de interés. En concreto, se explica cómo llevar a cabo búsquedas en aquellas bases de datos de ínterés y que parámetros emplear para evaluar la información: Cienciometría, Bibliometría, indicadores directos e indirectos de la de la actividad científica,...
1. 1. Sistemas Informáticos de Tiempo Real 1
1.1. Definición 1
1.2. Tiempo Real VS Rapidez 1
1.3. Sistemas Informáticos de Tiempo Real y Sistemas Empotrados 1
1.4. Sistemas Informáticos de Tiempo Real Estrictos y No Estrictos 2
1.5. Tolerancia a Fallos 3
1.6. Sistemas Controlados por Eventos o por Tiempo 4
2. Ejemplos de Sistemas Informáticos de Tiempo Real 4
3. Características de los Sistemas Informáticos de Tiempo Real 5
3.1. Grandes y Complejos 5
3.2. Manipulación de Magnitudes Físicas 5
3.3. Extremadamente Fiables y Seguros 5
3.4. Concurrencia 6
3.5. Herramientas de Manejo en Tiempo Real 6
3.6. Implementación Eficiente 7
3.7. Lenguajes de Programación 7
2. Sistemas Informáticos en Tiempo Real Tema I
1. Sistemas Informáticos de Tiempo Real.
1.1. Definición.
Se trata de aquellos sistemas capaces de captar estímulos generados por
el entorno y dar una respuesta a éstos en un periodo de tiempo finito
especificado.
Se puede observar que en la definición se destacan dos aspectos que
definen y diferencian los Sistemas Informáticos de Tiempo Real de los demás:
• Tiempo de respuesta: Es un aspecto clave ya que “no importa que
sea capaz de generar la respuesta correcta sino que ésta se
produzca en un tiempo determinado”.
Por ejemplo, de nada sirve un airbag si éste se pone en
funcionamiento después de un choque.
• Lógica de respuesta: El sistema debe interactuar con el entorno
adquiriendo estímulos y estados de entorno, y generando una
acción sobre dicho entorno.
Estas dos características provocan que el Sistema Informático de Tiempo
Real deba tener un comportamiento general a expensas de los eventos que
ocurran. Esta es la dificultad de los Sistemas Informáticos de Tiempo Real
puesto que para ello debemos hacer que los componentes trabajen juntos ante
la aparición de eventos no predecibles, fallos...
1.2. Tiempo Real VS Rapidez.
Generalmente, se confunden los términos de Sistema Informático de
Tiempo Real y sistema rápido. Todos los programas deben ser lo
suficientemente rápidos como para cumplir los requisitos de los usuarios, pero
el hecho de que un programa sea rápido no significa que sea de tiempo real.
Tiempo real significa trabajar con la distribución física de los
componentes, con el manejo de estímulos impredecibles, con fallos en los
componentes, con la incertidumbre acerca del entorno y con el rendimiento y
robustez del sistema. Un Sistema Informático de Tiempo Real debe ser lo
suficientemente rápido, pero es sólo una parte a tener en cuenta.
1.3. Sistemas Informáticos de Tiempo Real y Sistemas Empotrados.
Para conseguir el propósito para el cual se ha diseñado un Sistema
Informático de Tiempo Real, los componentes interactúan entre sí y con el
entorno intercambiando información y compartiendo recursos, modificando su
comportamiento.
1
Tema I Introducción a los SISTEMAS INFORMÁTICOSDE TIEMPO REAL
3. Sistemas Informáticos en Tiempo Real Tema I
El entorno lo podemos descomponer en dos partes:
• El entorno activo es donde se engloban los operadores que
intervienen en el comportamiento del sistema modificando el
modo de operación.
• El entorno pasivo comprende a los usuarios interesados solamente
en el servicio proporcionado, y al ambiente exterior que no tiene
nada que ver con la existencia del sistema.
Los sistemas empotrados son aquellos que no precisan de un entorno
activo. Además, existen otros sistemas considerados sistemas empotrados.
Estos son los subsistemas que forman parte de un sistema ya que no es posible
una intervención directa del operador y la funcionalidad debe ser soportada
completamente desde su interior.
1.4. Sistemas Informáticos de Tiempo Real Estrictos y No Estrictos.
En los Sistemas Informáticos de Tiempo Real se requiere tanto que el
resultado sea correcto como que se genere en un tiempo determinado. Con
respecto a la corrección lógica podemos decir que suele expresarse en términos
de salidas y entradas correctas.
En función de la importancia que se le de a la corrección temporal en un
Sistema Informático de Tiempo Real se puede realizar la siguiente clasificación:
• SISTEMAS ESTRICTOS: Son aquellos sistemas en los que el
tiempo es tan importante que no puede ser sacrificado por una
mejora en otros aspectos. En algunos sistemas, la corrección
temporal llega a ser tan crítica, es decir, tan importante, que la
corrección lógica puede ser relajada en aras de alcanzar un
tiempo de respuesta determinado. Por ejemplo, el chequeo de la
altitud de una aeronave automática en tiempos prescritos puede
tener consecuencias catastróficas a no ser que la respuesta llegue
aunque sea de mala calidad.
• SISTEMAS NO ESTRICTOS: En este caso, la corrección temporal
ya no es un aspecto crítico. Si se produce un fallo provocando un
retardo en la llegada de información, éste no provoca
consecuencias serias en el funcionamiento general del sistema.
Las tareas catalogadas como no estrictas se ejecutarán lo más
rápido que sea posible, pero sin estar forzadas por tiempos
límites, pudiendo ser sacrificada la corrección temporal bajo
ciertas circunstancias.
2
Tema I Introducción a los SISTEMAS INFORMÁTICOSDE TIEMPO REAL
4. Sistemas Informáticos en Tiempo Real Tema I
En general, un sistema puede estar constituido por una combinación de
tareas de ambos tipos mediante una jerarquía de prioridades y permitiendo la
relajación temporal de aquellas tareas que lo permitan. O también puede estar
formado por tareas con tiempos estrictos y no estrictos a la vez, es decir, la
respuesta a un evento puede tener un tiempo límite no estricto de 50 ms (para
asegurar un funcionamiento óptimo) y uno estricto de 200 ms (para evitar
posibles daños a los usuarios o al funcionamiento del sistema). Cada vez que
pasa tiempo se produce una pérdida general de la calidad de la información.
A sí mismo, se pueden definir dos tipos de relajación temporal:
• Si no se cumple el tiempo límite la información pierde
completamente su valor. En tareas periódicas puede ser admisible que se
pierda la ejecución de alguna de ellas.
• Puede ocurrir que el servicio llegue tarde pero éste sea válido para
una cierto intervalo de tiempo.
ESTRICTO NO ESTRICTO
Impone un tiempo de respuesta determinista. Impone un tiempo de respuesta pero no determinista.
En caso de sobrecarga no se degrada la respuesta En caso de sobrecarga se degrada la respuesta.
Trabaja con volúmenes de datos pequeños Trabaja con volúmenes de datos grandes.
1.5. Tolerancia a Fallos.
A pesar de que los sistemas están diseñados para que generen un
resultado correcto y dentro de un intervalo determinado, éstos pueden fallar
exhibiendo así un comportamiento para el cual no fueron diseñados. Ya que los
fallos son inevitables, un sistema debe ser robusto frente a ellos, es decir, debe
presentar un comportamiento de “tolerancia a fallos”.
En función del comportamiento en caso de fallo, los sistemas se pueden
clasificar como:
• SISTEMAS CON PARADA SEGURA: En caso de fallo se coloca al
sistema en un estado seguro de parada. Son aquellos en los
cuales un error puede tener consecuencias catastróficas.
• SISTEMAS CON DEGRADACIÓN ACEPTABLE: En caso de fallo,
presentan un funcionamiento parcial con pérdida de funcionalidad
o prestaciones, aunque el sistema puede seguir funcionando a
pesar de esa merma.
3
Tema I Introducción a los SISTEMAS INFORMÁTICOSDE TIEMPO REAL
5. Sistemas Informáticos en Tiempo Real Tema I
1.6. Sistemas Controlados por Eventos o por Tiempo.
Otra clasificación está basada en el uso de eventos o de ciclos de reloj
como controlador de la ejecución de las diversas tareas. Existen dos tipos:
• ARQUITECTURA CONTROLADA POR EVENTOS (“event-driven” o
“interrupt-driven”): Se establece la ejecución de un componente
basándose en la aparición de una interrupción o señal generada
por un evento externo.
Por ejemplo, un robot móvil que se mueve por el espacio
ante la aparición de un obstáculo ejecuta la tarea de evitarlo que
hasta entonces estaba dormida.
• ARQUITECTURA CONTROLADA POR TIEMPO (“time-driven”):
Opera tratando los pulsos regulares del reloj como si fueran
señales de interrupción. Cuando el reloj alcanza ciertos valores
predefinidos, una acción apropiada es seleccionada para su
ejecución.
Ambos tipos de arquitectura tienen sus ventajas y sus desventajas. Los
sistemas manejados por tiempo son más sencillos y robustos puesto que
permiten interfaces entre subsistemas muy controlados y con un
funcionamiento independiente mientras que los sistemas basados en
interrupciones son sistemas más eficaces para responder a eventos externos no
regulares.
2. Ejemplos de Sistemas Informáticos de Tiempo Real.
Robótica:
Los robots son vehículos que
se desplazan por un espacio de
trabajo y que interactúan con el
entorno. El seguimiento de
trayectorias, la planificación de
trayectorias libres de obstáculos y
seguimientos de blancos, son tareas
que deben responder ante ciertos
estímulos en un periodo de tiempo. Figura 1.1. Aplicaciones de control de robots
Automoción:
La industria del automóvil ha cambiado de tal manera que los sistemas
que antes se basaban totalmente en conceptos mecánicos, hoy en día han
pasado a un estado donde los componentes electrónicos juegan un papel muy
importante. Sistemas como el de inyección electrónica, el de control de
encendido o el de antibloqueo tienen al computador como un elemento que
debe reaccionar en tiempo real ante eventos generados por el entorno.
4
Tema I Introducción a los SISTEMAS INFORMÁTICOSDE TIEMPO REAL
6. Sistemas Informáticos en Tiempo Real Tema I
Por ejemplo, la centralita de inyección debe
mostrar variables de velocidad, aceleraciones,
revoluciones y temperatura para determinar la
inyección de combustible óptima.
El sistema antibloqueo de frenos controla la
velocidad de cada rueda y las aceleraciones para
regular la presión adecuada sobre los discos de
Figura 1.2. Sistema de control
de encendido de un automóvil
freno para evitar el bloqueo y minimizar la
distancia de frenado.
3. Características de los Sistemas Informáticos de Tiempo Real.
3.1. Grandes y Complejos.
Escribir pequeños programas no presenta ninguna complejidad pudiendo
hacerlo una sola persona la mismo tiempo que no es muy complicado que otra
persona sea capaz de comprender su diseño y funcionamiento. Por eso se dice
que los pequeños programas se escriben de forma casi artesanal. A pesar de
esto, se deben seguir ciertas normas de diseño y codificación: BUEN ESTILO.
Para referirnos al término grande, usaremos la palabra variedad, es
decir, si un sistema es grande se dice que tiene mucha variedad. La variedad
puede ser las necesidades y actividades del mundo real que se reflejan en el
funcionamiento del programa. Puesto que la naturaleza está cambiando
constantemente, los programas que exhiben una gran variedad deben cambiar
también.
Puesto que los Sistemas Informáticos de Tiempo Real deben responder
ante eventos, deben ser grandes y complejos para poder atender cualquier tipo
de evento.
3.2. Manipulación de Magnitudes Físicas.
Sabemos que un Sistema Informático de Tiempo Real debe controlar
actividades del entorno mediante captura o activación de variables físicas.
Las señales físicas suelen ser analógicas por lo que deben ser
convertidas a información digital manejable por el computador. Para la captura
de señales se requiere un muestreo (adquisición de valores) y una
cuantificación (codificación en niveles). El período de muestreo (intervalo de
tiempo transcurrido entre dos capturas sucesivas) depende del tipo de señal.
3.3. Extremadamente Fiable y Seguro.
Es necesario tener como directriz para el diseño de Sistemas
Informáticos de Tiempo Real la FIABILIDAD y la SEGURIDAD, ya que muchos
controlan funciones vitales.
5
Tema I Introducción a los SISTEMAS INFORMÁTICOSDE TIEMPO REAL
7. Sistemas Informáticos en Tiempo Real Tema I
Un fallo en el generador de energía eléctrica que suministra la unidad de
cuidados intensivos puede ser catastrófico.
Un error del controlador de una planta química puede provocar daños
graves en los equipos o en el medio ambiente.
Esto nos dice que tanto el hardware como el software que operan en
estos sistemas deben ser extremadamente fiables y seguros. Tienen en cuenta
hasta el posible error humano.
3.4. Concurrencia.
Se trata de capacidad de un sistema para mantener varias tareas en
estados intermedios de ejecución. Puesto que pueden ocurrir dos o más
eventos de forma paralela, nuestro Sistema Informático de Tiempo Real debe
tener la capacidad de atenderlos de forma paralela.
SISTEMAS DE TIEMPO COMPARTIDO: Se trata de aquellos sistemas que,
por tener sólo una CPU, no pueden realizar tareas simultáneamente pero
pueden mantener varias tareas en un punto intermedio de ejecución,
ejecutando de forma alternativa.
SISTEMAS MULTIPROCESADORES: Permiten la ejecución de tareas de
forma simultánea de forma paralela.
SISTEMAS DISTRIBUIDOS: Permite el paralelismo y los computadores se
encuentran interconectados y geográficamente dispersos.
Debido a las dificultades y problemas que entraña permitir a un
programador que cree programas para sistemas con carácter concurrente se ha
optado por emplear otras herramientas de trabajo como las que aportan
lenguajes como Occam o ADA95 o por sistemas operativos como UNIX.
3.5. Herramientas de Manejo en Tiempo Real.
Es muy difícil diseñar sistemas que garanticen una respuesta apropiada
en el tiempo apropiado para toda condición. Por eso, los Sistemas Informáticos
de Tiempo Real se construyen con ciertos márgenes sobrantes, de modo que
este no produzca retardos en los períodos críticos ni en el peor de los casos.
Es preciso que se disponga de un soporte que permita:
- Especificar el tiempo de ejecución de cada tarea.
- Especificar el tiempo de finalización de cada tarea.
- Responder a situaciones donde no se cumplen los requerimientos
temporales.
- Responder a situaciones donde los experimentos temporales no
varíen.
6
Tema I Introducción a los SISTEMAS INFORMÁTICOSDE TIEMPO REAL
8. Sistemas Informáticos en Tiempo Real Tema I
3.6. Implementación Eficiente.
La eficiencia debe ser un objetivo en los Sistemas Informáticos de
Tiempo Real.
3.7. Lenguajes de Programación.
Lenguaje ensamblador:
• Muy Eficiente
• Difícil de implementar la concurrencia.
Lenguajes secuenciales de alto nivel:
• C, C++, Java, Pascal, Fortran, Jovial, Coral, RTL/2.
• Portables, y fáciles de programar.
• Lo incorporan soporte para la concurrencia (debe ser soportado
por el S.O.).
Lenguajes concurrentes de alto nivel:
• ADA95, Modula-2, PEARL, Mesa, CHILL.
• Soprte de la concurrencia y especificaciones temporales en el
propio lenguaje.
Comportamiento
Temporal
Modelo del Entorno
Descomposición
Abstracción
Diseño Especificación de
General requerimientos
Diseño
de Detalle
Implementación
Métodos de Prototipos
Formales
Implementación
Final Verificación
Test del
Prototipo
Figura 1.3. Fases en el diseño de una aplicación
7
Tema I Introducción a los SISTEMAS INFORMÁTICOSDE TIEMPO REAL
19. 1. Introducción 1
2. Procesos 1
2.1. Definición y propiedades 1
2.2. Estados de un proceso 2
2.3. Información adicional sobre los procesos 3
2.4. Creación y terminación de procesos 4
i) Creación de Procesos 4
ii) Terminación de Procesos 5
3. Threads 5
3.1. Ventajas de Trabajar con Threads 7
3.2. Inconvenientes de Trabajar con Threads 7
3.3. Modelos de Control de Threads 7
i) A Nivel de Usuario 7
ii) A Nivel de Núcleo 8
iii) A Nivel Híbrido 9
20. Sistemas Informáticos en Tiempo Real Tema II
1. Introducción.
Un sistema operativo potente (todos los Sistemas Operativos de Tiempo
Real) es aquel capaz de ejercer más de una tarea en el mismo instante de
tiempo, es decir, debe ser capaz de realizar tareas de forma concurrente.
Por ejemplo, un sistema operativo multitarea debe ser capaz de ejecutar
un programa del usuario al mismo tiempo que lee del disco o imprime un
documento.
Pueden existir varios mecanismos para conseguir que un Sistema
Operativo cumpla esta característica. Nosotros explicaremos dos:
• PARALELISMO:
Se trata de un método para que un Sistema Operativo pueda realizar
varias tareas haciendo uso de varios computadores. Los ordenadores se
conectan entre sí de modo que cada uno puede estar realizando una tarea
totalmente distinta a las que se ejecutan por los otros ordenadores, es decir,
cada computador realiza una tarea.
• PSEUDOPARALELISMO:
A partir de un único computador o procesador es posible ejecutar tareas
simultáneamente. En cada instante de tiempo sólo se realiza una tarea (en
períodos muy pequeños), pero cuando transcurre un cierto tiempo puede
haberse ejecutado parte de diversos programas dando la sensación de
paralelismo.
2. Procesos.
2.1. Definición y Propiedades.
Se puede definir como un programa que ha sido almacenado en la
memoria del computador y cuya existencia es conocida por el Sistema
Operativo.
¿Cómo se crea un proceso? Cuando el sistema operativo ejecuta un
programa, éste realiza una copia del código ejecutable y la almacena en la
memoria del computador (a partir de ese instante el programa pasa a ser un
proceso). Además del código ejecutable, el proceso consta de otra información
adicional:
- Pila de proceso que contiene datos temporales.
- Sección de datos con variables globales.
- Datos sobre planificación de los procesos.
1
Tema II Procesos y Threads
21. Sistemas Informáticos en Tiempo Real Tema II
Para que un proceso pueda ser gestionado de forma adecuada, éste
debe disponer de la anterior información adicional además del código
ejecutable.
Una diferencia entre programa y un proceso es que son una entidad
pasiva y una activa, respectivamente. Es decir, mientras que un proceso
experimenta cambios de estado, un programa es una entidad pasiva de cara al
sistema operativo.
2.2. Estados de un Proceso.
En cada instante, un proceso tiene asociado un estado que determinará
la actividad de dicho proceso dentro del sistema operativo. Existen tres
distintos:
• PREPARADO: El proceso está esperando que se le asigne un
procesador para poder ejecutarse.
• EN EJECUCIÓN: El proceso es “dueño” de un procesador y sus
instrucciones se están ejecutando.
• SUSPENDIDO: El proceso está esperando que suceda algún evento
como, por ejemplo, una operación de E/S.
Admitido
ACTIVO
TERMINADO
Elegido Por el
Planificador
NUEVO
PREPARADO EN
EJECUCIÓN
expulsión
Esperar evento
Fin del evento o E/S
o de E/S
SUSPENDIDO
Figura 2.1. Transiciones entre estados de un proceso
Con respecto al estado de suspendido podemos decir que, a veces, un
proceso debe quedar suspendido para no degradar el rendimiento del sistema,
es decir, si el proceso necesita la aparición de un evento para continuar
ejecutándose, éste pasa a estado suspendido y así permitir que el procesador
quede libre hasta que ocurra dicho evento (entonces, el proceso pasa a estado
preparado).
2
Tema II Procesos y Threads
22. Sistemas Informáticos en Tiempo Real Tema II
Veamos un ejemplo de vida de un proceso. Cuando llega un nuevo
proceso, éste pasa a estado preparado de forma inmediata. En ese instante
pueden suceder dos cosas:
a) Si no existe ningún procesador libre, el proceso permanece en estado
preparado.
b) Si existe un procesador libre, el proceso pasa a ejecución.
Una vez el proceso se está ejecutando y es “dueño” del procesador,
pueden suceder dos cosas:
a) Si no existen procesos en estado preparado, éste permanece en
ejecución.
b) Si existe otro proceso, el sistema operativo puede decidir conmutar
sus estados, es decir, el que está en ejecución deja libre el
procesador pasando a estado preparado y el que está en preparado
se hace dueño del computador y ejecuta su código.
El planificador de procesos es un constituyente del sistema operativo
encargado de realizar la planificación (es decir, es el planificador el que decide
cual debe ser el estado de un proceso en todo momento). Es una tarea de las
más críticas puesto que determina el rendimiento, en gran medida, del sistema.
2.3. Información Adicional Sobre Procesos.
La tabla de procesos es donde se almacena la información adicional de
cada proceso que va a ser gestionada por el sistema operativo. El registro de
cada proceso contiene información adicional sobre él mismo como:
• Contador de programa: Indicará la dirección de la siguiente
instrucción que el proceso ejecutará.
• Estado del proceso: preparado, en ejecución o suspendido.
• Registros de la CPU: los acumuladores, apuntadores a pila y registros
de propósito general. Esta información está junto al C.P. por si se
produce un error para permitir que el proceso continúe.
• Información de planificación: Aquí se incluye la prioridad del proceso
y otros parámetros de planificación.
• Información contable: tiempo utilizado, límites de tiempo, número de
proceso...
• Información de estado de E/S: Almacena las solicitudes, los
dispositivos asignados, lista de archivos abiertos...
3
Tema II Procesos y Threads
23. Sistemas Informáticos en Tiempo Real Tema II
0 1 2 n-3 n-2 n-1
PCB PCB PCB ……… PCB PCB PCB
PLANIFICADOR
Figura 2.2. Representación de una tabla de procesos
En resumen, en la tabla de procesos se guardará toda la información
necesaria para poder reanudar la ejecución de un proceso (como si nunca
hubiera parado) después de cambiar de estado, conocido, como cambio de
contexto. El encargado de acceder a cada uno de estos registros llamados
Process Control Block (PCB) es el planificador.
2.4. Creación y Terminación de Procesos.
Puesto que el sistema operativo ha de ser potente hemos de ejecutar
procesos de forma concurrente y por ello necesitamos crear un método de
creación y terminación dinámica de procesos.
i) Creación de Procesos.
Durante la ejecución de un proceso (denominado proceso padre) éste
puede crear varios procesos nuevos (denominados procesos hijo) con una
llamada al sistema. Esta llamada al sistema se puede realizar usando funciones
de C para así solicitar la creación de nuevos procesos.
Una vez creado un proceso hijo, el padre podrá continuar su ejecución
de dos formas distintas:
• Continuar ejecutándose concurrentemente con sus hijos.
• Esperar a que los procesos hijos terminen.
Un subproceso puede obtener sus recursos directamente del sistema o
puede estar restringido a los recursos del proceso padre, que debe compartir
algunos con sus hijos o dividirlos entre sus hijos. Restringiendo a los hijos, el
proceso padre evita la saturación del sistema por la creación de demasiados
subprocesos. En el momento de creación el proceso padre puede transferir
datos iniciales a su hijo.
Ejemplo de creación de procesos.
En UNIX, un proceso nuevo se crea utilizando la llamada fork()
duplicando el proceso padre en memoria. La diferencia entre padre e hijo es
que el código de retorno del hijo es cero, mientras que el del padre es el
identificador de proceso del hijo. Posteriormente, mediante una llamada al
sistema se pone a ejecutar el proceso hijo. En UNIX, el proceso padre por
excelencia es INIT ya que todos los hijos salen de él. A estos procesos hijos se
conocen como SHELL. Esta filosofía de UNIX permite la creación de procesos
hijos de forma dinámica.
4
Tema II Procesos y Threads
24. Sistemas Informáticos en Tiempo Real Tema II
Supongamos un caso de ejemplo en el cual el proceso padre tiene que
atender peticiones de servir una web. Para atenderla el proceso padre crea un
nuevo proceso que la atenderá y después se eliminará.
INIT
SHELL SHELL SHELL SHELL
Petición web Petición web Petición web Petición web
SHELL
Petición web
Figura 2.3. Política de creación de procesos en UNIX
ii) Terminación de Procesos.
La terminación se da cuando concluye la ejecución de su última línea y el
propio proceso solicita eliminarse. No obstante existen otras circunstancias en
las cuales se puede dar la terminación como, por ejemplo, a través de una
llamada al sistema (como la llamada Kill()), un proceso puede provocar la
terminación del otro. Por lo general, el proceso padre es el único que puede
terminarlos y cuando esto ocurre puede almacenar datos provenientes del
proceso hijo que ha terminado.
Ejemplo de terminación de procesos.
Cuando un padre elimina a su hijo se hace mediante la llamada exit()
que devuelve el identificador de proceso del hijo, de forma que el padre puede
distinguir cual de sus hijos a terminado.
3. Threads.
Lo que se va a estudiar ahora es el mecanismo que permite refinar
mucho más el concepto de concurrencia y paralelismo. Nosotros podemos
subdividir un proceso (que es como una “tarea gorda”) en las tareas que lo
componen pudiendo simplificarlo en hilos de ejecución. Los hilos de ejecución
son las instrucciones que se ejecutan ininterrumpidamente. Los threads son
estas instrucciones que se ejecutan secuencialmente y que componen el
proceso.
5
Tema II Procesos y Threads
25. Sistemas Informáticos en Tiempo Real Tema II
Desde el punto de vista del programa, la secuencia de instrucciones de
un hilo de ejecución es un flujo ininterrumpido. En cambio, desde el punto de
vista del sistema operativo, los hilos de ejecución no los detecta. Es como si
fueran en el “paquete” junto con los procesos y no hubiera que “darlos de alta”.
Por lo tanto, el sistema operativo no tiene nada que ver con los threads ni con
su planificación.
P1 P1
Hilos de ejecución
Figura 2.4. Hilos de ejecución en el interior de dos procesos P1 y P2
Digamos que los threads son como una evolución del concepto del
proceso puesto que, al no necesitar ningún sistema de comunicación entre
ellos, el intercambio de información es trivial y rápido. Además, estos no son
controlados por el sistema operativo dándoles una mayor libertad de ejecución.
De esto podemos decir que la utilización de threads proporciona una
estructura fiable de programación, aumenta la productividad y el tiempo de
respuesta.
Características básicas.
- Comparten tanto el código como los datos.
- Se evita el cambio de contexto, en gran medida.
- El sistema operativo no es consciente de su existencia.
Emplear threads tiene mucha importancia puesto que se consigue una
mejora del rendimiento del sistema al minimizar el tiempo perdido durante el
cambio de contexto:
Texto Cuando se conmuta, por ejemplo,
entre el estado de preparado y el de
T T
ejecución hemos de almacenar toda la
información relacionada con la ejecución del
Hilos
proceso en el PCB. Esto provoca que el
computador emplee un tiempo que va a ser
inútil. Con los threads el tiempo que tarda en
realizarse un cambio de contexto es mínimo.
Cuanto más grande es el periodo de tiempo
Datos de cambio de contexto mayor será la
degradación de la efectividad del sistema.
Figura 2.5. Ejecución de una tarea
6
Tema II Procesos y Threads
26. Sistemas Informáticos en Tiempo Real Tema II
3.1. Ventajas de Trabajar con Threads.
Obviando la complejidad de programación de los threads, éstos aportan
muchas más ventajas que los procesos. Estas son las siguientes:
• Aumento del rendimiento del paralelismo.
Si ejecutamos diferentes threads sobre procesadores diferentes
conseguiremos aumentar el rendimiento del sistema, eso si aprovechamos el
paralelismo del hardware.
• Aumento de productividad.
Puesto que utilizando los threads conseguiremos disminuir el tiempo
inútil de cambio de contexto, lo que obtenemos es que nuestro sistema sea
más efectivo y trabaje más.
• Disminución del tiempo de respuesta.
Ya que los threads comparten información y datos, el tiempo de cambio
de contexto es más pequeño pudiendo así terminar las tareas antes y dar una
respuesta más rápida.
• Uso más eficiente de los recursos del sistema.
Al utilizar threads en vez de procesos no nos hace falta la estructura de
datos completa que le hace falta al sistema para gestionar los procesos, sino
que con menos información los threads pueden ser gestionados aprovechando
más los recursos del sistema. Es más rentable y rápido de crear.
3.2. Inconvenientes de Trabajar con Threads.
• Mayor complejidad de programación.
• No todos los programas se pueden implementar con threads.
• La conversión de antiguos programas a su equivalente con threads no
es una tarea fácil.
3.3. Modelos de Control de Threads.
Existen tres modelos tradicionales de control de threads:
i) Threads a Nivel de Usuario.
Puesto que el sistema operativo donde se ejecutan no es capaz de
gestionarlos (es decir, el sistema operativo no tiene ninguna herramienta que
los soporte), los programas que trabajan con éstos, generalmente se enlazan
con unas bibliotecas (que traen definidas e implementadas funciones) que
contienen todos los elementos necesarios para dicha gestión.
7
Tema II Procesos y Threads
27. Sistemas Informáticos en Tiempo Real Tema II
Este método tiene dos características importantes:
• Los threads permanecen invisibles para el núcleo.
• Los threads compiten entre sí para adueñarse de los recursos
asignados el proceso al cual pertenecen.
Aunque este tipo de threads tienen poco gasto, se puede observar que
tienen ciertas desventajas:
• Si un thread queda en estado suspendido bloqueará el proceso a no
ser que exista otro thread especial que encargue de recuperar el
control mediante una determinada llamada al sistema.
• No se puede aprovechar el paralelismo de un multiprocesador puesto
que si un procesador se la asigna a un proceso, los threads que lo
componen no pueden ejecutarse en otro procesador.
Un programa, Un programa,
muchos hilos muchos hilos
Soporte en Soporte en
ejecución del ejecución del
lenguaje lenguaje
Núcleo del Sistema Operativo
= Espacio de direcciones = Construcción = Proceso
lingüística o hilo a
nivel de usuario
Figura 2.6. Modelo del Thread a Nivel de Usuario
ii) Threads a Nivel de Núcleo.
En este caso, son totalmente visibles por el núcleo y, además, son
entidades planificadoras, es decir, el sistema operativo proporciona un conjunto
de llamadas al sistema para manejarlos. Ahora los denominaremos procesos
ligeros y éstos pueden competir por los recursos del sistema y para que no
quede limitado al aprovechamiento del paralelismo. Como desventaja, el
manejo de estos threads puede ser costoso al igual que el de procesos pesados
aunque en operaciones de cambio de contexto y compartición de datos sean
diez veces más rápidos.
8
Tema II Procesos y Threads
28. Sistemas Informáticos en Tiempo Real Tema II
Un programa, Un programa,
muchos hilos muchos hilos
Soporte en Soporte en
ejecución del ejecución del
lenguaje lenguaje
Núcleo del Sistema Operativo
= Espacio de direcciones = Construcción = Proceso
lingüística o hilo a
nivel de usuario
Figura 2.7. Modelo de Thread a Nivel de Núcleo
iii) Threads a Nivel Híbrido.
Este tipo de control ofrece ventajas de los de a nivel de usuario y los de
a nivel de núcleo. El usuario escribe el programa en términos de hilos a nivel de
usuario y después especifica cuantos threads son visibles para el núcleo y
pueden, por tanto competir por los recursos del sistema sin verse limitados por
los recursos del proceso al cual pertenecen.
Los threads a nivel de usuario se llaman threads y los threads a nivel de
núcleo se llaman procesos ligeros. Este es el sistema óptimo para un Sistema
Informático de Tiempo Real ya que presenta los caracteres favorables de cada
tipo.
Un programa, muchos hilos
u1 u2
Soporte en ejecución del
lenguaje
Núcleo del Sistema Operativo
= Espacio de direcciones = Construcción = Proceso
lingüística o hilo a
nivel de usuario
Figura 2.8. Modelo de Thread Híbrido
9
Tema II Procesos y Threads
29. 1. Introducción 1
1.1. ¿Qué es POSIX? 1
1.2. Programación de Sistemas concurrentes 1
2. Llamadas al Sistema 2
3. Llamadas al Sistema para Gestión de Procesos 4
3.1. Llamada al Sistema fork() 4
3.2. Llamadas al Sistema getpid() y getpid() 6
3.3. Llamadas al Sistema wait() y waitpid() 7
3.4. Llamadas al Sistema exec() 7
3.5. Llamada al Sistema exit() 8
30. Resumen del tema III – Funciones POSIX 1
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open (const char path, int oflag,…);
Etiqueta Descripción
S_IRUSR bit de permiso de lectura para el propietario
S_IWUSR bit de permiso de escritura para el propietario
Etiqueta Descripción S_IXUSR bit de permiso de ejecución para el propietario
O_RDONLY Abre el fichero en modo sólo escritura S_IRWXU lectura, escritura y ejecución para el propietario
O_WRONLY Abre el fichero en modo sólo escritura S_IRGRP bit de permiso de lectura para el grupo
O_RDWR Abre el fichero en modo lectura / escritura S_IWGRP bit de permiso de escritura para el grupo
S_IXGRP bit de permiso de ejecución para el grupo
O_APPEND Abre el fichero en modo “añadir al final”
S_IRWXG lectura, escritura y ejecución para el grupo
O_CREAT Crea el fichero si no existe
S_IROTH bit de permiso de lectura para otros
O_TTRUNC Abre el fichero existente y lo trunca a 0 S_IWOTH bit de permiso de lectura para otros
S_IXOTH bit de permiso de lectura para otros
S_IRWXO lectura, escritura y ejecución para otros
S_ISUID fija el ID del usuario al momento de la ejecución
S_ISGID fija el ID del grupo al momento de la ejecución
#include <sys/types.h>
#include <unistd.h>
ssize_t write (int fildes, const void buf, size_t nbytes);
ssize_t read (int fildes, const void buf, size_t nbytes);
#include <sys/types.h>
#include <unistd.h>
pid_t fork (void);
#include <sys/types.h>
#include <unistd.h>
uid_t getpid (void);
uid_t getppid (void);
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait (int *stat_loc);
pid_t waitpid (pid_t pid, int *stat_loc, int options);
#include <unistd.h>
int execl (const char *path, const char *arg0, ..., const char *argn,
char /*NULL*/);
int execle (const char *path, const char *arg0, ..., const char *argn,
char /*NULL*/, char *const envp[]);
int execlp (const char *file, const char *arg0, ...,const char *argn,
char /*NULL*/);
#include <uninst.h>
int execv (const char *path, char const *argv[]);
int execve (const char *path, char const *argv[], char *const envp[]);
int execvp (const char *file, char const *argv[]);
#include <stdlib.h>
void exit (int status);
Resumen del tema III – Funciones POSIX 1
31. Sistemas Informáticos en Tiempo Real Tema III
1. Introducción.
1.1. ¿Qué es POSIX?
En este tema estudiaremos las herramientas necesarias para programar
sistemas concurrentes ya que todos los sistemas Informáticos de Tiempo Real
cumplen esta propiedad.
Debido a la necesidad de estandarizar los distintos sistemas UNIX (la
diferencia de programación y la falta de portabilidad del código provoca estas
diferencias a nivel de sistema entre los distintos sistemas operativos UNIX) la
IEEE ha desarrollado un grupo de estándares: POSIX (Potable Operating
System Interface). Este especifica la interfaz entre el sistema operativo y el
usuario de modo que los usuarios podemos interactuar con el sistema
operativo. Gracias a esta estandarización se permite que los programas de las
diversas aplicaciones sean transportables entre distintas plataformas.
Estándar Descripción
POSIX.1 Interfaz del sistema para programas de aplicación (API) en lenguaje C
POSIX.1b Rectificación 1 del API: Extensión de tiempo real en C
POSIX.1c Rectificación 2 del API: Extensión de hilos de control
POSIX.2 Intérprete de comandos y útiles
POSIX.4 Ahora llamado POSIX.1c
POSIX.5 POSIX.1 lenguaje ADA
POSIX.6 Seguridad
POSIX.7 Administración del sistema
Tabla 3.1. Algunos estándares POSIX
1.2. Programación de Sistemas Concurrentes.
Con respecto a la programación concurrente en UNIX podemos decir que
se realiza de dos maneras:
• Mediante la implementación de programas en un lenguaje diseñado para
dar soporte a la concurrencia como Java o Ada. La concurrencia la
proporciona el lenguaje.
• Mediante la utilización del lenguaje (estándar bajo un sistema UNIX que
cumpla el estándar POSIX). La concurrencia, en este caso, la proporciona
el sistema operativo. En UNIX, los procesos solicitan servicios al sistema
utilizando llamadas al sistema (éstas son puntos de entrada directa al
núcleo). El núcleo es una colección de programas muy eficaces que
gobiernan el control del sistema operativo.
Aparte de las llamadas (que son parte intrínseca del núcleo) están
disponibles muchas funciones de la biblioteca que pueden o no hacer uso de
llamadas al sistema.
1
Tema III Funciones POSIX 1
32. Sistemas Informáticos en Tiempo Real Tema III
Programas de usuario (procesos)
2. Llamadas al Sistema.
Son un conjunto de servicios Interfaz de llamadas al sistema
básicos, proporcionados por el sistema
operativo, que definen una vía de
Kernel
comunicación entre un proceso y el
sistema operativo. Con interrupciones se
consigue la implementación de las Hardware (Recursos)
llamadas al sistema que en UNIX se
clasifican en 5 categorías: Figura 3.1. Llamadas al sistema
1. Llamadas al sistema para gestión de procesos.
2. Llamadas al sistema para gestión de señales.
3. Llamadas al sistema para gestión de memoria.
4. Llamadas al sistema para gestión de ficheros y directorios.
5. Llamadas al sistema para gestión de Entrada/Salida.
Veamos a continuación un ejemplo sencillo de la creación de un fichero
(si este no existe) y en el cual se escribe la cadena “Esto es un ejemplo”:
Usando la llamada open() podemos abrir o crear un nuevo fichero. La
sintaxis es:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open (const char path, int oflag,…);
donde el primer argumento es el nombre del fichero que se quiere abrir
y el segundo indica el modo en que se va a abrir el fichero (estos modos se
representan mediante etiquetas predefinidas en el fichero cabecera fcntl.h).
Cabe decir que podemos utilizar el operador lógico OR para obtener un efecto
combinado.
Etiqueta Descripción En el caso de que se vaya a
O_RDONLY Abre el fichero en modo sólo escritura crear un fichero, los puntos
O_WRONLY Abre el fichero en modo sólo escritura
O_RDWR Abre el fichero en modo lectura / escritura suspensivos se sustituyen por un
O_APPEND Abre el fichero en modo “añadir al final” tercer parámetro de tipo mode_t
O_CREAT Crea el fichero si no existe que especifica los permisos del
O_TTRUNC Abre el fichero existente y lo trunca a 0
fichero que se va a crear.
Tabla 3.2. Modos de apertura de un fichero
Usuario Grupo Otros
r w x r w x r w x
Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Figura 3.2. Patrón de la máscara de permisos
2
Tema III Funciones POSIX 1
33. Sistemas Informáticos en Tiempo Real Tema III
Etiqueta Descripción Los archivos pueden ser
S_IRUSR bit de permiso de lectura para el propietario
S_IWUSR bit de permiso de escritura para el propietario empleados por: un usuario, un grupo o
S_IXUSR
S_IRWXU
bit de permiso de ejecución para el propietario
lectura, escritura y ejecución para el propietario
el resto. Los permisos de cada una de
S_IRGRP bit de permiso de lectura para el grupo estas clases son: leer (r), escribir (w) y
S_IWGRP bit de permiso de escritura para el grupo
S_IXGRP bit de permiso de ejecución para el grupo
ejecutar (x). Cada fichero tiene
S_IRWXG lectura, escritura y ejecución para el grupo asociados 9 bits donde cada BIT a 0 o
S_IROTH bit de permiso de lectura para otros
S_IWOTH bit de permiso de lectura para otros a 1 quita o da el permiso
S_IXOTH
S_IRWXO
bit de permiso de lectura para otros
lectura, escritura y ejecución para otros
correspondiente.
S_ISUID fija el ID del usuario al momento de la ejecución
S_ISGID fija el ID del grupo al momento de la ejecución
Con respecto a dos operaciones
Tabla 3.3. Etiquetas de permisos de un fichero básicas con ficheros: leer y escribir,
podemos decir que se utilizan a través
de las llamadas al sistema read() y write(). La llamada read() y write() tiene la
siguiente definición:
#include <sys/types.h>
#include <unistd.h>
ssize_t write (int fildes, const void buf, size_t nbytes);
ssize_t read (int fildes, const void buf, size_t nbytes);
Esta llamada intenta escribir (respectivamente leer) nbytes bytes
tomados del buffer buf en el archivo cuyo descriptor es fildes. Si esta llamada
tiene éxito entonces devuelve el número de bytes escritos. El ejemplo sería el
siguiente:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#define BLKSIZE 100
void main (void)
{
int fd, bytes_escritos, bytes_leidos; /*descriptor de fichero*/
char buffer[BLKSIZE];
mode_t modo = S_IRWXU; /* modo de r, w y x para el propietario*/
strcpy(buffer, "Esto es un ejemplon");
if ((fd = open ("ejemplo", O_RDWR | O_CREAT, modo))== -1)
/*abre el fichero ejemplo en modo lectura/escritura o lo
crea si no existe */
perror ("Error al abrir o crear el fichero");
/*muestra un error si no puede abrir/crear el fichero*/
else
{
bytes_escritos = write(fd, buffer, strlen(buffer));
/* escribe buffer de tamaño sizeof(buffer) en fd */
bytes_leidos = read(fd, buffer, BLKSIZE);
buffer[bytes_leidos]='0';
printf("%s son %d n", buffer, bytes_leidos);
}
exit(0);
}
3
Tema III Funciones POSIX 1
34. Sistemas Informáticos en Tiempo Real Tema III
3. Llamadas al Sistema para Gestión de Procesos.
3.1. Llamada al Sistema fork().
La función fork() permite la creación de un nuevo proceso, que es una
copia exacta (un doble con un nuevo identificador pero con el mismo código).
Una vez creado el hijo, éste comienza su ejecución en la línea siguiente a la
última llamada a la función fork(), es decir, a partir de cuando fue creado. La
sintaxis es:
#include <sys/types.h>
#include <unistd.h>
pid_t fork (void);
Se puede observar que no tiene ningún parámetro y devuelve un entero.
fork() devuelve el identificador de procesos del nuevo proceso creado al
proceso padre y devuelve un cero al hijo. Si en un programa escribo la función
fork(), no tengo que pasarle ningún parámetro, pues se supone que el proceso
hijo creado es del proceso o programa que estamos escribiendo. El proceso hijo
se empieza a ejecutar a partir de la línea donde se a realizado la llamada fork().
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
void main (void)
{
int pid;
pid = fork();
switch (pid)
{
case -1: perror ("No se ha podido crear el hijo");
break;
case 0: printf("Soy el hijo, mi PID es %d y mi PPID es
%dn", getpid(), getppid());
break;
default: printf ("Soy el padre, mi PID es %d y el PID de
mi hijo es %dn", getpid(), pid);
}
exit(0);
}
El ejemplo se puede expresar gráficamente como:
PADRE
………………………
……………………… Comienza su ejecución
……………………… después del fork ()
fork ()
……………………… HIJO ………………………
……………………… ……………………… Este fragmento de
……………………… ……………………… código no es ejecutado
fork ()
………………………
……………………… Este fragmento de
……………………… código si es ejecutado
Figura 3.3. Uso de la función fork () 4
Tema III Funciones POSIX 1
35. Sistemas Informáticos en Tiempo Real Tema III
El proceso hijo hereda del padre lo siguiente:
- Con qué permisos se crean los ficheros.
- Variables de entorno y argumentos, es decir, las condiciones en que
se va a ejecutar el proceso.
- Descriptores de fichero.
El proceso hijo difiere del padre en lo siguiente:
- El proceso hijo tiene su propio identificador PID.
- El hijo tiene el identificador del padre PPID, de forma que sabemos
cual es su padre (Parent Process Identificator).
- Como los sistemas operativos UNIX tienen un contador que mide
cuánto tiempo lleva un proceso ejecutándose, se inicializa la
información de contabilidad del proceso hijo.
Los errores que pueden darse al ejecutar la llamada fork() son:
- Saturación del sistema por sobrepasar el límite de procesos
permitidos.
- Excedente de procesos máximos para un usuario.
- Insuficiencia en la memoria.
Si la función fork() devuelve un –1 esto significa que no se ha podido
crear un hijo. Con respecto a la ejecución del fork() en un proceso, es necesario
realizar una aclaración. Al ejecutarla, se crea un hijo cuyo código es igual pero
con el contador de programa señalando a la línea siguiente al fork() que lo ha
creado.
Cuando se ejecuta la línea de código 5 (por ejemplo), donde está el
fork(), se crea un hijo del proceso padre.
En este momento, tenemos dos hilos de ejecución, es decir, de un
programa ejecutándose, se pasa a leer dos (el mismo que ya estaba
ejecutándose y un programa hijo, que se ejecuta a partir de la línea que lo
creó). Por tanto, el proceso P2 comienza a ejecutarse en la línea posterior al
fork() que lo ha creado. Ahora tengo dos programas que se están ejecutando
en un determinado orden, que ya veremos (primero P1 y luego P2, a la vez,
primero P2 y luego P1,...). Supongamos que van ejecutándose a la vez.
5
Tema III Funciones POSIX 1
36. Sistemas Informáticos en Tiempo Real Tema III
P1
#include <stdio.h> Las llaves indican el
código ejecutado por
int main (void) cada proceso
{
…………………………………………………
…………………………………………………
SE CREA UN HIJO DE P1
pid1 = fork ( );
P2
pid2 = fork ( );
#include <stdio.h>
…………………………………………………
…………………………………………………
SE CREA OTRO
int main (void)
HIJO DE P1
} {
…………………………………………………
…………………………………………………
pid1 = fork ( );
SE CREA UN
HIJO DE P2
P3 pid2 = fork ( );
…………………………………………………
#include <stdio.h>
…………………………………………………
}
int main (void)
{
………………………………………………… P4
…………………………………………………
#include <stdio.h>
pid1 = fork ( );
int main (void)
{
pid2 = fork ( ); …………………………………………………
…………………………………………………
…………………………………………………
………………………………………………… pid1 = fork ( );
}
pid2 = fork ( );
…………………………………………………
…………………………………………………
Figura 3.4. Creación de procesos hijo }
El proceso P1 tiene en la siguiente línea de código otro fork(), por lo que
vuelve a crear otro hijo suyo, que se ejecutará a partir de la línea siguiente. Al
mismo tiempo, el proceso P2 tiene en la línea que empieza a ejecutar un fork(),
por lo que crea un hijo suyo que se empezará a ejecutar a partir de ese fork()
que lo ha creado.
En total, se han creado 3 hijos, y de 1 programa en ejecución o proceso
que teníamos al principio, tenemos ahora 4 procesos ejecutándose en el orden
en que determine el planificador.
3.2. Llamadas al Sistema getpid() y getppid().
Ambas se definen de la siguiente forma:
#include <sys/types.h>
#include <unistd.h>
uid_t getpid (void);
uid_t getppid (void);
Con estas llamadas obtenemos las PID’s del proceso que la invoca y de
su proceso padre respectivamente. El tipo uid_t es un entero predefinido en
<sys/types.h>.
6
Tema III Funciones POSIX 1
37. Sistemas Informáticos en Tiempo Real Tema III
3.3. Llamada al Sistema wait() y waitpid().
Si un padre desea esperar hasta que el proceso hijo termine de
ejecutarse, éste debe realizar la llamada al sistema wait o waitpid que se
definen como sigue:
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait (int *stat_loc);
pid_t waitpid (pid_t pid, int *stat_loc, int options);
La llamada wait() suspende la ejecución del proceso que lo invoca hasta
que finaliza alguno de sus hijos. Si el padre ejecuta esta llamada, se le notifica
la terminación y el código de terminación del proceso hijo.
Si el padre no está ejecutando wait() y termina, entonces no espera a
que su proceso hijo termine. Por tanto, la conexión entre el proceso hijo y su
padre desaparece y el proceso hijo sigue ejecutándose sin que se entere el
padre.
3.4. Llamada al Sistema exec().
La familia de llamadas exec() cambia la imagen de memoria de un
proceso por el contenido de un fichero ejecutable. La forma habitual de utilizar
la combinación fork/exec es dejar que el hijo ejecute exec() mientras el padre
continua la ejecución normal. Existen 6 variaciones de exec() que se distinguen
por la forma en que son pasados los argumentos de la línea de comandos y el
entorno que utilizan. Las seis variaciones se pueden agrupar en dos grupos:
• Llamadas execl: execl(), execlp(), execle().
Las llamadas execl (execl(), execlp(), execle()) pasan los argumentos de
la línea de comandos del programa mediante una lista. Son útiles si se conoce
el número de argumentos que se van a pasar
#include <unistd.h>
int execl (const char *path, const char *arg0, ..., const char *argn,
char /*NULL*/);
int execle (const char *path, const char *arg0, ..., const char *argn,
char /*NULL*/, char *const envp[]);
int execlp (const char *file, const char *arg0, ...,const char *argn,
char /*NULL*/);
execle() permite pasar nuevos valores de variables de entorno.
execlp() permite tomar el path por defecto del entorno.
7
Tema III Funciones POSIX 1
38. Sistemas Informáticos en Tiempo Real Tema III
• Llamadas execv: execv(), execvp(), execve().
Pasan los argumentos de la linea de comando en un array de argumentos.
#include <uninst.h>
int execv (const char *path, char const *argv[]);
int execve (const char *path, char const *argv[], char *const
envp[]);
int execvp (const char *file, char const *argv[]);
execve() permite pasar nuevos valores de variables de entorno.
execvp() permite tomar el path por defecto del entorno.
3.5. Llamada al Sistema exit().
Fuerza la terminación de un proceso devolviendo un código de error.
Está implícita en la terminación de todos los procesos. Al finalizar un proceso se
recuperan todos los recursos asignados al proceso.
Si el padre del proceso que termina está ejecutando wait() se le notifica
la terminación y el código de terminación sólo cuando termine de realizar dicha
espera. Si el padre no ejecuta wait() el proceso se transforma en un proceso
zombie huérfano hasta que es adoptado por INIT. La sintaxis sería la siguiente:
#include <stdlib.h>
void exit (int status);
El campo status se emplea para imprimir un mensaje de error por
pantalla si ha ocurrido un error, ya que el valor de status indicará el mensaje
que saldrá por pantalla.
8
Tema III Funciones POSIX 1