top of page
descarga.jpg

CONCEPTOS GENERALES DE COMPUTACIÓN

 

1) Evolución de los sistemas operativos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

En los 40's, se introducen los programas bit a bit, por medio de interruptores mecánicos y después se introdujo el lenguaje máquina que trabajaba por tarjetas perforadas.  las primeras computadoras, desde finales de los años 40 hasta la mitad de los años 50, el programador interactuaba de manera directa con el hardware de la computadora, no existía realmente un Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de datos y los programas se realizaban a través del lenguaje maquina (bits) o a través de interruptores.

Durante los años 50's y 60's.- A principio de los 50's, la compañía General's Motors implanto el primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten que los usuarios (que en ese tiempo eran programadores, diseñadores, capturistas, etc.), se encarguen de modificar sus programas. Establecían o apartaban tiempo, metían o introducían sus programas, corregían y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto se traducía en pérdida de tiempo y tiempos de programas excesivos.

En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los procesos Batch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos de una sola vez. En esta época surgen las unidades de cinta y el cargador de programas, el cual se considera como el primer tipo de Sistema Operativo.

En los 80's, inicio el auge de la INTERNET en los Estados Unidos de América. A finales de los años 80's comienza el gran auge y evolución de los Sistemas Operativos. Se descubre el concepto de multiprogramación que consiste en tener cargados en memoria a varios trabajos al mismo tiempo, tema principal de los Sistemas Operativos actuales.

Los 90's y el futuro, entramos a la era de la computación distribuida y del multiprocesamiento a través de múltiples redes de computadoras, aprovechando el ciclo del procesador.

Se tendrá una configuración dinámica con un reconocimiento inmediato de dispositivos y software que se añada o elimine de las redes a través de procesos de registro y localizadores.

La conectividad se facilita gracias a estándares y protocolos de sistemas abiertos por organizaciones como la Organización Internacional de normas, fundación de software abierto, todo estará más controlado por los protocolos de comunicación OSI y por la red de servicios digital ISDN.

Se ha desarrollado otra versión, la cual se ha hecho en base a etapas o generaciones: 

1a. Etapa (1945-1955): Bulbos y conexiones. 

Después de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construcción de las computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la década de los 40's, Howard Aiken (Harvard), John Von Newman (Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y Williams Mauchley (Universidad de Pennsylvania), así como Conrad Zuse (Alemania), entre otros lograron construir máquinas de cálculo mediante bulbos. Estas máquinas eran enormes y llenaban cuartos completos con decenas de miles de bulbos, pero eran mucho más lentas que la computadora casera más económica en nuestros días. Toda la programación se llevaba a cabo en lenguaje de maquina absoluto y con frecuencia se utilizaban conexiones para controlar las funciones básicas de la máquina. Los lenguajes de programación eran desconocidos (incluso el lenguaje ensamblador). No se oía de los Sistemas Operativos el modo usual de operación consistía en que el programador reservaba cierto periodo en una hoja de reservación pegada a la pared, iba al cuarto de la máquina, insertaba su conexión a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o más bulbos se quemara durante la ejecución. La inmensa mayoría de los problemas eran cálculos numéricos directos, por ejemplo, el cálculo de valores para tablas de senos y cosenos. 

A principio de la década de los 50's la rutina mejoro un poco con la introducción de las tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo demás el proceso era el mismo. 

2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por lotes.

La introducción del transistor a mediados de los años 50's modifico en forma radical el panorama. Las computadoras se volvieron confiables de forma que podían fabricarse y venderse a clientes, con la esperanza de que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma. 

Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por demás rápidas vías para reducir el tiempo invertido. La solución que, por lo general se adoptó, fue la del sistema de procesamiento por lotes. 

3ra Etapa (1965-1980): Circuitos integrados y multiprogramación.

La 360 de IBM fue la primera línea principal de computadoras que utilizo los circuitos integrados, lo que proporciono una gran ventaja en el precio y desempeño con respecto a las máquinas de la segunda generación, construidas a partir de transistores individuales. Se trabajó con un sistema operativo enorme y extraordinariamente complejo. A pesar de su enorme tamaño y sus problemas el sistema operativo de la línea IBM 360 y los sistemas operativos similares de esta generación producidos por otros fabricantes de computadoras realmente pudieron satisfacer, en forma razonable a la mayoría de sus clientes. También popularizaron varias técnicas fundamentales, ausentes de los sistemas operativos de la segunda generación, de las cuales la más importante era la de multiprogramación.

Otra característica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al cuarto de cómputo. Así, siempre que concluyera un trabajo el sistema operativo podía cargar un nuevo trabajo del disco en la partición que quedara desocupada y ejecutarlo. 

4ta Etapa (1980-Actualidad): Computadoras personales. 

Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década de los ochenta ha sido el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas operativos distribuidos. 

En los sistemas operativos de red, los usuarios están conscientes de la existencia de varias computadoras y pueden conectarse con máquinas remotas y copiar archivos de una maquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario. 

Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un sistema tradicional de un solo procesador, aun cuando está compuesto por varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automática y eficaz por el sistema operativo. 

2) Software y Hardware en el tiempo

* EVOLUCION DEL SOFTWARE:

En 1990 La crisis del software se fundamentó en el tiempo de creación de software, ya que en la creación del mismo no se obtenían los resultados deseados, además de un gran costo y poca flexibilidad. Básicamente, la crisis del software se refiere a la dificultad en escribir programas libres de defectos, fácilmente comprensibles, y que sean verifica bles. Las causas son, entre otras, la complejidad que supón la tarea de programar, y los cambios a los que se tiene que ver sometido un programa para ser continuamente adaptado a las necesidades de los usuarios.

Su evolución estuvo marcadas en etapas y sucesos que fueron conformando con el paso de los años lo que hoy conocemos como software.

 

Primera generación: En la primer era que abarco de 1946-1965 no existió una planificación o alguna documentación sobre el proyecto ya que se desarrollaba a base de prueba y error. Segunda generación: La segunda era se busco la simplificación del código,también aparece la multiprogramacion junto con la venta del software como producto.Inicia la crisis del software. Tercera generación: La tercera era marco el inicio de la interconectividad en áreas locales y globales así como incluir el concepto de distribución. Cuarta generación: La cuarta era que abarco de 1985 hacia 1995 aparecen desde redes de información,tecnologías orientadas hacia objetos,redes neuronales,sistemas expertos y el SW de la inteligencia artificial.Comienza a operar JAVA.

Quinta generación: La quinta era se establece desde el 2000 y nuestro presente.Utiliza algunos requisitos de las eras antes mencionadas,solo que aumenta la omnipresencia de la web,la reutilizacion de la información y componentes del software.Como producto tenemos nuevos nuevos sistemas operativos tales como windows,que como des arrolladora también durante la ultima década ha mejorado diferentes aspectos de lo que es el sistema operativo.

 

* EVOLUCION DEL HARDWARE:

 

El hardware nace en 1950 como una necesidad de imprementacion en el desarrollo de los computadores.computadores. Así como se tuvo una evolución del software se tuvo que encontrar la medida de imprementar nuevos sistemas computacionales que sean reducidos,cumplan con los requisitos especificados. Por estos motivos se tuvo que evolucionar el hardware.

Su evolución consto en 6 eras.

Primera generación: de computadoras (1941-1948): construidas con válvulas de vacío. Se caracterizaban por su gran tamaño y el gran consumo de energía. Ejemplo de ellas es la ENIAC: su arquitectura física se componía de 18.000 válvulas, un volumen de alrededor de 111 metros cúbicos (aproximadamente el tamaño de un autobús), unas 30 toneladas de peso y un consumo de 150.000 watios.

Segunda generación: de computadoras (1948-1962): construidas con transistores. El cambio fundamental que originó la aparición del transistor fue que redujo en gran medida el tamaño de las computadoras. Por otra parte se multiplicó la velocidad de cálculo (próxima a los mili segundos), y se comenzaron a utilizar los procesos por lotes.

La tercera generación: de computadoras (1962-1971): construidas con circuitos integrados. Con ellos no sólo se aumentó la miniaturización de los componentes, sino también su fiabilidad y velocidad de proceso, de modo que el tiempo de conmutación pasó a medirse en nanosegundos, esto es, millomillonésimas de segundo.

La cuarta generación: de computadoras (1971 a 1981): computadoras con microprocesadores, chips de memoria, y microminiaturización. Esta generación de computadoras se caracterizó por grandes avances tecnológicos realizados en un tiempo muy corto. En 1977 aparecen las primeras micro computadoras, entre las cuales, las más famosas fueron las fabricadas por Apple Computer, Radio Shack, Commodore Busíness Machines, e IBM que incluye un sistema operativo estandarizado, el MS- DOS.

La quinta generación: de computadoras (1982-1989): introducción a la inteligencia artificial. Las computadoras de esta generación contienen una gran cantidad de microprocesadores trabajando en paralelo y pueden reconocer voz e imágenes. También tienen la capacidad de comunicarse con un lenguaje natural y pueden ir tomando decisiones con base en procesos de aprendizaje fundamentados en sistemas expertos e inteligencia artificial.

La sexta generación: de computadoras (1990 - 2010): estas computadoras cuentan con arquitecturas combinadas paralelo / vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo; se han creado computadoras capaces de realizar más de un millón de millones de operaciones aritméticas de punto flotante por segundo (teraflops); las redes de área mundial siguen creciendo utilizando medios de comunicación a través de fibras ópticas y satélites, con importantes anchos de banda.

Pese a la velocidad de evolución de las máquinas, no ha sido la ingeniería del hardware, sino la del software la que ha provocado más problemas en la construcción de sistemas TIC por el desbordamiento continuo de los plazos y costes, y la presencia de errores en las aplicaciones. Por esta razón han ido ganando importancia y mejorando el cuerpo del conocimiento las disciplinas de ingeniería del software y gestión de proyectos.

3) Interrelación Hardware, memoria, unidad central de proceso, unidades de entrada y salida.

Hardware

Los componentes y dispositivos del Hardware se dividen en Hardware Básico y Hardware Complementario

El Hardware Básico: son las piezas fundamentales e imprescindibles para que la computadora funcione como son: Placa base, monitor, teclado y ratón.El Hardware Complementario: son todos aquellos dispositivos adicionales no esenciales como pueden ser: impresora, escáner, cámara de vídeo digital, webcam, etc.

Placa Base o Placa Madre

Los componentes Hardware más importantes de la computadora y esenciales para su funcionamiento se encuentran en la Placa Base (también conocida como Placa Madre), que es una placa de circuito impreso que aloja a la Unidad Central de Procesamiento (CPU) o microprocesador, Chipset (circuito integrado auxiliar), Memoria RAM, BIOS o Flash-ROM, etc., además de comunicarlos entre sí.

Grupos de Hardware

Según sus funciones, los componentes y dispositivos del hardware se dividen en varios grupos y en el siguiente orden:

Dispositivos de Entrada Chipset (Circuito Integrado Auxiliar)Unidad Central de Procesamiento (CPU)Unidad de Control Unidad Aritmético-Lógica Unidad de Almacenamiento Memoria Principal o Primaria (RAM – ROM)Memoria Secundaria o Auxiliar (Disco Duro, Flexible, etc.)Dispositivos de Salida.

Dispositivos de Entrada

Los Dispositivos de Entrada son aquellos a través de los cuales se envían datos externos a la unidad central de procesamiento, como el teclado, ratón, escáner, o micrófono, entre otros.

Chipset (Circuito Integrado Auxiliar)

El Chipset o Circuito Integrado Auxiliar es la médula espinal de la computadora, integrado en la placa base, hace posible que esta funcione como eje del sistema permitiendo el tráfico de información entre el microprocesador (CPU) y el resto de componentes de la placa base, interconectándolos a través de diversos buses que son: el Northbridge (Puente Norte) y el Southbridge (Puente Sur).

El Northbridge o Puente Norte es un circuito integrado que hace de puente de enlace entre el microprocesador y la memoria además de las tarjetas gráficas o de vídeo AGP o PCI-Express, así como las comunicaciones con el Puente Sur.

El Southbridge o Puente Sur (también conocido como Concentrador de Controladores de Entrada/Salida), es un circuito integrado que coordina dentro de la placa base los dispositivos de entrada y salida además de algunas otras funcionalidades de baja velocidad. El Puente Sur se comunica con la CPU a través del Puente Norte.

Unidad Central de Procesamiento (CPU)

La CPU (Central Processing Unit o Unidad Central de Procesamiento) puede estar compuesta por uno o varios microprocesadores de circuitos integrados que se encargan de interpretar y ejecutar instrucciones, y de administrar, coordinar y procesar datos, es en definitiva el cerebro del sistema de la computadora. además, la velocidad de la computadora depende de la velocidad de la CPU o microprocesador que se mide en Mhz (unidad de medida de la velocidad de procesamiento). Se divide en varios registros:

Unidad de Control

La Unidad de Control es la encargada de controlar que las instrucciones se ejecuten, buscándolas en la memoria principal, decodificándolas (interpretándolas) y que después serán ejecutadas en la unidad de proceso.

Unidad Aritmético-Lógica

La Unidad Aritmético-Lógica es la unidad de proceso donde se lleva a cabo la ejecución de las instrucciones con operaciones aritméticas y lógicas.

Unidad de Almacenamiento

La Unidad de Almacenamiento o Memoria guarda todos los datos que son procesados en la computadora y se divide en Memoria Principal y Memoria Secundaria o Auxiliar.

Memoria Principal o Primaria (RAM – ROM)

En la Memoria Principal o Primaria de la computadora se encuentran las memorias RAM, ROM y CACHÉ.

La Memoria RAM (Random Access Memory o Memoria de Acceso Aleatorio) es un circuito integrado o chip que almacena los programas, datos y resultados ejecutados por la computadora y de forma temporal, pues su contenido se pierde cuando esta se apaga. Se llama de acceso aleatorio - o de acceso directo - porque se puede acceder a cualquier posición de memoria sin necesidad de seguir un orden. La Memoria RAMpuede ser leída y escrita por lo que su contenido puede ser modificado.

La Memoria ROM (Read Only Memory o Memoria de sólo lectura) viene grabada en chips con una serie de programas por el fabricante de hardware y es sólo de lectura, por lo que no puede ser modificada - al menos no muy rápida o fácilmente - y tampoco se altera por cortes de corriente. En esta memoria se almacenan los valores correspondientes a las rutinas de arranque o inicio del sistema y a su configuración.

La Memoria Caché o RAM Caché es una memoria auxiliar de alta velocidad, que no es más que una copia de acceso rápido de la memoria principal almacenada en los módulos de RAM.

Memoria Secundaria (Disco Duro, Disco Flexibles, etc.)

La Memoria Secundaria (también llamada Periférico de Almacenamiento) está compuesta por todos aquellos dispositivos capaces de almacenar datos en dispositivos que pueden ser internos como el disco duro, o extraíble como los discos flexibles (disquetes), CDs, DVDs, etc.

Dispositivos de Salida

Los Dispositivos de Salida son aquellos que reciben los datos procesados por la computadora y permiten exteriorizarlos a través de periféricos como el monitor, impresora, escáner, plotter, altavoces,etc.

Dispositivos de Entrada/Salida (Periféricos mixtos): Hay dispositivos que son tanto de entrada como de salida como los mencionados periféricos de almacenamiento, CDs, DVDs, así como módems, faxes, USBs, o tarjetas de red.

Software

El Software es el soporte lógico e inmaterial que permite que la computadora pueda desempeñar tareas inteligentes, dirigiendo a los componentes físicos o hardware con instrucciones y datos a través de diferentes tipos de programas.

El Software son los programas de aplicación y los sistemas operativos, que según las funciones que realizan pueden ser clasificados en:

Software de SistemaSoftware de AplicaciónSoftware de Programación

Software de Sistema

Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el hardware, además de dar soporte a otros programas.

El Software de Sistema se divide en:

Sistema OperativoControladores de DispositivosProgramas Utilitarios

Sistema operativo

El Sistema Operativo es un conjunto de programas que administran los recursos de la computadora y controlan su funcionamiento.

Un Sistema Operativo realiza cinco funciones básicas: Suministro de Interfaz al Usuario, Administración de Recursos, Administración de Archivos, Administración de Tareas y Servicio de Soporte.

Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio de interfaces que se basan en comandos, interfaces que utilizan menús, e interfaces gráficas de usuario.Administración de recursos:Administran los recursos del hardware como la CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.Administración de archivos: Controla la creación, borrado, copiado y acceso de archivos de datos y de programas.Administración de tareas: Administra la información sobre los programas y procesos que se están ejecutando en la computadora. Puede cambiar la prioridad entre procesos, concluirlos y comprobar el uso de estos en la CPU, así como terminar programas.Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las implementaciones añadidas a este, y pueden consistir en inclusión de utilidades nuevas, actualización de versiones, mejoras de seguridad, controladores de nuevos periféricos, o corrección de errores de software.

Controladores de Dispositivos

Los Controladores de Dispositivos son programas que permiten a otros programa de mayor nivel como un sistema operativo interactuar con un dispositivo de hardware.

Programas Utilitarios

Los Programas Utilitarios realizan diversas funciones para resolver problemas específicos, además de realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema operativo.

Software de Aplicación

El Software de Aplicación son los programas diseñados para o por los usuarios para facilitar la realización de tareas específicas en la computadora, como pueden ser las aplicaciones ofimáticas (procesador de texto, hoja de cálculo, programa de presentación, sistema de gestión de base de datos...), u otros tipos de software especializados como software médico, software educativo, editores de música, programas de contabilidad, etc.

Software de Programación

El Software de Programación es el conjunto de herramientas que permiten al desarrollador informático escribir programas usando diferentes alternativas y lenguajes de programación.

Este tipo de software incluye principalmente compiladores, intérpretes, ensambladores, enlazadores, depuradores, editores de texto y un entorno de desarrollo integrado que contiene las herramientas anteriores, y normalmente cuenta una avanzada interfaz gráfica de usuario (GUI).

4) Lenguajes de programación

Un lenguaje de programación es un lenguaje formal que proporciona una serie de instrucciones que permiten a un programador escribir secuencias de órdenes y algoritmos a modo de controlar el comportamiento físico y lógico de una computadora con el objetivo de que produzca diversas clases de datos. A todo este conjunto de órdenes y datos escritos mediante un lenguaje de programación se le conoce como programa.

Algunos de estos lenguajes están formados por un conjunto de símbolos (llamado alfabeto), reglas gramaticales (léxico/morfológicas y sintácticas) y reglas semánticas, que en conjunto definen las estructuras válidas en el lenguaje y su significado. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación, que es la que define la creación de software mediante la aplicación de procedimientos lógicos a través de los siguientes pasos:

El desarrollo lógico del programa para resolver un problema en particular.Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.Prueba y depuración del programa.Desarrollo de la documentación.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten estructurar el contenido de los documentos).

El lenguaje de programación permite especificar de manera precisa sobre qué datos debe operar un software específico, cómo deben ser almacenados o transmitidos dichos datos, y qué acciones debe dicho software tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamentepróximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.

5) Programas Fuentes

Programa fuente es una noción que se emplea como sinónimo de código fuente. Se trata de las instrucciones que un programa informático transmite a una computadora para que pueda ejecutarse. Dichas instrucciones son líneas de texto escritas en un lenguaje de programación (una estructura capaz de impartir instrucciones informáticas a partir de una determinada base semántica y sintáctica).

Puede decirse que, en el programa fuente, un software detalla la totalidad de su funcionamiento. Un programador es quien desarrolla dichas instrucciones, respetando los principios del lenguaje de programación elegido. El sistema en cuestión, al acceder al programa fuente, interpreta las instrucciones y las pone en marcha.

6) Programas Orientados 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.

CONCEPTOS GENERALES DE COMPUTACIÓN

7) Micro-computación

Una microcomputadora o microordenador es una computadora pequeña, con un microprocesador como su unidad central de procesamiento CPU.2​ Generalmente, el microprocesador incluye los circuitos de almacenamiento (o memoria caché) y entrada/salida en el mismo circuito integrado (o chip).3​ Las microcomputadoras se hicieron populares desde 1970 y 1980 con el surgimiento de microprocesadores más potentes. Los predecesores de estas computadoras, las supercomputadoras y las minicomputadoras, eran mucho más grandes y costosas (aunque las supercomputadoras modernas, como las IBM System z, utilizan uno o más microprocesadores como CPUs). Muchas microcomputadoras (cuando están equipadas con un teclado y una pantalla para entrada y salida) son también computadoras personales (en sentido general). La abreviatura micro fue comúnmente utilizada durante las décadas de 1970 y de 1980,4​ aunque actualmente esté en desuso.

 

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.

 

Comando del sistema operativo DOS, de la Interfaz de línea de comandos (command line interface o CLI en inglés). DIR es un comando usado para mostrar un listado de archivos y directorios. Es análogo al comando de Unix ls.

dir ha existido como comando de DOS desde la terminal versión de MS-DOS. Forma parte del intérprete de comandos de DOS, mientras que el comando ls de UNIX es un programa independiente del intérprete de comandos.

DIR muestra la lista de archivos y subdirectorios dentro del directorio desde el que es ejecutado.

 

Sintaxis

DIR:\ [/L] [/N] [/O]

Significado de los parámetros

DIR [unidad:][ruta][archivo] [/A[[:]atributos]] [/B] [/C] [/D] [/L] [/N] [/O[[:]orden]] [/P] [/Q] [/R] [/S] [/T[[:]tipo-fecha]] [/W] [/X] [/4]

[unidad:][ruta][nombre de archivo] Especifica la unidad, la ruta de acceso, el directorio, y los archivos que se listará /A Muestra los archivos con los atributos especificados. atributos D Directorios R Archivos de sólo lectura H Archivos ocultos A Archivos para archivar S Archivos de sistema - Prefijo que significa no /B Usa el formato simple (sin encabezados ni sumarios). /C Muestra el separador de miles en el tamaño de los archivos. Esto es lo predeterminado. Use /-C para deshabilitar la aparición de dicho separador. /D Como el listado ancho pero los archivos aparecen clasificados por columnas. /L Usa letras minúsculas. /N Nuevo formato de lista larga donde los archivos aparecen en el lado derecho. /O Lista los archivos según lo indicado en orden. Orden N Por nombre (orden alfabético) E Por extensión (orden alfabético) S Por tamaño (orden creciente) D Por fecha y hora (el más antiguo primero) G Agrupar primero los directorios - Prefijo para invertir el orden /P Hace una pausa después de cada pantalla completa de información. /Q Muestra el propietario del archivo. /S Muestra los archivos del directorio especificado y todos sus subdirectorios. /T Controla el campo de fecha que se mostrará o usará para realizar la clasificación fecha C Creación A Último acceso W Última modificación /W Use el formato de listado ancho. /X Muestra los nombres cortos generados para los nombres de archivo que no tienen el formato 8.3. El formato es el de /N con el nombre corto especificado antes del nombre largo. Si no existe un nombre corto, se muestran espacios en blanco en su lugar. /4 Muestra el año con 4 dígitos

C:\>dir windows

Muestra el contenido del directorio windows, si éste se encuentra en C:\

C:\>dir d:\windows

Muestra el contenido del directorio d:\Windows si éste existe.

 

Salida (Output)

Hay varias formas de salida de los resultados (Output).

dir : Muestra el contenido de la unidad C:\ en la pantalla.

dir > ejemplo.txt : Crea un archivo de texto llamado ejemplo.txt que contiene el contenido de la unidad C:\

dir >> sample.txt : Agrega el contenido de la unidad C:\ al ya existente archivo llamado ejemplo.txt

dir > lpt1 : Imprime el contenido de la unidad C:\ en la impresora conectada al puerto LPT1

dir > com1 : Imprime el contenido de la unidad C:\ en la impresora conectada al puerto com1

dir ¦ clip : Copia el contenido al portapapeles(versión en inglés).

 

Más comandos

dir d: Muestra el contenido de la unidad D:\

dir d: /a:h /s : Muestra el contenido de la unidad D:\ incluyendo archivos ocultos y subcarpetas

dir, : Muestra el contenido del directorio actual incluyendo archivos ocultos y subcarpetas (esta funcionalidad se ha descontinuado en las versiones más recientes de Windows).

dir /? : Muestra la ayuda para el comando dir.

10) Directorios con estructuras de árbol

Con esta imagen se representan directorios con estructura de árbol y es en esta estructura donde cada usuario puede tener varios directorios y dentro de estos, tantos subdiretorios o archivos como se quiera. Al incrementarse la cantidad de niveles, brinda capacidad de agrupamiento y búsqueda eficiente.

11) Utilización del editor

El editor del DOS

El DOS dispone de una utilidad llamada EDIT, que nos permite visualizar el "interior" de cualquier tipo de archivo y editarlo, para poder ampliarlo, por ejemplo.

Podéis entrar en el editor escribiendo EDIT.

Ejemplo: Entrar al editor del DOS

Escribe EDIT

Pulsa INTRO

Os aparecerá la pantalla principal; desde esta podéis escribir textos poco complicados, con la desventaja que no se pueden alinear textos u otras funciones para muchos de vosotros importes y necesarias; por eso existen los programas de tratamiento de textos, ya preparados para estas necesidades.

El EDIT del DOS no es más que un programa muy sencillo para escribir algún texto o nota, pero no solo sirve para eso, sino para otras funciones que no vienen al caso, y que, seguro, no haréis servir.

Podéis abrir un fichero con ARCHIVO + ABRIR, donde os aparecerá un listado de todos los archivos del disco actual. Podéis cambiar de disco (para ir a la disquetera, por ejemplo), si buscáis la unidad "A" a la parte inferior del listado.

Una vez confeccionado vuestro archivo podéis guardarlo escogiendo del listado de directorios vuestra carpeta, con o sin extensión.

PROGRAMACIÓN Y DIAGRAMACIÓN

12) Conceptos básicos sobre programación de computadoras

La utilización de un lenguaje de programación requiere que usted conozca y utilice algunas herramientas previas,  que le ayudarán a comprender y resolver problemas de diferentes áreas como la matemática, la física y la contabilidad, entre otras; a través del computador.

* 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

 

En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y este del griego arithmos, que significa «número», quizá también con influencia del nombre del matemático persa Al-Juarismi) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permiten llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad.​ Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales.

En términos de programación, un algoritmo es una secuencia de pasos lógicos que permiten solucionar un problema. Los derechos de autor otorgan al propietario el derecho exclusivo sobre el uso de la obra, con algunas excepciones. Cuando alguien crea una obra original fija en un medio tangible, automáticamente se convierte en el propietario de los derechos de autor de dicha obra.

14) Símbolos de diagramación

 

Los diagramas de flujo usan formas especiales para representar diferentes tipos de acciones o pasos en un proceso. Las líneas y flechas muestran la secuencia de los pasos y las relaciones entre ellos. Estos son conocidos como símbolos de diagrama de flujo.

El tipo de diagrama dicta los símbolos de diagramas de flujo que se utilizan. Por ejemplo, un diagrama de flujo de datos puede contener un Símbolo de Entrada o Salida (también conocido como Símbolo de E/S), pero no es muy comun verlo en la mayoría de los diagramas de flujo de procesos.

Con los años, la tecnología ha evolucionado, y con ella tambien la diagramacion. Algunos símbolos de los diagramas de flujo que se utilizaron en el pasado para representar tarjetas perforadas de computadora, o cinta perforada, han pasado a la historia.

LENGUAJE DE PROGRAMACION

15) Tipos de datos

Para programar, es necesario identificar a qué tipo de datos pertenecen cada una de las variables o constantes, ya sean estos números, letras, palabras, frases, entre otros y cada uno corresponde a un tipo de dato, que requerirá de una manipulación específica para obtener los resultados deseados. Cada lenguaje de programación dispone de un conjunto de tipos de datos que puede manipular; sin embargo los que aquí se presentan corresponden a aquellos que todos los lenguajes de programación disponen, y que se conocen como tipos de datos estándares. La siguiente tabla presenta una descripción de éstos. 

16) Símbolos

En informática, una tabla de símbolos es una estructura de datos que usa el proceso de traducción de un lenguaje de programación, por un compilador o un intérprete, donde cada símbolo en el código fuente de un programa está asociado con información tal como la ubicación, el tipo de datos y el ámbito de cada variable, constante o procedimiento.

Una implementación común de una tabla de símbolos puede ser una tabla hash, la cual será mantenida a lo largo de todas las fases del proceso de compilación de ticses.

Puede tratarse como una estructura transitoria o volátil, que sea utilizada únicamente en el proceso de traducción de un lenguaje de programación, para luego ser descartada, o integrada en la salida del proceso de compilación para una explotación posterior, como puede ser por ejemplo, durante una sesión de depuración, o como recurso para obtener un informe de diagnóstico durante o después la ejecución de un programa.

Los símbolos en la tabla de símbolos pueden referirse a constantes, a funciones o a tipos de datos en el código fuente de un programa.

La tabla de símbolos forma parte de cada fichero que contiene el código objeto durante el enlazado o linking de los diferentes ficheros; recae en la responsabilidad del linker o enlazador resolver cualquier referencia no resuelta.

 

Tabla de símbolos en lenguaje C

Como ya se dijo en el esbozo, la tabla de símbolos es una estructura de datos que se crea en tiempo de traducción del programa fuente. Es como un diccionario variable, debe darle apoyo a la inserción, búsqueda y cancelación de nombres (identificadores) con sus atributos asociados, representando las vinculaciones con las declaraciones. Debe aclararse que no necesariamente deberá estar representada en una tabla como su nombre indica ya que también se emplean árboles, pilas , etc.

Los símbolos se guardan en la tabla con su nombre y una serie de atributos opcionales que dependerán del lenguaje y de los objetivos del procesador, este conjunto de atributos almacenados se denomina registro de la tabla de símbolos.

La siguiente representa una serie de atributos que no es necesaria para todos los compiladores, sin embargo cada uno de ellos se puede utilizar en la implementación de un compilador particular.

- 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

Las palabras reservadas son un término ampliamente utilizado en la programación que consisten en un grupo de identificadores que tienen una característica muy importante, no pueden ser utilizadas por un usuario o programador para nombrar o referirse ya sea a variables, funciones, objetos, o cualquier otro elemento de programación que desee crear.

La razón de ello es que el propio lenguaje de programación las contiene incluidas dentro y por lo tanto las utiliza. Debido a esto dichas palabras no pueden ser utilizadas como identificadores por parte de los usuarios.

Después de conocer que existen diversos lenguajes de programación, probablemente podrás preguntarte si todas las palabras reservadas son iguales para todos los lenguajes existentes, la respuesta es no. De hecho cada lenguaje de programación tiene su propio grupo de palabras reservadas, aunque en general todos los lenguajes coinciden con una gran parte de ellas. Veamos la siguiente lista donde se encuentran algunas de las palabras reservadas que coinciden en los diferentes lenguajes.

doelseforifreturnvoidwhile

Si alguna vez haz visualizado algún programa hecho con un lenguaje de programación probablemente algunas de estas palabras te parecerán conocidas y no solo por las palabras en si, sino porque dentro de un lenguaje de programación es muy sencillo identificar este tipo de palabras.

Esto es porque dentro de la programación del mismo lenguaje está especificado que todas las palabras reservadas se identifiquen fácilmente ya sea mostrándolas en letras negritas o bien, en un color diferente.

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.

 

Identificadores C++

Los identificadores C++ pueden contener las letras a a z y A a Z, el guión bajo "_" ("Underscore") y los dígitos 0 a 9.

Caracteres permitidos

a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Dígitos permitidos

0 1 2 3 4 5 6 7 8 9

Solo hay dos restricciones en cuanto a la composición:

El primer carácter debe ser una letra o el guión bajo. El Estándar establece que los identificadores comenzando con guión bajo y mayúscula no deben ser utilizados. Este tipo de nombres se reserva para los compiladores y las Librerías Estándar. Tampoco se permite la utilización de nombres que contengan dos guiones bajos seguidos.El estándar ANSI establece que como mínimo serán significativos los 31 primeros caracteres, aunque pueden ser más, según la implementación. Es decir, para que un compilador se adhiera al estándar ANSI, debe considerar como significativos, al menos, los 31 primeros caracteres.

Los identificadores distinguen mayúsculas y minúsculas, así que Sum, sum y suM son distintos para el compilador. Sin embargo, C++Builderofrece la opción de suspender la sensibilidad a mayúsculas / minúsculas, lo que permite la compatibilidad con lenguajes insensibles a esta cuestión, en este caso, las variables globales Sum, sum y suM serían consideradas idénticas, aunque podría resultar un mensaje de aviso "Duplicate symbol" durante el enlazado. Con los identificadores del tipo pascal hay una excepción a esta regla, ya que son convertidos siempre a mayúsculas con vistas al enlazado. Los identificadores globales importados desde otros módulos siguen las mismas reglas que los identificadores normales. Aunque los nombres de los identificadores pueden ser arbitrarios (dentro de las reglas señaladas), se produce un error si se utiliza el mismo identificador dentro del mismo ámbito compartiendo el mismo espacio de nombres. Los nombres duplicados son legales en diferentes espacios de nombres con independencia de las reglas de ámbito. Un identificador no puede coincidir con una palabra clave o con el de ninguna función de biblioteca.

 

19) Datos reales, enteros y de carácter

 

Enteros

Los tipos de datos de números enteros son unos de los más comunes en los lenguajes de programación y corresponden a un conjunto finito de los números enteros, incluyendo los números positivos, los negativos y el cero. En el código fuente de los programas se representan directamente con los dígitos del 0 al 9, precedidos de un guión para representar a los números negativos. Algunos ejemplos de valores válidos de este tipo de datos son:

A diferencia de los números enteros usados en las matemáticas, los números enteros de los lenguajes de programación tienen valores máximos y mínimos. Estos valores están determinados normalmente por las características de las máquinas en las que se ejecutan los programas o por el lenguaje de programación. Estos valores se pueden verificar mediante operaciones o valores especiales proporcionados por el entorno de programación y es importante tenerlos en cuenta ya que los programas pueden producir errores inesperados cuando se realizan operaciones cuyos resultados exceden la capacidad del tipo de datos. Por ejemplo, sumar o multiplicar dos números muy grandes resultará en un número negativo.

Reales

El tipo de datos de los números reales se usa para representar números con partes decimales o números muy grandes o muy pequeños. A diferencia de los números reales en matemáticas, en los ordenadores los números reales están muy restringidos por las capacidades de las máquinas. Actualmente la técnica más extendida para representarlos utiliza el estándar IEEE 754 para aritmética en punto flotante. Esta norma establece los mecanismos para representar los números reales, comúnmente llamados números de punto flotante, y para realizar operaciones aritméticas sobre ellos.

El el código fuente de los programas estos números se pueden representar como números decimales o como números en notación de punto flotante. Los números decimales tienen una parte entera, una parte decimal, un punto como separador decimal entre ambas partes y un guión al inicio para indicar si se trata de un número negativo. La notación de punto flotante es una generalización de la notación científica y representa los números con un guión opcional para indicar si son positivos o negativos, una parte decimal o mantisa que consiste en un número compuesto de una parte entera y una decimal como los indicados anteriormente, un número entero, que puede ser positivo o negativo, para representar el exponente y la letra E para separar la mantisa del exponente.

La siguiente tabla muestra varios números en notación decimal, en notación de punto flotante y en notación científica para ayudar a entender sus diferencias.

Carácteres

Las computadoras trabajan con números y para procesar texto es necesario que representen de alguna manera los diferentes carácteres que componen un texto. El tipo de datos de carácter le permite a los programadores procesar letras, números, símbolos e ideogramas (como los usados en el chino, japonés y coreano) al asociar un código numérico a cada carácter que se desea representar. Existen muchas asignaciones de códigos para representar carácteres, pero los más comunes son el código ASCII, frecuentemente soportado de forma directa por los circuitos físicos de la máquina, y el código Unicode, diseñado específicamente para soportar los carácteres usados en una gran variedad de idiomas, no solamente los de la lengua inglesa.

En el pseudocódigo usado en este proyecto de aprendizaje representaremos los datos de tipo carácter rodeados de apóstrofos para diferenciarlos del texto circundante y de otros tipos de datos. Por ejemplo el carácter z se representará como 'z' y el carácter 6 se representará como '6', lo que ayudará a diferenciarlo del número entero correspondiente: 6. Esta es una convención comúnmente usada en lenguajes de programación como C y Pascal.

20) DEV C++

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.

Dev-C++ es un compilador y entorno de desarrollo para el lenguaje C/C++. Se trata de una aplicación de código abierto, que ofrece todo tipo de facilidades para desarrollar grandes proyectos en C++. La aplicación presenta resaltado de sintaxis, depurador, una utilidad para crear instalaciones de nuestros programas, docenas de librerías y ficheros de ejemplo, etc. Como opciones extra, Dev-C++ incluye múltiples idiomas (incluido el español), explorador de clases y variables, plantillas, facilidad para instalar librerías adicionales, etc. Todo esto sólo es una pequeña parte de las posibilidades que se pueden encontrar en Dev-C++, un entorno de programación verdaderamente recomendable para desarrolladores de cualquier nivel. Entre otras ventajas desde el punto de vista técnico se puede señalar, que permite importar los proyectos realizados anteriormente en MS Visual C++, se puede exportar código fuente o proyectos a HTML o RTF para subir códigos a páginas Web y compartirlos, se pueden insertar marcadores en el editor para desplazarse en el código rápidamente, cada usuario puede crear su propia sintaxis coloreada, se puede configurar el menú insertar para colocar los fragmentos de código que mas uno utilice, permite insertar nuevos compiladores para compilar códigos fuente, tiene una potente característica de autocompletar texto que permite aumentar la productividad al sugerir los comandos disponibles en el contexto en que uno se encuentra programando, tiene un explorador de clases que muestra las clases, miembros y funciones y por otro lado la información relevante al archivo mostrado en el editor, se pueden añadir carpetas personales en el explorador de clases para encontrar lo que se busca en los grande proyectos, se puede guardar un proyecto como una plantilla de esta forma se puede comenzar a programar con una base en función a sus necesidades.

En muchas ocasiones al enfrentarnos a la tarea de la enseñanza del lenguaje de programación C++ y a la hora de impartirlo se debe decidir que IDE (entorno de desarrollo integrado del inglés Integrated Development Environment) usar en clases, podría ser una opción el C++ Builder, que es un IDE creado por la empresa Borland, pero es un software propietario y además ocupa un tamaño en disco enorme por la cantidad de posibilidades que ofrece y que muchas veces no es necesario utilizar ya que los fundamentos de programación no exigen grandes prestaciones. Es por eso que una aplicación pequeña y que forme parte de los software de plataforma de código abierto constituye una buena opción, siendo el software tratado en este artículo (Dev-C++) una herramienta a tener en cuenta en estas circunstancias.

bottom of page