Anda di halaman 1dari 20

MARCO TEORICO Y COMSEPTOS BASICOS

1.1- Concepto de mtodos numrico


Los mtodos numricos son tcnicas mediante las cuales es posible formular problemas
de tal forma que sean resueltas con operaciones aritmticas, Aunque hay muchos tipos de
mtodos numricos todos comparten una caracterstica comn, llevan cabo un buen
nmero de tediosos clculos aritmticos. Los mtodos numricos nos vuelven aptos para
entender esquemas numricos a fin de resolver problemas matemticos, de ingeniera y
cientficos en una computadora, reducir esquemas numricos bsicos, escribir programas
y resolverlos en una computadora y usar correctamente el software existente para dichos
mtodos y no solo aumenta nuestra habilidad para el uso de computadoras sino que
tambin amplia la pericia matemtica y la comprensi6n de los principios cientficos
bsicos.


- LA RAZON DE SU ESTUDIO

Los mtodos numricos nos vuelven aptos para entender esquemas numricos a fin de
resolver problemas matemticos, de ingeniera y cientficos en una computadora, reducir
esquemas numricos bsicos, escribir programas y resolverlos en una computadora y usar
correctamente el software existente para dichos mtodos y no solo aumenta nuestra
habilidad para el uso de computadoras sino que tambin amplia la pericia matemtica y la
comprensi6n de los principios cientficos bsicos.






1.2- PASOS A LA SOLUCION DE UN PROBLEMA MATEMATICO, CON ENFOQUE
ALGORITMICO

Estructura de un Algoritmo

Todo algoritmo consta de tres secciones principales:
Entrada: Es la introduccin de datos para ser transformados.

Proceso: Es el conjunto de operaciones a realizar para dar
solucin al problema.

Salida: Son los resultados obtenidos a travs del proceso.






EJEMPLO 1











EJEMPLO 2
Sean los puntos P=(a,b) y Q=(c,d) que definen una recta, encontrar un segmento de recta
perpendicular a la anterior que pasa por el punto medio de los puntos dados.

Inicio
PASO 1. Colocar los nmeros el primero encima del segundo, de tal manera que las unidades,
decenas, centenas, etc., de los nmeros queden alineadas. Trazar una lnea debajo del segundo
nmero.
PASO 2. Empezar por la columna ms a la derecha.
PASO 3. Sumar los dgitos de dicha columna.
PASO 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente columna a la izquierda y anotar
debajo de la lnea las unidades de la suma. Si no es mayor anotar la suma debajo de la lnea.
PASO 5. Si hay ms columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3.
PASO 6. El nmero debajo de la lnea es la solucin.
Fin
ALGORITMO:
Inicio


PASO 1. Trazar un crculo con centro en el punto P que pase por el punto Q.












PASO 2. Trazar un crculo con centro en el punto Q que pase por el punto P.



PASO 3. Trazar un segmento de recta entre los puntos de interseccin de las
circunferencias trazadas.




Fin. El segmento de recta trazada es el buscado.




1.3- DEFINICION Y TIPOS DE ERRORES


DEFINICIN DE ERROR

Los errores numricos se generan con el uso de aproximaciones para representar las operaciones
y cantidades matemticas. Esto incluye errores de truncamiento que resultan de representar
aproximadamente un procedimiento matematico exacto, y los errores de redondeo, que resultan
de presentar aproximadamente nmeros exactos. Para los tipos de errores, la relacin entre el
resultado exacto o verdadero y el aproximado esta dado por :

Valor verdadero = valor aproximado + error ( Ec.1 )

Reordenando la ecuacin Ec.1, se encuentra que el error numrico es igual a la diferencia entre el
valor verdadero y el valor aproximado esto es :

Ev = valor verdadero valor aproximado

Donde Ev se usa para redondear el valor exacto del error. Se incluye el subndice v par dar a
entender que se trata del verdadero error. Un defecto es que muchas veces no se toma en
consideracin el orden de magnitud del valor que se esta probando . Por ejemplo, un error de un
centmetro es mucho mas significativo si se esta midiendo un remache que un puente. Una
manera de medir las magnitudes de las cantidades que se estn evaluendo es normalizar el error
respecto al valor verdadero, como en:

Error relativo fraccional = error / valor verdadero
Donde:
Error = valor verdadero valor aproximado.
El error relativo tambin se puede multiplicar por el 100% para expresarlo como Ev = (error
verdadero/ valor verdadero ) 100;Donde Ev denota el error relativo porcentual. El subndice v
significa la normalizacin del error al valor verdadero .

Para los mtodos numricos el valor verdadero nicamente se conocer cuando se habla de
funciones que se pueden resolver analticamente. Sin embargo, en aplicaciones reales, no se
conoce la respuesta verdadera. En estos casos, normalizar el error es una alternativa usando la
mejor estimacin posible del valor verdadero, esto es a la aproximacin misma, como:
Ea = (error aproximado/ valor aproximado)100
Donde el subndice a significa que el error est normalizado a un valor aproximado . Uno de los
retos a que se enfrentas los mtodos numricos es el de determinar estimaciones del error en
ausencia de conocimiento de los valores verdaderos. El error se calcula como la diferencia entre la
aproximacin previa y la actual. Por lo tanto, el error relativo porcentual est dado por Ea =abs(
((aproximacin actual- aproximacin previa )/ aproximacin actual) 100) Si se cumple la relacin
anterior , entonces se considera que el resultado obtenido esta dentro del nivel aceptable, es
decir, aun error previamente fijado(Es): Abs(Ea) <>



ERRORES DE REDONDEO

Los errores de redondeo se deben a que las computadoras solo guardan un numero finito de cifras
significativas durante un calculo. Las computadoras realizan esta funcin de maneras diferentes;
esta tcnica de retener solo los primeros siete trminos se llam truncamiento en el ambiente
de computacin. De preferencia se llamara de corte, para distinguirlo de los errores de
truncamiento. Un corte ignora los trminos restantes de la representacin decimal completa.

La mayor parte de las computadoras tienen entre 7 y 14 cifras significativas, los errores de
redondeo pareceran no ser muy importantes. Sin embargo, hay dos razones del por qu pueden
resultar crticos en algunos mtodos numricos: 1) Ciertos mtodos requieren cantidades
extremadamente grandes para obtener una respuesta. Adems, estos clculos a menudo
dependen entre si, es decir, los clculos posteriores son dependientes de los anteriores. En
consecuencia, aunque un error de redondeo individual puede ser muy pequeo, el efecto de
acumulacin en el transcurso de la gran cantidad de clculos puede ser significativo. 2) El efecto
de redondeo puede ser exagerado cuando se llevan a cabo operaciones algebraicas que emplean
nmeros muy pequeos y muy grandes al mismo tiempo. Ya que este caso se presenta en muchos
mtodos numricos, el error de redondeo puede resultar de mucha importancia.

ERRORES DE TRUNCAMIENTO

Los errores de truncamiento son aquellos que resultan al usar una aproximacin en lugar de un
procedimiento matemtico exacto. Estos tipos de errores son evaluados con una formulacin
matemtica: la serie de Taylor. Taylor es una formulacin para predecir el valor de la funcin en
Xi+1 en trminos de la funcin y de sus derivadas en una vecindad del punto Xi.
Siendo el termino final: Rn= (((n+1) ())/(n+1)!)hn+1 En general, la expansin en serie de Taylor de
n-simo orden es exacta par aunpolinomio de n-simo orden. Para otras funciones continuas
diferenciables, como las exponenciales o senoidales, no se obtiene una estimacin exacta
mediante un numero finito de trminos. Cada una de los trminos adicionales contribuye al
mejoramiento de la aproximacin, aunque sea un poco

ERROR NUMERICO TOTAL

El error numrico total es la suma de los errores
de redondeo y de truncamiento. La nica forma
de minimizar los errores de redondeo es la de
incrementar el nmero de cifras significativas de
la computadora.

Representacin grafica de las ventajas y
desventajas entre errores de redondeo y
truncamiento que en ocasiones influyen en el
curso de un mtodo numrico. El punto ptimo
muestra donde el error de redondeo comienza a
negar los beneficios dados por la reduccin del
tamao de paso.

ERRORES POR EQUIVOCACIN

En los primeros aos de la computacin los resultados numricos errneos fueron atribuidos
algunas veces al mal funcionamiento de la computadora misma. Hoy dia esta fuente de error es
muy improbable y la mayor parte de las equivocaciones se atribuye a errores humanos.
Las equivocaciones ocurren a cualquier nivel del proceso de modelacin matematica y pueden
contribuir con todas las otras componentes del error. Las equivocaciones, por lo general se pasan
por alto en la discucin del mtodo numrico. Esto sin duda prueba el hecho de que los errores de
torpeza son, hasta cierto punto inevitables.

ERRORES DE FORMULACIN

Los errores de formulacin o de modelamiento degeneran en lo que se podra considerar como un
modelo matemtico incompleto, ya que si se esta usando un modelo deficiente, ningn mtodo
numrico generara los resultados adecuados.



1.4- SOLUCION ANALITICA Y SOLUCION EMPIRICA
















1.5- COMSEPTO DE EXACTITUD Y PRECISION Y CIFRAS SIGNIFICATIVAS


PRECISIN Y EXACTITUD:
En ingeniera, ciencia, industria, estadstica, exactitud y precisin no son equivalentes. Es
importante resaltar que la automatizacin de diferentes pruebas o tcnicas puede producir un
aumento de la precisin. Esto se debe a que con dicha automatizacin, lo que logramos es una
disminucin de los errores manuales o su correccin inmediata.

Precisin: se refiere a la dispersin del conjunto de valores obtenidos de mediciones repetidas de
una magnitud. Cuanto menor es la dispersin mayor la precisin. Una medida comn de la
variabilidad es la desviacin estndar de las mediciones y la precisin se puede estimar como una
funcin de ella.

Exactitud: se refiere a cun cerca del valor real se encuentra el valor medido. En trminos
estadsticos, la exactitud est relacionada con el sesgo de una estimacin. Cuanto menor es el
sesgo ms exacto es una estimacin. Tambin se refiere a la aproximacin de un numero o de una
medida al valor verdadero que se supone representa. Cuando expresamos la exactitud de un
resultado se expresa mediante el error absoluto que es la diferencia entre el valor experimental y
el valor verdadero. Tambin es la mnima variacin de magnitud que puede apreciar un
instrumento.

CIFRA SIGNIFICATIVA

El concepto de cifra significativa lo podemos definir como aquella que aporta informacin no
ambigua ni superflua acerca de una determinada medida experimental, son cifras significativas de
un numero vienen determinadas por su error. Son cifras que ocupan una posicin igual o superior
al orden o posicin de error.Cuando se emplea un nmero en un clculo, debe haber seguridad de
que pueda usarse con confianza. El concepto de cifras significativas tiene dos implicaciones
importantes en el estudio de los mtodos numricos.

1.- Los mtodos numricos obtienen resultados aproximados. Por lo tanto, se debe
desarrollar criterios para especificar que tan precisos son los resultados obtenidos.

2.- Aunque ciertos nmeros representan nmero especficos, no se pueden expresar
exactamente con un nmero finito de cifras.








1.6- COMSEPTO DE PROGRAMA , LENGUAJE DE PROGRAMACION Y PROGRAMMA
EXTRUCTURADO


CONSEPTO DE PROGRAMA

Un programa de computadora es un conjunto de instrucciones que producirn la
ejecucin de una determinada tarea.En esencia, un programa es un medio para llegar a
un fin.
El fin ser normalmente definido como la informacin necesaria para solucionar un
problema. En conclusin programa es el proceso para solucionar un problema.

El desarrollo de un programa requiere las siguientes fases:

Definicin y anlisis del problema
Diseo de algoritmo
Diagrama de flujo
Diagrama N S
Pseudo cdigo.
Codificacin del programa.
Depuracin y verificacin del programa.
Documentacin.
Mantenimiento.



CONSEPTOS LENGUAJES DE PROGRAMACION
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el
comportamiento de una mquina, particularmente una computadora. Consiste en un
conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de
sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin
y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los
lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por
ejemplo, el HTML.Segn la forma de ejecucin

LENGUAJES COMPILADOS
Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que
traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que
pueden realizar esta operacin se llaman compiladores. stos, como los programas
ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada
proposicin del programa fuente. Se requiere una corrida de compilacin antes de
procesar los datos de un problema.
Los compiladores son aquellos cuya funcin es traducir un programa escrito en un
determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con
cdigo binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de
Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta
que luego de haber compilado el programa, ya no aparecen errores en el cdigo.
LENGUAJES INTERPRETADOS
Se puede tambin utilizar una alternativa diferente de los compiladores para traducir
lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma
permanente el cdigo objeto que se produce durante la corrida de compilacin para
utilizarlo en una corrida de produccin futura, el programador slo carga el programa
fuente en la computadora junto con los datos que se van a procesar. A continuacin, un
programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera
permanente dentro de la mquina, convierte cada proposicin del programa fuente en
lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No
se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una
instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. Por ejemplo,
durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo
tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el
programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en
tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar
compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de
realizar una corrida de compilacin despus de cada modificacin del programa cuando se
quiere agregar funciones o corregir errores; pero es obvio que un programa objeto
compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se
debe interpretar a cada paso durante una corrida de produccin.
PROGRAMACIN ESTRUCTURADA

La programacin estructurada es un estilo con el cual el se busca que el
programador elabore programas sencillos y fciles de entender. Para ello, la
programacin estructurada hace uso de tres estructuras bsicas de control.
stas son:
Estructura Secuencial
Estructura Selectiva
Estructura Repetitiva ( Iterativa)

La programacin estructurada se basa un teorema fundamental, el cual afirma
que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser
elaborado utilizando nicamente las tres estructuras bsicas (secuencia,
seleccin, iteracin).

Estructura Secuencial
Indica que las instrucciones de un programa se ejecutan una despus de la
otra, en el mismo orden en el cual aparecen en el programa. Se representa
grficamente como una caja despus de otra, ambas con una sola entrada y
una nica salida. Las cajas A y B pueden ser definidas para ejecutar desde una simple
instruccin hasta un mdulo o programa completo, siempre y cuando stos tambin sean
programas apropiados.

Estructura Selectiva
Tambin conocida como la estructura SI-VERDADERO-FALSO, plantea la
seleccin entre dos alternativas con base en el resultado de la evaluacin de
una condicin; equivale a la instruccin IF de todos los lenguajes de
programacin y se representa grficamente de la siguiente manera:

En el diagrama de flujo anterior, C es una condicin que se evala; A es la
accin que se ejecuta cuando la evaluacin de esta condicin resulta verdadera
y B es la accin ejecutada cuando el resultado de la evaluacin indica falso. La
estructura tambin tiene una sola entrada y una sola salida; y las funciones A y
B tambin pueden ser cualquier estructura bsica o conjunto de estructuras.

Estructura Repetitiva (Iterativa)
Tambin llamada la estructura HACER-MIENTRAS-QUE, corresponde a la
ejecucin repetida de una instruccin mientras que se cumple una determinada
condicin. El diagrama de flujo para esta estructura es el siguiente: Aqu el bloque A se
ejecuta repetidamente mientras que la condicin C se
cumpla o sea cierta. Tambin tiene una sola entrada y una sola salida;
igualmente A puede ser cualquier estructura bsica o conjunto de estructuras.





1.7- CARACTERSTICAS TCNICAS DE UNA SPER COMPUTADORA ( kum balan )

La supercomputadora Kan Balam, es una computadora HP con capacidad 7.113
teraflops, cuenta con 1,368 procesadores AMD Opteron de 2.6 GHz y 3016 GB de
Rama distribuidos en 337 nodos de clculo cada uno con 8GB y dos procesadores
duales y en 5 nodos especializados con 64 GB de ram, sus sistema operativo es
GNU/Linux, cuenta tambin con 768 discos duros de 200gb proporcionando un total
de 150 TB.Sus nodos de procesamiento se comunican con el sistema de
almacenamiento mediante una red de alta velocidad conectada por 576 puertos y
dos switches logrando una velocidad de 10 GBpsEst ubicada en la Ciudad de Mxico,
en las instalaciones de la UNAM de ciudad universitaria dentro del edificio de la
DGTIC. Entre sus usos se encuentra un proyecto para evitar la fuga de cerebros del
pas, haciendo un llamado a los investigadores que estn laborando fuera del pas por
falta de infraestructura; tambin la ocupan diferentes facultades y ciencias de la
universidad tales como Astrofsica, fsica de partculas, qumica cuntica, geologa e
ingeniera ssmica.En ella trabajan 190 usuarios, de 31 dependencias universitarias,
quienes desarrollan 90 proyectos de investigacin en temas como la modelacin de la
calidad del aire, superconductividad, prediccin de estructuras de protenas,
tectnica, interaccin de ADN con elementos atmosfricos, frmacos, dinmica
interestelar, nano ciencias y algoritmos genticos, entre muchos ms.Como
conclusin puedo sealar que Kambalam no solo puso a la UNAM nuevamente a la
vanguardia de tecnologa, tambin brida las herramientas tcnicas necesarias para
que los investigadores de la UNAM puedan competir con el resto del mundo.




1.8- CLASIFICACIN DE SOFTWARE



BASE DE DATOS

CLASIFICACION

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su
clasificacin:

Segn la variabilidad de los datos almacenado

Bases de datos estticas: stas son bases de datos de slo lectura, utilizadas primordialmente
para almacenar datos histricos que posteriormente se pueden utilizar para estudiar el
comportamiento de un conjunto de datos a travs del tiempo, realizar proyecciones y tomar
decisiones.

Bases de datos dinmicas: stas son bases de datos donde la informacin almacenada se modifica
con el tiempo, permitiendo operaciones como actualizacin y adicin de datos, adems de las
operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada
en un sistema de informacin de una tienda de abarrotes, una farmacia, un videoclub, etc.

Segn el contenido

Bases de datos bibliogrficas: Solo contienen un surrogante (representante) de la fuente primaria,
que permite localizarla. Un registro tpico de una base de datos bibliogrfica contiene informacin
sobre el autor, fecha de publicacin, editorial, ttulo, edicin, de una determinada publicacin, etc.
Puede contener un resmen o extracto de la publicacin original, pero nunca el texto
completo.Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las
ediciones de una coleccin de revistas cientficas.

Algunos modelos con frecuencia utilizados en las bases de datos:

Base de datos jerrquica: estas son bases de datos que, como su nombre indica, almacenan su
informacin en una estructura jerrquica. En este modelo los datos se organizan en una forma
similar a un rbol (visto al revs), en donde un nodo padre de informacin puede tener varios
hijos. El nodo que no tiene padres es llamado raz, y a los nodos que no tienen hijos se los conoce
como hojas.Las bases de datos jerrquicas son especialmente tiles en el caso de aplicaciones que
manejan un gran volumen de informacin y datos muy compartidos permitiendo crear estructuras
estables y de gran rendimiento.

Base de datos de red: ste es un modelo ligeramente distinto del jerrquico; su diferencia
fundamental es la modificacin del concepto de nodo: se permite que un mismo nodo tenga
varios padres (posibilidad no permitida en el modelo jerrquico).Fue una gran mejora con
respecto al modelo jerrquico, ya que ofreca una solucin eficiente al problema de redundancia
de datos; pero, aun as, la dificultad que significa administrar la informacin en una base de datos
de red ha significado que sea un modelo utilizado en su mayora por programadores ms que por
usuarios finales.

Base de datos relacional: Su idea fundamental es el uso de "relaciones". Estas relaciones podran
considerarse en forma lgica como conjuntos de datos llamados "tuplas", la mayora de las veces
se conceptualiza de una manera ms fcil de imaginar.

En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a
diferencia de otros modelos como el jerrquico y el de red). Esto tiene la considerable ventaja de
que es ms fcil de entender y de utilizar para un usuario espordico de la base de datos. La
informacin puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia
flexibilidad y poder para administrar la informacin.

El lenguaje ms habitual para construir las consultas a bases de datos relacionales es Structured
Query Language o Lenguaje Estructurado de Consultas, un estndar implementado por los
principales motores o sistemas de gestin de bases de datos relacionales.Durante su diseo, una
base de datos relacional pasa por un proceso al que se le conoce como normalizacin de una base
de datosBases de datos orientadas a objetos. Este modelo, bastante reciente, y propio de los
modelos informticos orientados a objetos, trata de almacenar en la base de datos los objetos.

CLASIFICACIN DE LENGUAJES DE PROGRAMACIN
Un lenguaje de programacin es un lenguaje inventado para controlar una mquina,
(normalmente, un ordenador). Hay muchsimos, de toda clase de tipos y caractersticas,
inventados para facilitar el abordaje de distintos problemas, el mantenimiento del
software, su reutilizacin, mejorar la productividad, etc.
Los lenguajes de programacin se pueden clasificar segn varios criterios. He
encontrado doce en total: Nivel de abstraccin, propsito, evolucin histrica, manera de
ejecutarse, manera de abordar la tarea a realizar, paradigma de programacin, lugar de
ejecucin, concurrencia, interactividad, realizacin visual, determinismo y productividad.
Hay que tener en cuenta tambin, que en la prctica, la mayora de lenguajes no pueden
ser puramente clasificados en una categora, pues surgen incorporando ideas de otros
lenguajes y de otras filosofas de programacin, pero no importa al establecer las
clasificaciones, pues el autntico objetivo de las mismas es mostrar los rangos, las
posibilidades y tipos de lenguajes que hay.
1. Nivel de abstraccin.
Segn el nivel de abstraccin, o sea, segn el grado de cercana a la mquina:
Lenguajes de bajo nivel: La programacin se realiza teniendo muy en cuenta las
caractersticas del procesador. Ejemplo: Lenguajesensamblador.
Lenguajes de nivel medio: Permiten un mayor grado de abstraccin pero al mismo
tiempo mantienen algunas cualidades de los lenguajes de bajo nivel. Ejemplo: C
puede realizar operaciones lgicas y de desplazamiento con bits, tratar todos los
tipos de datos como lo que son en realidad a bajo nivel (nmeros), etc.
Lenguajes de alto nivel: Ms parecidos al lenguaje humano. Manejan conceptos,
tipos de datos, etc., de una manera cercana al pensamiento humano ignorando
(abstrayndose) del funcionamiento de la mquina. Ejemplos: Java, Ruby.
Hay quien slo considera lenguajes de bajo nivel y de alto nivel, (en ese caso, C es
considerado de alto nivel).



Segn el propsito, es decir, el tipo de problemas a tratar con ellos:
Lenguajes de propsito general: Aptos para todo tipo de tareas: Ejemplo: C.
Lenguajes de propsito especfico: Hechos para un objetivo muy concreto.
Ejemplo: Csound (para crear ficheros de audio).
Lenguajes de programacin de sistemas: Diseados para realizar sistemas operativos
o drivers. Ejemplo: C.
Lenguajes de script: Para realizar tareas varias de control y auxiliares. Antiguamente
eran los llamados lenguajes de procesamiento por lotes (batch) o JCL (Job Control
Languages). Se subdividen en varias clases (de shell, de GUI, de programacin web,
etc.). Ejemplos: bash (shell), mIRC script, JavaScript (programacin web).
3. Evolucin histrica.
Con el paso del tiempo, se va incrementando el nivel de abstraccin, pero en la prctica,
los de una generacin no terminan de sustituir a los de la anterior:
Lenguajes de primera generacin (1GL): Cdigo mquina.
Lenguajes de segunda generacin (2GL): Lenguajes ensamblador.
Lenguajes de tercera generacin (3GL): La mayora de los lenguajes modernos,
diseados para facilitar la programacin a los humanos. Ejemplos: C, Java.
Lenguajes de cuarta generacin (4GL): Diseados con un propsito concreto, o sea,
para abordar un tipo concreto de problemas. Ejemplos:NATURAL, Mathematica.
Lenguajes de quinta generacin (5GL): La intencin es que el programador establezca
el qu problema ha de ser resuelto y las condiciones a reunir, y la mquina lo
resuelve. Se usan en inteligencia artificial. Ejemplo: Prolog.
4. Manera de ejecutarse.
Segn la manera de ejecutarse:
Lenguajes compilados: Un programa traductor traduce el cdigo del programa
(cdigo fuente) en cdigo mquina (cdigo objeto). Otro programa, el enlazador,
unir los ficheros de cdigo objeto del programa principal con los de las libreras para
producir el programa ejecutable. Ejemplo: C.
Lenguajes interpretados: Un programa (intrprete), ejecuta las instrucciones del
programa de manera directa. Ejemplo: Lisp.
Tambin los hay mixtos, como Java, que primero pasan por una fase de compilacin en la
que el cdigo fuente se transforma en bytecode, y este bytecode puede ser ejecutado
luego (interpretado) en ordenadores con distintas arquitecturas (procesadores) que
tengan todos instalados la mismamquina virtual Java.
5. Manera de abordar la tarea a realizar.
Segn la manera de abordar la tarea a realizar, pueden ser:
Lenguajes imperativos: Indican cmo hay que hacer la tarea, es decir, expresan los
pasos a realizar. Ejemplo: C.
Lenguajes declarativos: Indican qu hay que hacer. Ejemplos: Lisp, Prolog. Otros
ejemplos de lenguajes declarativos, pero que no son lenguajes de programacin,
son HTML (para describir pginas web) oSQL (para consultar bases de datos).
6. Paradigma de programacin.
El paradigma de programacin es el estilo de programacin empleado. Algunos lenguajes
soportan varios paradigmas, y otros slo uno. Se puede decir que histricamente han ido
apareciendo para facilitar la tarea de programar segn el tipo de problema a abordar, o
para facilitar el mantenimiento del software, o por otra cuestin similar, por lo que todos
corresponden a lenguajes de alto nivel (o nivel medio), estando los lenguajes
ensambladores atados a la arquitectura de su procesador correspondiente. Los
principales son:
Lenguajes de programacin procedural: Divide el problema en partes ms pequeas,
que sern realizadas por subprogramas (subrutinas, funciones, procedimientos), que
se llaman unas a otras para ser ejecutadas. Ejemplos: C, Pascal.
Lenguajes de programacin orientada a objetos: Crean un sistema de clases y objetos
siguiendo el ejemplo del mundo real, en el que unos objetos realizan acciones y se
comunican con otros objetos. Ejemplos:C++, Java.
Lenguajes de programacin funcional: La tarea se realiza evaluando funciones, (como
en Matemticas), de manera recursiva. Ejemplo: Lisp.
Lenguajes de programacin lgica: La tarea a realizar se expresa empleando lgica
formal matemtica. Expresa qu computar. Ejemplo: Prolog.
Hay muchos paradigmas de programacin: Programacin genrica, programacin
reflexiva, programacin orientada a procesos, etc.
7. Lugar de ejecucin.
En sistemas distribuidos, segn dnde se ejecute:
Lenguajes de servidor: Se ejecutan en el servidor. Ejemplo: PHP es el ms utilizado en
servidores web.
Lenguajes de cliente: Se ejecutan en el cliente. Ejemplo: JavaScript en navegadores
web.
8. Concurrencia.
Segn admitan o no concurrencia de procesos, esto es, la ejecucin simultnea de varios
procesos lanzados por el programa:
Lenguajes concurrentes. Ejemplo: Ada.
Lenguajes no concurrentes. Ejemplo: C.
9. Interactividad.
Segn la interactividad del programa con el usuario u otros programas:
Lenguajes orientados a sucesos: El flujo del programa es controlado por la interaccin
con el usuario o por mensajes de otros programas/sistema operativo, como editores
de texto, interfaces grficos de usuario (GUI) o kernels. Ejemplo: VisualBasic,
lenguajes de programacin declarativos.
Lenguajes no orientados a sucesos: El flujo del programa no depende de sucesos
exteriores, sino que se conoce de antemano, siendo los procesos batch el ejemplo
ms claro (actualizaciones de bases de datos, colas de impresin de documentos,
etc.). Ejemplos: Lenguajes de programacin imperativos.
10. Realizacin visual.
Segn la realizacin visual o no del programa:
Lenguajes de programacin visual: El programa se realiza moviendo bloques de
construccin de programas (objetos visuales) en un interfaz adecuado para ello. No
confundir con entornos de programacin visual, como Microsoft Visual Studio y sus
lenguajes de programacin textuales (como Visual C#). Ejemplo: Mindscript.
Lenguajes de programacin textual: El cdigo del programa se realiza escribindolo.
Ejemplos: C, Java, Lisp.
11. Determinismo.
Segn se pueda predecir o no el siguiente estado del programa a partir del estado actual:
Lenguajes deterministas. Ejemplos: Todos los anteriores.
Lenguajes probabilsticos o no deterministas: Sirven para explorar grandes espacios
de bsqueda, (como gramticas), y en la investigacin terica de hipercomputacin.
Ejemplo: mutt (generador de texto aleatorio).
12. Productividad.
Segn se caractericen por tener virtudes tiles o productivas, u oscuras y enrevesadas:
Lenguajes tiles o productivos: Sus virtudes en cuanto a eficiencia, sencillez, claridad,
productividad, etc., motiva que sean utilizados en empresas, administraciones
pblicas y/o en la enseanza. Ejemplos: Cualquier lenguaje de uso habitual (C, Java,
C++, Lisp, Python, Ruby, ).
Lenguajes esotricos o exticos: Inventados con la intencin de ser los ms raros,
oscuros, difciles, simples y/o retorcidos de los lenguajes, para diversin y
entretenimiento de frikis programadores. A veces exploran nuevas ideas en
programacin. Ejemplo: Brainfuck.





CLASIFICACION DEL SISTEMA OPERATIVO

Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras,
dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos
tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas:
Sistemas Operativos de multiprogramacin (o Sistemas Operativos demultitarea).
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una
computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La
conmutacin de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o
ms aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicacin
que se encuentra en primer plano (la que ve el usuario).En la multitarea cooperativa, la que se
utiliza en el sistema operativo Macintosh.
Funciona en los Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-
OS, OS/2, soportan la multitarea.
Sistema Operativo Monotareas.
Los sistemas operativos monotareas son ms primitivos y es todo lo contrario al visto
anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede
ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un
documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se
termine la impresin.
Sistema Operativo Monousuario.
Los sistemas monousuarios son aquellos que nada ms puede atender a un solo usuario, gracias a
las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se este
ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control
dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan,
son procesadas de inmediato; ya que existe un solo usuario. Y estn orientados principalmente por
los microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y en esta categora se encuentran todos los sistemas que
cumplen simultneamente las necesidades de dos o ms usuarios, que comparten mismos
recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes
para realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el
procesamiento en serie. Estos sistemas son de los ms tradicionales y antiguos, y fueron
introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario,
sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar
atencin a los procesos en el momento que lo requieran. se utilizan en entornos donde son
procesados un gran nmero de sucesos o eventos.
Sistemas Operativos de tiempo compartido.
Permiten la simulacin de que el sistema y sus recursos son todos para cada usuario. El usuario
hace una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta
aparecer en la terminal del usuario.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que
este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para
el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es
aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para
todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni
memoria ni reloj, ya que cada uno cuenta con su memoria local.
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o ms computadoras unidas atravs de algn medio
de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos
y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un
procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que
compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma
interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un
mismo usuario). As, en lugar de esperar a que el proceso termine de ejecutarse (como lo hara
normalmente), regresa a atender al usuario inmediatamente despus de haber creado el proceso.

Anda mungkin juga menyukai