Núcleo del Sistema Operativo o Kernel
Este es el corazón del sistema operativo y maneja las características más críticas. Aquí veremos sólo un pantallazo a los módulos, conceptos y técnicas presentes en los núcleos de los sistemas operativos modernos.
Sistema de Archivos
Para almacenar datos en unidades de almacenamiento permanente (no volátil) el sistema operativo usa el concepto de archivo (File). Un archivo es una sucesión de bytes guardados usando un nombre como por ejemplo “ejemplo.txt”. Además del nombre a un archivo se le pueden definir
Para ordenar estos archivos se utiliza un árbol de directorios o carpetas.
Procesos y Multitarea
Multitarea es la capacidad de una computadora de ejecutar más de un programa a la vez. Cada programa en ejecución es un proceso. Cabe destacar que podemos ejecutar un programa 2 veces al mismo tiempo creando así 2 procesos distintos que ejecutan un mismo programa.
El sistema operativo le da un espacio de memoria a cada proceso y controla que no sea accedido por otro proceso. Además el sistema operativo reparte el tiempo de ejecución de CPU entre los procesos.
Interrupciones
Este es un mecanismo que le la CPU al sistema operativo para poder controlar a los procesos (programas en ejecución). Las Interrupciones son un mecanismo por el cual ante un evento la CPU detiene la ejecución de un programa y comienza a ejecutar otro código.
Esto es importante ya que permite al sistema operativo quitarle la CPU a un programa en ejecución sin pedirle permiso. Esto permite al sistema operativo distribuir el tiempo de CPU según lo considere conveniente.
Modos de ejecución
Las CPUs pueden tener dos o más modos de ejecución con diferentes privilegios. La idea es que el sistema operativo se ejecuta sin restricciones y los programas se ejecutan en modos más restringidos. De esta forma se puede controlar que un proceso no interfiera con otro o con el sistema operativo.
Memoria Virtual
Antes de existir la memoria virtual los programadores teníamos que estar pendientes no superar el tamaño de la memoria física que tenía nuestra computadora con nuestros programas ya que esto provocaba un error que terminaba con nuestro programa.
Cuando el sistema operativo trabaja con memoria virtual presenta al programa como si su memoria física fuera mucha más de la que en realidad tiene y usa el disco para suplir el espacio faltante. El programador no es consciente de este proceso y no se preocupa de la memoria física.
Como funciona la Memoria Virtual
- El sistema operativo divide la memoria en partes iguales llamadas páginas.
- Cada vez que se le pide cargar algo en memoria física, carga las páginas necesarias.
- Cuando no tiene lugar en la memoria física para colocar una pagina quita la pagina menos usada y la guarda en disco. Esto se conoce como swapping.
- Si se solicita el acceso a una pagina que esta en disco la vuelve a cargar en memoria física. Esto se conoce como page fault.
- El espacio en disco destinado a guardar estas páginas es conocido como memoria swap o de intercambio.