18 Feb

Conceptos Clave en Sistemas Operativos y Programación

Evolución de los Sistemas Operativos

Quinta Generación: Aparecen los circuitos LSI. Surge el PC de IBM. Se universaliza el uso de redes de datos.

Estructuras de Sistemas Operativos

  • Estructura Monolítica: El sistema es un conjunto de procedimientos y cada uno puede invocar o llamar al otro. No se ocultan datos. Es difícilmente ampliable.
  • Estructura en Capas: Un conjunto de niveles virtuales superpuestos hasta llegar al usuario final. Cada capa define el nivel de privilegio. Facilita la modificación del sistema operativo.
  • Microcliente y Cliente Servidor: Tipo de núcleo de un sistema operativo que provee un conjunto de primitivas o llamadas al sistema mínimas para implementar servicios básicos. El resto de servicios se ejecutan como procesos servidores en espacio de usuario. La capacidad de proceso está repartida entre los clientes y los servidores.

Interfaces y Herramientas

  • API: Conjunto de bibliotecas de programación que elaboran y publican los fabricantes de componentes para permitir a los programadores de aplicaciones utilizar tales servicios. Representa una interfaz de comunicación entre componentes software y detalla solamente la forma de llamar a cada función y la tarea que ésta desempeña, sin importar cómo se lleva a cabo dicha tarea.
  • Win32: Compuesta por funciones en C almacenadas en librerías de enlace dinámico (DLL). Estas librerías las utiliza Windows cuando quiere añadir alguna funcionalidad a sus SSOO.
  • SDK: Kit de desarrollo de aplicaciones proporcionado por Microsoft que incluye la documentación y las herramientas necesarias para que los programadores puedan crear sus aplicaciones y aprovechar los recursos del sistema.

Tipos de Interfaz de Usuario

  • Interfaz para los comandos de usuario:
    • Modo Texto: Las órdenes se dan en forma de líneas de texto que el usuario escribe sobre un terminal.
    • Formato Gráfico: Interfaces gráfico de usuario intuitivos, dinámicos y productivos.

Clasificación de Sistemas Operativos

  • Monousuario: Todos los recursos del sistema están disponibles para un solo usuario.
  • Multiusuario: Varios usuarios pueden ejecutar procesos distintos sobre la misma CPU y compartir el uso de los recursos existentes en el sistema de forma simultánea.
  • Monotarea: Solo puede ejecutarse un proceso y hasta que no termine no se inicia el siguiente.
  • Multitarea: Se pueden ejecutar varios procesos simultáneamente.
  • Monoproceso: Cuando hay instalado un único procesador. Todos los trabajos irán alternando la ocupación de la CPU.
  • Multiproceso: Cuando hay instalados varios procesadores en el mismo ordenador y el sistema operativo es capaz de utilizarlos simultáneamente.
    • Asimétrico: Selecciona un procesador para ejecutar el código del sistema operativo mientras que los otros procesadores ejecutan trabajos de usuario.
    • Simétrico: Permiten que el sistema operativo funcione bajo cualquier procesador libre o en todos los procesadores simultáneamente, compartiendo la memoria entre todos ellos.
  • Tiempo Real: Utilizados cuando tenemos procesos que deben responder a requisitos temporales muy estrictos.
  • Sistemas Interactivos: Sistemas operativos más extendidos. El SO dispone de mecanismos que permiten planificar la ocupación de la CPU.

Tipos de Procesamiento

  • Procesos por Lotes: Un proceso no comienza hasta que el anterior no ha terminado.

Tipos de Sistemas Operativos

  • SSOO Centralizados: Los computadores mainframe se encargaban de todo el procesamiento y los usuarios manejaban terminales sin memoria ni procesador.
  • SSOO de Red: Mantienen a dos o más computadoras unidos a través de algún medio de comunicación con el objetivo de compartir los diferentes recursos y la información del sistema.
  • SSOO Distribuidos: Sistemas casi independientes que permiten distribuir los trabajos, tareas o procesos entre un conjunto de procesadores.

Virtualización

  • Virtualización de Servidores o SSOO: Consiste en el enmascaramiento de recursos del servidor incluyendo el número e identificación de servidores físicos individuales, procesadores y sistemas operativos de los usuarios del servidor.
  • Virtualización de Almacenamiento: Unificación de los dispositivos de almacenamiento de una red de área de almacenamiento en lo que simula ser un simple dispositivo de almacenamiento desde una consola central.
  • Virtualización del Escritorio: Separación entre el sistema físico y el escritorio, perteneciendo datos y herramientas empleados por el usuario englobándose en un escritorio virtualizado que se almacena en un servidor remoto en lugar de la máquina física.

Lenguajes de Programación

  • Lenguaje de Programación: Conjunto de reglas, herramientas y condiciones que nos permiten crear programas o aplicaciones dentro de una computadora.
  • Lenguaje de Máquina: Son los que entiende la computadora sin necesidad de realizar ninguna conversión.
  • Lenguaje de Bajo Nivel: Los lenguajes de bajo nivel o ensambladores son aquellos cuyas sentencias están formadas por códigos nemotécnicos.
  • Lenguaje de Alto Nivel: Son aquellos que poseen sentencias formadas por palabras similares a las de los lenguajes humanos.

Paradigmas de Programación

  • Programación Secuencial: Creación de programas a partir de un conjunto de sentencias escritas de forma secuencial y cuya ejecución sigue dicha secuencia.
  • Programación Estructurada: Más conocidas y antiguas que existen. Se basa en la modularidad de los programas, que se dividen en módulos más pequeños y cada uno realiza una tarea específica.
  • Programación Orientada a Objetos: Es una forma de estructurar un programa.
  • Programación Lógica: Lo más importante es definir un conjunto de hechos, conocidos con anterioridad, y un conjunto de reglas que nos definen las distintas relaciones que existen entre los componentes del programa. Utiliza lenguajes de alto nivel.

Deja un comentario