Conceptos básicos de los sistemas operativos
1.- Definición
Un sistema operativo (SO) es el software principal que gestiona el hardware y el software de una computadora, proporcionando servicios esenciales a los programas de aplicación. Actúa como intermediario entre los usuarios y el hardware, asegurando una operación eficiente y segura.
2.- Elementos del hardware
- La memoria RAM
- El CPU
- La memoria secundaria (discos duros, cd, flash)
- Los dispositivos de I/O
- Dispositivos de red
- Otros dispositivos
Un proceso es la instancia de ejecución de un programa. Esto implica no solo el código del programa en sí, sino también los recursos que este utiliza (como memoria, CPU), su estado actual (ejecutando, esperando, bloqueado), y toda la información necesaria para reanudar su ejecución en cualquier momento. En esencia, un proceso es la unidad de trabajo básica que gestiona el sistema operativo, permitiéndonos ejecutar múltiples tareas de forma concurrente.
3. Representación de la arquitectura de un sistema operativo
Diagrama de cebolla
Un diagrama de cebolla es una herramienta visual muy útil para representar sistemas complejos o conceptos con múltiples capas.
La representacion por capas del sistema opeerativo busca resaltar el nivel de privelogio o acceso al hardaware de cada capa
Diagrama de plataforma.
Un diagrama de plataforma es una representación visual que muestra los componentes, la arquitectura y las relaciones entre los diferentes elementos que conforman una plataforma tecnológica. Esta herramienta es invaluable para entender la estructura, el funcionamiento y la interacción de los diversos componentes que trabajan juntos para ofrecer un servicio o producto específico.
En el diagrama de plataforma el acceso a los recursos se muestran en forma top-down (arriba a bajo). donde los aplicaciones del nivel superior accedende al hardware por medio del kernel del S.O
4. El kernel o núcleo
Es la capa del S.O que interactúa directamente con el hardware, está escrito en lenguaje de máquina (ensambladorpor que debe programar los componentes del hardware. El conjunto de instrucciones ensamblador puede variar de una placa otra. (Placa = Hardware)
5. Los administradores
Un Sistema operativo proporciona un módulo administrador para cada tipo de recursos de hardware: los administradores son
Administrador de Memoria:
- Asignación: Divide la memoria RAM en bloques y asigna cada bloque a los procesos que lo necesitan.
- Gestión: Realiza un seguimiento de la memoria utilizada y libre, y libera la memoria cuando ya no es necesaria.
- Paginación: Divide la memoria en páginas para mejorar la gestión y permitir que los programas sean más grandes que la memoria física disponible.
Administrador de Procesos:
- Creación y terminación: Crea nuevos procesos, los elimina cuando terminan y los suspende o reanuda según sea necesario.
- Planificación: Decide qué proceso se ejecuta en cada momento, utilizando diferentes algoritmos de planificación.
- Comunicación entre procesos: Facilita la comunicación y sincronización entre los diferentes procesos.
Administrador de Archivos:
- Organización: Almacena y organiza los datos en el disco duro en una estructura jerárquica de directorios y archivos.
- Acceso: Permite crear, modificar y eliminar archivos, así como buscar información dentro de ellos.
- Permisos: Controla los permisos de acceso a los archivos y directorios.
Sistema de Entrada/Salida (E/S):
- Gestión de dispositivos: Controla los dispositivos de entrada/salida, como el teclado, el ratón, la impresora, etc.
- Interrupciones: Maneja las interrupciones generadas por los dispositivos de E/S.
- Buffers: Utiliza búferes para almacenar temporalmente los datos que se transfieren entre la memoria y los dispositivos.
Administrador de Dispositivos:
- Controladores de dispositivos: Carga y gestiona los controladores de los diferentes dispositivos conectados al sistema.
- Asignación de recursos: Asigna los recursos necesarios a los dispositivos, como las líneas de interrupción y los canales de E/S.
Los módulos administradores del sistema operativo suelen estar escrito en lenguaje C
6. Shell
Un shell es un programa informático que actúa como una interfaz entre el usuario y el sistema operativo. Esencialmente, es una herramienta que te permite interactuar con tu sistema operativo a través de comandos de texto.
Tipos de Shells:
- Shell de línea de comandos (CLI): Este tipo de shell proporciona una interfaz basada en texto, donde los usuarios ingresan comandos directamente en una línea de texto. Ejemplos populares incluyen Bash, Zsh y PowerShell.
- Shell gráfico (GUI): Este tipo de shell utiliza una interfaz gráfica para permitir la interacción del usuario a través de iconos, ventanas y menús. Ejemplos comunes son Windows Explorer y Finder en macOS.
Características Principales de un Shell:
- Interpretación de comandos: El shell recibe comandos del usuario y los interpreta para ejecutar acciones en el sistema operativo.
- Ejecución de programas: Puede iniciar y ejecutar programas, scripts y aplicaciones.
- Manejo de archivos y directorios: Permite crear, eliminar, copiar, mover y renombrar archivos y directorios.
- Redirigir la entrada y salida: Puede redirigir la entrada y salida de un programa hacia o desde un archivo.
- Pipelines: Permite encadenar comandos para crear flujos de trabajo más complejos.
- Scripts: Se pueden crear scripts para automatizar tareas repetitivas.