Title: Lección memoria
Course: Ciencias de la computación 1º Bachillerato

Feedback shared by this category's questions, if right: Respuesta correcta
Feedback shared by this category's questions, if partly right: Respuesta parcialmente correcta.
Feedback shared by this category's questions, if wrong: Respuesta incorrecta.

Q: Almacenamiento masivo

Las computadoras son capaces de almacenar una enorme cantidad de datos. No es raro que haya discos que almacenen un Terabyte, esto es aproximadamente 10 elevado a [...]. Es un número aproximado porque un Kilobyte no son 1000 bytes sino 2 elevado a 10  que son [...]bytes.

Esto es, un disco es una cantidad inmensa de bits que contienen datos. Para poder encontrar los datos tenemos que saber dónde están. Esto es, cuál es su [...]. No podemos direccionar cada bit ya que tendríamos que gastas muchos más recursos a las direcciones que a los datos en sí.

Por eso los datos se organizan en registros que son un conjunto de bits consecutivos que contienen los datos. Los ordenadores pueden ser de 32 o de 64 bits, lo que significa que (entre otras cosas) los registros de memoria tiene ese número de bits.

En las imágenes RGB cada pixel necesita 3 bytes (uno para el nivel del rojo, otro para el nivel del verde y otro para el nivel del azul) En un ordenador de 64 bits en cada registro hay información para [...] pixeles y en una de 32 para [...].

Si quisiéramos direccionar todos los registros de un disco de 1TB en registros de 64 bits necesitaríamos [...] direcciones. Sigue siendo un número muy grande.

Por tanto, es muy complejo poder direccionar cada dato almacenado en la memoria. Pero esto no es necesario. Normalmente sólo necesitamos conocer dónde comienza un archivo y tener algo que nos indique que el archivo ha terminado. Por eso el disco se divide en "cluster" que es un conjunto de registros consecutivos que contiene  datos de un solo archivo. Un archivo puede ocupar varios cluster que no necesariamente están en posiciones consecutivas de memoria. Los cluster pueden tener diferentes tamaños pero lo habitual es que tengan 512 bytes o un multiplo de este número.

Un archivo de texto plano (texto sin formato) necesita un byte por cada carácter si utiliza el código ascii más un byte para indicar el final del fichero. Aunque  solo almacenemos un carácter, en la práctica el archivo "ocupa" un cluster entero ya que en un cluster no puede haber más de un archivo.

Los ordenanores no trabajan directamente con los datos en los discos de almacenamiento porque acceder a ellos es muy lento. Por eso, cuando se abre un programa, que está almacenado en un disco, tanto el programa en sí como los datos que necesita se cargan en la memoria RAM. Este proceso está limitado por la velocidad de la memoria de almacenamiento. Una vez cargado en la memoria RAM la velocidad para modificar esos datos aumenta en varias potencias de 10 ya que trabajaremos a velocidad del procesador que es muy grande.
A: 12; 1024; dirección; 2; 1; 125000000000 / 137438953472

Q: Los datos de los archivos se almacenan en bloques. Un archivo puede ocupar uno solo de esos bloques o más Dos archivos diferentes no pueden  guardarse en el mismo bloque. Esos bloques se llaman [...].

Los archivos no siempre tienen el mismo tamaño durante su existencia. Si por ejemplo estamos escribiendo un texto largo, a medida que vamos avanzando en el trabajo, cada vez el tamaño es más grande. Puede ocurrir cuando el archivo deba ocupar un bloque adicional, el bloque siguiente en el espacio real esté ocupado. de manera que se tenga que almacenar en un bloque que esté en otra posición. Como consecuencia, los archivos pueden estaer y de hecho están fragmentados. La siguiente imagen representa esta fragmentación. Cada color representa un archivo concerto

[Image: fragmetado]

Cuando se quiere abrir un archivo hay que cargar todos estos trozos y [...]. Esto ralentiza mucho la carga del archivo y por tanto la velocidad del sistema. Por ejemplo, en discos duros magnéticos esto significa que el lector tiene que ir cambiando físicamente de posición y ese proceso es mucho más lento que los procesos habituales de los ordenadores. Ese es uno de los motivos por el que ciertos sistemas operativos (windows) trabajan más lentamente cuanto más datos tenemos. Linux fragmenta mucho menos los archivos, por eso el rendimiento de estos sistemas no se ralentiza con la cantidad de datos que tenemos.

Para intentar mejorar el rendiento de los discos mecñanicos existe el proceso de desfragmentación, que intenta poner juntos todos los bloques del mismo archivo.

[Image: desfragmetación]

La desfragmentación es un proceso lento. En discos grandes puede tardar horas. Por eso, solo se hace de vez en cuando como una de las labores de [...] del equipo.

El resultado es algo así:

[Image: desfragmentado]

Cuando se trabaja con discos de estado sólido, la carga de los fragmentos es mucho más rápida que en los mecánicos de manera que no hace falta desfragmentar los discos. Hacerlo puede estropear el dispositivo ya que estos discos tienen un número de veces limitado en los que se pueden regrabar los registros
A: cluster; ordenarlos; mantenimiento
Gap 2 offers: ordenarlos; borrarlos; escribirlos; cambiarlos
Gap 3 offers: mantenimiento; protección; configuración

Q: Memoria de los ordenadores

La memoria es una parte fundamental dentro de los ordenadores. Es necesaria tanto para almacenar datos como para almacenar instrucciones. Existen muchos tipos de memoria diferentes para diferentes cometidos. Pero en electrónica tiene una cosa en común. Las memorias son digitales.

¿Qué significa que algo es digital?
- Que solo puede tomar valores concretos (Correcto)
- Que puede tomar cualquier valor (No es correcto)
- Que su interior está construido mediante elementos electrónicos (No es correcto. Existen elementos electrónicos analógicos y digitales)
- Que está relacionado con los ordenadores (No es correcto)
A: Que solo puede tomar valores concretos

Q: Cada casilla de memoria únicamente puede estar marcada o desmarcada. En general diremos que contiene un 1 si está marcada y un 0 si no lo está.

 Si queremos representar algo diferente al mismo hecho de que esté marcada o no necesitamos un código. Este puede ser variado. Por ejemplo, se pueden representar los colores blanco y negro. De manera que si la memoria fuera de este tipo:

1 | 0 | 1 | 0

el ordenador interpretaría lo siguiente

1 | 0 | 1 | 0

Este código se podría crear para
- Representar imágenes en blanco y negro (Bién)
- Representar imágenes en escala de grises (Eso se podría realizar con otro código)
- Representar imágenes en color (Eso se podría realizar con otro código)
- Representar si algo es verdadero o falso (Eso se podría realizar con otro código)
A: Representar imágenes en blanco y negro

Q: Sistema de numeración binario

Nosotros usamos un sistema de numeración decimal porque tenemos 10 dedos y eso nos ayuda a contar. Como los ordenadores tiene la memoria organizada en bits que solo pueden tener dos valores, es más adecuado un sistema de numeración binario. Los 8 primeros números binarios son:

0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1 | 0
1 | 1 | 1

¿Cuál es el número binario que corresponde al número decimal {decimal}?
A: decbin({decimal}) (formula; values not in the backup's text)

Q: ¿A qué número decimal corresponde el número binario {=decbin({decimal})}?
A: {decimal} (formula; values not in the backup's text)

Q: Suma los números binarios {=decbin({d1})} + {=decbin({d2})}
A: decbin({d1}+{d2}) (formula; values not in the backup's text)

Q: Sistema de numeración octal

En el sistema de numeración octal representamos todos los números mediante 8 guarismos (los símbolos del 0 al 7).

Si usamos el siguiente código

[Image: codigo octal]

es muy fácil representar números octales en binario y viceversa. Por ejemplo, para pasar de binario a octal sólo hay que leer los bits de 3 en e. Cada triplete corresponde a un número octal concreto.

¿Cuál es el número octal que corresponde al número binario {=decbin({d})}?
A: decoct({d}) (formula; values not in the backup's text)

Q: Cuantos más bits tenemos más cosas diferentes podemos representar en un código.

¿Cuántas cosas diferentes podríamos representar con agrupaciones de {n} bits?
A: pow(2,{n}) (formula; values not in the backup's text)
Feedback ("pow(2,{n})"): Bien. Con n bits se puede generar un código que represente 2^n (2 elevado a n) cosas diferentes porque tenemos ese número de mareas diferentes de llenar esos bits
  Hint: Fíjate cómo cambia el número de cosas que se puede representar con 1, 2 , 3 etc. bits e intenta deducir la fórmula por inducción.

Q: ¿Cuántas cosas se pueden representar con 2 bits?
A: 4
Feedback ("4"): Con una asociación de 2 bits se pueden representar 4 cosas diferentes. Por ejemplo los números del 0 al 3 [Image: 0_3] O, por ejemplo, el blanco, el negro y dos grises: [Image: bn] Esta asociación entre unos valores de un registro de memoria y un significado se llama código.

Q: Multiplica los números binarios {=decbin({d1})} x {=decbin({d2})}
A: decbin({d1}*{d2}) (formula; values not in the backup's text)

Q: Con 4 bits podríamos representar 16 cosas diferentes. Eso nos permitiría representar los números del 0 al 9, la base de nuestro sistema decimal.
[Image: decimal]
Pero nos encontramos con 6 combinaciones de bits que no significan nada, lo que es un desperdicio en la capacidad de almacenamiento. Además, si usáramos este código no podríamos operar directamente con los números haciendo las operaciones con los números binarios. Por ejemplo si sumaramos el 1001 con el 0001 usando este sistema de codificación, el número resultante sería el....
A: 10000 / 00010000

Q: ¿Cuántas cosas se pueden representar con 3 bits?
A: 8
Feedback ("8"): Con una asociación de 3 bits se pueden representar 8 cosas diferentes. Por ejemplo los números del 0 al 7 [Image: 0_7] O, por ejemplo, 8 colores: [Image: color]

Q: ¿Cuántos datos se pueden almacenar  un una memoria que tenga un sistema de direcciones de {n} bits?
A: pow(2,{n}) (formula; values not in the backup's text)

Q: Organización lógica de la memoria

Aparte de la organización física de la memoria, existe una organización lógica. Esto es cómo nosotros organizamos los datos para poder encontrarlos.

Para ello ponemos nombres a los archivos que nos informan sobre su contenido y creamos carpetas que contienen estos archivos. Las carpetas las organizamos en un [...], esto es, una estructura jerárquica en la unas carpetas contienen a otras.

Físicamente, los archivos no están en las carpetas. Las carpetas son archivos que contienen información sobre la posición de los archivos que "almacenamos" en ellas. Por eso cuando cambiamos de posición un archivo muy grande de una carpeta a otra el proceso es [...] porque lo único que hacemos es cambiar el dato del nombre del archivo que está en la carpeta y la posición de la memoria donde [...]. El archivo físicamente no se mueve. Sin embargo, si lo cambiamos de disco, entonces sí que hay que mover los datos de los registros y el proceso es [...].

Tanto los nombres de archivos y carpetas tiene unas restricciones para evitar problemas:

- Los nombres deben de ser cortos y significativos (dan información sobre el contenido)
- Los espacios están prohibidos
- Solo se pueden usar caracteres alfanuméricos excluida la ñ
- No se pueden usar tildes
- Se pueden usar puntos y guiones - _ .
- No se usan mayúsculas a menos que haya razones de peso para hacerlo
A: árbol de directorios; muy rápido; empiezan los datos del archivo; lento
Gap 1 offers: árbol de directorios; registro de datos; archivo
Gap 2 offers: muy rápido; lento
Gap 3 offers: empiezan los datos del archivo; terminan los datos del archivo; está la carpeta
Gap 4 offers: lento; rápido

Q: PARTICIONES

Cuando los discos son grandes conviene particionarlos, esto es, dividirlos en partes. Las particiones se comportan como si fueran discos diferentes, pero en realidad, físicamente corresponden a un dispositivo. Si el disco físico se estropea [...] particiones se estropearán.

Las particiones corresponden a la organización [...] de la memoria.

Cuando se instala un sistema operativo, determinados directorios pueden estar en particiones diferentes. Es bastante frecuente usar una partición para los datos separada del resto del sistema. De esta manera, si el sistema se estropeara, podríamos acceder a los datos porque es como si estuvieran en un disco diferente.

En el sistema de particiones msDOS, el más extendido, permite 4 particiones primarias. Esta limitación proviene de que en este sistema se establecen unas direcciones de memoria con un tamaño concreto para definir las particiones  (dónde empiezan, donde terminan, nombre, etc). Esto se denomina tabla de particiones y en ella solo cabe información para definir 4 particiones,  de ahí ese límite.

La tabla de particiones GPT tiene más espacio para definir las particiones lo que p0'ermite un número mayor de las mismas. Se pueden definir hasta 128 particiones.

¿Podemos tener 3 particiones msDOS en un disco? [...]

¿Podemos tener 3 particiones GPT en un disco? [...]

¿Podemos tener 5 particiones msDOS en un disco? [...]

¿Podemos tener 5 particiones GPT en un disco? [...]

¿Podemos tener 2 particiones msDOS y 8 particiones GPT en un disco? [...]
A: todas; lógica; Sí; Sí; No; Sí; No
Gap 1 offers: todas; algunas
Gap 2 offers: lógica; física
Gap 3 offers: Sí; No
Gap 4 offers: Sí; No
Gap 5 offers: Sí; No
Gap 6 offers: Sí; No
Gap 7 offers: No; Sí

Q: Tipos de memoria

Memoria RAM (Random Acces Memory) cualquier dato puede introducirse o sacarse directamente en un solo paso independientemente de su posición. Esta memoria es volátil, si se desconecta el ordenador se pierden los datos que estaban almacenados en ella

Memoria caché. Es un tipo de memoria  que está localizada dentro del propio procesador. Es una memoria de acceso aleatorio, por tanto, comparte las características de la memoria RAM, pero es aun más rápida por estar muy próxima la unidad aritmeticológica que es donde se usan los datos ahí almacenados. En ella se guardan datos a los que hay que acceder repetidamente. No hay que confundir esta memoria con la cache de un navegador. Esta es memoria normal que se almacena en el disco duro en la que se guardan datos de navegación para no tener que descargarlos de nuevo en visitas futuras. El propósito de ambas memorias es acelerar la carga de datos cuando son datos que se usan varias veces

Memoria de almacenamiento (discos duros). Tiene una gran capacidad de almacenamiento, pero no podemos acceder directamente a los datos. El lector del disco debe colocarse antes en la posición donde está guardado el dato para poder leerlo. Por este motivo, el acceso a los datos guardados es mucho más lento.

Memoria ROM (Read Only Memory). Es una memoria que no puede reescribirse. Es la que tienen los CD y DVD. Su acceso tiene las mismas características que las de los discos duros, es mucho más lento que la memoria RAM

Memoria EPROM. Es un tipo de memoria ROM que se puede borrar usando luz ultravioleta.

EEPROM (Electrically-Erasable Programmable Read-Only Memory). Es un tipo de memoria ROM que puede ser borrado y reescrito por procedimientos eléctricos. El borrado y escritura de datos es lento.

Memoria flash. Es un tipo avanzado de memoria EEPROM que le da mucha más rapidez. Es la memoria de los pendrive.

Indica si son volátiles o no las memorias
- RAM | volatil
- ROM | no volatil
- flash | no volatil
- Memoria de almacenamiento | no volatil
- caché de CPU | volatil
- cache de navegador | no volatil

Q: La memoria cache es un tipo de memoria que guarda datos que se usan de manera repetiva, de manera que el acceso a ellos es más rápido que si se guardan en los bancos de memoria estandar.

Existen dos tipos de memoria cache una de hardware y otra de software.

La memoria cache hardware es un banco de memoria situado en el chip. Almacena datos que se van a usar en la unidad aritmetico-lógica, de manera que no havce falta cargarlos en la unidad de memoria. Es más rápida incluso que la memoria RAM, y como esta, es volatil, por tanto al apagar el ordenador [...].

La memoria cache de software se utiliza para guardar datos de navegación de internet, de manera que no hace falta descargarlos de nuevo haciendo que la carga de una página sea [...]. Cuando se solicita al navegador una página, el mismo mira en la memoria caché si esa página ya ha sido visitada, y en caso de haberlo sido, carga la página almacenada en la memoria cache. Un efecto adverso de esta memoria es que podemos visualizar una página que no está actualizada. Si queremos forzar a que el navegador pida la página al servidor externo, podemos pulsar control+F5. Pulsando control+mayúscula+F5 se borra la memoria caché. Pulsando F5 únicamente, se refresca la página.

¿La memoria caché del navegador es volatil? [...]
A: se borra; más rápida; no
Gap 1 offers: se borra; No se borra
Gap 2 offers: más rápida; más lenta
Gap 3 offers: no; sí

Q: Uso de la tecla F5
- F5 | vuelve a cargar la página
- control+F5 | Carga la página desde el servidor
- Contro+ mayúscula+F5 | Borra la memoria caché

Q: Bit

La memoria de un ordenador consiste en una sucesión muy grande de "casillas" que se pueden marcar o no. Una casilla puede ser físicamente de muchas maneras. Puede ser, por ejemplo, un elemento electrónico que dependiendo del voltaje que tenga estará marcada o no. Puede ser un punto en un CD quemado o sin quemar. Puede ser un lugar de un disco magnético que puede estar magnetizado o no.

Cada una de esas casillas recibe el nombre de bit

- un bit puede contener un 0 o un 1
- un 1 se puede representar con 5voltios, un punto de un CD quemado por el laser, o un punto de disco duro magnetizado (al que se le ha acercado un pequeño imán).
- Un 0 se representará con 0 voltios, el punto del CD sin quemar o el punto del disco duro sin magnetizar

¿Cuántas cosas diferentes se pueden representar con 1 bit?
A: 2
Feedback ("2"): Un bit solo puede representar dos cosas - Blanco o negro por ejemplo del punto de un dibujo - O los números 0 y 1 - O verdadero y falso