programacion, algoritmos y estructuras de...

57
PROGRAMACION, ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor Titular: Ing. Graciela TOCCACELI. email: [email protected] Profesor Adjunto: Mag. Ing. Pablo A. GARCIA. [email protected] 1

Upload: hadiep

Post on 04-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

PROGRAMACION, ALGORITMOS Y ESTRUCTURAS DE DATOS

Profesor Titular: Ing. Graciela TOCCACELI.email: [email protected]

Profesor Adjunto: Mag. Ing. Pablo A. [email protected]

1

Objetivo de la materia: Estudiar Informática a través de uno de

los lenguajes de programación más utilizados el lenguaje “C”.

2

INFORmación y autoMATICA

La Informática trata de la adquisición, representación,

tratamiento y transmisión de la información.

Estas operaciones se realizan automáticamente

utilizando máquinas llamadas computadoras.

3

Ordenador

Datos Resultado

HISTORIA DE LA INFORMÁTICA

• El ábaco 500 años AC.

• Siglo XVII Blaise Pascal . Crea la primera máquina de sumar y restar• Siglo XVII Blaise Pascal . Crea la primera máquina de sumar y restar

mecánica la Pascalina. Esta calculadora estaba basada en una serie de

engranajes y ruedas dentadas. La base de las operaciones consistía en

contar los dientes de un engranaje.

4

• En 1671, Gottfried Wilhelm Leibniz construye la Máquina Universal, la primera

máquina capaz de sumar, restar, multiplicar y dividir. El mecanismo también era de

engranajes. Las multiplicaciones se realizaban como sumas sucesivas y las

divisiones como restas sucesivas.

Estas no eran máquinas automáticas ya que requerían la Intervención humana

durante el proceso.

• Inicio XIX Joseph Marie Jacquard, inventa un telar mecánico cuyos diseños se• Inicio XIX Joseph Marie Jacquard, inventa un telar mecánico cuyos diseños se

reproducían gracias a una serie de tarjetas perforadas. Las tarjetas perforadas

transmitían a la tejedora las instrucciones necesarias para su funcionamiento.

• 1834-35 Charles Babbage utilizando tarjetas perforadas y ruedas mecánicas

diseña la máquina analítica. La diseña con Memoria, Unidad de cálculo y Unidad

de control basada en tarjetas perforadas. Era capaz de realizar cualquier cálculo y

de almacenar programas. La tecnología de la época no permitió construirla.

5

• En 1890 Herman Hollerith, crea una máquina para realizar el censo de

EEUU. Esta máquina utiliza un sistema electrónico para la lectura de las

tarjetas perforadas y un sistema mecánico para calcular. En 1924 la

compañía fundada por Hollerith cambia de nombre para denominarse

"International Business Machines" (IBM).

• Luego el avance tecnológico marcó distintas generaciones de

computadoras:

6

Se destacan ->

• En 1943, J. Mauchly y J. Presper Eckert crean el primer equipo sin piezas mecánicas: el ENIAC (Calculador e integrador numérico electrónico).

-utilizada por el Laboratorio de Investigación Balística del Ejército de los EEUU.

-18.000 válvulas o tubos de vacío.

-ocupaba 167 m2.

-programación manual, mediante el seteo de interruptores o conectando cables

-5000 instrucciones por segundo. – Sistema decimal

- gran consumo energético (160 kW).

7

• En 1944 Von Newmann propone que el programa debía almacenarse electrónicamentedentro de la computadora junto con los datos y el uso del sistema binario.

• En 1946 J. Mauchly y J. Presper Eckert y John Von Neumann crean EDVAC (Equipo electrónico de variable discreta), que podía almacenar programas en la memoria (1.024 palabras en la memoria central y 20.000 palabras en la memoria magnética).

- 6.000 tubos de vacío y 12.000 diodos.- Consumía 56 kilowatts de potencia.- Cubría 45,5 m² de superficie.- Pesaba 7.850 kg.- Binaria.

• En 1953 IBM lanza el IBM 701: conocido como la "calculadora de Defensa" mientras era desarrollado, fue anunciado al público el 29 de abril de 1952 y era la primera computadora científica comercial de IBM. Durante los cuatro años de producción se vendieron 20 unidades

La memoria contenía 72 tubos de vacio con una capacidad de 1024 bits, dando una memoria total de 2048 palabras de 36 bits cada una.

Cada uno de los 72 tubos eran de 76 mm de diámetro.

La memoria se podía ampliar a un máximo de 4096 palabras

El tiempo de acceso de la memoria de 12 microsegundos.

La memoria de tubos necesitaba "refrescarse" periódicamente.

8

1907 1947 1957

El avance de la electrónica…

9

1971

291 millones de transistores - Actual

Hitos de las diferentes generaciones:

• Generación 1 (1940-1960) (válvula de vacío): Se sustituye la programación de 1s y 0s por un lenguaje simbólico.

• Generación 2 (1960-1965) (transistor): Se introducen los lenguajes de alto nivel, se ampliaron las memorias auxiliares y se crearon los discos magnéticos de gran capacidad. Se diseñaron las impresoras y lectores ópticos

• Generación 3 (1965-1975) (circuitos integrados): Aparecen los sistemas operativos para el control de la computadora. Aparecen lenguajes como Cobol y Fortran

• Generación 4 (1975-1990) (microprocesadores) : Aparece el microprocesador. Nuevos lenguajes de programación :Logo, Pascal, Basic, C, C++.

En 1976 Steve Wozniak y Steve Jobs fabrican en el garaje de su casa la

primera microcomputadora Apple I del mundo y más tarde fundan la compañía Apple.

En 1981 IBM lanza al mercado su primer IBM-PC.

10

• Generación 5 (1990 – hoy): supercomputadores que incorporan varios

microprocesadores en la misma máquina.

11

384000 procesadores

¿Que es un computador?

12

Dispositivo capaz de aceptar unos datos de entrada, efectuar conellos operaciones lógicas y aritméticas, y proporcionar la informaciónresultante a través de un medio de salida; todo ello sin intervenciónde un operador humano y bajo el control de un programa deinstrucciones previamente almacenado en el propio computador.

01101110000110110101001110

Ordenador

En el interior del ordenador la información se almacena y transfiere utilizando el sistema binario 1s y 0s. En las E y S se efectúan las transformaciones alfanumérico a binario y viceversa.

13

321.15

rojo

2300,34

Rosario

0110101001110000011010010000111001010011110000101001010001110011111100101010010010010010111010010100000000001000101111111001010001010100101010011111000

E S

Los valores 0s y 1s pueden interpretar en el interior del ordenador dependiendo del dispositivo:

-Un estado magnético (N/S)

-Un nivel de tensión (5V/0V)

-Un valor de corriente ( 20mA/0 mA)

-Presencia o ausencia de Luz

Bit (Binary Digit) es la mínima unidad de

14

Bit (Binary Digit) es la mínima unidad de información que representará un 1 o un 0.

Estructura de un Ordenador tipo Von Newmann

15

Unidades de Entrada: Teclado, lector de tarjeta, lápiz óptico, escáner, etc.

Unidades de Salida: Monitor, impresora, plotter, etc.

Unidades de E/S: Discos duros, sólidos, flash USB, cintas magnéticas, etc.

Memoria principal (MP):

-El programa que se ejecuta debe almacenarse en la MP.

-Gran velocidad de acceso (decenas de ns).

-Formada por Circuitos integrados IC.

-Volátil.

-Estructurada en direcciones de un dado número de bits (palabra).

0000

0001

Dirección contenido

16

número de bits (palabra).

-Para leer o escribir una palabra de información se debe dar la dirección de la posición en el IC.

-Capacidad de GBytes.

0002

………..

………..

………..

………..

………..

FFFF

Memoria Auxiliar:

-Presenta una capacidad de 100 a 1000 veces mayor que la MP.

-Es 10000 a 100000 veces mas lenta que la MP (decenas de ms).

-La información se almacena en forma permanente (Gbytes y TBytes.

17

UNIDAD ARITMETICO LOGICA (ALU):

-formada por circuitos electrónicos que realizan operaciones aritméticas y lógicas

-registros temporales le ayudan a operar

-las señales de control especifican la acción:

(Sumar, restar, dividir, multiplicar, etc.).

-un registro de estado guarda información del

resultado de la última operación ( cero, signo, acarreo, desborde, paridad.)

18

acarreo, desborde, paridad.)

Z

S

C

V

R0R1R2R3

Registro de estado

Registros temporales

UNIDAD DE CONTROL (UC)

-Detecta las señales de estado provenientes de las distintas unidades.

-Toma de la MP una de las instrucciones.

-Decodifica la instrucción.

-genera las señales necesarias para llevar a cabo la ejecución.

-repite el proceso hasta finalizar el programa.

19

Lógica de Control

Máquina de estadosRegistro de instrucción

Clock

Registro de estadoSeñales de control

-repite el proceso hasta finalizar el programa.

-un clock sincroniza todas las operaciones.

T

f = 1/T Mhz, GHz

Tiempo de ciclo

BUS (Conexión eléctrica entre las distintas unidades.)

Tipos de Buses:

-Serie

-Paralelo de (8,16,32,64 o 128 líneas conductoras)

Bus del Sistema informático:

-Bus de Datos

-Bus de Direcciones

-Bus de Control

20

-Bus de Control

CPU Memoria Entradas/Salidas

Bus de datos

Bus de control

Bus de direcciones

Aspecto de los buses del sistema:

21

MEDIDA DEL RENDIMIENTO O VELOCIDAD DEL PROCESADOR:

MIPS: Millones de instrucciones máquina por segundo

MIPS = NI /(te . 106)

MFLOPS.: Millones de operaciones con números reales de 64 bits por segundo.

22

MFLOPS.: Millones de operaciones con números reales de 64 bits por segundo.

MFLOPS = NOcf/(te. 106)

NOcf: número de operaciones en coma flotante.

te: tiempo de ejecución de programas especiales o benchmarks como Linpack o SPEC.

Clasificación de los ordenadores por el grado de paralelismo de su arquitectura:

�SISD Monoprocesadores

-Una instrucción , un dato

-Computadora Von Newman (ya analizada)

�SIMD Computadoras matriciales y vectoriales

23

�SIMD Computadoras matriciales y vectoriales

-Una instrucción , múltiples datos (No existen ninguna)

�MIMD Supercomputadoras

-Múltiples instrucciones, Múltiples datos

MIMDMULTIPROCESADORES MULTICOMPUTADORES

24

Clasificación de los ordenadores según su uso:

-Computadores de uso general.

-Computadores embebidos (lavadoras, teléfonos inteligentes, controladoras de disco, teclado, impresora, etc.).

25

PrecioUS$

Númeroprocesadores

MemoriaPrincipal

Memoriaauxiliar

Usuarios

Supercomputador >5.000.000 miles TB EB Decenas a miles

Servidor de gama alta(Mainframe)

>500.000 cientos Cientos de GB

TB Cientos a Miles

Servidor de gama 25.000 a decenas Cientos de TB Decenas a

Clasificación de los computadores por su potencia de cálculo:

Servidor de gama media

25.000 a 500.000

decenas Cientos de GB

TB Decenas a cientos

Servidor Básico <25.000 4, 16 Decenas de GB

Cientos de GB

decenas

Computador personal

500-10000

2,4 GB Cientos de GB

personal

26

SUPERCOMPUTADORES:-Ejemplos: ASCI Whute, Earth Simulator, Tianhe 2.

-Ejecutan Petaflops (billones de FLOPS).

-Cientos o Miles de procesadores trabajando en paralelo.

-Muy costosos.

27

-Muy costosos.

-Utilizados en aplicaciones de cálculo complejo (HPC High Perfomance Computing) :

•Analisis de sismos o movimientos en la corteza terrestre

•Predicción climática, etc.

El ciclo de máquina de cualquier instrucción consta de dos fases:

Adquisición y ejecución

EL (PC) ->(AR)

M(AR)->(DR)

(DR)->(IR)

(PC+1)->(PC)

Adquisición Ejecución

Memoria Entradas/AR DR

ALU UC

IR

PC

28

Memoria Entradas/Salidas

Bus de datos

Bus de control

Bus de direcciones

AR DR PC

En la actualidad los procesadores incorporan:

-Un procesador gráfico.

-Un procesador de punto flotante

-Un controlador de Memoria

-Varios niveles de memoria caché

-Varios cores.

29

Microcontrolador: (Presente en electrodomésticos, periféricos, teléfonos)

Núcleo procesador

Memoria EEPROM o Flash

RAM

Puertos paralelos de E/S

30

RAM

Conversor D/A Conversor A/D

Puertos series de E/S

Temporizadores

Tipos de Memoria

Memoria Interna:

-Registros

-caché (SRAM)

-Memoria Principal (DRAM)

-Memoria ROM

31

Memoria auxiliar, externa o masiva:

-Discos de estado sólido y flash USB

-Dispositivos magnéticos

-Dispositivos ópticos

capacidad prec

io

velocida

d

Registros CPU

Caché interna L1

Caché externa L2/L3

DRAM

SSD

1 ciclo

1 ciclo

3 a 5 ciclos

30 a 100 ciclos

10k a 20k ciclos

JERARQUIA DE MEMORIA

32

capacidad prec

io

velocida

d

SSD

Flash USB

HDD

Cinta magnética

10k a 20k ciclos

300k a 3M ciclos

10M a 100M ciclos

Mayor 100M ciclos

-Porque la velocidad del procesador es del orden de los ns.

Y la velocidad de la memoria principal es de 30 a 100 veces mas lenta que el procesador.

¿ Porque se introducen las memorias chachés?

33

En consecuencia el procesador se ve frenado cuando debe acceder a memoria.

SOLUCION: Utilizar memoria caché mas rápidas con tecnología SRAM de 1 a 5 veces mas lenta que el procesador.

34

CORE i7 con 3 niveles de caché

-Caché L1 : 32KB dentro del núcleo

-Caché L2: 256KB por núcleo

-Caché L3: 12 MB compartida

DISCO DE ESTADO SÓLIDO (SSD)

Dispositivo de almacenamiento masivo basado en circuitos integrados, emulando un disco duro. Almacenan información en forma permanente.

35

GRABACIÓN Y LECTURA MAGNÉTICA

Cabeza

Lectora / Grabadora

Información a grabar

Información leida

36

substratoMaterial

magnetizable

movimiento

Discos Duros (HDD)-La información se guarda por sectores (arcos de pistas).

-El brazo con la cabeza lectora/grabadora tiene movimiento axial.

37

El HDD consiste en varios platos y un peine con varias cabezas lectoras/grabadoras que permiten acceder simultáneamente a un sector de un cilindro.

38

Primera Generación de CD

-La información va troquelada en una superficie de aluminio

-Si hay reflexión del haz laser se tiene un 0 sino un 1.

39

GENERACIONES DE DISCOS ÓPTICOS

40

Si conectamos todo mediante un solo bus, el del sistema………

CPU MEMORIA PUERTO IP PUERTO OP

Bus del sistema

41

Ventajas:

Sencillo, barato.

Desventaja:

Toda la información se transmite por el mismo bus. Los dispositivos mas lentos frenan el funcionamiento del ordenador, por ejemplo mandar datos a una impresora.

SOLUCIONES A LA ESTRUCTURA DE UN ÚNICO BUS:

-Memorias intermedias (buffer)

-Buses específicos

-Controladores de E/S

42

-Controladores de E/S

-Controlador de Acceso Directo a Memoria DMA

BUFFER:

Memoria intermedia que sirve para almacenar datos. El procesador carga el buffer con datos y se dedica a ejecutar otros procesos, mientras el periférico a su velocidad lee los datos del buffer.

Un controlador o secuenciador controla las operaciones que se realizan en el interior del periférico.

43

MEMORIA

BUSES ESPECIFICOS:

Un bus especifico frontal, comunica procesador y memoria

Bus frontal

44

CPU PUERTO IP PUERTO OP

Bus del sistema

Bus frontal

MEMORIA

P0 P1 P2 P3 P4 P5

Un Controlador de E/S es un procesador conmemoria local, especializado en controlaroperaciones de transferencia de datos entreperiféricos conectados a él y el procesador

45

CPUControlador de E/S

Controlador de E/S

Bus del sistema

Canal 0 Canal 1

P0 P1 P2 P3 P4 P5

Un Controlador de Acceso Directo a Memoria (DMA) es unprocesador que permite la transferencia de datos entre memoriay un periférico sin intervención del procesador.

Controlador de E/S

Controlador de E/S

Bus de E/S

Canal 0 Canal 1

P0 P1 P2 P3 P4 P5

46

Bus de E/S

CACHE

CPUDMA

MEMORIA

PRINCIPAL

Bus del sistema

Bus frontal

Tipo de bus

Periféricos

AGP Adaptadores Gráficos

PCI Discos duros, otros dispositivos, tarjeta gráfica, Tarjeta de red,

UTILIZACIÓN DE BUSES

tarjeta gráfica, Tarjeta de red, controlador SCSI.

ISA Lpt1 (impresora), COM1, COM2 (ratón , módem) disquetera, teclado.

USB Teclado, mouse, cámara, escaner, impresora

47

ESQUEMA DE UN PC (1990-2000)

48

ESQUEMA DE UN PC ACTUAL

Chipset: Conjunto de chips con la misma arquitectura del procesador que sirven de puente entre éste y la memoria y las E/S.

PUENTE NORTE:

Enlaza la CPU y la memoria. Controla el

49

memoria. Controla el tráfico entre éste, la memoria y la tarjeya gráfica. Contiene el controlador de DMA:

PUENTE SUR:comunica el procesador con el resto de los periféricos(IDE,USB,PCI, ETC):

PINES DEL PROCESADOR INTEL CORE i7

50

SISTEMA INFORMÁTICO

APLICACIONES DEL SISTEMA

APLICACIONES DE USUARIO

51

HARDWARE

SISTEMA OPERATIVO

Definición: Es el programa o grupo de programas que controlan elfuncionamiento del hardware y nos ofrecen un modo sencillo de acceso al ordenador.El sistema operativo se compone de un núcleo o Kernel y un intérprete de comandos denominado Shell.El shell es un interfaz entre la CPU y el usuario. Cuando le pedimos algo al ordenador, el shell se encarga de traducirlo en llamadas o peticiones a los programas que componen el kernel o núcleo, y éste acciona el hardware.El kernel del sistema operativo tiene entre otros los siguientes

EL SISTEMA OPERATIVO

52

acciona el hardware.El kernel del sistema operativo tiene entre otros los siguientes componentes:o Cargador inicial (programa de arranque)o Planificador de trabajo de la CPU (Planifica procesos y tareas)o Administrador de periféricoso Comunicador entre procesoso Administrador de memoriao Administrador de archivos

Arranque del Ordenador

Para que el ordenador pueda arrancar, los

programas de arranque y otros de utilidades

básicas se guardan en la ROM, que tiene

especificado pedir un disco de sistema. Unaespecificado pedir un disco de sistema. Una

vez se introduce este disco, el control lo

asume el sistema operativo. El disco de

sistema puede ser flexible A: o duro C: .

53

Cuando se enciende un ordenador

Cuando se conecta el interruptor de un ordenador, ocurren una

serie de operaciones que se pueden englobar en dos grupos:

1. Los test de comprobación:

o Entrada de la alimentación eléctrica al ordenador desde la fuente de alimentación

o Llamada del microprocesador a la ROM-BIOS

o La BIOS le da las indicaciones de los test a realizar

o Comprobación del bus de expansión (placas instaladas)

o Verificación de la tarjeta de vídeoo Verificación de la tarjeta de vídeo

o Comprobación de la memoria caché

o Comprobación de la memoria RAM

o Comprobación del teclado

o Comprobación de las unidades de disco

2. La carga del resto del sistema operativo: según el sistema operativo que se tenga.

54

USOS DE SISTEMAS OPERATIVOS

DENTRO DE WINDOWS

55

PARA MÓVILES

UNIX

-SO estándar

-Comercializado en los 90.

-Se desarrollaron mas de 100 versiones en las dos primeras décadas.

-Es la columna vertebral de Internet

56

-Es la columna vertebral de Internet

-Es un SO multiprogramación, multiusuario y multiprocesamiento

-Muy utilizado en los supercomputadores actuales.

-Presenta una versión para PC (Linux)

Bibliografía:

1. Programación en C, Metodología, estructura de datos y objetos de Luis Joyanes Aguilar.

2. Organización y Arquitectura de Computadores de Stalling.

3. Sistemas Operativos Modernos de Andrew S. Tanenbaum

4. Introducción a la Informática de A. P. Espinosa

57