Fundamentos Esenciales de Sistemas Operativos, Arquitectura CPU y Lógica Digital
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 7,97 KB
Conceptos Fundamentales de Procesos en Sistemas Operativos
Definición de Proceso
- Un proceso es un programa en ejecución.
- Contenido del Proceso:
- Código ejecutable.
- Datos.
- Pila (Stack).
- Registros de la CPU.
- Archivos abiertos.
- El Sistema Operativo (SO) almacena la información del proceso en la Tabla de Control de Procesos (PCB).
Espacio de Direcciones
- Es el rango de memoria que un proceso puede utilizar (desde 0 hasta el máximo permitido).
- Componentes del Espacio:
- Programa (código).
- Datos.
- Pila.
- Cada proceso posee su propio espacio de direcciones, el cual está protegido del resto de procesos.
Estados de un Proceso
Los estados típicos por los que transita un proceso son:
- Nuevo
- Listo
- Ejecutando
- Bloqueado
- Terminado
Jerarquía de Procesos (Padre e Hijo)
- Un proceso puede crear procesos hijos.
- Esta relación se estructura en forma de árbol.
- El proceso hijo hereda el UID (User ID) del proceso padre.
Suspensión de Procesos
Al detenerse temporalmente un proceso, el SO realiza las siguientes acciones para permitir su reanudación:
- Se guardan los registros de la CPU.
- Se almacena el Contador de Programa.
- Se guardan los apuntadores relevantes.
Esto permite que el proceso pueda continuar exactamente donde se quedó.
(Referencia: Pág. 4)
Fundamentos de Compuertas Lógicas
Compuerta AND (A · B)
- La salida es 1 solo si TODAS las entradas son 1.
1 AND 1 = 1Compuerta OR (A + B)
- La salida es 1 si AL MENOS una entrada es 1.
Compuerta NOT
- Invierte el valor de la entrada.
1 → 0
0 → 1Compuerta NAND
- Es la negación de la operación AND.
- Solo produce una salida 0 cuando todas las entradas son 1.
Compuerta NOR
- Es la negación de la operación OR.
- Produce una salida 1 solo si todas las entradas son 0.
Compuerta XOR (OR Exclusiva)
- Produce una salida 1 cuando las entradas son DIFERENTES.
Compuerta XNOR (NOR Exclusiva)
- Produce una salida 1 cuando las entradas son IGUALES.
Algoritmos de Planificación del CPU (Scheduling)
FIFO (First In First Out)
- El proceso que llega primero es el primero en ejecutarse.
- ❌ Desventaja: Procesos largos bloquean a los cortos.
- ❌ Desventaja: Mala respuesta interactiva.
Round Robin (RR)
- Cada proceso recibe un tiempo máximo de ejecución llamado quantum.
- Si el proceso no termina, vuelve al final de la cola de listos.
- ✔ Ventaja: Ideal para sistemas de tiempo compartido.
- El quantum típico es de aproximadamente 100 ms.
SJF (Shortest Job First)
- Ejecuta el proceso con la ráfaga de CPU más corta.
- ✔ Ventaja: Proporciona el menor tiempo de espera promedio.
- ❌ Desventaja: Es un algoritmo no apropiativo (generalmente).
- ❌ Desventaja: Requiere saber la duración futura del proceso.
SRT (Shortest Remaining Time)
- Es la versión apropiativa de SJF.
- Puede interrumpir procesos si llega uno con un tiempo restante menor.
- ❌ Desventaja: Genera mayor sobrecarga (overhead).
HRN (Highest Response Ratio Next)
- Algoritmo que calcula la prioridad basándose en el tiempo de espera y el tiempo de servicio.
- Fórmula de Prioridad: $P = \frac{\text{Tiempo espera} + \text{Tiempo servicio}}{\text{Tiempo servicio}}$
- Reduce la inanición (starvation) de procesos largos.
Planificación por Prioridades
- Ejecuta el proceso que posea la mayor prioridad asignada.
- Riesgo principal: Inanición (los procesos de baja prioridad nunca se ejecutan).
- A menudo se combina con el algoritmo Round Robin (RR).
Colas Multinivel con Retroalimentación (Multilevel Feedback Queue)
- Utiliza varias colas, cada una con diferentes prioridades.
- Si un proceso utiliza mucho CPU, baja de nivel (disminuye su prioridad).
- ✔ Ventaja: Es un modelo muy usado en sistemas operativos modernos.
Arquitectura de la CPU y Ciclos de Ejecución
Componentes Internos de la CPU
- ALU (Arithmetic Logic Unit): Encargada de realizar operaciones aritméticas y lógicas.
- Unidad de Control: Coordina la secuencia de ejecución de las instrucciones.
- Registros: Almacenamiento de acceso rápido a datos.
El Ciclo de Instrucción
Secuencia fundamental para procesar una instrucción:
- Fetch (Búsqueda de la instrucción)
- Decode (Decodificación de la instrucción)
- Execute (Ejecución de la operación)
- Write Back (Escritura del resultado)
Diferencia entre Ciclo de CPU y Ciclo de Instrucción
- Ciclo de CPU: Corresponde a un único pulso de reloj.
- Ciclo de Instrucción: Generalmente requiere varios ciclos de CPU para completarse.
Conceptos de Microarquitectura
- Pipeline (Tubería): Técnica para ejecutar varias instrucciones en diferentes etapas simultáneamente.
- Caché: Memoria rápida que almacena datos de uso frecuente.
- Predicción de Saltos: Mecanismo para adivinar el flujo de ejecución en instrucciones condicionales.
- Unidades de Ejecución: Componentes que realizan las operaciones (ej. ALU).
ISA (Instruction Set Architecture)
- Define el lenguaje de máquina que la CPU es capaz de entender y ejecutar.
- Ejemplos: x86, ARM, RISC-V.
Hardware Fundamental y Modos de Operación del Sistema
Componentes Básicos de una Computadora
- CPU
- Memoria Principal
- Dispositivos de E/S (Entrada/Salida)
- Bus del Sistema
- Controladores
Registros Clave del Sistema
- PC (Program Counter): Contiene la dirección de la siguiente instrucción a ejecutar.
- SP (Stack Pointer): Apuntador a la cima de la pila (stack).
- PSW (Program Status Word): Almacena el estado actual del programa.
Modos de Ejecución del CPU
- Modo Usuario: Ejecución limitada; no puede acceder directamente a recursos críticos.
- Modo Kernel (o Supervisor): Acceso total a todos los recursos del sistema.
- El cambio entre modos se realiza mediante Llamadas al Sistema (System Calls).
Llamadas al Sistema (System Calls)
- Mecanismo que permite a los programas de usuario solicitar servicios al Sistema Operativo (SO).
- Provocan un cambio de modo de usuario a modo kernel.
Técnicas de Paralelismo en CPU
- Pipeline: Permite procesar varias instrucciones en diferentes etapas de forma solapada.
- Superescalar: Arquitectura que utiliza múltiples unidades de ejecución, permitiendo iniciar varias instrucciones en el mismo ciclo de reloj.