Upload
hatruc
View
216
Download
0
Embed Size (px)
Citation preview
INFORMATICA III
Capítulo I: Plataformas
Informática III Pág. 2
Plataformas
Hardware
Modelos de sistemas
Sistemas operativos
Herramientas de desarrollo
Informática III Pág. 3
Plataformas
Hardware
Modelos de sistemas
Sistemas operativos
Herramientas de desarrollo
Informática III Pág. 4
Hardware
El hardware está presente en inumerables dispositivos con los que interactuamos cotidianamente
Mas reconocible: una PC, una Tableta, un cajero automático
Menos reconocible: un electrodoméstico, un ascensor, un teléfono, un vehículo
Informática III Pág. 5
Hardware (II)
Según la naturaleza de la aplicación se utilizan distintas plataformas de hardware, con diferentes objetivos de diseño, prestaciones, capacidades y limitaciones
La evolución de la electrónica y de los microprocesadores permite contar con capacidades de programación antes impensadas
Informática III Pág. 6
Microprocesadores
Gran variedad de capacidades
PC: 32/64 bits, 1 ~ 4 GHz, CISC/RISC
Servidores: 64 + bits, ídem
Tabletas y smartphones: 32/64 bits, 400 ~ 1200 MHz
Celular sencillo: 16 bits, ~ 200 MHz
Microcontroladores: 8/16/32 bits, 120 ~ 400 MHz
Informática III Pág. 7
Software
Programabilidad software
La naturaleza del software, su diseño y las herramientas utilizables dependen directamente de la plataforma sobre la cual deberá ejecutarse el producto final
Programabilidad implica: > flexibilidad
> complejidad
Informática III Pág. 8
Dispositivos
Servidores
Clientes
Dispositivos embebidos
Dispositivos móviles
Informática III Pág. 9
Servidores
Son dispositivos que brindan uno o mas servicios a un conjunto de clientes
Un ejemplo: correo electrónico, referencia temporal, procesamiento numérico o gráfico, comunicaciones,etc.
Usualmente concentran capacidad de procesamiento, memoria y almacenamiento
Informática III Pág. 10
Arquitectura
Clientes
Servidor Red
Informática III Pág. 11
Servidores
Basados en arquitecturas RISC o CISC, frecuentemente SMP (Symmetric Multi Processing)
Pueden estar agrupados en conjuntos de varios equipos, por ejemplo en clusters o computational grids
Ejecutan S.O. multiprogramables, como Unix, Windows o Linux
Informática III Pág. 12
Clientes
Dispositivos que toman servicios de uno o mas servidores
Una PC conectada a una red es el caso mas frecuente, pero también un microcontrolador o una terminal móvil son ejemplos de clientes
La variedad de hardware y software es muy grande
Informática III Pág. 13
Dispositivos Embebidos
Cuentan con capacidad de procesamiento, memoria y almacenamiento limitados
Desde la evolución del control digital, las rtu‟s o PDA‟s hasta los sensores inteligentes
Informática III Pág. 14
Dispositivos Embebidos
Limitado espacio de memoria
CPU‟s restringidas en clock y longitud de palabra
Bajo consumo de energía
Conectividad
Dimensiones físicas acotadas
Informática III Pág. 15
Dispositivos Embebidos
Están presentes en multitud de aplicaciones y aparatos que usamos cotidianamente
Tienen un rol determinante en aplicaciones críticas de control y automatización
Muchas veces supervisan procesos altamente críticos
Informática III Pág. 16
Dispositivos Embebidos: ejemplo
Un automóvil de calle:
Frenos (ABS, REF)
Inyección
Drivetrain
Diagnóstico
Entretenimiento/comunicaciones
=> una decena de controladores
Informática III Pág. 17
Dispositivos Embebidos: otro ejemplo
Mars Curiosity Rover
RAD 750 motherboard
Procesador PowerPC750 (RISC 32 bits)
Clock 200 MHz
256 MB DRAM
2 GB Flash
RTOS VxWorks
Informática III Pág. 18
Dispositivos Móviles
Las mismas restricciones de los embebidos mas:
Conectividad no permanente
Trabajo off-line
Mayores restricciones de consumo de energía
Tecnología inalámbrica
Informática III Pág. 19
Plataformas
Hardware
Modelos de sistemas
Sistemas operativos
Herramientas de desarrollo
Informática III Pág. 20
Conceptos básicos
Todo dispositivo basado en microprocesadores requiere administrar (al menos) las funcionalidades básicas:
Interrupciones
Entrada/salida
Procesos
Informática III Pág. 21
Modelos de sistemas
La administración de estas funcionalidades puede ejecutarse de acuerdo a dos modelos básicos:
• A cargo de la(s) aplicación(es)
• A cargo de un programa específico
Informática III Pág. 22
Modelos de sistemas
Hardware
Sistema Operativo/Monitor
Aplicación A Aplicación
B Aplicación
C Aplicación
D
• La aplicación D gestiona recursos de hw directamente
• Las aplicaciones a, b y
c deben hacerlo mediante el sistema operativo
Informática III Pág. 23
Sistemas Operativos
“Máquina ampliada”
El S.O. presenta una abstracción distinta al hardware subyacente, proveyendo de interfaces de programación de mayor nivel y, en algunos casos, de portabilidad, por ejemplo, UNIX. Su tarea principal es la administración de recursos.
Informática III Pág. 24
Multiprogramación
Un sistema operativo puede brindar distintas abstracciones conceptuales:
Monoprogramación: cada tarea se ejecuta ininterrumpidamente hasta completarse
Multiprogramación: pueden ejecutarse 2 o mas tareas “simultáneamente”
Informática III Pág. 25
Multiprogramación
La capacidad de ejecución de tareas concurrentes depende del diseño del S.O. y del hardware.
Los S.O. multiprogramables implementan técnicas de 'timesharing', compartiendo la(s) cpu(s) entre todas la tareas a ejecutar.
Informática III Pág. 26
Multiprogramación
Todos los S.O. multiprogramables (multitasking) incorporan un gestor de tareas llamado 'scheduler'
El scheduler es responsable de aplicar políticas de planificación de procesos, prioridades de ejecución y control de estado de los procesos.
Informática III Pág. 27
Multiprogramación
Dependiendo del hardware, la simultaneidad de ejecución puede ser 'virtual' o real
Si hay mas de un CPU, o si el CPU único tiene capacidades de paralelismo, el S.O. puede aprovechar estas capacidades planificando distintos procesos por CPU o unidad de ejecución
Informática III Pág. 28
Multiprogramación
Los microprocesadores superescalares son capaces de ejecutar varias instrucciones simultáneamente, brindando paralelismo a nivel de proceso.
Los procesadores paralelos soprortan dos o mas flujos de instrucciones paralelismo de procesos
Informática III Pág. 29
Microprocesadores Paralelos
Multicore: dentro de la misma oblea de silicio se incluyen varios núcleos d ejecución independientes, con algunos componentes compartidos, como por ejemplo el cache de nivel 2
Multithread: cada núcleo de procesamiento puede manejar 2 o mas hilos de ejecución en forma concurrente
Informática III Pág. 30
Máquinas Virtuales
Un sistema operativo puede proporcionar un entorno de emulación de otras plataformas de hardware u otro sistema operativo:
HARDWARE
SISTEMA OPERATIVO
MAQ. VIRTUAL MAQ. VIRTUAL MAQ. VIRTUAL
Aplicación Aplicación Aplicación Aplicación Aplicación Aplicación
Informática III Pág. 31
Máquinas Virtuales
El primer sistema operativo con soporte de máquinas virtuales fue VM/370 de IBM, en 1979
Los s.o. actuales proporcionan múltiples VM‟s: Windows (DOS), OS/390 (Linux), etc.
Virtualización de HW y de SO
Informática III Pág. 32
Máquinas Virtuales (II)
En la actualidad está muy difundido el uso de técnicas de virtualización, que permiten correr aplicaciones diseñadas para un HW o un sistema operativo distinto del realmente utilizado
Hoy es posible correr, por ejemplo, aplicaciones de Windows sobre una máquina Linux, o aplicaciones de Android sobre un procesador Intel
Informática III Pág. 33
Máquinas Virtuales (III)
Las técnicas de virtualización empiezan a aparecer en sistemas embebidos, por la necesidad de correr aplicaciones existentes sobre nuevo hardware
HARDWARE
Hipervisor
Windows Linux Unix
Aplicación Aplicación Aplicación Aplicación Aplicación Aplicación
Informática III Pág. 34
Plataformas
Hardware
Sistemas operativos
Herramientas de desarrollo
Informática III Pág. 35
Herramientas: Evolución
La necesidad de desarrollar software implicó la creación de múltiples herramientas de programación de aplicaciones
En este terreno encontramos desde simples ensambladores hasta lenguajes de alto nivel
Informática III Pág. 36
Lenguajes de Programación
Podemos ver al lenguaje como otra capa de abstracción, que permite ver a las aplicaciones en el contexto del programador, „traduciendo‟ este modelo al código ejecutable por la máquina destino
De acuerdo al „nivel‟ de esta abstracción, se califica el lenguaje
Informática III Pág. 37
Lenguajes de Programación
En orden decreciente de nivel de abstracción, por ejemplo: Herramienta de modelado (UML, etc.)
Framework (Plat. Java , MFC, .NET)
Lenguaje orientado a objetos (Java, etc.)
Lenguaje procedural (C, Pascal, FORTRAN)
Ensamblador (assembler)
Código de máquina
Informática III Pág. 38
Entidades
Opcodes, hex Código de máquina
Mnemónicos Ensamblador
Rutinas, módulos Lenguaje procedural
Objetos, clases, mensajes Lenguaje orientado a objetos
Componentes Framework
Diagramas Modelador UML
Entidades Herramienta
Informática III Pág. 39
Niveles
Cuando usamos una herramienta de mayor nivel, estamos interponiendo mas capas de abstracción entre nuestra aplicación y el hardware
Generalmente (no siempre), mayor nivel implica mas posibilidades de diseño y menor perfomance
Informática III Pág. 40
Capas de Abstracción
Hardware
Sistema Operativo/Monitor
Máquina Virtual
Entorno Runtime
Aplicación A Aplicación
B Aplicación C Aplicación
D