INFORMATICA III. Cap. I: Plataformas

Documentos relacionados
Estructura del software en sistemas embebidos. Sistemas Embebidos Avanzados DSI-EIE-FCEIA

Introducción a los Sistemas Operativos

Evolución del software y su situación actual

Sistemas Operativos. Introducción. Tema 6

Unidad I: Organización del Computador. Ing. Marglorie Colina

Computación 1. Roles en la interconexión

Informática 4º ESO. J. Javier Esquiva Mira

PANORAMA GENERAL DE LOS µc

Unidad VIII Generación de código intermedio. M.C. Juan Carlos Olivares Rojas

1. Computadores y programación

Tema 1: Arquitectura de ordenadores, hardware y software

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Convivencia Introducción

PROCESOS E HILOS - Hilo

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

Arquitectura de Computadores (obligatoria)

Introducción a los Sistemas Operativos

Los registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo.

Fundamentos de Programación. Sabino Miranda-Jiménez

SISTEMAS OPERATIVOS: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. Introducción y conceptos básicos

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

ARQUITECTURA DE VON NEUMANN Y HARVARD

SISTEMAS OPERATIVOS. Informática Básica

Sistemas Operativos 1

Arquitectura de Sistemas

Introducción a los Sistemas Operativos

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Historia de los sistemas operativos

FUNDAMENTOS DE SISTEMAS OPERATIVOS

1 Microprocesadores: Introducción

Cuestionario Unidad 4: Procesamiento paralelo 2012

SISTEMAS OPERATIVOS Introducción. Amilcar Meneses Viveros

Introducción a los Sistemas Operativos

Contenidos: Definiciones:

TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA

Programación Concurrente y Paralela. Unidad 1 Introducción

Introducción a la programación

Arquitectura de Computadores II

Computación Conociendo la herramienta de cálculo. La Computadora

Conceptos y Estructuras de Sistemas Operativos

Sistemas operativos Tema 3: Estructura del sistema operativo

MULTIPROGRAMACIÓN. Introducción a al Multitarea

Diagrama de despliegue

Introducción a la programación: Contenido. Introducción

Monitorización de la temperatura de un CPD mediante una red de sensores inalámbricos. Isaac Peña Torres PFC Sistemas Empotrados Enero 2011

Tema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Unidad IV: Programación de microcontroladores

Estructura de los sistemas de cómputo

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Introducción a la arquitectura de computadores

Un sistema operativo (SO) es un conjunto de programas o software, que permite la comunicación de usuario con la computadora. Administra los recursos

Un. VIII. Generación de Código Objeto

SISTEMAS OPERATIVOS. Ing. Raúl Alberto Rojas Reátegui

APLICACIONES MOVILES NATIVAS. Sesión 5: Objetos, mensajes y clases. Abstracción, encapsulamiento, herencia y polimorfismo

Sistemas operativos avanzados. Tema 1 Introducción

HARDWARE: DISPOSITIVOS DE ENTRADA, PROCESAMIENTO Y SALIDA/ SOFTWARE: SOFTWARE DE SISTEMAS DE APLICACIONES. Ralph Stair y George Reynolds

6. Enumere tres ventajas de los ULT frente a los KLT.

Sistemas con Microprocesadores I

Ejercicio 1: Windows En este primer ejercicio primero vamos a ver que es el Sistema Operativo Windows, qué es un Sistema Operativo y para que sirve.

Tecnología de software para sistemas de tiempo real

Problemas que resuelve un S.O. (2)

Software para supervisión y control de operaciones

Introducción a los Sistemas Operativos

una red de equipos no puede funcionar sin un sistema operativo de red

Tecnologías, Organización y Microarquitectura

Hoja de respuestas. Examen tipo A

Tema 12: El sistema operativo y los procesos

Fundamentos de software. Informática Aplicada Grado en GAP Fac. de Admón. y Dir. de Empresas Univ. Politécnica de Valencia

Tópicos Selectos de Programación unidad 4. Librería de Interfaz Gráfica

Herramientas Informáticas I Hardware: Conceptos Básicos

CONCEPTO. Actúa de intermediario entre el hardware y los programas de aplicación.

Transcripción:

INFORMATICA III Cap. I: Plataformas

Plataformas Código nativo y portable Máquinas virtuales Servidores Estaciones de trabajo Clientes delgados Dispositivos embebidos Dispositivos móviles

Plataformas Hardware Sistemas operativos Herramientas de desarrollo

Plataformas Hardware Sistemas operativos Herramientas de desarrollo

Hardware El hardware está presente en inumerables dispositivos con los que interactuamos cotidianamente Mas reconocible: una PC, un PDA, un cajero automático Menos reconocible: un electrodoméstico, un ascensor, un teléfono, un vehículo

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

Microprocesadores Gran variedad de capacidades PC: 32/64 bits, 1 ~ 2.5 GHz, CISC/RISC Servidores: 64 + bits, ídem PDA: 16/32 bits, 200 ~ 400 MHz Celular: 8/16 bits, ~ 200 MHz Microcontroladores: 8/16 bits, 120 ~ 200 MHz

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

Plataformas Hardware Sistemas operativos Herramientas de desarrollo

Monitores Todo dispositivo basado en microprocesadores requiere programas de control que administren (al menos) las funcionalidades básicas: Interrupciones Entrada/salida Procesos

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.

Multiprogramación Un sistema operativo puede brindar distintas abstracciones conceptuales: Monoprogramación: cada tarea se ejecuta ininterrumpida hasta completarse Multiprogramación: pueden ejecutarse 2 o mas tareas simultáneamente

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.

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.

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

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

Microprocesadores Superescalares: IBM PowerRISC, Sun UltraSparc, HP PA-RISC,... Paralelos: Intel Xeon, Itanium 2,...

Máquinas Virtuales Un sistema operativo puede proporcionar un entorno de emulación de otras plataformas de hardware: Aplicación Aplicación Aplicación Aplicación Aplicación Aplicación MAQ. VIRTUAL MAQ. VIRTUAL MAQ. VIRTUAL SISTEMA OPERATIVO HARDWARE

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.

Máquina Virtual Java Es un procesador abstracto, que se implementa en software, sobre la plataforma local, o directamente en hardware, capaz de ejecutar aplicaciones escritas en lenguaje Java Los ejecutables de la MVJ se llaman bytecodes

Máquina Virtual Java La mayor parte de los sistemas operativos actuales implementan una o mas variantes de la MVJ: Linux MS Windows UNIX: Solaris, AIX, HP-UX, etc. IBM OS/400 y OS/390...

Máquina Virtual Java Numerosos dispositivos embebidos implementan también MVJ: PDA s Celulares Microcontroladores

Máquina Virtual Java

Máquina Virtual Java Una especificación completa de la MVJ asegura la portabilidad de las aplicaciones Java entre diversas plataformas

Plataformas Hardware Sistemas operativos Herramientas de desarrollo

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

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

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

Entidades Herramienta Modelador UML Framework Lenguaje orientado a objetos Lenguaje procedural Ensamblador Código de máquina Entidades Diagramas Componentes Objetos, clases, mensajes Rutinas, módulos Mnemónicos Opcodes, hex

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

Capas de Abstracción Aplicación A Entorno Runtime Máquina Virtual Aplicación B Aplicación C Aplicación D Sistema Operativo/Monitor Hardware

Dispositivos Servidores Clientes Dispositivos embebidos Dispositivos móviles

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

Arquitectura Red Servidor Clientes

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

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

Clientes Delgados En los últimos años se vio una tendencia en la industria a simplificar la arquitectura de los clientes Puede ser una limitación real, por ejemplo de un microcontrolador o un celular, o conceptual, como una pc accediendo a aplicaciones a través de la web

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

Dispositivos Embebidos Limitado espacio de memoria CPU s restringidas en clock y longitud de palabra Bajo consumo de energía Conectividad

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