Vous êtes sur la page 1sur 45

1

TEMA 1: INTRODUCCIÓN
Autores: José L. Bernier Villamor, Luis Javier Herrera Maldonado

Contenido:
1. Informática, sistema informático, datos e información
2. Conceptos sobre Arquitectura de Computadores
3. El sistema operativo
4. La programación de ordenadores
5. Tipos de lenguajes de programación
1. Informática. Sistema informático. Datos e Información 2

Informática (INFORmación autoMATICA):


conjunto de conocimientos científicos y técnicas que hacen posible
el tratamiento automático de la información por medio de
ordenadores.

Sistema:
conjunto de cosas que ordenadamente relacionadas entre sí
contribuyen a determinado objeto.
– Puede componerse a su vez de otros sistemas (subsistemas).

Sistema informático:
 Hardware o soporte físico
 Software o soporte lógico
1. Informática. Sistema informático. Datos e Información 3

El software se organiza en capas:


 Trabajar directamente sobre el hardware es muy complejo
 Cada capa crea una abstracción para la capa siguiente
 Cada capa trata con un dispositivo virtual más sencillo de utilizar que
la anterior
 Cada capa limita a las siguientes

Aplicaciones de usuario

Herramientas y utilidades

Sistema operativo

Hardware
1. Informática. Sistema informático. Datos e Información 4

Datos:
 El dato es una representación simbólica (numérica, alfabética,
algorítmica, entre otros) de un atributo o característica de una
entidad. Los datos describen hechos empíricos, sucesos y entidades.
 Los datos aisladamente pueden no contener información
humanamente relevante. Sólo cuando un conjunto de datos se
examina conjuntamente a la luz de un enfoque, hipótesis o teoría se
puede apreciar la información contenida en dichos datos.

Información:
 La información es un conjunto organizado de datos procesados, que
constituyen un mensaje que cambia el estado de conocimiento del
sujeto o sistema que recibe dicho mensaje.

Esta asignatura trata sobre el desarrollo de software


científico para el procesamiento de datos
1. Concepto de sistema informático 5

Mitos sobre el software


“El hardware es más importante que el software”

Falso: el sistema debe acoplarse


y estar compensado. De
nada sirve tener un hardware
potente si el software
instalado no aprovecha su
potencial.
1. Concepto de sistema informático 6

Mitos sobre el software


“El desarrollo de software es una labor de codificación.”

Falso: es un proceso de
Ingeniería, donde la
codificación es sólo uno de
los pasos a realizar.
1. Concepto de sistema informático 7

Mitos sobre el software


“El desarrollo de software es sencillo y poco costoso”

Falso: no existen botones que


generen programas
mágicamente. El desarrollo
de software requiere tiempo,
estudio del problema,
preparación y experiencia y,
a veces, resolver dificultades
tecnológicas o algorítmicas
tremendamente complejas.
1. Concepto de sistema informático 8

Mitos sobre el software


“El desarrollo de software es cosa de gurús (y frikis)”

Falso: El desarrollo de software


sigue una metodología y
proceso estándar, no es la
consecuencia de una idea
feliz, ni de un momento de
inspiración repentina, ni fruto
de una mente bendecida por
los dioses.
1. Concepto de sistema informático 9

Mitos sobre el software


“Es normal que el software tenga errores”

Falso: existen técnicas para


verificar la corrección de los
programas. La casuística es
tan grande que en algunos
casos es imposible
garantizar al 100% estar libre
de errores. Siempre hay que
intentar evitarlos en la
medida que sea posible, no
dejando nada al azar.
3. El sistema operativo 10
3. El sistema operativo 11

 Un sistema operativo es un programa de control que


tiene por objeto:
 facilitar el uso del computador
 conseguir que éste se utilice eficientemente

 El sistema operativo:
 Constituye la primera capa de software
 Oculta los aspectos tecnológicos del computador al usuario,
evitándole el tener que conocer cómo funcionan internamente
estos elementos.
 Proporciona una interfaz amigable para que el usuario puede
realizar diversas tareas, ejecutar programas, copiar ficheros, etc.
 Proporciona la interfaz a las capas de software siguientes.
3. El sistema operativo 12

 Gracias al sistema operativo:


 El usuario trata con una máquina virtual más sencilla de utilizar
que la máquina real (el hardware).
 Se hace una gestión eficiente de los recursos disponibles.

 Ejemplos de sistemas operativos:


 GNU/Linux
 MacOS
 Windows 7
 Windows Vista
 Windows 98
 MSDOS

 Distintos sistemas operativos => distintas interfaces


(incompatibilidad de las aplicaciones).
4. La programación de computadores. Definiciones. 13
4. La programación de computadores. Definiciones. 14

Ordenador/computador: dispositivo capaz de aceptar unos datos de


entrada, efectuar con ellos operaciones lógicas y aritméticas, y
proporcionar la información resultante a través de un medio de salida;
todo ello bajo el control de un conjunto de instrucciones previamente
almacenado en el propio ordenador llamado programa.

Programa: conjunto ordenado de instrucciones que indican al


computador las operaciones o tareas que debe realizar.

Programa
Datos de
salida
Datos de
entrada
4. La programación de computadores. Definiciones. 15

Realizar un programa consiste en combinar diversas


instrucciones de ordenador en el orden adecuado para
resolver un problema concreto.

 Un algoritmo es una secuencia finita de pasos que


permite obtener sin ambigüedad la solución a un
problema en un tiempo finito.

Algoritmo para calcular la energía cinética de


una partícula
1. Pedir valor de masa
2. Pedir valor de velocidad
3. Calcular valor de EC como 1/2*masa*velocidad²
4. Mostrar el resultado
4. La programación de computadores. Definiciones. 16

Los algoritmos se parecen a las recetas de cocina

Algoritmo
Algoritmopara
parapreparar
prepararuna
unapaella
paella

–– Echar
Echar22cucharadas
cucharadasde deaceite
aceiteenenlalasartén
sartén
–– Pelar
Pelar22dientes
dientesde
deajo
ajo
–– Cuando
Cuandoelelaceite
aceiteesté
estécaliente
calienteechar
echarajoajoyysal
sal
–– Cuando
Cuandoelelajo
ajoesté
estéfrito
fritoechar
echar… …
–– Echar
Echarununpuñado
puñadodedearroz
arrozporporpersona
persona
–– .....
.....
4. La programación de computadores. Definiciones. 17

• El “algoritmo” anterior es ambiguo e impreciso:


– Qué dimensiones debe tener la sartén
– Cucharadas? De qué capacidad exacta?
– Puñado? Del tamaño de un adulto o un niño, de un jugador
de baloncesto?
– Caliente? Qué temperatura exacta es caliente?
– Los dientes de ajo de que tamaño?
– Cuánta sal?

• En cuanto al orden, daría lo mismo?:


– Echar primero el ajo y después la sal?
– Pelan primero los ajos o echar el aceite en la sartén?
4. La programación de computadores. Definiciones. 18

Los computadores son máquinas que carecen de inteligencia,


hay que proporcionarles las instrucciones exactas, en el orden
adecuado, sin imprecisiones ni errores (→ salvo mediante el uso
de técnicas de inteligencia artificial que simulan el procesamiento de
información imprecisa)

Además, el algoritmo hay que expresarlo en un lenguaje que


pueda entender el ordenador.
Análisis Codificación
Problema Algoritmo PROGRAMA

 Codificación: expresión de un algoritmo en un lenguaje


de programación determinado.
4. La programación de computadores. Definiciones. 19

 La programación de ordenadores es un conjunto de


técnicas, métodos y reglas que permiten construir
programas de ordenador legibles1, correctos2 y
eficientes3:
1 => código estructurado y escrito con claridad
2 => realizan la tarea objetivo sin errores
3 => obtienen el resultado en el menor tiempo posible

 Componentes de un lenguaje de programación:


 Símbolos: léxico (vocabulario y signos ortográficos)
 Conjunto de reglas:
 Sintácticas: cómo combinar los símbolos para construir

instrucciones válidas.
 Semánticas: determinadas combinaciones no tienen sentido o

significado.
5. Tipos de lenguajes de programación. 20
5. Tipos de lenguajes de programación. 21

 Un ordenador es una máquina compuesta por millones de


pequeños interruptores.

 Cada interruptor puede estar en dos estados posibles:


 Apagado (símbolo 0)
 Encendido (símbolo 1)

 Las instrucciones que entiende el ordenador son


combinaciones de 0s y 1s (00000001, 10010010, 11000011,
etc).

 Estas combinaciones se denominan instrucciones máquina.

 El lenguaje de 0s y 1s que “habla” el ordenador se denomina


“lenguaje binario” o “lenguaje máquina”.
5. Tipos de lenguajes de programación. 22
5. Tipos de lenguajes de programación. 23

 Realizar un programa en lenguaje máquina:


 Es engorroso
 Es fácil cometer errores
 Es difícil detectar los errores
 Depende del hardware

 Una instrucción máquina corresponde a una tarea simple


que puede realizar el hardware. Cualquier tarea que sea
más compleja (por ejemplo, sumar 10 números, grabar
un fichero, etc) implica combinar decenas o cientos de
instrucciones máquina.

 Escribir un programa medianamente complejo


directamente en lenguaje máquina es una tarea colosal.
5. Tipos de lenguajes de programación. 24

 Los seres humanos usamos el lenguaje natural:


 Es un lenguaje con muchos símbolos y reglas
 No es entendido por los ordenadores

 Tipos de lenguajes de programación:

 Lenguajes de bajo nivel: + próximos al lenguaje máquina

 Lenguajes de alto nivel: + próximos al lenguaje natural


5. Tipos de lenguajes de programación. 25

 Ejemplo: un programa que suma los números del 1 al 10 y


muestra el resultado en pantalla:

Lenguaje de bajo nivel Lenguaje de alto nivel


1111 0101 0000 0000
1111 0111 0000 0000 suma:=0;
1110 0101 0000 0000 for i:=1 to 10 do
1110 0111 0000 0001 suma:=suma+i;
1111 1111 0000 0101 write(suma);
0111 1111 0000 1001
0001 1111 1010 1111
0010 1111 1010 0011
0110 0111 0000 0000
5. Tipos de lenguajes de programación. 26

 Lenguajes de alto nivel:

 Son “similares” al lenguaje natural

 El programador escribe un “código fuente” que no es


comprensible directamente por el computador =>
El código fuente debe traducirse a lenguaje máquina

Traductor
Código fuente Código máquina
5. Tipos de lenguajes de programación. 27

 Los lenguajes de alto nivel son independientes de:


 Sistema operativo
 Hardware

 TIPOS
– Lenguajes compilados: Un compilador genera un
archivo ejecutable, que puede ser portado a otros
sistemas. Ejemplos: C
– Lenguajes interpretados: Los códigos fuentes se
interpretan (se traducen instrucción a instrucción). Se
portan los códigos fuentes de un sistema a otro para ser
traducidos por los intérpretes presentes en cada
sistema. Ejemplos: Java, MATLAB
5. Tipos de lenguajes de programación 28

 Ventajas de lenguajes de alto nivel:

 Más fáciles de aprender

 Independientes del hardware y del SO.

 Portabilidad a otras plataformas.

En esta asignatura vamos a aprender a programar


usando un lenguaje de alto nivel
2. ¿Cómo es por dentro un ordenador? 29
30
31
32
2. Conceptos sobre Arquitectura de Computadores 33

Arquitectura básica de un Computador:

Periféricos de Entrada (E) Periféricos de Periféricos de Salida (S)


- Teclado Memoria Masiva (MM) - Monitor
- Ratón - Disco duro - Impresora
- Escáner - CD-ROM, DVD-ROM - Plotter
- Joystick - Pendrive - Altavoces
2. Conceptos sobre Arquitectura de Computadores 34

 El Procesador (o Unidad Central de Proceso - CPU)


es un circuito electrónico que:
 realiza todos los cálculos
 ejecuta las instrucciones máquina

 La memoria principal (memoria RAM) es otro circuito


electrónico en el que se almacenan:
 los programas que se están ejecutando
 los datos necesarios con los que se realizan las operaciones.
2. Conceptos sobre Arquitectura de Computadores 35

Cuando se va a ejecutar un programa, éste se copia desde el disco duro


a la memoria principal.

Programa
Disco duro Memoria principal
a ejecutar
Resultados
Instrucciones

Operandos

CPU
2. Conceptos sobre Arquitectura de Computadores 36

 La memoria principal:
 Es rápida => debe ser eficiente para comunicarse con la CPU

 Es cara => capacidad limitada

 Es volátil => se borra al apagar el ordenador

=>

No tiene capacidad suficiente para guardar los datos o programas


de forma masiva.

 No es apta para guardar permanentemente los programas o datos

 Sólo almacena las instrucciones máquina de los programas en ejecución


y los datos correspondientes a dichos programas.
2. Conceptos sobre Arquitectura de Computadores 37

 Para almacenar los programas y que éstos no se borren


al apagar el ordenador necesitamos un periférico de
almacenamiento (Memoria Masiva por ejemplo, un
disco duro):
 Es muy lento comparado con la memoria principal
 Es muy barato => almacenamiento masivo
 No es volátil, su contenido permanece al apagar el ordenador

Memoria principal Disco duro


Rápida ~1000 veces más lento
Cara ~1000 veces más barato
Volátil No volátil
Almacena programas Almacena programas que
en ejecución conviene tener a mano
2. Conceptos sobre Arquitectura de Computadores 38

 Cuando se ejecuta un programa:


 El SO copia su código máquina desde el disco duro a la memoria
principal
 El programa se ejecuta desde la memoria principal
 Al finalizar, se borra la copia de memoria y se libera el espacio utilizado

 En la memoria principal se alojan los programas que se están


ejecutando en un momento dado.

 En el disco duro se almacenan todos los programas y datos que


conviene tener a mano y que nos interesa conservar al apagar el
ordenador.
2. ¿Cómo es la información que maneja por dentro un
39
ordenador?
2. Conceptos sobre Arquitectura de Computadores 40

Los ordenadores internamente sólo trabajan en binario


 Toda la información que manejan se debe codificar en binario =>
 Instrucciones
 Operandos

Los operandos y las instrucciones se codifican


mediante combinaciones de los valores binarios 1 ó 0,
llamados bits.

Un programa consiste en una secuencia de 1s y 0s,


que representan las instrucciones máquina que el
ordenador debe ejecutar y los datos con los que debe
operar.
2. Conceptos sobre Arquitectura de Computadores 41

 La unidad mínima de información es el bit:


 Un bit (Binary digIT) puede tomar el valor 0 ó 1

 8 bits forman 1 byte (00000000, 00000001, 10101010,


11110000, etc).

 Multiplos de bytes:

1 Kilobyte (KB) = 210 Bytes = 1024 Bytes ≈ 103 Bytes

1 Megabyte (MB) = 220 Bytes = 1048576 Bytes ≈ 106 Bytes

1 Gigabyte (GB) = 230 Bytes ≈ 109 Bytes

1 Terabyte (TB) = 240 Bytes ≈ 1012 Bytes

1 Petabyte (PB) = 250 Bytes ≈ 1015 Bytes

1 Exabyte (EB) = 260 Bytes ≈ 1018 Bytes
Cada dato o instrucción se codifica en la memoria mediante
una secuencia de uno o más bytes consecutivos.
2. Conceptos sobre Arquitectura de Computadores 42

 Multiplos de bytes:

Sistema Internacional (Decimal) ISO/IEC 80000-13 (Binario)


Múltiplo - (Símbolo) SI Múltiplo - (Símbolo) ISO/IEC
Kilobyte (kB) 103 Kibibyte (KiB) 210
Megabyte (MB) 106 Mebibyte (MiB) 220
Gigabyte (GB) 109 Gibibyte (GiB) 230
Terabyte (TB) 1012 Tebibyte (TiB) 240
Petabyte (PB) 1015 Pebibyte (PiB) 250
Exabyte (EB) 1018 Exbibyte (EiB) 260
Zettabyte (ZB) 1021 Zebibyte (ZiB) 270
Yottabyte (YB) 1024 Yobibyte (YiB) 280
2. Conceptos sobre Arquitectura de Computadores 43

 Para un programador es muy conveniente tener unos mínimos


conocimientos sobre la estructura y organización de
computadores:

 Para comprender mejor los conceptos y sus relaciones.


 Para elegir los tipos de datos más adecuados.
 Para realizar programas más eficientes.
 Para poder evitar o detectar los errores de programación con mayor
facilidad.
2. Conceptos sobre Arquitectura de Computadores 44

 La memoria principal se encuentra


organizada internamente como una
tabla de bytes. Fila 1 1000 0001
Fila 2 0101 1010
 Para acceder a un byte particular de la
Fila 3 0011 1100
memoria se debe conocer su número de
orden (número de fila) en la tabla. 0101 0101
1111 1010
 Por ejemplo una memoria de 1 1011 1011
Megabyte consta de 220 bytes, el 0110 0010
primero está en la fila 1 y el último en la
Fila n …. ….
fila 220.

 El número de fila u orden se denomina


“dirección de memoria”.
2. Conceptos sobre Arquitectura de Computadores 45

 Todos los datos e instrucciones de un


programa se codifican mediante 1 o más
bytes consecutivos Dirección Contenido

1 1000 0001
 Por ejemplo:
2 0101 1010
 Las direcciones 1 a 4 están ocupadas por
un número real que ocupa 4 bytes. 3 0011 1100

Las direcciones 5 y 220 codifican sendos 4 0101 0101
caracteres (1 byte cada uno).
5 1111 1010
 Las direcciones 6 y 7 codifican un número
entero que ocupa 2 bytes. 6 1011 1011
7 0110 0010
 La forma en que están codificados los … …. ….
distintos tipos de operandos (reales, … …. ….
enteros, caracteres, etc) se expondrá en
los siguientes temas. 220 0011 1010

Vous aimerez peut-être aussi