Blog

La BIOS

La BIOS (basic input/output system) es un chip de memoria que contiene los programas básicos necesarios para el arranque del ordenador, antes incluso de la carga del Sistema Operativo. Con este término podemos referirnos tanto al chip como a los programas almacenados en el mismo.

Antiguamente el chip de la BIOS era una memoria ROM o EPROM, con lo que venía ya cargada de fábrica sin posibilidades de actualización por parte del usuario. Actualmente este tipo de chip son memorias Flash, denominadas Flash ROM, que admiten actualizaciones, aunque conviene tener una buena razón para actualizarla. Un error en una actualización de la BIOS te puede dejar el ordenador inservible, sin llegar siquiera a arrancar.

El chip lo podemos localizarlo en la placa base:

El chip de la BIOS
El chip de la BIOS
Sigue leyendo La BIOS

La memoria RAM

La memoria RAM (Random Access Memory) de un ordenador, es una memoria de alta velocidad que el ordenador emplea para guarda los programas y los datos con los que está trabajando. También conocida como la RAM del Sistema, ya que es la memoria principal de este.

La memoria RAM
La memoria RAM

Estas memorias son más caras y tienen menor capacidad que los discos duros, pero son muchos más rápidas. Si trabajáramos directamente con el Disco duro, leyendo y escribiendo la información durante la ejecución de un programa, el tiempo de acceso a los datos aumentaría considerablemente y todo el sistema se vería ralentizado. Es por este motivo que la RAM del Sistema es crítica y determina en gran medida el rendimiento de un equipo.

Sigue leyendo La memoria RAM

La memoria del ordenador

Las instrucciones que ejecuta la CPU necesitan datos y pueden devolver resultados que también son datos. La memoria del ordenador son los componentes donde poder almacenar esos datos y recuperarlos cuando los necesite la CPU para ejecutar las instrucciones.

Cuando hablamos de la memoria del ordenador nos referimos a una serie de componentes, circuitos integrados de semiconductores. El más conocido de todos, es la RAM del sistema, un tipo de memoria muy rápida pero volátil. Es decir, que pierden los datos almacenados cuando se interrumpe la alimentación eléctrica. Sin embargo, tenemos otro tipo de memorias en el ordenador como la Cache o la BIOS que conviene conocer. A todas ellas dedicaré otros posts, en este me voy a centrar en explicar la estructura y funcionamiento de este tipo de memorias.

Sigue leyendo La memoria del ordenador

El procesador

El procesador de un ordenador es un circuito integrado, un componente hardware, que se ocupa de controlarlo todo, es el que genera las instrucciones que indican al resto de componentes del ordenador lo que tienen que hacer. Es por ello que es conocido habitualmente como el cerebro del ordenador.

En ocasiones nos referiremos al procesador como la CPU (Central Process Unit), por sus siglas en inglés. Y es tan significativo, que a veces nos referimos a la totalidad del ordenador como la CPU.

Este circuito integrado tiene varias entradas y es capaz de ejecutar un amplio abanico de instrucciones con dichas entradas, pero para entender cómo funciona tenemos que echar un vistazo a su arquitectura.

Sigue leyendo El procesador

Sistemas de copias de seguridad

Para las organizaciones, sus datos son cruciales, y no pueden arriesgarse a perderlos ante un eventual fallo de los sistema de almacenamiento. Tanto es así, que no se conforman con los sistemas de redundancia de datos, sino que implementan sistemas de copias de seguridad, que realizan copias temporales de los datos en soportes adicionales. De esta forma, ante un fallo grave de los sistemas de negocio, se dispondrían de unos datos de respaldo que permitirían recuperar la actividad, sin perdida significativa de información y sin dañar el negocio.

El soporte más habitual empleado por estos sistemas son las cintas magnéticas, que proporcionan un modo de acceso secuencial a los datos. Son por tanto menos versátiles que los discos duros que proporcionan un modo de acceso aleatorio, pero el coste de almacenamiento es más bajo.

Los sistemas de copias de seguridad, realizan una copia temporal de los datos, en un instante concreto. Es decir, es una foto fija de los datos que tenemos en un instante. Si posteriormente modificamos esos datos, no tendríamos copia de las modificaciones. Esto habrá que tenerlo muy en cuenta cuando definamos nuestras políticas de copias de seguridad y la periodicidad con la que realizamos las copias de respaldo. Por ejemplo, si realizamos un copia de seguridad total todos los lunes, y tenemos un fallo de sistema un viernes, al recuperar los datos volveríamos atrás a los datos que teníamos el lunes, habríamos perdido todas las modificaciones realizadas desde el martes al viernes. En cualquier caso, perder las actualizaciones de algunos datos, el trabajo de algunos días, es asumible frente a perder toda la información y tener que parar el negocio.

Sigue leyendo Sistemas de copias de seguridad

Arquitecturas de almacenamiento

Las arquitecturas de almacenamiento podemos clasificarlas en dos tipos atendiendo al acceso requerido, ya sea directamente a fichero o a disco duro. Veamos ambos tipos

  • Acceso a disco duro: También llamado acceso a bloques, este tipo de acceso se da cuando el cliente requiere acceder directamente al disco. El sistema de ficheros del ordenador cliente gestionara los accesos a disco. Entonces, pueden darse tres situaciones:

1.- Disco interno: El cliente este accediendo al disco interno de su ordenador. Lo haría empleando los buses internos del ordenador, si se trata de un ordenador personal probablemente utilizaría ATA o SATA, y si es un servidor seguramente emplearía SCSI.

2.- DAS (Direct attached storage): El cliente accede a una cabina de discos duros directamente conectada a su ordenador.

3.- SAN (Storage Area Network): En este caso el cliente también accede a una cabina de discos duros pero esta vez no está directamente conectada al ordenador, sino que está en red.

  • Acceso a fichero: El cliente trabaja a nivel de fichero, que solicita a un servidor NAS (Network attached storage) que se ocupa de todas las gestiones.

En la siguiente figura pueden apreciarse las cuatro arquitecturas de almacenamiento comentadas:

Arquitecturas de almacenamiento
Arquitecturas de almacenamiento
Sigue leyendo Arquitecturas de almacenamiento

RAID

Un RAID (Redundant array of independent disks) o Sistema RAID, es un conjunto de discos redundantes e independientes. Redundantes porque van a guardar información redundante para asegurar la tolerancia a fallos y mejorar la disponibilidad. E independientes, porque no existe dependencia entre ellos, lo que nos permite sustituir cualquier disco del conjunto por uno nuevo, y funcionará perfectamente con los discos que ya teníamos.

Este tipo de agrupaciones de discos, tiene como objetivo mejorar las prestaciones que podríamos alcanzar con un único disco. Dependiendo del tipo de combinación podremos mejorar la seguridad, la capacidad de almacenamiento o la disponibilidad de los datos. Y el controlador del sistema se ocupará de que, para el servidor, esta combinación de discos aparezca como uno sólo, bajo la misma letra de unidad.

Ejemplo de RAID de discos duros
Ejemplo de RAID de discos duros
Sigue leyendo RAID

Hash

Un hash es un algoritmo que transforma los datos que se le pasan a una cadena de caracteres de longitud fija. La longitud de los datos de entrada puede ser variable pero el resultado de aplicar el algoritmo es siempre de longitud fija.

Además, este algoritmo tiene una peculiaridad que es la que lo hace realmente útil: funciona sólo en una dirección. Es prácticamente imposible, obtener los datos de entrada a partir de la salida del algoritmo

Un hash se emplea cuando tengamos un conjunto ilimitado de valores de entrada y queramos obtener un conjunto limitado de valores resultado. Normalmente, los valores de entrada serán cadenas de caracteres de longitud variable, que convertiremos en cadenas de longitud fija. Aunque este tipo de funciones admiten todo tipo de datos de entrada. Además, los resultados de la función pueden delimitarse a un conjunto definido de caracteres: enteros y alfanuméricos.

En la imagen siguiente puedes ver el comportamiento de una función hash:

Comportamiento de la función hash
Comportamiento de la función hash
Sigue leyendo Hash

Operaciones con árboles binarios de búsqueda

Ahora que ya sabemos como funcionan los árboles binarios de búsqueda, vamos a estudiar como trabajar con ellos. Las operaciones con árboles binarios de búsqueda que podemos realizar son: Búsqueda, inserción y eliminación de un nodo.

Búsqueda de un nodo

Cuando queremos recuperar datos de nuestra estructura de árbol binario de búsqueda, sacaremos provecho de que estas estructuras están ordenadas. Básicamente, empezaríamos comprobando el nodo raíz, y si este es el que buscamos, ya hemos acabado. Si no lo es, nos moveríamos a su hijo izquierdo o al derecho, dependiendo de si el dato que buscamos es menor o mayor del que contiene el nodo padre. Y así proseguiríamos hasta encontrar el dato o terminar de recorrer el árbol sin encontrarlo.

Este proceso es recursivo, ya que cuando nos movemos a un nodo hijo, podemos considerar a este como el nodo raíz de un nuevo árbol. El proceso de búsqueda podría expresarse como:

Flujo para la búsqueda de un nodo
Flujo para la búsqueda de un nodo

Que también podríamos representar en seudocódigo de la siguiente manera:

Encontrado (Arbol, buscado){
Si no existe Arbol -> No encontrado
Si existe Arbol {
   Si valor Raiz= buscado ->Encontrado
   Si valor Raiz <> buscado{
       Si valor Raiz >buscado{
           árbol = nodo izquierdo
           Encontrado(Arbol, buscado)
           }
       Si valor Raiz < buscado{
           árbol = nodo derecho
           Encontrado(Arbol, buscado)
           }
       }
   }
}
Sigue leyendo Operaciones con árboles binarios de búsqueda

Árboles binarios de búsqueda

Un árbol binario de búsqueda es una estructura ordenada de datos donde cada registro puede estar relacionado con otros dos registros. Vamos a prestar especial atención a los árboles binarios de búsqueda, ya que son muy populares y ampliamente utilizados en BBDD. Como ya adelantaba en el post anterior, los arboles binarios son de orden 2, es decir, sus nodos pueden tener un máximo de dos hijos. Y si además es de búsqueda, tiene que cumplir las siguientes condiciones para todos los nodos:

  • Si el nodo tiene un hijo izquierdo, este tiene que ser menor que él.
  • Si el nodo tiene un hijo derecho, este tiene que ser mayor que él.
Sigue leyendo Árboles binarios de búsqueda