lectura 1

Anuncio
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 12: Lección Evalutiva 3
LECTURA 1
Componentes del Sistema Operativo
El SO está compuesto por un conjunto de paquetes de Software que pueden
utilizarse para gestionar las interacciones con el Hardware y con los programas de
aplicación. Por lo general este conjunto de Software incluye los siguientes
elementos:
1. El núcleo o Kernel.
Es el componente Software central de la mayoría de los sistemas operativos se
encarga de facilitarle a los distintos programas el acceso al Hardware del sistema,
en otros términos es el encargado de gestionar los recursos a través de la
comunicación entre procesos y/o llamadas de servicio del sistema. Esta capacidad
de gestión de recursos del Kernel se basa en el diseño de sistemas
computacionales como una serie de niveles de abstracción en los cuales cada
nivel soporta su funcionamiento en los servicios que le brinda el nivel
inmediatamente inferior, desde este punto de vista el Kernel es simplemente el
nombre que se da al nivel de abstracción más bajo implementado en Software, es
decir el más cercano al Hardware.
Teniendo en cuenta que los recursos de un sistema son limitados, el Kernel se
encarga de decidir qué programa puede hacer uso de un dispositivo Hardware y el
tiempo en que lo puede hacer.
El núcleo tiene como función básica garantizar la carga y ejecución de los
procesos, el manejo de las entradas/salidas del sistema y de brindar una interfaz
entre este y los programas de usuario. Entre otras el Kernel realiza las siguientes
Funciones:
·Comunicación entre programas y Hardware.
·Gestión de los diferentes programas informáticos (Tareas o Procesos).
·Gestión del Hardware (memoria, procesador, periféricos y dispositivos de
almacenamiento).
2. Tipos de Kernel.
El Kernel puede clasificarse en función del tamaño y de las funcionalidades que
posea. Realmente, y pese a seguidores incondicionales en un modelo u otro,
1
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 12: Lección Evalutiva 3
existe una tendencia básica a reducir el tamaño del núcleo proporcionando menos
funcionalidades, que son desplazadas a módulos que se cargan en el momento de
la ejecución. En función a esta idea existen tres tipos fundamentales de Kernel:
·Kernel monolítico:
Todas las funcionalidades posibles están integradas en el sistema. Se trata de un
programa de tamaño considerable que se debe recompilar por completo cada vez
que se añade una nueva función. Esta es la estructura original de Linux. Por
tratarse de una técnica clásica y desfasada el creador de Linux fue muy criticado.
·Kernel modular:
Se trata de la tendencia actual de desarrollo. En el Kernel se centran las
funcionalidades esenciales como la administración de memoria, la planificación de
procesos, etc. Sin embargo no tiene sentido que el núcleo de un sistema operativo
englobe todos los elementos requeridos para comunicarse con todas los posibles
periféricos de un sistema teniendo en cuenta la gran variedad tanto de modelos
como de fabricantes disponibles.
En otros sistemas operativos esto se soluciona con unos archivos proporcionados
por el fabricante de los dispositivos llamados Drivers. En Linux se creó una interfaz
adecuada para posibilitar el desarrollo de módulos que cumplieran esas
funcionalidades. Esos módulos pueden ser compilados por separado y añadidos al
Kernel durante el tiempo de ejecución.
·Estructura de micro-Kernel:
Esta técnica pretende reducir a su mínima expresión el Kernel, dejando a los
niveles superiores el resto de las funcionalidades. Existen algunos Kernels que lo
utilizan, por ejemplo el Hurd, Se trata del último Kernel GNU llamado a sustituir a
Linux como núcleo del sistema operativo. Aunque esta estrategia de diseño es tan
antigua como la modular, no ha sido tenida en cuenta hasta ahora debido a las
limitaciones de rendimiento que presenta
3. Intérprete de comandos (Shell).
Este posibilita la comunicación con el SO a través de un lenguaje de control
basado en comandos que se introducen por el usuario a través de un teclado, p.e.
printf, la respuesta del SO se presenta a través de algún periférico o display, estos
comandos permiten al usuario controlar los periféricos sin conocer
específicamente las características del Hardware utilizado, así como la gestión de
las direcciones físicas, etc. Se interactúa con la información de la forma más
sencilla posible sin gráficas, solo texto.
2
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 12: Lección Evalutiva 3
4. El sistema de archivos.
Un sistema de archivos es una base de datos de propósito especial implementada
para el almacenamiento, organización y recuperación de archivos de datos; en
otras palabras, es un método de organización y almacenamiento de archivos de
datos en las diferentes unidades de almacenamiento con las que pueda contar un
sistema dado, la finalidad del sistema de archivos es la de hacer fácil la ubicación
y acceso de los mismos, normalmente los archivos son registrados en una
estructura arbórea.
LECTURA 2
Tipos de Sistemas que Utilizan Linux Embebido.
En esta sección en lugar de clasificar los sistemas embebidos en segmentos de
mercado como el aeroespacial, telecomunicaciones, electrónica de consumo, etc.
Serán clasificados por criterios que aporten alguna información sobre la estructura
del sistema. A continuación se presenta esta clasificación:
1. Tamaño.
Existen diferentes factores para clasificar un sistema embebido teniendo en cuenta
el tamaño, uno de ellos es el tamaño físico que puede llegar a ser en un momento
dado un determinante de las capacidades del sistema en cuestión, por otro lado se
tiene en cuenta el tamaño o capacidades de los dispositivos que componen el
sistema embebido, esto incluye la velocidad del procesador, tamaño de la
memoria y de la capacidad de almacenamiento permanente (disco duro o memoria
Flash).
En lo referente al tamaño se manejan tres rangos o categorías de sistemas:
·Pequeños: Caracterizados por una CPU de baja potencia con un mínimo de 4MB
de memoria ROM y entre 16 y 32 MB de RAM, esto no quiere decir que Linux no
se pueda ejecutar en espacios de memoria inferiores aunque esto requiera un
mayor esfuerzo a una mínima ganancia teniendo en cuenta los actuales precios de
las memorias.
·Medios: Caracterizados por contener una CPU de mediana potencia con un
mínimo de 32 MB de ROM o mas, y entre 64 y 128 MB de RAM. La mayoría de
sistemas de electrónica de consumo como PDA’s, Reproductores de MP3, etc.
3
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 12: Lección Evalutiva 3
Caen en esta clasificación, muchos de estos pueden contar con unidades de
almacenamiento secundarios, estos sistemas cuentan con el poder suficiente para
ejecutar diferentes tareas simples o al menos una que requiera muchos recursos.
·Grandes: Son sistemas que cuentan con procesadores muy poderosos
combinados con grandes cantidades de memoria RAM y unidades de
almacenamiento permanente, se emplean usualmente en ambientes donde se
requieren grandes cantidades de cálculos como por ejemplo Switches para
telecomunicaciones, simuladores de vuelo y muchas otras aplicaciones. El diseño
de estos sistemas depende básicamente de su funcionalidad más que en factores
como costos, tamaño o recursos que quedan relegados a un segundo plano.
La anterior clasificación excluye a los procesadores con una arquitectura de
memoria menor a 32 bits a correr con Linux, aunque no obstante se encuentren en
la red proyectos de investigación que pueden haber generado puertos de Linux
que hayan funcionado en procesadores de 16 bits, se trata de casos muy
puntuales y no existe el soporte suficiente, con mayor razón para procesadores de
8 bits que no existe soporte alguno para Linux, cualquier incursión sería mera
investigación.
2. Limitantes de Tiempo.
Existen dos tipos de limitantes de tiempo:
·Rigurosas: Estas requieren que la respuesta del sistema se limite a unas franjas
predefinidas de otra forma eventos no deseables y hasta catastróficos pueden
ocurrir. Se emplea el término catastrófico en el sentido de que existen sistemas en
los cuales cualquier falla puede desembocar en accidentes o pérdidas humanas.
Por ejemplo un sistema de seguridad de una guillotina mecánica en el que una
cámara de video apunta a las hojas de corte, debe detectar la presencia del color
de los guantes que utilicen los empleados y detener su función inmediatamente no
puede esperar a que se ejecute otra rutina o que se termine alguna acción de lo
contrario alguien puede perder una mano. Un sistema de este tipo se conoce
como un sistema de “tiempo real duro”. También existen sistemas de “Tiempo
Real Blandos” cuando las aplicaciones tienen requisitos de tiempo rigurosos pero
la falla del sistema no desemboca en una catástrofe por ejemplo un sistema de
telefonía celular puede soportar uno que otro fallo en la señal pero no es aceptable
que esto ocurra constantemente.
·Suaves: estas pueden tener variados requerimientos pero generalmente aplican
en sistemas en los que los tiempos de respuesta no son tan críticos por ejemplo
4
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 12: Lección Evalutiva 3
una PDA puede tardarse unos segundos mientras carga una aplicación y no
afectar al usuario.
3. Adaptabilidad de Funciones de Red.
Esta característica define si un sistema puede ser conectado a una red, en la
actualidad gracias a las economías de escala y a la estandarización de los
componentes de red, además las demostradas capacidades de red del Linux se
podría esperar y de hecho hay la posibilidad de que cualquier sistema se pueda
accesar a través de la red. Electrodomésticos simples como una nevera, una
tostadora o una cafetera pueden ser manipulados por medio de la red.
4. Interacción con el Usuario.
El grado de interacción con el usuario puede cambiar de sistema en sistema por
ejemplo una PDA o teléfono celular pueden basar su funcionamiento en la
interacción con el usuario por medio de una interfaz gráfica, por otro lado un
sistema de control industrial puede constar solo de Led’s y botones, como también
existen sistemas que no presentan medios de interacción de ningún tipo, por
ejemplo el sistema de navegación automática de un avión.
LECTURA 3
Diferencias entre Linux y µClinux
µClinux proviene del sistema operativo Linux. En vista de que este sistema
operativo soporta procesadores que no cuentan con MMU, varias son las
diferencias que existen entre él y su padre.
- No hay administración de memoria virtual: La diferencia definitiva y más
prevaleciente entre µClinux y Linux es la falta de administración de memoria virtual
(VM). Bajo Linux, la administración de memoria virtual es llevada a través de la
unidad MMU que los procesadores tienen. µClinux ha sido creado para sistemas
que no cuentan con tal unidad y por lo tanto no hace uso de memoria virtual.
- Diferencias en el kernel: µClinux tiene algunas diferencias en su kernel muy
relacionadas principalmente por el hecho de no haber una MMU en el procesador.
Por ejemplo, no se podrá hacer uso del soporte de paginación que ofrece una
unidad de MMU. El sistema de archivos TMPFS no funciona en µClinux debido a
que él confía en las características que la VM le puede brindar. Similarmente, los
5
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 12: Lección Evalutiva 3
formatos estándar de ejecutables (elf, a.out, etc.) no funcionan ya que estos
también hacen uso de la VM que no está disponible en µClinux. Para solventar
este problema, los archivos ejecutables deben tener un formato plano, el cual es
un formato ejecutable condensado que almacena solo código ejecutable y datos,
además de las reubicaciones necesarias para cargar el ejecutable en memoria.
- Asignación de memoria: µClinux ofrece una elección de dos asignadores
memoria del núcleo. Al principio puede no parecer obvio por qué es necesario
asignador alterno de memoria del núcleo, pero en los sistemas µClinux
diferencia es clara. El asignador predeterminado del núcleo bajo Linux es
método de asignación basado en potencias de dos.
de
un
la
un
Esto le permite operar más rápido y encontrar velozmente áreas de memoria del
tamaño correcto para satisfacer peticiones de asignación. Desafortunadamente,
bajo µClinux, las aplicaciones deben ser cargadas dentro de la memoria que está
fuera del alcance de este asignador. Para entender las consecuencias de esto,
especialmente para asignaciones grandes, considérese una aplicación que
requiera una asignación de 33KB para ser cargada; realmente se le asigna la
siguiente potencia de dos, que es 64KB. Los 31KB de espacio adicional asignado
no pueden ser utilizados eficazmente.
Este orden de desperdicio de memoria es inaceptable en la mayoría de sistemas
µClinux. Para remediar este problema, un asignador alternativo de memoria se le
ha creado al kernel de µClinux. Este es comúnmente conocido como page alloc2()
o kmalloc2(), dependiendo de la versión del núcleo.
- Aplicaciones y procesos: Otra diferencia entre Linux y µClinux es la falta de la
llamada de sistema fork(). Esto puede requerir bastante trabajo de parte del
desarrollador cuando está portando aplicaciones que usan fork(). La única opción
bajo µClinux es usar vfork().
6
Descargar