domingo, 30 de diciembre de 2012

Ventajas de C

El lenguaje C tiene una gran cantidad de ventajas sobre otros lenguajes y es, precisamente, la razón fundamental de que después de casi dos décadas de uso, C siga siendo uno de los lenguajes más populares y utilizado en empresas, organizaciones y fábricas de software de todo el mundo.

    Algunas ventajas que justifican el uso todavía creciente del lenguaje C en la programación de computadoras son:

· El lenguaje C es poderoso y flexible, con órdenes,          operaciones y funciones de biblioteca que se pueden utilizar para escribir la mayoría de los programas que corren en la computadora.

· C se utiliza por programadores profesionales para desarrollar software en la mayoría de los modernos sistemas de computadora.

· Se puede utilizar C para desarrollar sistemas operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones.

· Un programa C puede ser escrito para un tipo de computadora y trasladarse a otra computadora con pocas o ninguna modificación – propiedad conocida como portabilidad -.
El hecho de que C sea portable es importante ya que la mayoría de los modernos computadores tienen un compilador C, una vez que se aprende C no tiene que aprenderse un nuevo lenguaje cuando se escriba un programa para otro tipo de computadora. No es necesario reescribir un problema para ejecutarse en otra computadora.


    C se caracteriza por su velocidad de ejecución. En los primeros días de la informática, los problemas de tiempo de ejecución se resolvían escribiendo todo o parte de una aplicación en lenguaje ensamblador (lenguaje muy cercano al lenguaje máquina).

    Debido a que existen muchos programas escritos en C, se han creado numerosas bibliotecas C para programadores profesionales que soportan gran variedad de aplicaciones. Existen bibliotecas del lenguaje C que soportan aplicaciones de bases de datos, gráficos, edición de texto, comunicaciones, etc.







sábado, 29 de diciembre de 2012

SERVIDORES DE ALMACENAMIENTO MASIVO


Servidores de almacenamiento masivo.

Tecnología RAID (Redundant Array of Independent Disk).

Sistema de almacenamiento que usa múltiples Discos Duros entre los que distribuye o Replica datos. 

Niveles RAID.

RAID 0 (DATA STRIPING) o conjunto dividido.

Distribuye equitativamente los datos en los disco sin proporcionar redundancia y aumentando el rendimiento.

RAID 1 (DATA MIRRORING) o conjunto espejo.

Crea una copia exacta o espejo de datos en los discos. Es útil para el rendimiento de la lectura sobre la capacidad.

RAID 5. 

Reparte los datos a nivel de bloques distribuyendo la información de seguridad entre los discos, con coste de redundancia muy bajo. Se emplean tres unidades de disco para implementación.

  • Servidores DAS (Direct Attached Storage).

  1. Destinados a pequeñas y medianas empresas.
  2. Usan servidores de pequeño y mediano rango, con hardware para potenciar el acceso a disco y comunicaciones.

  • Servidor NAS (Network Attached Storage).

  • Da servicio a través de una red mediante el uso de protocolos como TCP/IP.
  • Es necesario para sistemas que implican escalabilidad.
  • Requieren altas prestaciones en accesos a disco y comunicaciones de red.
  • Emplean array de discos, conectados a la red, de forma que todos los datos del sistema están asociados al dispositivo NAS y pasan por el mismo constituyendo un punto sensible a fallos. 

  • Servidor SAN (Storage Area Network).
  • Dan servicio a través de una red y emplean acceso a través de fibra óptica, no admitiendo enrrutamientos.
  • Se emplean en sistemas de altas prestaciones. 



SERVIDORES DE FICHEROS, WEB O CORREO

Servidores de ficheros, web o correo.

Se emplean en empresas de todos los tamaños.

Elementos en común:

  • Son sistemas con capacidad de almacenamiento adaptada a las necesidades del conjunto al que atienden, con comunicaciones de red LAN y WAN, adecuadas a las peticiones y con politica de seguridad de datos, mediante copias de seguridad.
  • Emplean máquinas, procesadores y arquitecturas orientadas al movimiento de datos, por lo que suelen ser equipos con sistemas de almacenamiento y acceso a los mismos de velocidad suficiente, que den soporte al caudal de tráfico que se establezca con peticiones al exterior, sin requisitos en gráficos y de alta disponibilidad.
  • Suelen ser de coste alto, proporcional a la capacidad y a la fiabilidad del equipo. En su implantación                      es muy importante llevar a cabo su dimensionado de forma correcta así como tener en cuenta la escalabilidad. 




PDA Y TELEFONÍA MÓVIL

Pda y telafonía móvil.

Se emplean como sustitución de agendas y apoyo a las comunicaciones y son todo un mercado emergente con abaratamiento de costos.

Una Pda (Personal Digital Assistant), tiene una serie de funciones básicas:
  • Cuaderno de notas.
  • Calendario.
  • Agenda.
  • Ofimática básica.
  • GPS.
  • WIFI.

MEMORIA CACHÉ Y TIPOS

Memoria caché.

Memoria en la que se almacenan una serie de datos para su rápido acceso.

La memoria caché de un procesador es una memoria volátil del tipo RAM, pero de gran velocidad.

Tipos.

Caché de primer nivel (L1).

Integrada en el núcleo del procesador, trabajando a la misma velocidad que este.

Caché de segundo nivel (L2).

Integrada en el procesador, pero no en el núcleo de este, teniendo las mismas ventajas que la L1, pero siendo más lenta.

Caché de tercer nivel (L3).

Tipo de caché más lenta que la L2 y poco usada en la actualidad.

HOSTS Y PIPELINE

Hosts.

El archivo hosts, es un archivo sin extensión, no oculta y sin protección de escritura.

Pipeline.

Pipeline o tubería es un conjunto de elementos procesadores de datos conectados en serie, en donde la salida de un elemento es la entrada del siguiente.

MÓDULOS O CANALES DE ENTRADA-SALIDA

Módulos o canales de entrada-salida.

Estas operaciones se suelen llevar a cabo a través de una cada vez más amplia gama de dispositivos externos llamados periféricos, que proporcionan al ordenador las vías para intercambiar datos con el exterior.

La parte del equipo que permite esta comunicación es la unidad de entrada-salida, encargada de gobernar uno o más periféricos asociados a los que suministra la inteligencia necesaria para su funcionamiento coordinado con el ordenador.

Estos módulos estarían formados por los controladores de periféricos (circuitos de interfaz), de forma que cada periférico necesita su propio controlador para comunicarse con la CPU y los puertos de entrada-salida, que son registros que se conectan directamente a uno de los buses del ordenador. Cada puerta tiene asociada una dirección o código, de forma que el procesador ve al periférico como un puerto o un conjunto de puertos.

ARQUITECTURA CISC Y RISC


Arquitectura CISC.

Complex instruction set computer, que ya se daba en los primeros diseños VCP, caracterizada por disponer de un grupo amplio de instrucciones complejos y potentes. El ordenador era más potente a medida que era más amplio su repertorio de instrucciones. Toman como principio la microprogramación.

Arquitectura RISC.

A finales de los setenta, al aumentar las prestaciones de la memoria principal, la consecuencia inmediata fue que ya no tenía que esperar tanto la unidad de control a ésta, lo que permitió trabajar con instrucciones mucho más simples que se complementasen en un ciclo de reloj y acelerando la ejecución de instrucciones.
Esta arquitectura RISC (reduced instruction set computer), está formada por un juego de instrucciones lo más reducido posible, la mayoría completados en un ciclo de reloj.

ARQUITECTURA CISC
ARQUITECTURA RISC
Pocas instrucciones complejas.
Muchas instrucciones pequeñas.
Formatos de instrucción de varios tamaños.
Formato de instrucción de pocos tamaños.
Interpreta microinstrucciones
Interpreta microoperaciones.
Muchos modos de direccionamiento.
Pocos modos de direccionamiento.
Pocos registros de propósito general.
Muchos registros de propósito general.
Repertorio de instrucciones flexible.
Repertorio de instrucciones rígido.
Son lentas. Ejecución por software.
Son rápidas. Ejecución directa por hardware.
Unidad de control microprogramada.
Unidad de control cableada.
Para ejecutar una tarea se necesitan más instrucciones en RISC que en CISC, ya que en RISC las instrucciones son más elementales. Pero el hecho de disponer hoy de memorias tan rápidas y buses de alta velocidad hace que existan diversos mecanismos como el (pipeline), para que se lleguen incluso a solapar varias instrucciones en un mismo ciclo.  

EJECUCIÓN Y JUEGO DE INSTRUCCIONES


Ejecución de instrucciones.

Carga, búsqueda o lectura (fetch).

La unidad de control envía a la memoria principal la dirección de la instrucción a ejecutar, almacenada en el registro contador de programa y activa las señales de control necesarias para que ésta le entregue la instrucción.

Decodificación.
La unidad de control recibe la instrucción, la analiza, y en su caso, lee los operandos de la memoria principal, enviando su dirección y activando las señales de control.
Ejecución.

La unidad arimeticológica, bajo las órdenes de la unidad de control, realiza la operación sobre los operandos, y si es necesario, se graba el resultado en la memoria principal o en un registro.

Incremento del contador de programa.

O puntero de instrucción, con lo que se puede pasar a ejecutar la instrucción siguiente.

El juego de instrucciones.

La forma de representación de una instrucción para ser almacenada en memoria, se denomina formato de instrucción. Dicho formato especifica el significado de cada uno de los bits que constituyen la instrucción, denominándose longitud del formato, al número de bits que la componen.

Tipo de información que deba contener una instrucción:

  • Operación.
  • Dirección de operandos.
  • Dirección del resultado.
  • Dirección de la siguiente instrucción.
  • Tipos de representación de operandos.

UNIDAD CENTRAL DE PROCESO (COMPONENTES)


Unidad central de proceso: componentes.

Unidad aritmeticológica (ual): ejecuta el conjunto de operaciones lógicas y aritméticas del PC.

Unidad de control (uc): se encarga de gobernar el ordenador. 

Operaciones lógicas: AND, OR, NOT.

Unidad de control  microprogramada y longitud de la palabra de datos.

ARQUITECTURA DE VON NEUMAN (UNIDADES)


Arquitectura de Von Neumann (unidades).

Unidad de control.

Dispone de un contador de programa y un registro de instrucción.

Unidad aritmeticológica.

Con diversos registros para llevar a cabo operaciones como el registro acumulador o el registro de estado.

La unidad de memoria.

Contiene el registro de palabra y el registro de dirección.

La unidad de entrada-salida.

CALIDAD DE MUESTREO Y FRECUENCIA


Calidad de muestreo.

Para guardar el sonido de una onda se toma la altura de la onda en binario con un número de bits, que determinará la calidad del mismo, normalmente 16 o 32 bits.

Frecuencia.

La calidad de muestreo se realiza cada cierto tiempo, tomándose un número de puntos por segundo, a esto le llamamos frecuencia. Su unidad de medida es el hercio (Hz).

UNIDADES DE MEDIDA DE BITS Y CÓDIGO ASCII


Unidades de medida de bits.

Bit (representa un dígito binario).

Byte (B): conjunto formado por ocho bits.

Kilobytes (KB): 1024 bytes.

Megabyte (MB): 1024 kilobytes.

Gigabytes (GB): 1024 megabytes.

Terabyte (TB): 1024 gigabytes.

Petabyte (PB): 1024 terabytes.

Exabytes (EB): 1024 petabytes.


Codigo ASCII.

Ha sido el más empleado. Inicialmente utilizaba 7 bits para representar texto, lo que significaba que era capaz de codificar 127 caracteres.

ESTRUCTURA BÁSICA DE UN SISTEMA INFORMATICO


Estructura básica de un sistema informático.

Sistema físico (hardware).

Conjunto de elementos tangibles necesarios para el tratamiento eficaz de la información y está formada por: la unidad de control de proceso (CPU), la memoria auxiliar y los dispositivos de entrada-salida (periféricos).

Componente lógico (software).

Es el conjunto de los recursos lógicos necesarios para que el sistema informático pueda realizar los trabajos encomendados.

Componente humano (humanware).

Personas encargadas de desarrollar o gestionar el sistema.

GENERACIONES DE ORDENADORES


Generaciones.

1ª generación (1940 - 1956).

Tecnología basada en válvulas de vacío.
Empleo en computadoras con fines militares o científicos.

2ª generación (1956 - 1963).

Aparición del transistor.

3ª generación (1964 - 1971).

Aparición de los circuitos integrados.

4ª generación (1971 - 1981).

Popularización del microordenador y de la computadora personal o doméstica.



5ª generación (1982 - 1991).

  • Evolución del microprocesador.
  • Tecnología de alta escala de integración (de 10.000 a 100.000 transistores).
  • Aparecen los microprocesadores de uso específico.
  • Se crea la ley de Moore.
  • Desarrollo y expansión de la tecnología multimedia.

6ª generación (1992 - actualidad).

Se emplean tecnologías superiores de integración como ULSI (Ultra Large Scale Integration), que empleaba entre (100.000 y 1.000.000) de transistores y la GLSI (Giga Large Scale Integration), con más de un millón de transistores. 

MEMORIAS (FUNCIONES Y TIPOS).

La memoria (funciones y tipos).

Función.

La memoria es aquel elemento o unidad encargado de almacenar la información que necesita el ordenador, por tanto, las instrucciones que forman los programas, y los datos que se emplean en su ejecución.
Está dividida en celdas o palabras.
El elemento básico de la memoria digital es el biestable, capaz de almacenar un bit.

Tipos. 

Memoria principal o interna: conjunto de registros, la memoria caché y la memoria principal.

Memoria secundaria o externa.

Memoria DRAM.

La memoria DRAM (Dynamic Random Access Memory), es una memoria RAM electrónica, construida mediante condensadores. Los condensadores son capaces de almacenar un bit de información, almacenando una carga, por lo que necesita refrescarse cada cierto tiempo. El refresco de cada memoria RAM consiste en recargar los condensadores que tienen almacenando uno a uno para evitar que la información se pierda por culpa de las fugas (Dynamic). DRAM  es más lento que SRAM (Static Random Access Memory), pero por el contrario es mucho más barata de fabricar y por ello es el tipo de memoria RAM más utilizada como memoria principal.

También se denomina DRAM  a la memoria asíncrona de los primeros IBM-PC, su tiempo de refresco era de 80 a 70 nanosegundos. Se utilizó en la época de los i386, en forma de módulos SIMM o DIMM.

Tipos.

  • FMP – RAM (Fast Page Mode RAM).
  • BEDO – RAM (BURST Extended Data Output RAM).
  • SDR SDRAM (Single Data Rate  Synchronous Dynamic Random Access Memory).
  • DDR SDRAM (Double Data Rate SDRAM).
  • RDRAM (Rambus DRAM).
  • ES DRAM (Enhanced SDRAM).

Memoria SRAM.

Cada bit en una SRAM es almacenado en cuatro transistores que forman un biestable. Esta célula de almacenaje tiene dos estados estables, los cuales se utilizan para derrotar 0 o 1. dos transistores adicionales sirven para controlar el acceso a la célula de almacenaje durante las operaciones de lectura o escritura.

Otra diferencia con la DRAM que contribuye a hacer SRAM más rápido es que los chips comerciales aceptan todos los bis de dirección a la vez.

Estados: una célula SRAM tiene 3 estados:

  • Repaso (standby): no se realizan tareas de acceso al circuito.
  • Lectura (reading): la información ha sido solicitada.
  • Escritura (writing): los contenidos se actualizan.

Tipos.

  • Async SRAM: Se encuentran en los primeros Pentium.
  • Sync SRAM: Utilizada en sistemas con bus a 66 MHz.

DISPOSITIVOS


Dispositivos de Entrada.

  • Transformación de información, generalmente analógica, en bits.
  • Teclado, ratón, módem – tarjeta de red, escáner.

Microprocesador.

Lleva el control del sistema.

ALU: Realiza las operaciones tanto matemáticas como lógicas.
UC: Ejecuta en sus registros cada instrucción de los distintos programas.

Intel, AMD, Power PC.

Sistemas de almacenamiento.

  • Magnéticos: Disquetes, Discos Duros.
  • Ópticos: CD, DVD.
  • Magneto-ópticos.
  • Memorias USB.

Dispositivos de salida.

Módem, tarjeta de red, monitor, etc.

Buses.

Comunican distintas partes del sistema.

  • De datos: mueve los datos entre los dispositivos hardware.
  • De direcciones: transmiten direcciones de la memoria o de los periféricos.
  • De control: transportan señales de estado de las operaciones realizadas por la CPU con el resto de unidades.

Firmware.

Bloque de instrucciones de programa para dispositivos específicos, grabado en una memoria tipo ROM, que establece la lógica de más bajo nivel que controla los circuitos de un dispositivo.

Sistema de comunicación.

Conjunto de elementos que emiten, reciben e integran información.

REDES (TIPOS)


Red.

Grupo de ordenadores y otros dispositivos periféricos conectados unos a otros para comunicarse y transmitir datos.

Redes de Área Local (LAN).

  • Para compartir recursos.
  • Permiten la comunicación entre usuarios relativamente próximos (normalmente).
  • Dentro del mismo edificio.

Redes de Área Extendida (WAN).

  • Para interconexión de Redes de Área Local.
  • Permiten la comunicación en áreas mas amplias.

Internet.

  • Red de redes.
  • Inmensa fuente de información.

Permite:
·         Correo Electrónico.
·         Transmisión de audio/video.
·         Simulaciones multimedia.
·         Transacciones en línea.
·         World Wide Web.











SISTEMAS INFORMATICOS


Sistemas Informáticos.

Un sistema es un conjunto de partes que trabajan juntas para realizar una tarea común. Estos se dividen a su vez en subsistemas, que se encargan de realizar cada una de las subtaréas en que se divide la tarea principal.

Los sistemas informáticos de los que se ocupa la informática, están integrados por el conjunto de máquinas, programas informáticos y técnicas de trabajo utilizadas para procesar datos.

Un sistema desarrollado para realizar tareas en el mundo de la informática, es un sistema informático.

Hardware.

Conjunto de dispositivos físicos (cables, cajas) y circuitos electrónicos (tarjetas de red, cotroladoras), que constituyen un ordenador.

Software.

Conjunto de programas que dirigen el funcionamiento del ordenador.

Firmware.

Conjunto de Microprogramas almacenados en memorias tipo ROM y destinados a resolver un proceso o problema frecuente.

Bit (Binary Digit).

  • Cantidad de información obtenida al especificar una de dos posibles alternativas igualmente probables.
  • Una composición o variable que toma el valor 0 o 1.

Datos.

Conjunto de símbolos usados para expresar o representar un valor numérico, un objeto, un hecho, una idea; en la forma adecuada para ser objeto de tratamiento.

Sistema Operativo.

Software que realiza las operaciones básicas, más cercanas al Hardware: Funciones.

  • Hace posible el uso de recursos del sistema.
  • Oculta al usuario las dificultades que supone el control directo del Hardware.

jueves, 20 de diciembre de 2012

Expresiones Regulares | Operaciones


Concatenación
El símbolo | es para la operación de concatenación, esta operación se realiza de la forma R1|R2. Es equivalente a un O lógico.
Ejemplo
(Hola|Adios) valida la secuencia Hola, Adios y HolaAdios.

Cero o mas repeticiones
El símbolo * es el operador de clausura. Indica cero o mas repeticiones.
Esta operación se realiza de la forma R*.
Ejemplo
[a]\d* valida a, a1, a12 y a123 y no valida a 1 ni a 12.

Una o más repeticiones
El símbolo + es el operador de clausura positiva, donde R+ indica una o más repeticiones del patrón R.
Ejemplo
[a]\d+ valida a1, a12 y a123 y no valida a ni 1 ni 12.

Opcionalidad
El símbolo ? es el operador de opcionalidad R? e indica que R es opcional.
Ejemplo 
abc? solo valida ab, abc.
a(bc)? sirve para validar a a y abc.

Repeticiones fijadas por el usuario
R{n} indica n repeticiones del patrón R.
R{n,m} indica entre n y m repeticiones de R.
R{n,} indica n o mas repeticiones de R.
Ejemplos
[a]{3} solo valida aaa.
[a]{1,3} solo valida a, aa y aaa.
[a]{3,} valida aaa, aaaa, aaaaa en adelante, tantas como se quiera.

Expresiones Regulares | Sintaxis


Rango de caracteres
[c1-c2] describe el conjunto de caracteres dado por un rango.
Ejemplos
[0-9] es el conjunto de los dígitos desde el 0 hasta el 9.
[a-z] es el conjunto de caracteres en minúsculas de la a la z.
[A-Z] es el conjunto de caracteres en mayúsculas de la A la Z.
[a-zA-Z] es el conjunto de todas las letras minúsculas y mayúsculas.

Conjunto de dígitos
\d describe el conjunto de todos los dígitos decimales. Es la abreviatura de [0-9]
Ejemplos
\d\d valida números del 00 al 99
\d\d\d valida números desde el 000 hasta el 999.

 Conjuntos de letras
\p{L} describe al conjunto de letras Unicode (mayúsculas y minúsculas).
\p{LI} describe solo al conjunto de letras Unicode minúsculas.
\p{Lu} describe solo al conjunto de letras Unicode mayúsculas.
Ejemplos
\p{L}+ valida cadenas como Hola, hola y HOLA.
\p{LI}+ valida cadenas como hola y no valida Hola.
\p{Lu}+ valida cadenas como HOLA y no valida cadenas como Hola.