Sistemas operativos y lenguajes de programación

 Introducción 

Un sistema operativo es el software que controla el conjunto de operaciones de una computadora. Proporciona el mecanismo por el cual un usuario puede almacenar y extraer archivos, proporciona la interfaz mediante la que el usuario puede solicitar la ejecución de programas y proporciona también el entorno necesario para ejecutar los programas solicitados.

Ejemplos de un Sistema operativo 

  • Windows
  • UNIX
  • Mac OS
  • Linux
Clasificación del software 


Arquitectura de un sistema operativo y sus componentes 

Para poder llevar a cabo las acciones solicitadas por los usuarios de computadora, el sistema operativo tiene que ser capaz de comunicarse con dichos usuarios. La parte de un sistema operativo que se encarga de gestionar esa comunicación se suele denominar interfaz de usuario. Las antiguas interfaces de usuario, conocidas como Shell, se comunicaban con los usuarios mediante mensajes de texto , utilizando un teclado y la pantalla de un monitor. Los sistemas más modernas realizan esta tarea por medio de una interfaz gráfica de usuario (GUI, Graphical User Interface) en la que los objetos que hay que manipular, como por ejemplo archivos y programas, se representan de manera pictórica en la pantalla mediante iconos.
Por contraste con la interfaz de usuario de un sistema operativo, la parte interna de ese sistema se denomina núcleo. El núcleo de un sistema operativo contiene aquellos componentes software que realizan las funciones más básicas requeridas por el hardware de la computadora. Una de dichas unidades es el administrador de archivos, cuya tarea consiste en coordinar el uso de los dispositivos de almacenamiento masivo de la máquina.


Para comodidad de los usuarios de la máquina, la mayoría de los administradores de archivos permiten agrupar los archivos en una serie de conjuntos; cada uno de esos conjuntos recibe el nombre de directorio o carpeta.

Otro componente del núcleo es un conjunto de controladores de dispositivo, que son las unidades software que se comunican con las tarjetas controladoras (o en ocasiones directamente con los dispositivos periféricos) para llevar a cabo operaciones con los dispositivos periféricos conectados a la máquina.

Otro componente más del núcleo de un sistema operativo es el gestor de la memoria, que se encarga de la tarea de coordinar el uso de la memoria principal de la máquina. Esta tarea es mínima en aquellos entornos en los que a la computadora se le pide que realice una única tarea cada vez. En estos casos, el programa encargado de realizar la tarea actual, se coloca en una posición predeterminada de la memoria principal, se ejecuta y luego se sustituye por el programa encargado de efectuar la tarea siguiente.

El concepto de proceso

La actividad de ejecutar un programa bajo el control del sistema operativo se conoce como proceso. Con el proceso está asociado el estado actual de la actividad, lo que se denomina estado del proceso. Este estado incluye la posición actual dentro del programa que se está ejecutando (el valor del contador de programa), así como los valores en los restantes registros del procesador y en las celdas de memoria asociadas. Simplificando, podríamos decir que el estado del proceso es una instantánea de la máquina en un momento determinado. En los diferentes momentos durante la ejecución de un programa (en los distintos instantes de un proceso), podremos observar distintas instantáneas (diferentes estados del proceso).


Administración de procesos

Las tareas asociadas con la coordinación de la ejecución de los procesos son gestionadas por el planificador y el despachador dentro del núcleo del sistema operativo. El planificador mantiene un registro de los procesos presentes en la computadora y se encarga de introducir nuevos procesos en dicho registro y de eliminar de él los procesos completados. Así, cuando un usuario solicita la ejecución de una aplicación, es el planificador el que añade la ejecución de dicha aplicación al conjunto de procesos actuales. 

Para poder controlar todos los procesos existentes, el planificador mantiene en la memoria principal un bloque de información denominado tabla de procesos. Cada vez que se solicita la ejecución de un programa, el planificador crea una nueva entrada para dicho proceso en la tabla de procesos. Esta entrada contiene informaciones tales como el área de memoria asignada al proceso (obtenida del gestor de memoria), la prioridad del proceso y si el proceso está listo o a la espera. Un proceso está listo si se encuentra en un estado en el que puede continuar progresando; estará a la espera si su progreso está actualmente detenido hasta que tenga lugar algún suceso externo, como la terminación de una operación de escritura en almacenamiento masivo, la pulsación de una tecla del teclado o la llegada de un mensaje enviado por otro proceso.

El despachador es el componente del núcleo que supervisa la ejecución de los procesos planificados. En un sistema de tiempo compartido/multitarea, esta tarea se lleva a cabo mediante multiprogramación; es decir, dividiendo el tiempo en cortos segmentos, cada uno de los cuales se denomina franja temporal (que típicamente dura unos milisegundos o unos microsegundos), y luego conmutando la atención del procesador entre los distintos procesos, a medida que se permite que cada uno de ellos se ejecute durante una franja temporal. El procedimiento de cambiar de un proceso a otro se denomina conmutación de procesos (o cambio de contexto).


Administrador de ventanas 

  • Ventana: Bloques de espacio en la pantalla
  • Manejo de contenidos por ventana y de la interacción a través del ratón o del teclado.
  • Los administradores de ventanas determinan el “estilo” de una interfaz gráfica de usuario 
Administrador de archivos 

  • Coordinar el uso de los dispositivos de almacenamiento masivo de la máquina
  • Directorios (o carpeta): una colección de documentos creados por el usuario
  • Cualquier acceso a un archivo por parte de otras unidades de software debe ser autorizado: e.j. apertura de archivos 

Proceso de arranque 


Open Source 

El software open source es un código diseñado de manera que sea accesible al público: todos pueden ver, modificar y distribuir el código de la forma que consideren conveniente.

El software open source se desarrolla de manera descentralizada y colaborativa, así que depende de la revisión entre compañeros y la producción de la comunidad.










Comentarios

Entradas populares de este blog

Almacenamiento y procesamiento de datos

Actividad 1: Comprensión de imágenes