CONCEPTOS GENERALES DE COMPUTACIÓN
​
1. Evolución de los sistemas operativos:
Todo empenzó en la década de los 40.
a) Años 40:
A finales de los años 1940, con lo que podríamos llamar la aparición de la primera generación de computadoras, se accedía directamente a la consola de la computadora desde la cual se actuaba sobre una serie de micro interruptores que permitían introducir directamente el programa en la memoria de la computadora (en realidad al existir tan pocas computadoras todos podrían considerarse prototipos y cada constructor lo hacía sin seguir ningún criterio predeterminado). Por aquel entonces no existían los sistemas operativos, y los programadores debían interactuar con el hardware del computador sin ayuda externa. Esto hacía que el tiempo de preparación para realizar una tarea fuera considerable. Además para poder utilizar la computadora debía hacerse por turnos. Para ello, en muchas instalaciones, se rellenaba un formulario de reserva en el que se indicaba el tiempo que el programador necesitaba para realizar su trabajo. En aquel entonces las computadoras eran máquinas muy costosas lo que hacía que estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se hacia en lenguaje de máquina.
b) Años 50:
A principios de los años 50 con el objeto de facilitar la interacción entre persona y computador, los sistemas operativos hacen una aparición discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal.
+ Monitor residente:
Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria, leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente.
+ Procesamiento por lotes:
Como solución para optimizar el tiempo de montaje surgió la idea de agrupar los trabajos en lotes, en una misma cinta o conjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición.
+ Almacenamiento temporal:
Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultánea la carga del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas, el buffering y el spooling.
​
c) Años 60:
En los años 1960 se produjeron cambios notorios en varios campos de la informática,con la aparicion de el circuito cerrado la mayoría orientados a seguir incrementando el potencial de los computadores. Para ello se utilizaban técnicas de lo más diversas:
+ Multiprogramación:
En un sistema multiprogramado la memoria principal alberga a más de un programa de usuario.
+ Tiempo compartido:
En este punto tenemos un sistema que hace buen uso de la electrónica disponible, pero adolece de falta de interactividad; para conseguirla debe convertirse en un sistema multiusuario, en el cual existen varios usuarios con un terminal en línea, utilizando el modo de operación de tiempo compartido. Con esto se consigue repartir la CPU por igual entre los programas de los distintos usuarios, y los programas de los usuarios no se sienten demasiado lentos por el hecho de que los recursos sean compartidos y aparentemente se ejecutan de manera concurrente.
+ Tiempo real:
Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy breves un gran número de sucesos, en su mayoría externos al ordenador. Si el sistema no respeta las restricciones de tiempo en las que las operaciones deben entregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debe servir para resolver el problema o hecho planteado. El procesamiento de archivos se hace de una forma continua, pues se procesa el archivo antes de que entre el siguiente, sus primeros usos fueron y siguen siendo en telecomunicaciones.
+ Multiprocesador:
Permite trabajar con máquinas que poseen más de un microprocesador. En un multiprocesador los procesadores comparten memoria y reloj.
+ Sistemas operativos desarrollados:
Además del Atlas Supervisor y el OS/360, los sesenta marcaron el inicio de UNIX, a mediados de los 60 aparece Multics, sistema operativo multiusuario – multitarea desarrollado por los laboratorios Bell de AT&T y programado en PL/1 uno de los pocos SO desarrollados en un lenguaje de alto nivel en aquel tiempo, luego del fracaso del proyecto UNIX comienza a desarrollarse a partir de este a finales de la década.
d) Años 70:
Debido al avance de la electrónica, pudieron empezar a crearse circuitos con miles de transistores en un centímetro cuadrado de silicio, lo que llevaría, pocos años después, a producirse los primeros sistemas integrados. Ésta década se podría definir como la de los sistemas de propósito general y en ella se desarrollan tecnologías que se siguen utilizando en la actualidad. Es en los años 1970 cuando se produce el boom de los miniordenadores y la informática se acerca al nivel de usuario. En lo relativo a lenguajes de programación, es de señalar la aparición de Pascal y C, el último de los cuales se creó específicamente para reescribir por completo el código del sistema operativo Unix, convirtiéndolo en uno de los pocos SO escritos en un lenguaje de alto nivel. En el campo de la programación lógica se dio a luz la primera implementación de Prolog, y en la revolucionaria orientación a objetos, Smalltalk.
e) Años 80:
Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los ordenadores personales. En éstos se dejó un poco de lado el rendimiento y se buscó más que el sistema operativo fuera amigable, surgiendo menús, e interfaces gráficas. Esto reducía la rapidez de las aplicaciones, pero se volvían más prácticos y simples para los usuarios. En esta época, siguieron utilizándose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos, de los cuales se podrían destacar: C++ y Eiffel dentro del paradigma de la orientación a objetos, y Haskell y Miranda en el campo de la programación declarativa. Un avance importante que se estableció a mediados de la década de 1980 fue el desarrollo de redes de computadoras personales que corrían sistemas operativos en red y sistemas operativos distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS, escrito por Microsoft para IBM PC y otras computadoras que utilizaban la CPU Intel 8088 y sus sucesores, y UNIX, que dominaba en los ordenadores personales que hacían uso del Motorola 68000.
+ Apple Macintosh:
El lanzamiento oficial se produjo en enero de 1984, al precio de 2495 dólares. Muchos usuarios, al ver que estaba completamente diseñado para funcionar a través de una GUI (Graphic User Interface), acostumbrados a la línea de comandos, lo tacharon de juguete. A pesar de todo, el Mac se situó a la cabeza en el mundo de la edición a nivel gráfico.
+ MS-DOS:
En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar unas pocas modificaciones, se convirtió en la primera versión de MS-DOS (MicroSoft Disk Operating System). A partir de aquí se sucedieron una serie de cambios hasta llegar a la versión 7.1, a partir de la cual MS-DOS dejó de existir como tal y se convirtió en una parte integrada del sistema operativo Windows.
+ Microsoft Windows:
Familia de sistemas operativos propietarios desarrollados por la empresa de software Microsoft Corporation, fundada por Bill Gates y Paul Allen. Todos ellos tienen en común el estar basados en una interfaz gráfica de usuario basada en el paradigma de ventanas, de ahí su nombre en inglés. Las versiones de Windows que han aparecido hasta el momento se basan en dos líneas separadas de desarrollo que finalmente convergen en una sola con la llegada de Windows XP. La primera de ellas conformaba la apariencia de un sistema operativo, aunque realmente se ejecutaba sobre MS-DOS.
f) Años 90:
+ GNU/Linux:
En 1991 aparece la primer versión del núcleo de Linux. Creado por Linus Torvalds y un sinfín de colaboradores a través de Internet. Este sistema se basa en Unix, un sistema que en principio trabajaba en modo comandos, estilo MS-DOS. Hoy en día dispone de Ventanas, gracias a un servidor grafico y a gestores de ventanas como KDE, GNOME entre muchos. Recientemente GNU/Linux dispone de un aplicativo que convierte las ventanas en un entorno 3D como por ejemplo Beryl. Lo que permite utilizar linux de una forma muy visual y atractiva.
g) Década del 200:
+ 2001: Aparece Mac-OS X
+ 2001-2009: Wndiwos XP
+ 2009-2012: Windows 7
+ 2012-2013: Windows 8
+ 2015-2016: Windows 10
2. Software y Harware en el tiempo
En el tiempo estos dos han ido evolucionando a grandes escales desde el Mark 1 credo en 1940 hasta el windows 10, android y otros para mayor detalle de estos puntos dale al link que sigue.
https://prezi.com/sqlpq2zf4buc/linea-de-tiempo-evolucion-de-los-sistemas-software-y-hardare/
​
3. Interrelación.Hardware, memoria. Unidad central de proceso, unidades de entrada y salida.
Se da de la siguiente forma en cuanto a la unidad central de proceso que mas conocemos como CPU es donde como dice su nombre se procesando los datos que hans ido ingresados por unidades de entrada como por ejemplo el mouse, el teclado, el Scanner. Los datos luego de haber sido procesados necesitan una via en la que mostar el resultado de la operación, esa vía es conocida como unidad de salida que puede ser el mnitor en la que se mustra la imagen de los que se esta haciendo en el computador; también esta lar parlantes que es por donde sale el sonido que se reproduce en el CPU; entre otras unidades de salida.
4. Lenguajes de programación:
Entre ellos tenemos:
+ Java
+ C
+ C++
+ Python
+ C#
+ Visual Basic .NET
+ Javascript
+ PHP
+ Perl
+ Assenmbly language
+ Ruby
+ Swift
+ Delphi/Object Pascal
+ R
+ Visual Basic
+ MATLAB
+ Objetive-C
+ Scratch
+ PL/SQL
​
5. Programas Fuentes:
Mayormente conocido como Código Fuente, definimos como Programa Fuente a un texto o conjunto de líneas de texto (líneas de código) que forman parte esencial de un programa informático, siendo entonces las instrucciones que debe seguir un ordenador para poder realizar la ejecución de una orden determinada.
En este Código se hace referencia entonces al funcionamiento general de una aplicación o una herramienta en particular, pero en un idioma que es comprensible por el Programador mediante la utilización de un Lenguaje de Programación determinado, que lleva sus propias reglas y excepciones.
​
6. Programa orientado a objetos:
La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.
Muchos de los objetos prediseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
SISTEMA OPERATIVO EN DISCO (D.O.S.)
7. Microcomputación:
Es la rama de la computación que se dedica a la construcción y diseño de microcomputadoras.
Para mayor referencia sobre el tema mire aquí:
https://prezi.com/k5y-t80gfqe6/micro-computacion/
​
8. Sistemas operativos de discos (D.O.S.)
Se llama sistema operativo de disco' (en inglés Disk Operating System), a menudo abreviado como DOS, a un software de sistema operativo utilizado en varios ordenadores que proporciona la abstracción y administración de dispositivos de almacenamiento secundario y la información que se graba en estos (por ej., sistemas de archivo para organizar archivos de todas las clases). Este software se llama sistema operativo de disco cuándo los dispositivos de almacenamiento son platos rotatorios, como un disquete o los platos de un disco duro.
En los primeros días de los microordenadores, el espacio de memoria del ordenador era a menudo limitado, así que el sistema operativo de disco era una extensión del sistema operativo. Este componente se cargaba solo cuando se necesitaba. Por otro lado, el acceso de disco estaba limitado a operaciones de bajo nivel como leer y escribir discos a nivel de sector.
En algunos casos, el componente de sistema operativo del disco (o incluso el sistema operativo) era conocido como DOS.
A veces, un sistema operativo de disco puede referirse al sistema operativo entero si se carga de un disco y apoya la abstracción y administración de dispositivos de disco. Ejemplo de esto son el DOS/360. En los compatibles IBM PC, una familia entera de sistemas operativos se apellidó DOS.
​
9. Comandos de D.O.S.:
Entre ellos tenemos:
+ MSD
+ FORMAT
+ CLS
+ CD
+ MD
+ ROOT
+ DISKCOPY
+ COPY CLS
+ DEL o ERASE DIR
+ DELTREE TREE
+ FAT, ETC.
​
10. Directorios con estructuras de árbol
Cualquier disco duro actual puede contener decenas de miles de archivos de todo tipo, incluidos los archivos que creamos los usuarios (cartas, fotos, etc.). Si accedemos a nuestro disco duro y obtenemos una lista con decenas de miles de archivos, dificilmente encontraremos nuestros archivos. Por otro lado el sistema tendrá que elaborar una lista enorme lo cual es poco efeciente.
Parece más razonable disponer de una sistema que nos permita organizar, estructurar y ordenar los miles de archivos de nuestros dispositivos de almacenamiento. Es justamente lo que hacen las carpetas o directorios. Cada carpeta tendrá su nombre y contendrá una lista de archivos. Es resposabilidad del usuario gestionar las carpetas, es decir crearlas, asignarle un nombre, borrarlas, copiarlas, moverlas, ect. Queda a criterio del usuario los archvios que guardamos en cada una. Por ejemplo en la carpeta Documentos guardamos los archivos de Word, en Programas las aplicaciones, en Música los archivos de sonido, etc.
Las carpetas pueden contener otras carpetas lo que permite crear "una especie arbol invertido" de ficheros y carpetas. Como si cada carpeta fuera una rama y cada fichero una hoja. La parte más alta del arbol se llama raiz y es el primer nivel de ficheros y carpetas que vemos cuando abrimos un disco duro u otro dispositivo. Esta estructura en arbol es común a distintos sistemas operativo y plataformas informáticas.
Para ilustrar lo dicho anteriormente vamos a representar gráficamente un arbol de carpetas y ficheros de un disco duro imaginario, en el que existen numerosos errores (en rojo) que no podrían cometerse en la práctica.
​
11. Utilización del editor :
Se usa mas que tod para editar algun programa u ortras opciones del sistema usando el comadno EDIT
PROGRAMACIÓN Y DIAGRAMACIÓN
​
12. Conceptos básicos sobre programación de computadoras :
+ Algoritmo: es el conjunto de pasos ordenados lógicamente para realizar una actividad o resolver un problema específico.
Ejemplos: los pasos ordenados lógicamente de una receta de cocina, para sumar dos(2) números, para calcular el área de un triángulo, etc.
Características importantes de un algoritmo:
+ Debe ser finito: todo algoritmo debe tener un fin.
+ Debe ser definido: siempre debe dar el mismo resultado con los mismos parámetros.
+ Debe ser preciso: exactitud en el desarrollo de todos los pasos.
+ Lenguaje de programación: es un conjunto de palabras, letras, números y símbolos especiales con reglas sintácticas definidas que se utilizan para dar instrucciones al computador.
Ejemplos: Qbasic, Visual Basic, Pascal, C++, Java, etc.
+ Programa fuente: es el conjunto de pasos de un algoritmo escrito en un lenguaje de programación de alto nivel.
+ Programa objeto: es el conjunto de pasos de un algoritmo escrito en lenguaje de máquina ( bajo nivel ).
+ Compilador: es una aplicación o programa que traduce un programa fuente en un programa objeto que puede ser interpretado y ejecutado por el computador.
+ Pseudocódigo: es un conjunto de instrucciones que se escriben en palabras similares al lenguaje natural para resolver un problema o una tarea específica. Es una herramienta que se utiliza en la programación estructurada.
+ Diagrama de flujo: es la representación gráfica de un algoritmo o pseudocódigo mediante símbolos convencionales que muestran las acciones, procesos y flujo de la información para resolver un problema planteado.
​
13. Algoritmos:
+ Cualitativos y cuantitativos
+ Bucles y condicionales, etc
​
14. Símbolos de diagramación
+ Símbolo de Inicio / Final
El símbolo de terminación marca el punto inicial o final del sistema. Por lo general, contiene la palabra "Inicio" o "Fin".
+ Símbolo de Acción o Proceso
Un rectangulo solo puede representar un solo paso dentro de un processo ("agregar dos tazas de harina"), o un subproceso completo ("hacer pan") dentro de un proceso más grande.
+ Símbolo del Documento Impreso
Un documento o informe impreso.
+ Símbolo de Multidocumento
Representa multidocumento en el proceso.
+ Símbolo de Decisión o Ramificación
Un punto de decisión o ramificación. Las líneas que representan diferentes decisiones surgen de diferentes puntos del diamante.
+ Símbolo de Entrada / Salida
Representa el material o la información que entra o sale del sistema, como una orden del cliente (entrada) o un producto (salida).
+ Símbolo de Entrada Manual
Representa un paso en el que se pide al usuario que introduzca la información manualmente.
+ Símbolo de Preparación
Representa un ajuste a otro paso en el proceso.
+ Símbolo del Conector
Indica que el flujo continúa donde se ha colocado un símbolo identico (que contiene la misma letra).
+ O Símbolo
Indica que el flujo del proceso continúa en más de dos ramas.
+ Símbolo de Unión de Invocación
Indica un punto en el diagrama de flujo en el que múltiples ramificaciones convergen de nuevo en un solo proceso.
+ Símbolo de Fusión
Indica un paso en el que dos o más sub-listas o subprocesos se convierten en uno.
+ Símbolo de Intercalar
Indica un paso que ordena información en un formato estándar.
+ Símbolo de Ordenar
Indica un paso que organiza una lista de elementos en una secuencia o establece según algunos criterios predeterminados.
+ Símbolo de Proceso Predefinido
Indica una secuencia de acciones que realizan una tarea específica incrustada dentro de un proceso más grande. Esta secuencia de acciones podría describirse con más detalle en un diagrama de flujo separado.
+ Símbolo del Operación Manual
Indica una secuencia de comandos que continuarán repitiéndose hasta que se detenga manualmente.
+ Símbolo de Límite de Bucle
Indica el punto en el que debe detenerse un bucle.
+ Símbolo de Retardo
Indica un retraso en el proceso.
+ Almacenamiento de Datos o Símbolo de Datos Almacenados
Indica un paso donde se almacenan los datos.
+ Símbolo de la Base de Datos
Indica una lista de información con una estructura estándar que permite buscar y ordenar.
+ Símbolo de Almacenamiento Interno
Indica que la información se almacenó en la memoria durante un programa, utilizado en diagramas de flujo de diseño de software.
+ Símbolo de Visualización
Indica un paso que muestra información.
+ Conector Fuera de Página
Indica que el proceso continúa fuera de la página.
​
LENGUAJES DE PROGRAMACIÓN
15. Tipos de datos:
+ Números enteros
+ Números reales
+ Números complejos
+ Valores Lógicos
+ Texto
+ Nulo
16. Símbolos:
Nombre del identificador.dirección en tiempo de ejecución a partir del cual se almacenara el identificador si es una variable.tipo del identificador. Si es una función, el tipo que devuelve la función.número de dimensiones del array (arreglo), o número de miembros de una estructura o clase, o números de parámetros si se trata de una función.tamaño máximo o rango de cada una de las dimensiones de los array, si tiene dimensión estática.etc.
17. Palabras reservadas:
En lenguajes informáticos, las palabras reservadas son aquellas que tienen un uso determinado para el lenguaje y, por lo tanto, no pueden ser empleadas en el código como identificadores (por ejemplo, nombres para las variables). Las palabras reservadas no pueden ser utilizadas por el usuario para nombrar a las variables, funciones, procedimientos, objetos y demás elementos de programación que cree. Por ejemplo, en el lenguaje SQL, son palabras reservadas todas las empleadas para armar sentencias, cláusulas modificadoras, tipos de dato, y funciones propias del DBMS. Por ejemplo, no pueden usarse SELECT, WHERE, GROUP, SUM, etc. Entonces, un usuario no puede ser llamado "group". En lenguaje de programación PHP, las palabras reservadas no pueden ser usadas para nombres de constantes, de clases, de funciones o de métodos. Sí pueden emplearse como nombres de variables, pero puede prestarse a confusiones por lo que se desaconseja. Ejemplos de palabras reservadas son break, do, clone, for, switch, echo, etc. Cada lenguaje de programación tiene su propio grupo de palabras reservadas, pero en general coinciden algunas de las siguientes: and, array, begin, case, const, default, do, else, end, file, for, function, goto, if, in, label, mod, not, of, or, repeat, return, then, to, type, until, void, while, etc.
18. Identificadores:
Un identificador es un conjunto de caracteres alfanuméricos de cualquier longitud que sirve para identificar las entidades del programa (clases, funciones, variables, tipos compuestos) Los identificadores pueden ser combinaciones de letras y números. Cada lenguaje tiene sus propias reglas que definen como pueden estar construidos. Cuando un identificador se asocia a una entidad concreta, entonces es el "nombre" de dicha entidad, y en adelante la representa en el programa. Nombrar las entidades hace posible referirse a las mismas, lo cual es esencial para cualquier tipo de procesamiento simbólico.
19. Datos reales, enteros y de carácter :
+ Datos Enteros:
Los enteros son el tipo de dato más primitivo en C. Se usan para representar números enteros. Pero siempre se pueden encontrar otras aplicaciones para los números enteros. En general se pueden usar para representar cualquier variable discreta.
Los tipos de datos enteros son: short, int, long y long long, cada uno representando un número entero de un tamaño o capacidad determinado. Según el compilador y la plataforma de hardware, cada uno de estos tipos de dato puede ocupar desde 1 byte hasta 8 bytes en memoria (para más detalles busca en la referencia).
Además, el lenguaje C hace la distinción de si el entero es con signo (signed) o sin signo (unsigned). En caso de que no se declare si es con signo o sin signo, se toma con signo.
+ Datos reales:
Los tipos de datos que representan a los números reales, ya que utilizan un sistema de representación basado en la técnica de coma flotante, que permite operar con números reales de diversas magnitudes, mediante un número decimal llamado mantisa y un exponente que indica el orden de magnitud.
El tipo de dato flotante en lenguaje C sólo tiene dos tamaños: el float y el double, que son 4 bytes y 8 bytes respectivamente. Se los puede utilizar tanto para representar números decimales, como para representar números enteros con un orden de magnitud muy grande.
La forma de declarar una variable flotante es escribiendo en una línea uno de los tipos de datos flotantes y a continuación el nombre de la variable y tal vez algún valor que se les quiera dar.
+ Datos de carácter:
Los caracteres se representan utilizando el tipo char, que tiene sólo 1 byte de tamaño. Este tipo se utiliza para representar los 256 caracteres de la tabla de caracteres del sistema. El tipo char es también un tipo entero, ya que puede tomar valores de 0 a 255. Por lo tanto también puede ser signed o unsigned.
En cuanto a la forma de declarar variables de tipo char es la misma forma que con los otros tipos.
20. DVC++:
Dev-C++ es un entorno de desarrollo integrado (IDE) para programar en lenguaje C/C++. Usa MinGW, que es una versión de GCC(GNU Compiler Collection) como su compilador. Dev-C++ puede además ser usado en combinación con Cygwin y cualquier compilador basado en GCC.
El Entorno está desarrollado en el lenguaje Delphi de Borland. Tiene una página de paquetes opcionales para instalar, con diferentes bibliotecas de código abierto.