Fundamentos de Informática Tema 1: Arquitectura de ordenadores, hardware y software 2010-11 Índice 1. Informática 2. Modelo de von Neumann 3. Sistemas operativos 2 1. Informática INFORMación automÁTICA Procesamiento automático de la información Entrada de información (datos) Procesado de la información (lógico o aritmético) Salida de información (resultado) Sin supervisión humana. Ejecución de un programa de instrucciones. 3 Ejemplo de sistemas informáticos PCs Superordenadores Smartphones Electrodomésticos Terminales Consolas Robots … 4 5 2. Modelo von Neumann 2.1 Historia 2.2 El modelo de Von Neumann 2.3 Sistema binario 2.4 Memoria principal 2.5 Procesador 2.6 Buses de comunicación 2.7 Dispositivos de entrada/salida 6 2.1 Historia: El ENIAC, Los Álamos y la bomba H 7 Calculos balísticos, von Neumann y el EDVAC 8 2.2 El modelo de von Neumann CPU (Procesador) Controladoras Entrada/Salida Memoria principal Datos Programa Buses de datos 9 Modelo de von Neumann en un PC 10 2.3 Sistema binario Unidades de información 1b = 1 bit 1B = 1 byte unidad de información {0,1} conjunto de 8 bits Almacenamiento Nombre Sist. Internacional Sist. Clásico Ejemplos Kilobyte (KB) 1000 bytes 1024 = 210 bytes 1 página de texto Megabyte(MB) 10002 bytes 220 bytes 4 libros 1 fotografía pequeña Gigabyte(GB) 10003 bytes 230 bytes 4.000 libros 300 fotografías 250 canciones en mp3 Terabyte (TB) 10004 bytes 240 bytes 4 millones de libros 1.613 CDs, 233 DVDs 40 Blu-ray discs 11 Datos en Google cada 5s 1 icono 2.4 La memoria principal Almacenamiento de la información en circuitos integrados, fuera de la CPU. Gran velocidad de acceso y escritura, pero coste elevado. Almacena el programa y los datos en uso. RAM: No permite la grabación permanente de datos. Es volátil, es decir, si se corta la corriente, se pierden los datos. ROM: Permanente, viene grabada de fábrica. No se puede reescribir. 12 2.5 El procesador (CPU) Es el componente que procesa los datos de entrada siguiendo las instrucciones de un programa. Se compone de: una unidad de control que busca y descifra cada instrucción, una unidad aritmético-lógica que ejecuta las operaciones sobre los datos unos registros que almacenan datos internos. 13 2.6 Buses de comunicación Un bus es un sistema de transmisión de datos entre 2 o más sistemas o unidades. Tradicionalmente, se refería únicamente a conjuntos de cables o pistas de un circuito impreso que transmitían en paralelo, pero ahora se ha generalizado a cualquier sistema digital de transmisión de datos. En un PC, la CPU se comunica con la memoria principal y otras componentes mediantes buses integrados en la placa madre. Otros buses comunes: USB PCI AGP (especifico para gráficos) ATA-n (especifico para discos) 14 2.7 Dispositivos de E/S Los disposi(vos de entrada/salida (periféricos), permiten una interacción entre la máquina y otros sistemas (incluido el usuario) mediante la entrada o salida de datos. Cada periférico está compuesto por tres componentes: 1. El propio disposi&vo. 2. Un circuito electrónico que traduce la información del bus al disposi(vo, denominado controladora. 3. Un programa que permite interactuar con el periférico, llamado driver. 15 2.7 Dispositivos de E/S La memoria secundaria Es más barata que la memoria principal y permite almacenar los datos de manera permanente, pero con acceso más lento. Disco duro, CD-ROM, Flash, Blu-Ray... Jerarquía de memoria: Almacenar los datos en la memoria más rápida disponible basandose en la frecuencia de uso. Más usada à Acceso más rápido 16 2.7 Dispositivos de E/S Interacción entre procesador, memorias y dispositivos de E/S PROCESADOR REGISTROS UC ALU BUS MEMORIA PRINCIPAL DISCO DURO PANTALLA CONTROLADORA CONTROLADORA CONTROLADORA CONTROLADORA LECTOR CD-ROM TECLADO 17 3. Software y Sistema Operativo 3.1 Introducción al software 3.2 Clasificación del software 3.3 Sistema operativo 3.3.1 3.3.2 3.3.3 3.3.4 Arranque Gestión de procesos Interfaz de usuario Sistema de ficheros 3.4 Software de aplicación 18 3.1 Introducción al software La propiedad más importante de un ordenador es la de ser programable. Una programación directa del hardware por parte de los usuarios crearía grandes dificultades. Por lo tanto es necesario proveer al usuario de un mecanismo para: abstraer la organización física de la máquina usar de manera similar máquinas con hardware diferente tener un lenguaje simple de interacción con la máquina tener un lenguaje simple de alto nivel para programar la máquina tener un conjunto de programas para ejecutar diferentes tareas 19 3.2 El software: clasificación Software de sistema: permite usar los recursos hardware del ordenador, ejecutar operaciones básicas e interactuar con el software de aplicación. Ejemplos: driver, interfaz gráfico, formateador de discos… Software de aplicación: programas para la ejecución de tareas específicas. Ejemplos: procesador de textos, cliente de correo electrónico, videojuegos… 20 Tipos de software de sistema Sistema operativo (S.O.) Ejemplos: Windows, Unix, Linux, Mac OS… Drivers Herramientas del sistema Incrementan las funcionalidades del S.O. Ejemplos: formateo discos, copia ficheros de discos a CD, limpieza discos, programas de compresión de ficheros... 21 usuario Software de aplicación (navegadores, reproductores de vídeo, editores de fotografías…) Software de sistema Driver Sistema Operativo Herramientas del sistema Hardware (orderador y periféricos) 22 3.3 Sistema operativo Conjunto de programas que interactúan para: Administrar eficientemente los recursos de la máquina, intentando explotar al máximo todos los componentes del hardware. Crear un ambiente virtual (ejemplo: un interfaz gráfico) para facilitar la interacción persona-máquina. Tareas del sistema operativo: Arranque del ordenador y creación del ambiente virtual. Administración del procesador y los procesos en ejecución. Administración de la memoria principal y secundaria. Administración de los recursos de E/S. Proporcionar una serie de órdenes para la interacción con el usuario. 23 3.3.1 Arranque del ordenador El sistema operativo (S.O.) se ejecuta en el momento de encender el ordenador. La puesta en marcha del S.O. se efectúa a través de un programa llamado bootstrap que la máquina ejecuta cuando se enciende. En esta fase, una parte del S.O. (un conjunto de programas y un conjunto de datos) se carga en la memoria principal, es decir, se copia de la memoria secundaria (disco duro) a la memoria principal (RAM). 24 Bootstrap: paso 1 Memoria principal ROM Programa de bootstrap Memoria secundaria (disco duro) RAM S.O. 25 Bootstrap: paso 2 Memoria principal ROM Programa de bootstrap RAM Sistema Operativo Memoria secundaria (disco duro) S.O. 26 3.3.2 Gestión de procesos Normalmente, la CPU es el componente más usado en un ordenador. Cuando la CPU está ocupada con un programa, el resto de programas tienen que esperar [1]. Cada programa en ejecución se llama proceso o tarea. Es tarea del S.O. administrar la CPU correctamente y en manera eficiente entre todos los procesos. [1] Nota: Las CPUs modernas tienen varios “cores” o “núcleos”. Cada “core” es un procesador independiente y permite ejecutar varios programas a la vez. 27 Mono/Multi-tarea S.O. monotarea (monotasking) En el sistema hay solo un proceso activo Es posible ejecutar un solo programa a la vez Ejecución secuencial de programas S.O. multitarea (multitasking) Ejecución concurrente de varios programas El S.O. debe decidir en qué momento se ejecuta cada proceso, cuanto tiempo tiene derecho a usar el procesador… 28 Mono/Multi-tarea En general, dado un proceso P En algún momento estará activo, es decir, la CPU lo ejecutará Habrá largos periodos en que P esté parado. Por ejemplo, en la espera de E/S o de adquirir un recurso que en ese momento no esté disponible. Las operaciones de la CPU, de los periféricos y de los usuarios funcionan a escalas temporales muy diferentes (desde nanosegundos a segundos). La ejecución secuencial de procesos provoca una escasa utilización de la CPU. 29 Ejemplo: ejecución secuencial de P1 y P2 ejecución espera procesos P1 P2 procesador activo inactivo • La utilización del procesador es muy baja • La mayoría del tiempo está inactivo 30 Ejemplo: ejecución concurrente de P1 y P2 Cada vez que P1 esté bloqueado en la espera de E/S, se ejecutará P2 ejecución espera P1 P2 procesador inactivo activo Reducción de tiempos de inactividad 31 Multi-usuario/multi-puesto S.O. multi-usuario Capaz de distinguir entre distintos usuarios. Protege los datos/programas de un usuario de los accesos de otros usuarios. Puede limitar el uso de recursos en función del usuario. S.O. multi-puesto Permite trabajar con el ordenador desde varios terminales conectados a él, es decir, varios usuarios trabajando con el mismo ordenador simultáneamente (ej: un servidor de internet). 32 3.3.3. Interfaz de usuario Facilita el manejo del sistema operativo por parte del usuario Permite la comunicación con el sistema operativo mediante órdenes sencillas, para tareas como por ejemplo, copiar un fichero, arrancar un programa, ver el contenido de un directorio, etc. Puede ser de dos tipos: interfaz orientada a texto o basada en órdenes interfaz gráfica de usuario (GUI) 33