U3 Flashcards
(31 cards)
Concepto de Programa
Un programa es un conjunto de instrucciones escritas en un lenguaje de programación, diseñadas para realizar una tarea específica o resolver un problema determinado. Estas instrucciones están organizadas de forma lógica y secuencial para cumplir con un objetivo funcional.
- Entidad estática:Un programa, cuando está almacenado en disco o en algún medio de almacenamiento, no cambia por sí solo. Permanece sin alteraciones hasta que es cargado en memoria y ejecutado.
-
Ejemplos:
- Un archivo
.exe
en Windows. - Un script en Python (
.py
), guardado en disco. - Una aplicación móvil instalada pero no en uso.
- Un archivo
Concepto de Proceso
Un proceso es una instancia en ejecución de un programa. Es decir, cuando un programa es cargado en la memoria RAM y empieza a ejecutarse, se convierte en un proceso. Este incluye no solo el código del programa, sino también su estado de ejecución, datos, recursos asignados, y una estructura de control que permite su gestión por parte del sistema operativo.
- Entidad dinámica:Un proceso está en constante cambio mientras se ejecuta. Su estado puede pasar de “ejecutándose” a “esperando” o “finalizado”, su contador de programa avanza, y puede solicitar o liberar recursos del sistema (como memoria, archivos, CPU, etc.).
- Gestionado por el Sistema Operativo (SO):El sistema operativo es responsable de la creación, ejecución, planificación, suspensión y terminación de procesos. También se encarga de asignar los recursos necesarios y garantizar que los procesos se ejecuten de forma segura y eficiente.
Concepto de Contador de Programa (Program Counter, PC)
El Contador de Programa es un registro especial de la CPU que contiene la dirección de memoria de la siguiente instrucción que debe ejecutarse en un proceso. Es esencial para llevar un seguimiento ordenado de la ejecución del programa.
- En cada ciclo de instrucción, la CPU:
- Lee la instrucción en la dirección indicada por el PC.
- Ejecuta dicha instrucción.
- Actualiza el PC con la dirección de la próxima instrucción.
Elementos de los Procesos: PCB.
El PCB (Process Control Block) es una estructura de datos que mantiene el sistema operativo en memoria para controlar y gestionar cada proceso.
Cada vez que se crea un proceso, el sistema operativo genera un PCB asociado.
🧬 ¿Qué guarda el PCB?
- Identificador. Un identificador único asociado a este proceso, para distinguirlo del resto de procesos.
- Estado. Si el proceso está actualmente corriendo, está en el estado en ejecución.
- Prioridad. Nivel de prioridad relativo al resto de procesos.
- Contador de programa. La dirección de la siguiente instrucción del programa que se ejecutará.
- Punteros a memoria. Incluye los punteros al código de programa y los datos asociados a dicho proceso, además de cualquier bloque de memoria compartido con otros procesos.
- Datos de contexto. Estos son datos que están presentes en los registros del procesador cuando el proceso está corriendo.
- Información de estado de E/S. Incluye las peticiones de E/S pendientes, dispositivos de E/S (por ejemplo, una unidad de cinta) asignados a dicho proceso, una lista de los ficheros en uso por el mismo, etc.
- Información de auditoría. Puede incluir la cantidad de tiempo de procesador y de tiempo de reloj utilizados, así como los límites de tiempo, registros contables, etc.
Aspectos generales: Multiprogramación
Objetivo: Mantener ocupado el procesador el mayor tiempo posible.
Descripción: Consiste en cargar varios programas en memoria al mismo tiempo para que, mientras uno espera (por ejemplo, por entrada/salida), el procesador pueda ejecutar otro. Así se mejora la utilización del CPU.
Aspectos generales: Tiempo compartido
Objetivo: Brindar soporte a una gran cantidad de usuarios simultáneamente.
Descripción: Es una extensión de la multiprogramación que permite que múltiples usuarios interactúen con el sistema al mismo tiempo. Cada usuario recibe una pequeña porción de tiempo de CPU (time slice), lo que da la sensación de acceso simultáneo.
Aspectos generales: Transacciones en tiempo real
Objetivo: Realizar consultas o actualizaciones a bases de datos en el momento exacto en que se requiere.
Descripción: Se refiere a sistemas que responden inmediatamente a solicitudes de transacción, como en cajeros automáticos, sistemas bancarios o de reservas. Las operaciones deben completarse en un tiempo predecible y muy corto.
Estados de un Proceso.
Estados principales de un proceso:
- LISTO:El proceso está preparado para ejecutarse, esperando que el procesador lo seleccione.
- EJECUCIÓN:El proceso está siendo ejecutado por el procesador.
Transiciones entre estados:
- expedir (dispatch):Cuando un proceso pasa de LISTO a EJECUCIÓN porque el procesador lo selecciona.
- fin del tiempo (time slice expiration):Si un proceso usa todo su tiempo asignado de CPU, vuelve a LISTO para esperar otro turno.
Cola de procesos:
- Los procesos que llegan (por ejemplo, D, C, B, A) se colocan en una cola de procesos, esperando su turno para ser ejecutados.
- El sistema operativo expide uno a uno desde la cola hacia el procesador.
Procesador:
- El procesador toma procesos desde la cola.
- Ejecuta cada uno durante un cierto tiempo (o hasta que se bloquee, finalice, o exceda su tiempo).
- Si el tiempo se agota, vuelve a mandarlo al estado LISTO (reinserta en la cola).
Estados de un Proceso y sus Transiciones.
- NUEVO:El proceso ha sido creado pero aún no está listo para ejecutarse.
- LISTO:El proceso está en memoria principal esperando ser ejecutado por la CPU.
- EJECUCIÓN:El proceso está siendo ejecutado activamente por el procesador.
- BLOQUEADO:El proceso no puede continuar hasta que ocurra un evento externo (por ejemplo, espera de datos de entrada/salida).
- TERMINADO:El proceso ha finalizado su ejecución.
- LISTO SUSPENDIDO:El proceso estaba listo, pero fue movido a disco (por falta de memoria u otra razón).
- BLOQUEADO SUSPENDIDO:El proceso estaba bloqueado, pero también fue suspendido y almacenado en disco.
Estados “NO Suspendidos” → En RAM (memoria principal):
Estos procesos están cargados en memoria y listos para interactuar con el procesador (CPU):
- LISTO: esperando turno para ser ejecutado.
- EJECUCIÓN: siendo ejecutado por la CPU.
- BLOQUEADO: esperando un evento (como entrada/salida), pero sigue en RAM.
Estados “Suspendidos” → En Disco:
Estos procesos fueron sacados de RAM y puestos en almacenamiento secundario (disco). Esto se hace para liberar memoria cuando hay muchos procesos, no hay espacio suficiente o no tiene el estímulo para realizar la ejecución.
- LISTO SUSPENDIDO: estaba listo para ejecutarse, pero fue movido a disco. Le falta volver a RAM para competir por la CPU.
- BLOQUEADO SUSPENDIDO: estaba esperando un evento, pero también fue sacado de RAM. Le falta volver a RAM y que ocurra el evento.
Procesos Suspendidos.
Suspender un proceso es una acción del sistema operativo que implica interrumpir temporalmente la ejecución de un proceso y moverlo a un almacenamiento secundario (como el disco) para liberar recursos, especialmente memoria RAM.
Suspender un proceso significa:
- Detener su ejecución temporalmente.
- Guardar su estado actual (contexto, registros, memoria asignada, etc.).
- Liberar recursos que el proceso está utilizando (principalmente la memoria RAM).
- Transferirlo al almacenamiento secundario (generalmente al disco), lo que se conoce como swapping.
Los procesos suspendidos residen en el disco, específicamente en una parte del sistema llamada espacio de intercambio (swap). Esto permite que la memoria principal quede libre para otros procesos activos o de mayor prioridad.
Swapping es el mecanismo que usa el sistema operativo para:
- Mover procesos entre la memoria principal (RAM) y la memoria secundaria (disco).
- Es una técnica de gestión de memoria que permite manejar más procesos de los que caben simultáneamente en la RAM.
> Cuando un proceso suspendido es necesario de nuevo, se realiza el swap-in (se carga desde el disco a la RAM), y puede reanudarse desde donde se suspendió.
Estructuras de control del sistema operativo: Tablas de Memoria.
Tablas de Memoria.
Las tablas de memoria son estructuras utilizadas por el sistema operativo para gestionar y controlar el uso de la memoria en el sistema. Sus funciones principales incluyen:
-
Control de la memoria principal (RAM) y secundaria
- Supervisan el uso eficiente de la memoria principal y, en algunos casos, de la memoria secundaria (como el disco duro cuando se usa la memoria virtual).
-
Asignación y liberación de memoria
- Asignan bloques de memoria a los procesos cuando estos lo requieren.
- Liberan dicha memoria cuando los procesos finalizan o ya no la necesitan.
-
Registro de la ubicación de los procesos
- Mantienen un seguimiento de qué parte de la memoria está ocupada por cada proceso.
- Esto permite saber en qué dirección de memoria comienza y termina cada proceso.
-
Control de acceso a regiones de memoria compartidas
- Previenen accesos no autorizados a áreas de memoria que pueden ser compartidas entre procesos.
- Garantizan la protección de la memoria entre procesos mediante técnicas como la segmentación o la paginación.
Estructuras de control del sistema operativo: Tablas de Entrada/Salida.
Tablas de Entrada/Salida.
Las tablas de E/S son estructuras utilizadas por el sistema operativo para gestionar todos los aspectos relacionados con los dispositivos periféricos. Entre sus funciones principales están:
-
Administración de dispositivos y canales de Entrada/Salida
- Controlan el uso y disponibilidad de dispositivos como teclados, impresoras, discos, etc.
- Coordinan el acceso a los canales de comunicación entre el sistema y los dispositivos.
-
Control del estado de las operaciones de Entrada/Salida
- Supervisan si una operación de E/S está en curso, ha sido completada o si ha ocurrido un error.
- Garantizan que las operaciones se ejecuten correctamente y se manejen los errores apropiadamente.
-
Registro del área de memoria para la transferencia (buffers)
- Mantienen información sobre los buffers, que son áreas temporales de memoria usadas para almacenar datos en tránsito entre el dispositivo y la memoria principal.
- Ayudan a optimizar la velocidad de transferencia y evitar pérdidas de datos.
- Buffers: Los buffers (o memorias intermedias) son áreas temporales de memoria que se utilizan para almacenar datos de forma provisional mientras se transfieren entre dos dispositivos o entre un dispositivo y la memoria principal.
Estructuras de control del sistema operativo: Tabla de Archivos. ¿Qué gestiona cada uno? ¿Ubicación?
Las tablas de archivos son estructuras que utiliza el sistema operativo para gestionar y controlar el acceso a los archivos almacenados en los dispositivos de almacenamiento (discos duros, SSD, etc.).
A. Tabla de Archivos Abiertos
- Mantiene el registro de los archivos actualmente en uso por los procesos del sistema.
- Almacena información importante como:
- Estado del archivo (abierto, cerrado, en uso exclusivo, etc.)
- Atributos (tamaño, permisos, fecha de creación/modificación)
- Direcciones físicas de los bloques de disco donde está almacenado el contenido del archivo.
¿Qué gestiona?
Archivos en uso, atributos y bloques
¿Ubicación?
Memoria principal (RAM)
B. Tablas de Archivos en Disco
- Contienen la información sobre la ubicación de los archivos en el disco.
- Son gestionadas por el sistema de archivos del sistema operativo.
- Ejemplos de estructuras de este tipo:
- FAT (File Allocation Table) – Utilizado en sistemas como MS-DOS y versiones de Windows.
-
MFT (Master File Table) – Utilizado por el sistema de archivos NTFS en Windows.
¿Qué gestiona?
Ubicación de todos los archivos del disco
¿Ubicación?
Disco duro / SSD
Estructuras de control del sistema operativo: Tablas de Procesos. ¿Qué contienen? Función principal.
Las tablas de procesos son estructuras fundamentales del sistema operativo que se utilizan para gestionar todos los procesos en ejecución o en espera dentro del sistema.
¿Qué contienen?
Estas tablas mantienen el control de la ubicación, estado y atributos de cada proceso. Cada entrada representa un proceso y contiene datos como:
- ID del proceso (PID): Número único que identifica a cada proceso.
- ID del usuario (UID): Identificador del usuario que ejecuta el proceso.
- Estado del proceso: Por ejemplo, listo, ejecutándose, en espera o terminado.
- Ubicación en memoria: Dirección o segmento donde está cargado el proceso.
- Prioridad: Nivel de prioridad del proceso para acceder a recursos del sistema.
- Contador de programa: Dirección de la siguiente instrucción a ejecutar.
- Registros del CPU: Estado de los registros cuando el proceso es suspendido.
- Información de E/S: Dispositivos asignados o archivos abiertos por el proceso.
Función principal.
Permiten al sistema operativo:
- Controlar y coordinar la ejecución de los procesos.
- Saber qué recursos usa cada proceso.
- Administrar correctamente los cambios de contexto (cuando el CPU cambia de un proceso a otro).
Estructuras de Control de Procesos.
Objetivo: Determinar dónde se encuentra cada proceso en memoria y cuáles son sus atributos (información importante del proceso) para poder gestionarlo adecuadamente durante su ciclo de vida (creación, ejecución, suspensión, finalización, etc.).
Tabla Principal de Procesos
También conocida como Tabla de Procesos o Process Table.
Características:
- Es una estructura de datos que mantiene el sistema operativo.
- Tiene una entrada por cada proceso activo en el sistema.
- Cada entrada es comúnmente llamada PCB (Process Control Block) o Bloque de Control de Proceso.
Imagen del proceso
Cuando un programa se carga para ejecutarse, se convierte en un proceso, y su imagen es todo lo que ocupa en la memoria principal (RAM) durante su vida útil.