Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos
Algoritmos
Introducción
Algoritmo
Por lo tanto, de debe pensar en un algoritmo como en una receta o guión que hay que seguir para
resolver un determinado problema, normalmente a partir de una información o de datos de
partida o de entrada que pueden variar
Los algoritmos se pueden expresar de muchas maneras, con lenguajes diferentes. En lenguaje
natural pueden llegar a ser muy complicados y difíciles de entender; pueden existir tantas
posibilidades de expresarlos como personas lo hagan. Necesitamos un lenguaje más reducido,
simple y preciso. Necesitamos un lenguaje formal que nos ayude a expresar nuestras ideas con el
máximo de claridad y sin ambigüedades, creado expresamente para esta función.
Tipo de Dato
Diagramas de Flujo
Un diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es
representado por un símbolo diferente que contiene una breve descripción de la etapa de
proceso. Los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que indican la
dirección de flujo del proceso.
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin
embargo, algunos símbolos especiales pueden también ser desarrollados cuando séan requeridos.
Algunos símbolos estándares, que se requieren con frecuencia para diagramar programas de
computadora se muestran a continuación:
Símbolos Gráficos
Dentro de los símbolos fundamentales para la creación de diagramas de flujo, los símbolos
gráficos son utilizados específicamente para para operaciones aritméticas y relaciones
condicionales. La siguiente es una lista de los símbolos más comúnmente utilizados:
+ Suma
- Resta > Mayor que
* Multiplicación < Menor que
/ División >= Mayor o igual que
= Igual
<= Menor o igual que
<> Diferente de
Reglas para la creación de Diagramas
1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la
dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo
horizontal o verticales (nunca diagonales).
3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un
sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que
solo se van a utilizar conectores cuando sea estrictamente necesario.
5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de
muchas palabras.
6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo
final.
7. Solo los símbolos de decisión pueden y deben tener mas de una línea de flujo de salida.
Concepto
Existen varias definiciones que pretenden determinar algunos de los aspectos que se
describen con el termino SO.
1. Podemos definir al SO como un programa que facilita el uso del soporte físico.
La informática tal y como se le conoce hoy día, surgió a raíz de la II Guerra Mundial, en la década
de los 40. En esos años no existía siquiera el concepto de "Sistema Operativo" y los programadores
interactuaban directamente con el hardware de las computadoras trabajando en lenguaje
máquina (esto es, en binario, programando únicamente con 0 y 1).
El concepto de Sistema Operativo surge en la década de los 50. El primer Sistema Operativo de la
historia fue creado en 1956 para un ordenador IBM 704, y básicamente lo único que hacía era
comenzar la ejecución de un programa cuando el anterior terminaba.
En los años 60 se produce una revolución en el campo de los Sistemas Operativos. Aparecen
conceptos como sistema multitarea, sistema multiusuario, sistema multiprocesadores y sistema
en tiempo real.
Es en esta década cuando aparece UNIX, la base de la gran mayoría de los Sistemas Operativos que
existen hoy en día.
En los años 70 se produce un boom en cuestión de ordenadores personales, acercando estos al
público general de manera impensable hasta entonces. Esto hace que se multiplique el desarrollo,
creándose el lenguaje de programación C (diseñado específicamente para reescribir por completo
el código UNIX).
Como consecuencia de este crecimiento exponencial de usuarios, la gran mayoría de ellos sin
ningún conocimiento sobre lenguajes de bajo o alto nivel, hizo que en los años 80, la prioridad a la
hora de diseñar un sistema operativo fuese la facilidad de uso, surgiendo así las primeras
interfaces de usuario.
En la década de los 90 hace su aparición Linux, publicándose la primera versión del núcleo
en septiembre de 1991, que posteriormente se uniría al proyecto GNU, un sistema
operativo completamente libre, similar a UNIX, al que le faltaba para funcionar un núcleo
funcional. Hoy en día la mayoría de la gente conoce por Linux al Sistema Operativo que
realmente se llama GNU/Linux
Nucleo
Es así como el núcleo transforma un procesador real con su memoria finita en un número
prácticamente ilimitado de procesadores virtuales o procesos. Cada proceso dispone de su
propio tiempo de CPU, una memoria extensible y mecanismos estándares para interactuar
con los dispositivos, sin importar los detalles físicos de su implementación.
El conjunto de servicios que ofrece el núcleo a los procesos se denomina la API del núcleo.
Está formada por procedimientos pertenecientes al núcleo, pero que se invocan desde un
proceso cualquiera. La invocación de uno de estos procedimientos es una llamada al
sistema.
Un driver es el código que implementa una interfaz estándar para interactuar con un
dispositivo específico, como por ejemplo un disco SCSI. Este código es por lo tanto
altamente dependiente de los discos SCSI y no funcionará con discos IDE. Sin embargo, el
núcleo interactúa con este driver para discos SCSI de la misma forma que lo hace con el
driver para discos IDE, es decir a través de la misma interfaz.
El sistema de archivos
Dada esta equivalencia conceptual entre discos y archivos no es raro que ambos se
manipulen con las mismas llamadas al sistema: open, read, write, close y lseek (esta última
mueve la cabeza del disco hacia un bloque determinado).
Es usual que el sistema de archivos sea parte del núcleo. Por lo demás la motivación inicial de
muchos sistemas operativos como Unix era el de ofrecer un sistema de archivos a un único
proceso. Por algo DOS significa Disk Operating System y por ello es natural que forme parte del
núcleo. Sin embargo hay sistemas operativos que ofrecen el sistema de archivos como parte de un
proceso que no es parte del núcleo.
El intérprete de comandos
El intérprete de comando (o shell) se encarga de leer las órdenes interactivas del usuario y
ejecutar los programas que el usuario indique.
Se deben identificar las amenazas potenciales, que pueden proceder de fuentes maliciosas
o no.
El nivel de seguridad a proporcionar depende del valor de los recursos que hay que
asegurar
Los requisitos de seguridad de un sistema dado definen lo que significa la seguridad, para
ese sistema.
Sin una serie de requisitos precisos tiene poco sentido cuestionar la seguridad de un
sistema.
El Hardware es la parte tangible del computador, aquella que se puede palpar. Los
componentes Hardware se refiere a las partes físicas y accesorios complementarios que
componen la Unidad Central de Procesamiento (CPU) así como a los dispositivos externos,
tales como, monitor, impresora, teclado, mouse, cornetas. Si vemos el computador como
una estructura de hardware, notaremos que está constituido por dispositivos, que
clasificaremos según la función que desempeñen. De acuerdo a esta clasificación
tendremos
Dispositivos de Entrada.
Dispositivos de Salida.
Dispositivos de Comunicación.
Dispositivos de Almacenamiento.
Dispositivos de Cómputo.
Dispositivos de Entrada.
Son todos aquellos que permiten la entrada de datos a un computador. Entre estos
encontramos: el teclado, el ratón, el escáner, el micrófono, la cámara web, el capturador
de y firma digitales o lápices ópticos, memorias usb, cd, dvd
Dispositivos de Salida
Son todos aquellos que permiten mostrar la información procesada por el computador.
Entre estos encontramos: la pantalla, la impresora, los parlantes, etc.
Dispositivos de Almacenamiento
Son todos aquellos que permiten almacenar los datos en el computador. Ente estos
encontramos: el disquete, el disco duro (interno y externo), el CD, el DVD, la memoria
USB, etc
Dispositivos de Comunicación
Son todos aquellos que permiten la comunicación entre computadores. Entre estos
encontramos: el módem, la tarjeta de red y el enrutador (router).
Dispositivos de Cómputo
Son todos aquellos que realizan las operaciones y controlan las demás partes del
computador. Entre estos encontramos: la Unidad Central de Procesamiento, la memoria y
el bus de datos.
Unidad central de proceso o CPU(mejor conocida por sus siglas en inglés, CPU), es un circuito
microscópico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y del proceso de
datos en las computadoras. Generalmente, la CPU es un microprocesador fabricado en un chip, un
único trozo de silicio que contiene millones de componentes electrónicos.
El microprocesador de la CPU está formado por una unidad aritmético-lógica que realiza
cálculos y comparaciones y toma decisiones lógicas (determinando si una afirmación es
cierta o falsa mediante las reglas del álgebra de Boole. Para aceptar órdenes del usuario,
acceder a los datos y presentar los resultados, la CPU se comunica a través de un conjunto
de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de
almacenamiento (por ejemplo un disco duro), los dispositivos de entrada (por ejemplo un
teclado o un mouse) y los dispositivos de salida (por ejemplo un monitor o una impresora).
La instrucción viaja por el bus desde la memoria hasta la CPU, donde se almacena en el
registro de instrucción. Entretanto, el contador de programa se incrementa en uno para
prepararse para la siguiente instrucción. A continuación, la instrucción actual es analizada
por un descodificador, que determina lo que hará la instrucción. Cualquier dato requerido
por la instrucción es recuperado desde el dispositivo de almacenamiento correspondiente
y se almacena en el registro de datos de la CPU. A continuación, la CPU ejecuta la
instrucción, y los resultados se almacenan en otro registro o se copian en una dirección de
memoria determinada.
La Memoria
Es la encargada de almacenar toda la información que el computador está usando. Las hay de tres
tipos y son:
Memoria RAM. Del inglés Random Access Memory, es la memoria principal. Se caracteriza y
diferencia de la memoria ROM porque una vez apagado el sistema operativo, toda la información
almacenada en la memoria RAM es automáticamente borrada.
Memoria ROM Del inglés Read Only Memory, Es permanente, ya que lo que permanece en la ROM
no se pierde aunque el computador se apague.
Su función principal es guardar información inicial que el computador necesita para colocarse en
marcha una vez que se enciende. Solo sirve para leer. Se puede leer la información desde esta
memoria y no recibir información.
Memoria Caché
Es aquella que se usa como puente entre el CPU y la memoria RAM para evitar demoras en el
procesamiento de los datos. Existen varios núcleos de esta memoria (denominados con la letra L y
un número, por ejemplo L1). Cuanto menor el número más rápida es la memoria.
La memoria Caché es, por proximidad a la CPU, mucho más rápida que la memoria RAM. También
es mucho mas pequeña. La velocidad de la caché con respecto a la memoria RAM convencional es
del orden de 5 a 10 veces superior.
Es el conjunto de interconexiones entre las distintas partes del computador que permiten la
comunicación entre todos los dispositivos del mismo. También un bus es un conjunto cableado
que sirve para que los dispositivos hardware puedan comunicarse entre sí. Son rutas compartidas
por todos los dispositivos y les permiten tn computador se divide fundamentalmente en dos
partes: el Hardware y el Software. El hardware es la parte física del computador, la parte tangible;
es decir aquello que podemos tocar del computador. El software es la parte lógica del
computador, es decir el conjunto de instrucciones que le ordenan al hardware que tarea debe
realizar, transmitir información de unos a otros, son, en definitiva, las autopistas de la información
interna, las que permiten las transferencias de toda la información manejada por el sistema
Primera Generación.
es asi como se crea la computadora ENIAC (Electronic Numerical Intregrator and Calculator) que
era una enorme computadora la cual ocupaba mas de una habitacion, pesaba mas de 30 toneladas
y trabajaba con mas de 18 mil tubos de vacio, una de sus caracteristicas importantes fue que
usaba el sistema binario en lugar del sistema decimal, luego fue construída por Eckert y Mauchley
la computadora EDVAC (Electronic, Discrete Variable Automatic) que contaba con un programa,
este programa le permitía al computador alternar las operaciones dependiendo de los resultados
obtenidos previamente.
Es de mencionar que durante esta primera generacion lo mas importante de las computadoras
que se crearon fue el uso de tubos al vacío, ademas cabe mencionar que despues de 1950 se
crearon diversas maquinas cada una con un avance significativo, en 1951 se construyó la primera
computadora para uso comercial la cual fue llamada UNIVAC I, esta computadora fue contruida
para ser usada en la oficina de censos de los Estados Unidos.
Una de las compañias que no dejo de producir computadoras fue IBM la cual en el año de 1953
contruyó su computador 701 y posteriormente el 752.
Segunda Generacion
La segunda generación comprende desde los años 1959 a 1964, lo mas destacable de esta
segunda generación es el reemplazo del uso de tubos al vacío por los transistores lo que
hizo que las computadoras sean mas pequeñas y más rápidas.
Tercera Generacion
Esta generación comprende desde 1964 a 1971 y el mayor logro de esta generacion es el
uso de cirucitos integrados (chips de silicio), esto hizo que las computadoras sean mas
pequeñas y mas rápidas, ademas consumian menos electricidad lo que hacia que generen
menos cantidad de calor, ademas eran mas eficientes.
Con el uso del chip se dio un enorme paso en la era de la computación ya que el chip
contenia una serie de circuitos integrados los cuales alamacenaban la información, esto
permitió que las computadoras puedan hacer varias tareas a la vez como era la de
procesamiento de informacion y calculo matemático.
En la tercera generacion comienzan a surgir los programas o software, la compañia que
tuvo su apogeo en esta generación fue IBM la cual lanzó al mercado las minicomputadoras
IBM 360 y 370.
Cabe mencionar que en esta epoca los sitemas operativos pasaron de ser monotarea a
multitarea para permitir que las taras fueran ejecutadas continuamente.
En el año de 1970 IBM colocó una unidad de diskette a su computador modelo 3740 con
esto se incrementó la capacidad de acceso y la velocidad de la informacion.
Cuarta Generación
La cuarta generación de las computadoras se da desde 1971 a 1981, lo más importante en esta
generacion es el invento del microprocesador el cual unía los circuitos integrados en un solo
bloque. La creación del microprocesador hizo posible el desarrollo de las computadoras
personales o PC, lo cual marcaría una revolución en el mundo de la computación, esto cambiaría la
forma de trabajar e incluso de vivir de muchas personas hasta la actualidad.
En el año de 1971 la compañía INTEL crea el primer chip de 4 bits, el cual contenía una
gran cantidad de transistores.
Quinta Generación
Cabe mencionar que no se tiene muy definido cuando empieza la quinta generación y la
sexta generación del computador, esto debido a que los avances en la tecnología de la
computación se vienen dando de manera muy rapida, todo lo contrario con lo que sucedió
en las primeras generaciones del computador.
Pero si queremos darle una fecha podemos decir que la quinta generación se situa entre los años
1982 a 1989, en estos años las empresas encargadas de construir computadoras contaron con
grandes avances de microelectrónic y en avances de software, es en este periodo cuando surge la
"red de redes" o Internet, y es ahi donde se dan los mas grandes avances, se da inicio a la
inteligencia artificial, que tenia el proposito de equipar a las computadoras con la capacidad de
razonar para encontrar soluciones a sus propios problemas siguiendo patrones y secuencias, estas
computadoras podian operar en grandes compañias como es la construcción de automoviles, y
otras que podrian hacer diversas tareas y a un ritmo impresionante.
Sexta Generación
Como ya se sabe la sexta generación se viene dando a partir de 1990 hasta la fecha, en estos
ultimos años hemos venido viendo que las computadoras ahora son mas pequeñas, son mas
versatiles, ahora internet es una herramienta indispensable tanto en los centros de labores como
en el hogar, casi el 90% de la población hace uso en algun momento de internet, y por
consiguiente de una computadora.
Ahora vemos que el costo de una PC es relativamente bajo así como el de una Laptop, las
computadoras de ahora vienen trabajando con arquitecturas paralelas / vectoriales lo que hace
que sean muy rápidas, pueden almacenar una cantidad enorme de información hablamos de
terabites, ahora las computadoras practicamente toman decisiones propias alcanzando casi la
misma del ser humano, tenemos computadoras táctiles que casi no ocupan espacio en el hogar y
el trabajo, también con diseño holográfico, lo cual ha revolucionado el mercado de la informática
Estamos entrando a una era donde las computadoras pueden desarrollar capacidades casi
similares al ser humano, ya hemos visto robots que pueden jugar un encuentro de futbol,
esperamos que el avance tecnológico en el mundo de la informática y la computación nos facilite
más las cosas así como hasta ahora lo viene haciendo.
Introducción a la Ingeniería de Sistemas
Si queremos conocer el origen etimológico de la palabra ingeniería que ahora nos ocupa lo
que tenemos que hacer es marcharnos, metafóricamente hablando, hasta el latín pues
descubriremos que dicho término emana del vocablo latino ingenium. Un término este
que puede traducirse como “producir”.
La actividad del ingeniero supone la concreción de una idea en la realidad. Esto quiere
decir que, a través de técnicas, diseños y modelos, y con el conocimiento proveniente de
las ciencias, la ingeniería puede resolver problemas y satisfacer necesidades humanas.
Entre las distintas tareas que puede llevar a cabo un ingeniero, se encuentra
la investigación (la búsqueda de nuevas técnicas), el diseño, el desarrollo, la producción, la
construcción y la operación
En este sentido, los profesionales ingenieros de aquella deben tener conocimientos sobre
computación, telecomunicaciones, diseño de software, electrónica, algoritmos y lenguajes
formales o instrumentación virtual, entre otros.
Sistema
La Teoría General de Sistemas, por su parte, es el estudio interdisciplinario que busca las
propiedades comunes a estas entidades. Su desarrolló comenzó a mediados del siglo XX,
con los estudios del biólogo austriaco Ludwig von Bertalanffy. Se la considera como una
metateoría (teoría de teorías) que parte del concepto abstracto de sistema para encontrar
reglas de valor general.
Informática
Computación
Sin embargo, las computadoras capaces de realizar múltiples procesos (o sea, que no se
limitaban a los cálculos de tipo matemático) comenzaron a surgir en la década del ’40. El
uso masivo y doméstico de estas máquinas llegaría recién en los ’80, con la producción de
las computadoras personales o PC. El fin del siglo XX, con el auge de Internet, representó
un nuevo impulso para todo lo relacionado con las ciencias de la computación.
En cuanto a la teoría de la computación, hay que decir que está considerada como una
ciencia centrada en el estudio y la definición formal de los cómputos. Esta disciplina define
al cómputo como el producto de una solución o de un resultado, en especial en el sentido
matemático/aritmético del concepto, utilizando un proceso o algoritmo.
Dicho de otra forma, la computación es la ciencia que estudia y sistematiza las órdenes y
actividades dictadas en una máquina, analizando a los factores que participan de este
proceso, entre los que se encuentran los lenguajes de programación, que permiten
generar una lista de datos ordenada y entendible para la máquina.