LA MEMORIA CACHE EN UN PROCESADORUna memoria caché es una memoria en la que se almacenas una serie de datos para su rápido acceso. Existen muchas memorias caché (de disco, de sistema, incluso de datos, como es el caso de la caché de Google), pero en este blog nos vamos a centrar en la caché de los procesadores.
Básicamente, la memoria caché de un procesador es un tipo de memoria volátil (del tipo RAM), pero de una gran velocidad.
En la actualidad esta memoria está integrada en el procesador, y su cometido es almacenar una serie de instrucciones y datos a los que el procesador accede continuamente, con la finalidad de que estos accesos sean instantáneos. Estas instrucciones y datos son aquellas a las que el procesador necesita estar accediendo de forma continua, por lo que para el rendimiento del procesador es imprescindible que este acceso sea lo más rápido y fluido posible.
Hay tres tipos diferentes de memoria caché para procesadores:
Caché de 1er nivel (L1):
Esta caché está integrada en el núcleo del procesador, trabajando a la misma velocidad que este. La cantidad de memoria caché L1 varía de un procesador a otro, estando normalmente entra los 64KB y los 256KB. Esta memoria suele a su vez estar dividida en dos partes dedicadas, una para instrucciones y otra para datos.
Caché de 2º nivel (L2):
Integrada también en el procesador, aunque no directamente en el núcleo de este, tiene las mismas ventajas que la caché L1, aunque es algo más lenta que esta. La caché L2 suele ser mayor que la caché L1, pudiendo llegar a superar los 2MB.
A diferencia de la caché L1, esta no está dividida, y su utilización está más encaminada a programas que al sistema.
Caché de 3er nivel (L3):
Es un tipo de memoria caché más lenta que la L2, muy poco utilizada en la actualidad.
En un principio esta caché estaba incorporada a la placa base, no al procesador, y su velocidad de acceso era bastante más lenta que una caché de nivel 2 o 1, ya que si bien sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y mucho más en la época en la que se utilizaba), depende de la comunicación entre el procesador y la placa base.
Para hacernos una idea más precisa de esto, imaginemos en un extremo el procesador y en el otro la memoria RAM. Pues bien, entre ambos se encuentra la memoria caché, más rápida cuanto más cerca se encuentre del núcleo del procesador (L1).
Las memorias caché son extremadamente rápidas (su velocidad es unas 5 veces superior a la de una RAM de las más rápidas), con la ventaja añadida de no tener latencia, por lo que su acceso no tiene ninguna demora... pero es un tipo de memoria muy cara.
Esto, unido a su integración en el procesador (ya sea directamente en el núcleo o no) limita bastante el tamaño, por un lado por lo que encarece al procesador y por otro por el espacio disponible.
En cuanto a la utilización de la caché L2 en procesadores multinucleares, existen dos tipos diferentes de tecnologías a aplicar.
Por un lado está la habitualmente utilizada por Intel, que consiste en que el total de la caché L2 está accesible para ambos núcleos y por otro está la utilizada por AMD, en la que cada núcleo tiene su propia caché L2 dedicada solo para ese núcleo.
La caché L2 apareció por primera vez en los Intel Pentium Pro, siendo incorporada a continuación por los Intel Pentium II, aunque en ese caso no en el encapsulado del procesador, sino externamente (aunque dentro del procesador).
Fuentes :
El Gran libro del PC interno: programación de sistemas hardware a fondo
By Luis Durán Rodríguez (eBook)
viernes, 22 de noviembre de 2013
PIPELINE
Muchos de los computadores antiguos y muchos de los minicomputadores
contemporáneos son monoprocesadores, lo cual no debe sorprendernos ya que es la
máquina más elemental para diseñar y construir.
Por otra parte, las computadoras digitales modernas de gran escala utilizan
frecuentemente el procesamiento simultáneo (concurrencia) en distintos puntos del sistema denominaremos a esta clase de computadoras Procesadores Paralelos.
Los computadores paralelos son sistemas de computadores consistentes de un
conjunto centralizado de procesadores que pueden procesar simultáneamente los datos
del programa.
El procesamiento paralelo se basa en la explotación de sucesos concurrentes
en el proceso de cómputo.
Como apuntamos en el Capítulo 1 la concurrencia implica paralelismo, simultaneidad y pipelining.
Sucesos Paralelos ocurren en múltiples recursos durante el mismo intervalo
de tiempo.
Sucesos Simultáneos ocurren en el mismo instante.
Sucesos Pipeline ocurren en lapsos superpuestos.
Se puede hablar de niveles de paralelismo, que caracterizamos de la siguiente
manera:
- Multiprogramación, Multiprocesamiento: Estas acciones se toman a nivel de
Programa o Trabajo.
- Tarea o Procedimientos: Acciones que se toman dentro de un mismo
programa, ejecutándose procesos independientes en forma simultánea.
- Interinstrucciones: Acciones a nivel de instrucción, o sea, dentro de mismo
proceso o tarea se pueden ejecutar instrucciones independientes en forma
simultánea.
- Intrainstrucciones: Acciones simultáneas que se pueden realizar para una
misma instrucción, por ejemplo vectorización de operaciones escalares dentro
de una instrucción compleja tipo DO, FOR, etc.
El paralelismo de un mayor nivel se obtiene por medio de algoritmos, los de
menor nivel con importante actividad del hardware.
Ultimamente ciertas técnicas del procesamiento distribuido son incorporadas a
arquitecturas centralizadas para conseguir mayor grado de paralelismo.
El paralelismo puede obtenerse de distintas maneras, a saber:
- Multicomputadoras: Computadoras independientes, muy a menudo una de ellas actúa como supervisor, que realizan una tarea común en una sola
ubicación (una configuración muy común, aunque ciertamente limitada, es la
minicomputadora como preprocesador de un computador mainframe).
- Multiprocesadores: Un conjunto de unidades de cómputo, cada una de las
cuales tiene sus propios conjuntos de instrucciones y datos, compartiendo una
misma memoria. Los computadores multiprocesadores consisten en un número
n mayor o igual a 2 de procesadores que operan simultáneamente sobre una
misma memoria, y están interconectados mediante canales que transmiten
comandos de control y datos. Están controlados por un único Sistema
Operativo.
- Redes de computadoras: Computadoras independientes conectadas
mediante un canal de manera tal que los recursos propios disponibles en un
punto de la red pueden estar disponibles para todos los miembros de la red.
- Procesador Pipeline: Un solo computador el cual puede realizar
simultáneamente operaciones de cálculos en determinadas secciones, con
diferentes estadios de completitud. Los procesadores pipeline se basan en el
principio de dividir los cálculos entre una cantidad de unidades funcionales que
operan simultáneamente existiendo superposición.
- Procesador Array: Un grupo de unidades de cómputo cada una de las cuales
realiza simultáneamente la misma operación sobre diferentes conjuntos de
datos. Los procesadores array operan sobre vectores. Las instrucciones del
computador vectorial son ejecutadas en serie (como en los computadores
clásicos) pero trabajan en forma paralela sobre vectores de datos.
Clasificación del FLYNN
A grandes rasgos, la ejecución de una instrucción puede verse como etapas
distintas, que realizan:
- Búsqueda de la instrucción,
- Decodificación de la instrucción,
- Búsqueda de los operandos, y
- Ejecución de la instrucción.
Las instrucciones pueden verse
como un flujo de instrucciones que se
desplazan de memoria al procesador y los
operandos como un flujo de datos que se
desplazan entre memoria y el procesador
Analizando el ciclo de una instrucción se puede diferenciar a un procesador en
dos unidades funcionales:
La unidad de control (CU): decodifica la instrucciones y envía señales a una
Unidad de Procesamiento.
La unidad de procesamiento (PU): ejecuta las instrucciones decodificadas y
envía los resultados a la unidad funcional memoria.
M. J. Flynn en 1966 realizó una clasificación del paralelismo presente en un
procesador basado en el número de Flujo de Instrucciones y de Datos simultáneos.
Combinando flujo de instrucciones y flujo de datos surgen 4 grupos de
procesadores posibles.
PROCESAMIENTO EN SERIE vs. PROCESAMIENTO EN PARALELO.
Tsé-Yun Feng (1972) sugirió la utilización del grado de paralelismo para
clasificar las distintas arquitecturas de computadoras. La cantidad máxima de bits que
pueden ser procesados dentro de una unidad de tiempo por un computador, es lo que
se denomina máximo grado de paralelismo.
Consideremos un conjunto de m
palabras de n bits cada una, llamamos un
bit-slice a una columna vertical de bits de un
conjunto de palabras en la misma posición
BALANCE DEL ANCHO DE BANDA DEL SUBSISTEMA (BANDWIDTH).
La estructura de bus común tiene el inconveniente que ofrece una
comunicación en cuello de botella.
Cada acceso a memoria de un ordenador desaprovecha accesos a millones de
bits cuando escoge unos pocos para enviar a través del bus desde la memoria a la
unidad central de proceso.
Este despilfarro se tolera por dos razones:
- Primero, porque simplifica nuestro concepto de la máquina y se adapta a
nuestra inclinación natural de hacer las cosas una a una.
- Segundo, nos suministra una sola y simple interconexión entre las distintas
partes de la máquina.
En general, la CPU es la unidad más veloz dentro de una computadora.
Mediremos su ciclo en un tiempo Tp dado en decenas de nanosegundos; el de la
memoria, en Tm dado en cientos de nanosegundos; y el del subsistema de E/S, que es
el más lento, en Td, dado en unos pocos milisegundos. Entonces:
Td > Tm > Tp
Ej: En la IBM 370/168, Td = 5 ms (discos); Tm = 320 ns y Tp = 80 ns.
Se define el ancho de banda o bandwidth de un subsistema como la cantidad
de operaciones realizadas por unidad de tiempo. Para el caso de memoria es la cantidad de palabras de memoria que pueden accederse por unidad de tiempo.
Es importante al hacer mediciones comparativas entre los anchos de banda de
los diferentes subsistemas tener bien en claro ciertos conceptos.
Cuando se mide el ancho de banda de la memoria (o equivalentemente el del subsistema de E/S) su visualización no es complicada debido a que es bastante sencillo pensar que, ya que la memoria en un dispositivo pasivo, lo que se mide es la cantidad de información (bytes, palabras, instrucciones, etc) que la memoria puede transmitir en una cierta unidad de tiempo.
En cambio hablar del ancho de banda de la CPU, que es un dispositivo activo,significa en cierta forma la capacidad de proceso de la misma, es decir más burdamente hablando, que cantidad de instrucciones puede ejecutar por unidad de tiempo.
Si lo que se desea es comparar los anchos de banda de la memoria y la CPUdebe ponerse especial cuidado en qué patrón de comparación se está utilizando. Por
ejemplo, utilizando los guarismos anteriores, si la IBM 370/168 ejecuta 50 instrucciones
en 80 ns su memoria demora 320 ns en transferir esas 50 instrucciones a la CPU.
Sea W la cantidad de palabras que se obtienen por cada ciclo de memoria Tm;
luego, el ancho de banda máximo de la memoria es:
Bm = W / Tm (Palabras o bytes)
Ej: La IBM 3033 tiene un ciclo de procesador de Tp = 57 ns. Por cada ciclo de
memoria de Tm = 456 ns pueden obtenerse 8 palabras dobles de 8 bytes c/u a partir de un sistema de memoria con 8 elementos lógicos de almacenamiento en forma intercalada (interleaved). Luego:
Bm = 8 * 8 bytes / 456 ns = 134 Mb/s
Pero debido a esta partición lógica de la memoria pueden producirse determinados conflictos al querer acceder a una posición, y por lo tanto, el ancho de banda
útil (Bmu) será menor:
Bmu ≤ Bm
Se sugiere una medida del tipo:
Bmu = Bm / M 1/2
donde M es la cantidad de módulos de memoria del sistema de memoria.
Luego, en el ejemplo anterior, se tiene:
Bmu = 134 / 8 1/2 = 47.3 Mb/s
En cuanto a dispositivos externos, el concepto de bandwidth se complica un
poco. Piense que, por ejemplo, según los tiempos de latencia y rotación, la tasa de
transferencia de una unidad de disco puede variar. En general nos referimos a la tasa
de transferencia promedio de una unidad de disco como el bandwidth Bd del disco; un
valor típico es del orden de 3 Mb/s. En una unidad de cinta el valor típico ronda los 1.5
Mb/s. Las impresoras, lectoras y terminales son mucho más lentas aún. Usando
múltiples drives estas tasas aumentan.
El bandwidth de un procesador se mide como el máximo porcentaje de
cómputo de la CPU; por ejemplo, 160 megaflops (millones de instrucciones de punto
flotante por segundo) en los computadores Cray-1, y de 12.5 MIPS (millones de instrucciones por segundo) en los computadores IBM 370/168. Estos son valores pico obtenidos de la división de 1/Tp = 1/12.5 ns y 1/80 ns respectivamente.
En la realidad, el porcentaje útil de CPU es Bpu menor o igual a Bp. Este porcentaje de utilización se calcula sobre la cantidad de resultados (o palabras) por segundo:
Bpu = Rw / Tp (palabras/s)
donde Rw es la cantidad de resultados medidos en palabras, y Tp es el tiempo
necesario para generar esos resultados Rw.
Por ejemplo, el CDC Cyber-205 tiene un porcentaje pico de 200 MFLOPs para
resultados de 32 bits, y solamente de 100 MFLOPs para resultados de 64 bits.
En las computadoras actuales se observa la siguiente relación entre los
bandwidths de los distintos subsistemas:
Bm ≥ Bmu,
Bmu ≥ Bp,
Bp ≥ Bpu, y
Bpu ≥ Bd
Esto significa que la memoria principal tiene el mayor bandwidth, ya que debe
ser accedida tanto por la CPU como por los dispositivos de E/S, es decir que del porcentaje efectivo de información transferida por unidad de tiempo por la memoria una
parte se dirige a la CPU y otra corresponde al intercambio de información con los
medios externos. Por lo tanto necesitamos igualar la potencia de procesamiento de los
tres subsistemas. A continuación describimos los dos mecanismos más usados:
Balance entre CPU y Memoria.
La diferencia de velocidad entre la CPU y la memoria puede achicarse
mediante el uso de memoria cache de alta velocidad. La cache tiene un tiempo de acceso Tc = Tp. Un bloque de palabras de memoria es movido a la cache (Por ej. bloques
de 16 palabras en la IBM 3033) de tal manera que los datos e instrucciones están disponibles inmediatamente para su uso; también puede servir como un buffer para instrucciones.
Balance entre dispositivos de E/S y Memoria.
Pueden utilizarse canales de diferentes velocidades entre los dispositivos lentos
y la memoria. Estos canales de E/S realizan funciones de bufferización y mult
plexamiento para la transferencia de datos desde muchos discos y la memoria principal
mediante el robo de ciclos a la CPU. Incluso pueden utilizarse controladores de disco
inteligentes para filtrar la información irrelevante de las pistas del disco, lo cual aliviaría
la saturación de los canales de E/S.
En el caso ideal desearemos alcanzar un balance total del sistema, en el cual el
bandwidth de la memoria coincida con la suma del bandwidth del procesador y de los
Dispositivos de E/S, es decir:
Bpu + Bd = Bmu
donde Bpu = Bp y Bmu = Bm han sido maximizados ambos.
Paralelismo con una sola CPU
Procesamiento paralelo es un término utilizado para denotar operaciones
simultáneos en la CPU con el fin de aumentar su velocidad de cómputo. En lugar de
procesar cada instrucción secuencialmente como en las arquitecturas convencionales,
un procesador paralelo realiza tareas de procesamiento de datos e instrucciones concurrentemente.
Para lograr concurrencia en un sistema con un solo procesador se utilizan
técnicas de paralelismo que se consiguen multiplicando los componentes de hardware,
o técnicas de pipelining.
Introduciremos las características básicas de los computadores paralelos, que
son aquellos sistemas que enfatizan el procesamiento en paralelo. Estos computadores
se pueden dividir en tres configuraciones según la arquitectura:
- Computadores Pipeline
- Procesadores Matriciales - Array Processors
- Sistemas Multiprocesadores
Un computador pipeline hace operaciones superpuestas para explotar el
paralelismo temporal. Un Array Processor usa ALUs múltiples sincronizadas, para
lograr paralelismo espacial. Un sistema multiprocesador logra paralelismo
asincrónico a través de un conjunto de procesadores que interactúan y comparten
recursos (periféricos, memorias, bases de datos, etc.).
El pipelining es una forma económica de hacer paralelismo temporal en computadoras. La idea es la misma que la de las líneas de montaje de las plantas industriales. Se divide la tarea en una secuencia de subtareas, cada una de las cuales se
ejecuta en una etapa de hardware especializada que trabaja concurrentemente con otra
de las etapas del pipeline. Esto permite aumentar el throughput del sistema de forma
considerable.
COMPUTADORES PIPELINE
Veamos el ejemplo de un pipeline de cuatro etapas: el proceso de ejecución de
una instrucción en un computador digital envuelve cuatro pasos principales: levantar la
instrucción de memoria (Instruction Fetch - IF); identificar la operación que debe efectuarse (Instruction Decoding - ID); levantar los operandos si son necesarios en la
ejecución (Operand Fetch - OF); y ejecutar la operación aritmético lógica que ha sido
decodificada. Antes de comenzar a ejecutar una nueva instrucción deben completarse
estos cuatro pasos.
- Principios de pipelining lineal
Las líneas de montaje de las plantas han sido utilizadas para aumentar productividad. Su forma original es una línea de flujo (pipeline) de estaciones de montaje en
donde los ítems se ensamblan continuamente.
Idealmente todas las etapas tienen que tener igual velocidad de procesamiento,
porque sino la más lenta se transforma en un cuello de botella de todo el pipe. La
subdivisión de la tarea de entrada en una secuencia apropiada de subtareas es un factor crucial para determinar la performance del pipeline.
En un pipeline de tiempo uniforme, todas las tareas tienen igual tiempo de
procesamiento en todas las estaciones. Sin embargo, en la realidad las estaciones
sucesivas tienen tardanza de tiempo distinta. La partición óptima del pipeline depende
de un número de factores, incluyendo la calidad de las unidades de trabajo (eficiencia y
capacidad), la velocidad deseada y la efectividad en costo de toda la línea.
El tiempo que se tarda en obtener resultados continuos es lo que se conoce
Uno de los primeros tipos de memoria RAM fue la memoria de núcleo magnético,
desarrollada entre 1949 y 1952 y usada en muchos computadores hasta el
desarrollo de circuitos integrados a finales de los años 60 y principios
de los 70. Esa memoria requería que cada bit estuviera almacenado en un
toroide
de material ferromágnetico de algunos milímetros de diámetro, lo que
resultaba en dispositivos con una capacidad de memoria muy pequeña.
Antes que eso, las computadoras usaban relés y líneas de retardo de varios tipos construidas para implementar las funciones de memoria principal con o sin acceso aleatorio.
4MiB de memoria RAM para un computador VAX de finales de los 70. Los integrados de memoria DRAM están agrupados arriba a derecha e izquierda.
En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de silicio por parte de Intel con el integrado 3101 de 64 bits de memoria y para el siguiente año se presentó una memoria DRAM de 1024 bytes,
referencia 1103 que se constituyó en un hito, ya que fue la primera en
ser comercializada con éxito, lo que significó el principio del fin para
las memorias de núcleo magnético. En comparación con los integrados de
memoria DRAM actuales, la 1103 es primitiva en varios aspectos, pero
tenía un desempeño mayor que la memoria de núcleos.
En 1973 se presentó una innovación que permitió otra miniaturización y
se convirtió en estándar para las memorias DRAM: la multiplexación en
tiempo de la direcciones de memoria. MOSTEK lanzó la referencia MK4096 de 4096 bytes en un empaque de 16 pines, mientras sus competidores las fabricaban en el empaque DIP de 22 pines. El esquema de direccionamiento
se convirtió en un estándar de facto debido a la gran popularidad que
logró esta referencia de DRAM. Para finales de los 70 los integrados
eran usados en la mayoría de computadores nuevos, se soldaban
directamente a las placas base o se instalaban en zócalos, de manera que
ocupaban un área extensa de circuito impreso. Con el tiempo se hizo
obvio que la instalación de RAM sobre el impreso principal, impedía la
miniaturización , entonces se idearon los primeros módulos de memoria
como el SIPP, aprovechando las ventajas de la construcción modular. El formato SIMM
fue una mejora al anterior, eliminando los pines metálicos y dejando
unas áreas de cobre en uno de los bordes del impreso, muy similares a
los de las tarjetas de expansión, de hecho los módulos SIPP y los primeros SIMM tienen la misma distribución de pines.
Integrado de silicio de 64 bits sobre un sector de memoria de núcleo magnético (finales de los 60).
A finales de los 80 el aumento en la velocidad de los procesadores y
el aumento en el ancho de banda requerido, dejaron rezagadas a las
memorias DRAM con el esquema original MOSTEK, de manera que se
realizaron una serie de mejoras en el direccionamiento como las
siguientes:
Módulos formato SIMM de 30 y 72 pines, los últimos fueron utilizados con integrados tipo EDO-RAM.
FPM-RAM (Fast Page Mode RAM)
Inspirado en técnicas como el "Burst Mode" usado en procesadores como el Intel 486,3
se implantó un modo direccionamiento en el que el controlador de
memoria envía una sola dirección y recibe a cambio esa y varias
consecutivas sin necesidad de generar todas las direcciones. Esto supone
un ahorro de tiempos ya que ciertas operaciones son repetitivas cuando
se desea acceder a muchas posiciones consecutivas. Funciona como si
deseáramos visitar todas las casas en una calle: después de la primera
vez no seria necesario decir el número de la calle únicamente seguir la
misma. Se fabricaban con tiempos de acceso de 70 ó 60 ns y fueron muy populares en sistemas basados en el 486 y los primeros Pentium.
EDO-RAM (Extended Data Output RAM)
Lanzada en 1995 y con tiempos de accesos de 40 o 30 ns suponía una
mejora sobre su antecesora la FPM. La EDO, también es capaz de enviar
direcciones contiguas pero direcciona la columna que va utilizar
mientras que se lee la información de la columna anterior, dando como
resultado una eliminación de estados de espera, manteniendo activo el búffer de salida hasta que comienza el próximo ciclo de lectura.
BEDO-RAM (Burst Extended Data Output RAM)
Fue la evolución de la EDO RAM y competidora de la SDRAM, fue
presentada en 1997. Era un tipo de memoria que usaba generadores
internos de direcciones y accedía a más de una posición de memoria en
cada ciclo de reloj, de manera que lograba un desempeño un 50% mejor que
la EDO. Nunca salió al mercado, dado que Intel
y otros fabricantes se decidieron por esquemas de memoria sincrónicos
que si bien tenían mucho del direccionamiento MOSTEK, agregan
funcionalidades distintas como señales de reloj.
Evolucion
La tecnología de memoria actual usa una señal de sincronización para
realizar las funciones de lectura-escritura de manera que siempre está
sincronizada con un reloj del bus de memoria,
a diferencia de las antiguas memorias FPM y EDO que eran asíncronas.
Hace más de una década toda la industria se decantó por las tecnologías
síncronas, ya que permiten construir integrados que funcionen a una
frecuencia superior a 66 MHz.
Tipos de DIMMs según su cantidad de Contactos o Pines:
72-pin SO-DIMM (no el mismo que un 72-pin SIMM), usados por FPM DRAM y EDO DRAM
100-pin DIMM, usados por printer SDRAM
144-pin SO-DIMM, usados por SDR SDRAM
168-pin DIMM, usados por SDR SDRAM (menos frecuente para FPM/EDO DRAM en áreas de trabajo y/o servidores)
172-pin MicroDIMM, usados por DDR SDRAM
184-pin DIMM, usados por DDR SDRAM
200-pin SO-DIMM, usados por DDR SDRAM y DDR2 SDRAM
204-pin SO-DIMM, usados por DDR3 SDRAM
240-pin DIMM, usados por DDR2 SDRAM, DDR3 SDRAM y FB-DIMM DRAM
244-pin MiniDIMM, usados por DDR2 SDRAM
Memorias RAM con tecnologías usadas en la actualidad.
SDR SDRAM
Artículo principal:SDR SDRAM.
Memoria síncrona, con tiempos de acceso de entre 25 y 10 ns y que se presentan en módulos DIMM de 168 contactos. Fue utilizada en los Pentium II y en los Pentium III , así como en los AMD K6, AMD Athlon K7 y Duron. Está muy extendida la creencia de que se llama SDRAM
a secas, y que la denominación SDR SDRAM es para diferenciarla de la
memoria DDR, pero no es así, simplemente se extendió muy rápido la
denominación incorrecta. El nombre correcto es SDR SDRAM ya que ambas (tanto la SDR como la DDR) son memorias síncronas dinámicas. Los tipos disponibles son:
PC66: SDR SDRAM, funciona a un máx de 66,6 MHz.
PC100: SDR SDRAM, funciona a un máx de 100 MHz.
PC133: SDR SDRAM, funciona a un máx de 133,3 MHz.
RDRAM
Artículo principal:RDRAM.
Se presentan en módulos RIMM de 184 contactos. Fue utilizada en los Pentium IV
. Era la memoria más rápida en su tiempo, pero por su elevado costo fue
rápidamente cambiada por la económica DDR. Los tipos disponibles son:
PC600: RIMM RDRAM, funciona a un máximo de 300 MHz.
PC700: RIMM RDRAM, funciona a un máximo de 356 MHz.
PC800: RIMM RDRAM, funciona a un máximo de 400 MHz.
PC1066: RIMM RDRAM, funciona a un máximo de 533 MHz.
DDR SDRAM
Artículo principal:DDR SDRAM.
Memoria síncrona, envía los datos dos veces por cada ciclo de reloj.
De este modo trabaja al doble de velocidad del bus del sistema, sin
necesidad de aumentar la frecuencia de reloj. Se presenta en módulos DIMM
de 184 contactos en el caso de ordenador de escritorio y en módulos de
144 contactos para los ordenadores portátiles. Los tipos disponibles
son:
PC1600 o DDR 200: funciona a un máx de 200 MHz.
PC2100 o DDR 266: funciona a un máx de 266,6 MHz.
PC2700 o DDR 333: funciona a un máx de 333,3 MHz.
PC3200 o DDR 400: funciona a un máx de 400 MHz.
PC4500 o DRR 500: funciona a una máx de 500 MHz
DDR2 SDRAM
Módulos de memoria instalados de 256 MiB cada uno en un sistema con doble canal.
Las memorias DDR 2 son una mejora de las memorias DDR (Double Data Rate),
que permiten que los búferes de entrada/salida trabajen al doble de la
frecuencia del núcleo, permitiendo que durante cada ciclo de reloj se
realicen cuatro transferencias. Se presentan en módulos DIMM de 240 contactos. Los tipos disponibles son:
PC2-4200 o DDR2-533: funciona a un máx de 533,3 MHz.
PC2-5300 o DDR2-667: funciona a un máx de 666,6 MHz.
PC2-6400 o DDR2-800: funciona a un máx de 800 MHz.
PC2-8600 o DDR2-1066: funciona a un máx de 1066,6 MHz.
PC2-9000 o DDR2-1200: funciona a un máx de 1200 MHz
DDR3 SDRAM
Artículo principal:DDR3 SDRAM.
Las memorias DDR 3 son una mejora de las memorias DDR 2, proporcionan
significantes mejoras en el rendimiento en niveles de bajo voltaje, lo
que lleva consigo una disminución del gasto global de consumo. Los
módulos DIMM
DDR 3 tienen 240 pines, el mismo número que DDR 2; sin embargo, los
DIMMs son físicamente incompatibles, debido a una ubicación diferente de
la muesca. Los tipos disponibles son:
PC3-6400 o DDR3-800: funciona a un máx de 800 MHz.
PC3-8500 o DDR3-1066: funciona a un máx de 1066,6 MHz.
PC3-10600 o DDR3-1333: funciona a un máx de 1333,3 MHz.
PC3-12800 o DDR3-1600: funciona a un máx de 1600 MHz.
PC3-14900 o DDR3-1866: funciona a un máx de 1866,6 MHz.
PC3-17000 o DDR3-2133: funciona a un máx de 2133,3 MHz.
PC3-19200 o DDR3-2400: funciona a un máx de 2400 MHz.
PC3-21300 o DDR3-2666: funciona a un máx de 2666,6 MHz.
Un disco duro o disco rígido (en inglés Hard Disk Drive, HDD) es un dispositivo de almacenamiento de datos no volátil que emplea un sistema de grabación magnética para almacenar datos digitales. Se compone de uno o más platos o discos rígidos, unidos por un mismo eje
que gira a gran velocidad dentro de una caja metálica sellada. Sobre
cada plato, y en cada una de sus caras, se sitúa un cabezal de
lectura/escritura que flota sobre una delgada lámina de aire generada
por la rotación de los discos.
Características de un disco duro
Las características que se deben tener en cuenta en un disco duro son:
Tiempo medio de acceso: Tiempo medio que tarda la aguja en situarse en la pista y el sector deseado; es la suma del Tiempo medio de búsqueda (situarse en la pista), Tiempo de lectura/escritura y la Latencia media (situarse en el sector).
Tiempo medio de búsqueda: Tiempo medio que tarda la aguja en
situarse en la pista deseada; es la mitad del tiempo empleado por la
aguja en ir desde la pista más periférica hasta la más central del
disco.
Tiempo de lectura/escritura: Tiempo medio que tarda el disco
en leer o escribir nueva información: Depende de la cantidad de
información que se quiere leer o escribir, el tamaño de bloque, el
número de cabezales, el tiempo por vuelta y la cantidad de sectores por
pista.
Latencia media: Tiempo medio que tarda la aguja en situarse
en el sector deseado; es la mitad del tiempo empleado en una rotación
completa del disco.
Velocidad de rotación: Revoluciones por minuto de los platos. A mayor velocidad de rotación, menor latencia media.
Tasa de transferencia: Velocidad a la que puede transferir la información a la computadora una vez que la aguja está situada en la pista y sector correctos. Puede ser velocidad sostenida o de pico.
Otras características son:
Caché de pista: Es una memoria tipo Flash dentro del disco duro.
Interfaz: Medio de comunicación entre el disco duro y la computadora. Puede ser IDE/ATA, SCSI, SATA, USB, Firewire, Serial Attached SCSI
Landz: Zona sobre las que aparcan las cabezas una vez se apaga la computadora.
Como funciona un Disco Duro
Desde el punto de vista del ordenador, todos los periféricos son iguales. Básicamente disponen de tres canales de comunicación:
Dirección a la que se quiere acceder
Datos a leer y escribir
Control de la operación que se desea realizar (por ejemplo, leer o escribir)
Con esta interfaz da lo mismo que se acceda a la memoria, pantalla,
disco duro, impresora o cámara de fotos: se indica la dirección y la
operación a realizar y se ponen los datos o se leen. Esta interfaz es la
que proporciona la controladora obteniendo independencia de acceso desde el punto de vista hardware. Pero cada dispositivo es un mundo y no es lo mismo acceder a un disco
duro que a una impresora. Por ejemplo, al escribir un 0 en cierta
dirección del disco duro puede que se escriba el final de cierto fichero
mientras que al escribirlo en la impresora le indicamos que se prepare
para empezar a imprimir. Para lograr la misma independencia desde el
punto de vista de las aplicaciones, los sistemas operativos incorporan
fragmentos de código especial que “se entiende” con el dispositivo
particular: el driver. Uno de los dispositivos más interesantes por
su utilidad son las controladoras de discos duros y disquetes (esas
cosas más o menos cuadradas de colorines que están almacenando polvo en
algún cajón). Desde el punto de vista hardware, un disco duro es un conjunto de
platos que giran sobre el mismo eje. Cada uno de los platos dispone de
una cabeza lectora/escritora (una por cada cara) unidos a un único brazo
que es capaz de moverse a lo largo de su radio. Todo este mecanismo
queda oculto detrás de la controladora apropiada. Para acceder al disco es necesario saber en qué parte de qué disco es
de interés. La controladora es capaz de descomponer la dirección
indicada para determinar:
La cabeza lectora/escritora, que determina el disco y la cara que debe leerse.
Cada cara está dividida en círculos concéntricos que se denominan
pistas. El conjunto de pistas de todos los platos, independientemente de
la cabeza que acceda a ellas, se denomina cilindro.
Cada pista a su vez se divide en sectores (cada sector es capaz de almacenar 512 bytes de información).
El mecanismo por tanto consiste en posicionar las cabezas (el brazo
es único por lo que se mueven todas juntas) hasta la pista apropiada y
esperar a que el giro del disco haga que los sectores deseados lleguen
hasta la cabezas obteniendo sólo los datos de aquella/s que interesa.
Para mejorar el tiempo de acceso suelen leerse varios sectores
consecutivos o el mismo conjunto de sectores pero de distintas cabezas
(cilindro). De esa forma se puede obtener simultáneamente con un único
posicionamiento al menos 512 bytes de cada una de las caras
(habitualmente 4-8, lo que significa 2-4 Kb de información en un
movimiento).
Como almacena la informacion
En primer lugar, la información se
almacena en unos finos platos o discos, generalmente de aluminio,
recubiertos por un material sensible a alteraciones magnéticas. Estos
discos, cuyo número varía según la capacidad de la unidad, se encuentran
agrupados uno sobre otro y atravesados por un eje, y giran
continuamente a gran velocidad. Asimismo,
cada disco posee dos diminutos cabezales de lectura/escritura, uno en
cada cara. Estos cabezales se encuentran flotando sobre la superficie
del disco sin llegar a tocarlo, a una distancia de unas 3 o 4
micropulgadas (a título de curiosidad, podemos comentar que el diámetro
de un cabello humano es de unas 4.000 micropulgadas). Estos cabezales
generan señales eléctricas que alteran los campos magnéticos del disco,
dando forma a la información. (dependiendo de la dirección hacia donde
estén orientadas las partículas, valdrán 0 o valdrán 1). La
distancia entre el cabezal y el plato del disco también determinan la
densidad de almacenamiento del mismo, ya que cuanto más cerca estén el
uno del otro, más pequeño es el punto magnético y más información podrá
albergar.
Tipos de Discos Duros
Los discos duros
pueden ser clasificados por diferentes tipologías o clases, vamos a ver
de forma breve un resumen general de los diferentes tipos de
clasificación: Clasificación por su ubicación interna o externa Esta
clasificación sólo nos proporcionará información sobre la ubicación del
disco, es decir, si el mismo se encuentra dentro de la carcasa del
ordenador o bien fuera de la misma, conectándose al PC mediante un cable
USB o Firewire. Dentro de los discos duros externos tenemos los discos FireWire, USB y los nuevos SATA. Clasificación por tamaño del disco duro Esta
clasificación atiende únicamente a al tamaño del disco duro, desde los
primeros discos duros comerciales que comenzaron a llegar al mercado y
cuyo tamaño era de 5,25 pulgadas a los más modernos de 1,8 pulgadas
contenidos en dispositivos MP3 y ordenadores portátiles de última
generación. Los
discos duros con los que suelen ir equipados los ordenadores de
escritorio o de sobremesa son discos duros de 3,5" pulgadas, son los más
utilizados y por tanto los más económicos, existiendo en la actualidad
modelos que ya se acercan a 1 Terabyte de capacidad Clasificación por el tipo de controladora de datos La interficie es el tipo de comunicación que realiza la controladora del disco con la placa base o bus de datos del ordenador. La
controladora de datos para discos duros internos más común en la
actualidad es la SATA o serial ATA, anteriormente ATA a secas, sus
diferencias con la antigua ATA, también denominada IDE es que SATA es
mucho más rápida en la transferencia de datos, con una velocidad de
transferencia muy cercana a los discos duros profesionales SCSI. El
tipo de controladora SCSI se encuentra reservada a servidores de datos
pues la tecnología que emplean es superior a costa de ser mucho más
costosa y disponer de menor capacidad por disco, un disco duro SCSI de
100 Gb. valdrá más caro que un disco duro SATA de 250 Gb. no obstante la
velocidad de transferencia de información y sobre todo la fiabilidad
del disco duro SCSI y de la controladora SCSI es muy superior. Por este
mismo motivo hace ya algunos años, aproximadamente hasta el año 2000 los
ordenadores Apple Mac equipaban siempre discos duros SCSI pues eran
máquinas bastante exclusivas, hoy en día los Mac han reducido su precio,
entre otras cosas reduciendo o equiparando la calidad de sus
componentes por la de los ordenadores PC de fabricantes como HP, Compaq,
Dell, etc. y se han popularizado hasta tal punto que en territorios
como USA ya está alcanzando una cuota de mercado superior al 15%. Clasificación por tipo de ordenador En
la actualidad se venden más ordenadores portátiles que ordenadores de
sobremesa, por eso también existe la clasificación por el tipo de
ordenador, es algo muy común encontrar ofertas de empresas de
informática donde ofrecen: "Disco duro para portátil" los discos duros
para portátil difieren de los discos duros normales básicamente en su
tamaño aunque también en su diseño interior pues están preparados para
sufrir más golpes debido a la movilidad de los equipos que lo contiene. En
el disco duro es donde los ordenadores portátiles suelen tener su talón
de aquiles, pues si juntamos su movilidad, todo lo que se mueve sufre
golpes, y su reducido tamaño incapaz en muchas ocasiones de ventilar el
interior del ordenador tenemos un cóctel explosivo. La excasa ventilación de un portátil hará que el disco duro sufra numerosos cambios térmicos y exceso de calor en sus circuitos, factores de alto riesgo para la conservación de los datos del disco duro. También
podemos clasificar dentro de este grupo los discos duros de servidor
que suelen ser discos duros normales, bien SCSI o SATA pero con la
peculiaridad de que se encuentran conectados a complejas tarjetas RAID
cuya función es la de replicar los datos de forma automática de forma
que al escribir un archivo o documento en él dicha información se
duplica, triplica o cuatriplica en la matriz o array de discos duros que
contenga el servidor.
1.Primer tipo de disco duro S.A.S
2.Segundo tipo de disco duro S.C.S.I
3.Tercer tipo de disco duro IDE/ATA Y PATA
4.Cuarto tipo de disco duro SATA Y SATA 2
1) SAS Es un estándar para
dispositivos de alta velocidad que incluye discos duros entre sus
especificaciones, a diferencia de los estándar S.C.S.I
que es paralelo. Estos discos duros soy muy populares a nivel doméstico
por su elevado precios, necesita tarjetas controladoras S.A.Spara
trabajar y ser instalados, soportan unos cables de una longitud de
hasta 6 metros lo cual permite conectar hasta 24 dispositivos, tiene
también la característica de HOT PLUG (se puede conectar y desconectar
en caliente) se utilizan normalmente para servidores.
2) S.C.S.I Que significa
pequeña interfaz para computadoras, también necesita una controladora
para funcionar, también se puede conectar y desconectar en caliente su
cable de datos los encontraremos de 40- 50- 68- 80 conectores.
TIPOS DE DISCOS DUROS S.C.S.I
1) S.C.S.I 1Que utiliza un
cable de 50 pines, que la longitud de sus cables son de 6 metros, que la
velocidad de trasmisión de datos son de 5 Mg/segundo, que permite hasta
7 dispositivos como máximo y el bus de trabajo es de 8 bits.
2) S.C.S.I 2 Diferencia con
el S.C.S.I la velocidad de transferencia en vez de ser 5Mg/segundo son
de 10, Mg/segundo y su cable en vez de ser de 6 metros es de 3 metros, y
todo lo demás es lo mismo. Así se llama concretamente se llama FAX y
estas son sus características y ahí otro tipo.
WIDE Significa ancho utiliza
68 pines, permite hasta 16 dispositivos y la anchura del cable de 3
metros y su tipo de bus trabaja a 16 bits.
TIPOS DE SPI Que significa ultra S.C.S.I
1) ULTRA Es un dispositivo
que trabaja a 16 bits, y de 34 pines tiene su cable, 20 Mg/segundo es su
velocidad, la longitud máxima de su cable son de 10 centímetros por
dispositivo y admite hasta 15 dispositivos.
2) ULTRA WIDE A diferencia
del Ultra es que trabaja 40Mg/segundo y la longitud máxima de su cable
es de 1.5 metros, sus conectores son de 68 pines y es de 16 bits y
admite 15 dispositivos.
3) ULTRA 2 Va a 16 Bits y su velocidad es de 80Mg/segundo tiene 68 pines y 12 metros de cable y hasta 15 dispositivos.
FIREWIRE Es un conector que
trabaja a 400 Mg/ bytes por segundo, ese puerto sirve para cámaras de
video, la última versión de esta conexión alcanza hasta los 32
Gigabytes/ por segundo, el máximo del cable son de 100 metros, y soporta
hasta 63 dispositivos.
S.S.A Es un dispositivo exclusivo de IBM
FC –AL Es un Dispositivo de
disco duro que puede utilizar fibra óptica y con su longitud de 10
kilómetros o podría ser el cable coaxial hasta 24 metros y con su
velocidad de 100Mg/por segundo.
3) IDE/ATA Y PATA
IDE= Componente Electrónico Integrado
ATA= Tecnología Avanzada de Contacto
PATA= Tecnología Paralela Avanzada
El disco duro tiene 40 conectores, velocidad de transferencia es de
66 100 133 Megabyte por segundo, se puede conectar un máximo de 2
dispositivos por conector de bus. Tamaños de discos duro de (3,5 y de
2,5) y también los hay de 8 pulgadas, y también los hay de
5,25pulgadas.Las siguientes medidas 0,85 y de 1.80 pulgadas y de 1
pulgada
DISCO DURO SATA Significa Tecnología Avanzada de
Contacto, el cable de conexión es de 7 contactos y trabaja a una
velocidad de 150Megabytes/segundo permite un solo dispositivo por cable
que es de 1 metro y permite conectar y desconectar en caliente.
DISCO DURO SATA 2 La diferencia con el SATA es que trabaja a 300Megabytes/segundo.
CARACTERÍSTICAS DE LOS DISCO DUROS EN GENERAL
FSB Significa Transporte Frontal Interno esta es la velocidad de transferencias de datos del disco duro.
CACHE Es una memoria SRAM que almacena los datos de los que se ha accedido recientemente.
La Memoria máxima de cache de un disco duro es de 128Megabytes
RPM Revoluciones por minuto de un Disco Duro. Tendencias del futuro del almacenamiento
En plena era de la información, uno de los
grandes temores es la pérdida de archivos digitales, ya sea por falta de
compatibilidad con algunos dispositivos, descuido o por la violación de
la seguridad (hackers). Actualmente existen diversas maneras de guardar información: pasamos
del disquete al CD, a las memorias USB y a los discos duros (incluso con
capacidad de almacenar un terabyte de información), y se nos ha
prometido la portabilidad de la información con el almacenamiento en la
"nube". El futuro llegó y ahora ni los Blu Ray, los DVD o la "nube" serán
necesarios, ya que científicos británicos lograron almacenar información
(imágenes, textos y sonidos) en el ADN. La llamada "molécula de la vida" podrá ser la solución más efectiva –y segura– para guardar la información en los próximos años. Impresionante, ¿no? Por si todavía no estabas del todo sorprendido,
tan solo reflexiona sobre el hecho de que "un gramo de ADN tiene la
capacidad de almacenar alrededor de dos petabytes de datos, el
equivalente a tres millones de discos (CDs)", según señaló Nick Goldman,
biólogo molecular y quien lidera al equipo de investigadores del
Instituto Europeo de Bioinformática (IEB). Para llevar a cabo la investigación, los científicos codificaron a
lenguaje molecular la información y la almacenaron en hebras de ADN
sintético. Algo así como sucede con un disco duro convencional para
computadoras. De acuerdo a una publicación en la revista científica Nature, la
información que se transcribió (alrededor de 760 kilobytes), incluía 154
sonetos de William Shakespeare, una fotografía en formato .jpg del IEB,
un PDF de un documento científico y 26 segundos del video en el que
aparece Martin Luther King dando su mítico discurso, "I have a dream". Goldman afirmó que "el ADN que contiene toda esta información es más pequeño que una mota de polvo". Una publicación en la BBC estableció que la información que se
codificó a lenguaje molecular fue "leída con un 100 por ciento de
precisión". Y es que según el artículo publicado en Nature el 23 de enero de este
año, de esta manera se podrían almacenar inmensas cantidades de
volúmenes de datos, por miles de años en el ADN, si éste se conserva en
un lugar oscuro, seco y fresco. Esta revolucionaria idea de almacenar información tendría un alto
costo (9 mil 760 euros por cada megabyte de información), pero los
autores de la investigación aseguran en la BBC que "gracias a las nuevas
tecnologías, pronto será más asequible e ideal para archivar documentos
a largo plazo". Por ahora este sistema de almacenamiento es lento, dado el tiempo que toma secuenciar cadenas de ADN. Los científicos indicaron que tan solo cuatro gramos de ADN tienen la
capacidad de almacenar la información digital que se ha generado en un
año por toda la humanidad. Y no solo eso, también toda la información de datos que se han
guardado hasta el momento podrían caber ¡en la palma de una mano! La
"lectura de la mano" tendrá un significado menos esotérico y más
tecnológico en un futuro no tan lejano. Los especialistas dijeron que su nueva técnica (que incluye
corrección de errores de software), "fue un paso hacia un medio de
almacenamiento de archivos digitales de escala inmensa", según John
Markoff de The New York Times. Y que "su meta es un sistema que con seguridad va a almacenar el
equivalente de un millón de discos en un gramo de ADN durante 10 mil
años", añade Markoff. De hecho, Goldman compartió a The New York Times que mientras se
tomaba unas cervezas con Ewan Birney, otro de los miembros del equipo
del IEB, dijeron: "Bueno, mira, el ADN es realmente una manera eficiente
de almacenar información. ¿Hay algo que podamos hacer?". "La inspiración para el proyecto llegó a través de los problemas que
estamos teniendo que hacer frente en el Instituto Europeo de
Bioinformática, donde muchos de los autores trabajan (…) somos
responsables de crear y archivar y mantener y proveer al mundo a través
de Internet algunas de las principales bases de datos biológicos: bases
de datos de secuencia del genoma, bases de datos de estructura de proteínas y otros", dijo Goldman. Y recalcó que el almacenamiento "es un dolor de cabeza constante. Por
un lado, es nuestro deber archivar esa información y colocarla en vivo
por Internet, pero ésta está aumentando de forma exponencial, y como
usted se podría imaginar, nuestros presupuestos no están aumentando de
forma exponencial". Adiós al disco duro "Una de las grandes ventajas de utilizar el ADN para almacenar
información, es que no se necesita usar electricidad", puntualizó Ewan
Birney. Las generaciones que nos sigan, conocerán el USB como parte de
una reliquia humana. El ADN se une por cuatro nucleobases (o grupos químicos): Guanina (G), Citosina (C), Adenina (A) y Timina (T). Se sabe que al combinarse, contienen las instrucciones genéticas para que pueda existir un organismo vivo. Por el contrario, el sistema de almacenamiento de información creado
por Nick Goldman y su equipo del IEB, ordena totalmente distinto a la G,
C, A y T, ya que durante la investigación, los dígitos binarios de la
información (ceros y unos), se transformaron en las cuatro letras de la
cadena que conforma el ADN. Además, se creó una especie de máquina exclusiva para leer las
moléculas que decodificaron la información para después verificar
–exitosamente– en una computadora que la información fue almacenada y
recuperada. La información que no se consulta todos los días, tales como
documentos históricos u oficiales podrían almacenarse en el ADN por
mucho tiempo y con la seguridad que ningún dispositivo proporciona hasta
ahora.
La abstracción
consiste en aislar un elemento de su contexto o del resto de los
elementos que lo acompañan. En programación, el término se refiere al
énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?"
(característica de caja negra). El común denominador en la evolución de
los lenguajes de programación, desde los clásicos o imperativos hasta
los orientados a objetos, ha sido el nivel de abstracción del que cada
uno de ellos hace uso.
Los lenguajes de programación son las herramientas mediante las cuales
los diseñadores de lenguajes pueden implementar los modelos abstractos.
La abstracción ofrecida por los lenguajes de programación se puede
dividir en dos categorías: abstracción de datos (pertenecientes a los
datos) y abstracción de control (perteneciente a las estructuras de
control).
Los diferentes paradigmas de programación han aumentado su nivel de
abstracción, comenzando desde los lenguajes de máquina, lo más próximo
al ordenador
y más lejano a la comprensión humana; pasando por los lenguajes de
comandos, los imperativos, la orientación a objetos (OO), la
Programación Orientada a Aspectos (POA); u otros paradigmas como la
programación declarativa, etc.
La abstracción encarada desde el punto de vista de la programación
orientada a objetos expresa las características esenciales de un objeto,
las cuales distinguen al objeto de los demás. Además de distinguir
entre los objetos provee límites conceptuales. Entonces se puede decir
que la encapsulación
separa las características esenciales de las no esenciales dentro de un
objeto. Si un objeto tiene más características de las necesarias los
mismos resultarán difíciles de usar, modificar, construir y comprender.
La misma genera una ilusión de simplicidad dado a que minimiza la cantidad de características que definen a un objeto.
Durante años, los
programadores se han dedicado a construir aplicaciones
muy parecidas que resolvían una y otra vez los mismos problemas. Para
conseguir que sus esfuerzos pudiesen ser utilizados por otras personas
se creó la POO que consiste en una serie de normas para garantizar la
interoperabilidad entre usuarios de manera que el código se pueda reutilizar.
Kernel
Es un software que constituye la parte más importante del sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora
o en forma básica, es el encargado de gestionar recursos, a través de
servicios de llamada al sistema. Como hay muchos programas y el acceso
al hardware es limitado, también se encarga de decidir qué programa
podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo,
lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware.
Esto permite esconder la complejidad, y proporciona una interfaz limpia
y uniforme al hardware subyacente, lo que facilita su uso al programador.
FirmWare
Es un bloque de instrucciones de máquina para
propósitos específicos, grabado en una memoria, normalmente de lectura /
escritura (ROM, EEPROM, flash, etc), que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Está fuertemente integrado con la electrónica del dispositivo siendo el software que tiene directa interacción con el hardware: es el encargado de controlarlo para ejecutar correctamente las instrucciones externas. En resumen, un firmware es el software que maneja al hardware. El programa BIOS de una computadora
es un firmware cuyo propósito es activar una máquina desde su encendido
y preparar el entorno para cargar un sistema operativo en la memoria RAM.
Lenguaje Maquina
Es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones al ser tomadas por la máquina. Un programa
consiste en una cadena de estas instrucciones más un conjunto de datos
sobre el cual se trabaja. Estas instrucciones son normalmente ejecutadas
en secuencia, con eventuales cambios de flujo causados por el propio
programa o eventos externos. El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas
Software de Sistema
Consiste en un software que sirve para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas; en contraposición del llamado software de aplicación. Como ejemplos cabe mencionar a las bibliotecas como por ejemplo OpenGL para la aceleración gráfica, PNG para el sistema gráfico o demonios que controlan la temperatura, la velocidad del disco duro, como hdparm, o la frecuencia del procesador como cpudyn. El software de sistema por antonomasia es Microsoft Windows, que entre todas sus versiones acumula cerca de un 90% de la cuota de mercado. Mención especial merece el proyecto GNU, cuyas herramientas de programación permitieron combinarse con el núcleo informático basado en Unix denominado Linux, formando entre ambos las conocidas como distribuciones GNU/Linux. A diferencia de la plataforma de Microsoft u otros ejemplos como Mac OS, es software libre.
Consiste en la segmentación del
procesador (pipe-line), descomponiéndolo en etapas para poder procesar una
instrucción diferente en cada una de ellas y trabajar con varias a la vez. La
arquitectura en pipeline (basada en filtros) consiste en ir transformando un
flujo de datos en un proceso comprendido por varias fases secuenciales, siendo
la entrada de cada una la salida.
ARQUITECTURA MULTIPROCESAMIENTO
SMP es el acrónimo de Symmetric
Multi-Processing, multiproceso simétrico. Se trata de un tipo de arquitectura
de ordenadores en que dos o más procesadores comparten una única memoria
central.
Los sistemas SMP permiten que cualquier procesador
trabaje en cualquier tarea sin importar su localización en memoria; con un
propicio soporte del sistema operativo, estos sistemas pueden mover fácilmente
tareas entre los procesadores para garantizar eficientemente el trabajo.
Una
computadora SMP se compone de microprocesadores independientes que se comunican
con la memoria a través de un bus compartido. Dicho bus es un recurso de uso
común. Por tanto, debe ser arbitrado para que solamente un microprocesador lo
use en cada instante de tiempo. Si las computadoras con un solo microprocesador
tienden a gastar considerable tiempo esperando a que lleguen los datos desde la
memoria, SMP empeora esta situación, ya que hay varios parados en espera de
datos.