Conceptos Fundamentales de Informática, Sistemas Operativos y Programación

Conceptos Fundamentales de Informática

Informática: Estudia el tratamiento automático y racional de la información.

Aplicación informática: Conjunto de programas diseñados con una finalidad determinada.

Computadora: Dispositivo capaz de procesar datos de entrada de acuerdo a un conjunto de instrucciones lógicas y aritméticas, generando la información resultante que será proporcionada a través de un medio de salida.

Conceptos Clave

  • Codificación: Transformación que permite representar los elementos pertenecientes a un alfabeto en otros, de manera que permita su procesamiento automático de forma eficiente.
  • Sistema informático: Elementos físicos y lógicos necesarios para la construcción y utilización de aplicaciones informáticas.

Arquitectura de Von Neumann

El programa es almacenado en memoria junto con los datos, facilitando su modificación. Un computador, según este modelo, está formado por:

  • Memoria principal: Almacena datos e instrucciones que son ejecutadas por el procesador.
  • Procesador: Cerebro de la computadora. Coordina y realiza todos los procesos del sistema informático. Compuesta por la Unidad de Control (UC), la Unidad Aritmético-Lógica (ALU) y un conjunto de registros de memoria.
  • Dispositivos de entrada-salida: Facilitan la interacción del usuario con el ordenador, permitiendo, entre otras cosas, suministrar instrucciones y datos al procesador. Se clasifican en periféricos de entrada, salida y de almacenamiento.

Sistemas Operativos: Funciones y Conceptos

Conjunto de programas que hacen posible el uso eficiente del ordenador, facilitando la interacción del usuario con la máquina. Proporciona una máquina virtual capaz de controlar los recursos hardware: CPU, memoria principal y periféricos.

Funciones Principales

  • Gestionar los recursos del computador: Procesador, memoria y periféricos.
  • Gestionar la información almacenada: su acceso y organización.
  • Controlar la ejecución de aplicaciones.
  • Facilitar la interacción con el usuario.

Conceptos Clave

  • Programa: Conjunto de instrucciones codificadas en algún lenguaje de programación para la resolución de un problema.
  • Proceso: Programa en ejecución.
  • Thread/hilo/hebra: Un proceso puede descomponerse en distintas tareas diferentes e independientes, denominadas hebras, que pueden ejecutarse concurrentemente e incluso con las de otros procesos.
  • Intérprete de órdenes o shell: Es el programa perteneciente al sistema operativo que acepta las órdenes de los usuarios.
  • Archivo: Conjunto de información relacionada. Gestionado de manera eficiente. Agrupados en directorios.
  • Script: Conjunto de instrucciones. Permite la automatización de tareas creando pequeñas utilidades. Usualmente son archivos de texto.
  • Multiprogramación: Capacidad de asignar recursos a diferentes procesos alternativamente, sin necesidad de que finalice uno completamente para ejecutar el otro.
  • Multiusuario: Sistema multiprogramación que permite el uso concurrente de recursos por parte de varios usuarios, teniendo implementadas políticas de control de acceso robustas.
  • Tiempo compartido: Sistema multiprogramación y multiusuario cuyo objetivo es optimizar el tiempo de respuesta obtenido por los usuarios.
  • Tiempo real: Las respuestas del Sistema Operativo se deben dar dentro de un intervalo de tiempo preestablecido.
  • Sistema multiprocesamiento: Diseñados para gestionar dos o más procesadores trabajando simultáneamente.

Paradigmas de Programación

  • Programación imperativa: Los programas se especifican como una secuencia de instrucciones a ejecutar por la computadora. Se centra en cómo se resuelve el problema.
  • Programación declarativa: Los programas especifican el problema que se quiere resolver. En lugar de indicar cómo proceder, se indica qué resolver.
  • Programación funcional: Construir funciones que la computadora debe evaluar.
  • Programación lógica: Un programa consiste en una serie de sentencias de lógica matemática que describen un universo y su ejecución consiste en deducir un objetivo propuesto muy concreto.
  • Programación orientada a objetos: Un programa describe los objetos que intervienen, incluyendo sus propiedades físicas, pero también las acciones que describen su comportamiento.

Tipos de Variables en Programación

  • Variables automáticas: Se les asigna espacio en memoria automáticamente a la entrada de la función y se les libera el espacio tan pronto como se sale de la función.
  • Variables externas: Si se quiere utilizar una variable global definida en un archivo externo, es necesario declararla usando la palabra reservada extern.
  • Variables de registro: La declaración de estas variables sugiere al compilador que las almacene en un registro hardware del microprocesador.
  • Variables estáticas: Las variables estáticas no se borran cuando la función termina, retienen los valores entre llamadas a una función.

Programación Estructurada

Se basa en el teorema que demuestra que todo programa puede escribirse utilizando únicamente las tres estructuras básicas de control siguientes:

  • Secuencial: El bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente, una detrás de otra.
  • Selección: La instrucción condicional con doble alternativa.
  • Iteración: El bucle condicional while condición do instrucción, que ejecuta la instrucción repetidamente mientras la condición se cumpla.

Una característica importante en un programa estructurado es que puede ser leído en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa.

Programación Modular: Ventajas

Las principales ventajas de la programación modular son:

  • Los módulos pueden ser depurados independientemente, simplificando así la localización de errores.
  • Se puede desarrollar el trabajo por un equipo de programadores, repartiendo el desarrollo de los módulos entre los mismos.
  • Cuando los módulos se diseñan correctamente, es sencillo reutilizar su código.

Integridad Referencial en Bases de Datos

Ventajas de mantener la integridad referencial:

  • Se necesitan menos datos redundantes.
  • Se ocupa menos espacio en disco.
  • Se pueden evitar los problemas de consistencia de datos.
  • Se puede extraer información adicional sobre los datos.
  • Se pueden compartir los datos.
  • Se facilita el mantenimiento de estándares.

La integridad referencial es una propiedad deseable en las bases de datos. Gracias a la integridad referencial se garantiza que una entidad (fila o registro) siempre se relacione con otras entidades válidas, es decir, que existen en la base de datos. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas.

Todas las bases de datos relacionales gozan de esta propiedad gracias a que el software gestor de base de datos vela por su cumplimiento. En cambio, las bases de datos jerárquicas requieren que los programadores se aseguren de mantener tal propiedad en sus programas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.