jueves, 25 de agosto de 2011

SISTEMAS OPERATIVOS



Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un sistema operativo es lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.

Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la

CPU, la memoria, el teclado, el sistema de vídeo y las unidades de disco. Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación.

Cuando se enciende una computadora, lo primero que ésta hace es llevar a cabo un autodiagnóstico llamado auto prueba de encendido (Power On Self Test, POST). Durante la POST, la computadora identifica su memoria, sus discos, su teclado, su sistema de vídeo y cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot).

El sistema operativo tiene tres grandes funciones:

  • Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse;
  • Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas, y;
  • Gestiona los errores de hardware y la pérdida de datos.


Tareas de los sistemas operativos:

  • Aceptar todos los trabajos y conservarlos hasta su finalización.
  • Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador.
  • Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
  • Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas.
  • Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
  • Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quién va primero y quién después).
  • Protección: Evitar que las acciones de un usuario afecten el trabajo que está realizando otro usuario.
  • Multiacceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
  • Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos.


Características de los sistemas operativos:


En general, se puede decir que un Sistema Operativo tiene las siguientes características:

  • Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora.
  • Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.
  • Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.
  • Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
  • Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
  • Organizar datos para acceso rápido y seguro.
  • Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
  • Procesamiento por bytes de flujo a través del bus de datos.
  • Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.


Dentro de los principales sistemas operativos que existen y han existido tenemos:

  • DOS (Disk Operating System)
  • CPM (Control Program for Microcomputers)
  • UNIX
  • XENIX
  • VMS
  • NOVELL Netware
  • MS Windows: Versiones 3.1, 3.11, Windows 95, Windows 98, NT Server, Windows Millenium, Windows 2000, Windows XP, Windows 2003, Windows 7.
  • Linux: Red Hat, Ubuntu, CentOS, Devian, etc.
  • Mac OS
  • AmigaOS

miércoles, 10 de agosto de 2011

Clasificación de los lenguajes de programación


Lenguajes de bajo nivel (máquina)

Los lenguajes de bajo nivel o lenguaje de máquina es el único que entiende directamente la computadora. Utiliza el alfabeto binario, que consta de los dos símbolos 0 y 1., denominados bits, (abreviatura inglesa de los dígitos binarios).

Fue el primer lenguaje utilizado en la programación de computadores, pero dejó de utilizarse por su dificultad y complicación, siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, que además reducen la posibilidad de cometer errores.

Generalmente, en la codificación de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de escritura, siendo éste un sistema posicional de base 16 en las que se utilizan 16 símbolos para la posición de las cantidades, empezando desde los dígitos de 0 a 9 y de 10 a 15 siendo estos últimas cifras identificadas con letras de A a F respectivamente).

Lenguajes intermedios (ensamblador)

El lenguaje ensamblador es el primer intento de sustituir el lenguaje máquina por otro más similar a los utilizados por las personas. En este lenguaje, cada instrucción equivale a una instrucción en lenguaje máquina, utilizando para su escritura palabras nemotécnicas en lugar de cadenas de bits. Por ejemplo para realizar un programa que efectuaba una suma entre dos números, se utilizaba la sigla ADD y cualquier letra para guardar información de entrada y de salida como resultado.

El lenguaje ensamblador presenta muchos inconvenientes igual que el lenguaje de máquina:

  1. El programa realizado en lenguaje ensamblador sólo puede utilizarse en la máquina que se creó porque cada computadora tiene un lenguaje ensamblador propio.
  2. El programador debe conocer perfectamente el hardware del equipo.
  3. Todas las instrucciones son muy elementales, es decir, en el programa se deben escribir con máximo detalle lo que se gastaría mucho tiempo y los programas tienden a ser muy extensos.


Lenguajes de Alto nivel (evolucionados)

Lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen posteriormente a los anteriores lenguajes con los siguientes objetivos:

  •  Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos. 
  • Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje de máquina.
  • Incluir rutinas de uso frecuente (pequeños programas), como las de entrada/salida, funciones matemáticas, manejo de tablas, etc. Que figuran en una especie de librerías del lenguaje.


Entre los primeros lenguajes de alto nivel están:

FORTRAN: Primer lenguaje de alto nivel
COBOL: Lenguajes para aplicaciones de gestión
PL/I: Muy complejo pero de poco éxito por su tamaño
BASIC: Muy extendido a raíz de la popularización de las microcomputadoras
PASCAL: Lenguaje innovador y útil en la didáctica de los métodos y técnicas de programación.
C: Especialmente adecuado para la programación de sistemas
MODULA-2: descendente del pascal y que incorpora las carencias de éste.
ADA: Lenguaje de propósito general.

Teniendo en cuenta los avances informáticos, de los lenguajes de alto nivel se generaron nuevas versiones y otros nuevos lenguajes de uso general y especifico, para atender las necesidades generadas en las empresas e industrias. En la actualidad existen muchos lenguajes encargados de la programación orientada a objetos y a eventos, gráfica, multimedial, para el desarrollo de bases de datos, programación en Internet, entre otros. A continuación se nombran los lenguajes más utilizados para diferentes usos:

Pascal, C++, VISUAL C++: Lenguajes orientados a objetos y programación gráfica
Visual Basic, Delhi,: Lenguaje orientado a eventos y a programación multimedia
Visual fox-pro, Access, Oracle, SQL Server, etc. Llamados manejadores de bases de datos, son los utilizados para crear bases de datos.

HTML: lenguaje de marcación de hipertexto. Utilizado para la programación en
Internet.

Entre las grandes ventajas de estos nuevos lenguajes de programación se tienen:

  • Su aprendizaje es muy fácil y rápido. No se requiere ser un experto para aprender a utilizar uno de estos lenguajes.
  • Son portables, es decir, se pueden trasladar de un lugar a otro a través de dispositivos de almacenamiento (diskette, CD-ROM, memorias portátiles,  etc.).
  • Contienen librerías poderosas para el desarrollo de programas robustos.
  • La mayoría son de propósito general, es decir, se utilizan para realizar software complejos de calidad.
  • Se pueden acceder en el mercado muy fácilmente.


·     Existen muchas personas a nivel mundial expertos en el uso de estos lenguajes, lo que facilita el acceso al aprendizaje.

ALGORITMO

 Un algoritmo es “una sucesión finita de pasos no ambiguos que se pueden ejecutar en un tiempo finito”, cuya razón es la de resolver problemas.

Por tanto “problema” serán aquellas cuestiones, conceptos o prácticas, cuya solución es expresable mediante un algoritmo. Afortunadamente son muchos los problemas cuya solución puede describirse por medio de un algoritmo y que ésta sea una de las razones por las que aprendamos a programar y a manejar un computador.

Un algoritmo es una lista de instrucciones que realizan una descripción paso a paso y precisa de un proceso que garantiza que resuelve cualquier problema que pertenezca a un tipo determinado, y que termina después de que se hayan llevado a cabo un número finito de pasos.
Los algoritmos se escriben o se diseñan con el propósito de resolver problemas, o más exactamente problemas algorítmicos.
Un problema algorítmico es cualquier problema, conceptual o práctico, cuya solución puede expresarse mediante un algoritmo.

Postulado sobre Ingeniería


Definiciones y conceptos:

Ingeniería. Es la aplicación de los principios y conocimientos de las ciencias naturales y formales a la solución de las necesidades prácticas y materiales de la sociedad. Es decir, la Ingeniería opera según diseños bajo restricción. Los diseños son la creación de nuevas soluciones y desarrollos mientras que las restricciones son impuestas por las leyes naturales. La interrelación entre diseño y restricciones es lo que permite que las soluciones de ingeniería sean viables técnica y económicamente para un conjunto de necesidades dadas. Por supuesto, la práctica profesional de la Ingeniería comporta una inmensa responsabilidad social.”
Ingeniería: Conjunto de conocimientos y técnicas que permiten aplicar el saber científico a la utilización de la materia y de las fuentes de energía. 2. Profesión y ejercicio del ingeniero. (Real Academia de la Lengua).

Ingeniería: Conjunto de conocimientos por los que las propiedades de la materia y de los recursos naturales de energía se hacen útiles al ser humano mediante máquinas, estructuras, etc. Profesión en la que un conocimiento de las matemáticas y de las ciencias naturales obtenida por la experiencia, el estudio y la práctica se aplica con criterio para desarrollar medios, a fin de usar, económicamente, los materiales y las fuerzas de la naturaleza para el beneficio de la humanidad. Es la profesión en la que un conocimiento de matemáticas avanzadas y de las ciencias naturales obtenido por medio de la educación superior, experiencia y práctica se dedica principalmente a la creación de nueva tecnología para el beneficio de la humanidad. La educación en ingeniería se centra en los aspectos conceptuales y teóricos de la ciencia y la ingeniería encaminada a preparar graduandos para la práctica en esta porción del espectro tecnológico más cercano a las funciones de investigación, desarrollo y diseño conceptual. (GRECH, 2001 p 44g).

Ingeniero: Persona que tiene título de cualquiera de las ramas de la ingeniería. Persona que por razón de su especial conocimiento y uso de las matemáticas, físicas y ciencias de la ingeniería, los principios, métodos de análisis, diseño en ingeniería, adquiridos por educación y experiencia, está calificado para ejercer la ingeniería. (GRECH, 2001 p 44).

Una vez apropiados estos conceptos, podemos dar nuestras propias definiciones, orientadas hacia el área que nos compete:

“La ingeniería es el conjunto de conocimientos en ciencias básicas y específicas, que llevados a la práctica permiten que una persona diseñe y desarrolle soluciones a problemas en el área de la ciencia y la tecnología.”

“Ingeniero. Aquella persona que a través de estudios de ingeniería, está en capacidad de diseñar y desarrollar soluciones a problemas en el área de la ciencia y la tecnología.”

Para ti cuales son tus definiciones y conceptos ?

Augusto Zapata Rivera