ScholarGate
Asistente

Sistemas Operativos

Un sistema operativo es la capa de software que gestiona el hardware de un ordenador y proporciona servicios a las aplicaciones, multiplexando el procesador, la memoria, el almacenamiento y los dispositivos entre los programas, al tiempo que garantiza la protección y la abstracción.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Un sistema operativo es el software de sistema que gestiona los recursos de hardware, proporciona abstracciones como procesos, archivos y espacios de direcciones, y media entre los programas de aplicación y la máquina subyacente, al tiempo que garantiza el aislamiento y el reparto equitativo.

Scope

Esta área abarca los principios y la estructura de los sistemas operativos: procesos e hilos, planificación de la CPU, gestión de memoria y memoria virtual, sistemas de archivos, concurrencia y sincronización, gestión de dispositivos y E/S, y protección. Trata el SO como el gestor de recursos y la capa de abstracción entre el hardware y las aplicaciones. Limita con la jerarquía de memoria y las cachés (gestiona la memoria virtual) y los sistemas de almacenamiento y E/S (gestiona los dispositivos y la persistencia), y excluye la coordinación distribuida entre máquinas, tratada en computación distribuida y paralela.

Sub-topics

Core questions

  • ¿Cómo crea el SO la abstracción de procesos e hilos independientes en hardware compartido?
  • ¿Cómo decide el planificador qué tarea lista ejecutar y con qué objetivos?
  • ¿Cómo gestiona el SO la memoria e implementa la memoria virtual y la paginación?
  • ¿Cómo organizan los sistemas de archivos los datos persistentes en los dispositivos de almacenamiento de forma fiable?
  • ¿Cómo proporciona el SO protección, aislamiento y acceso controlado a los recursos?

Key concepts

  • modo núcleo y usuario
  • proceso e hilo
  • cambio de contexto
  • planificación de CPU
  • memoria virtual y paginación
  • sistema de archivos
  • concurrencia y sincronización
  • interbloqueo
  • llamadas al sistema
  • protección y aislamiento

Key theories

Abstracción de proceso y espacio de direcciones
El SO virtualiza la CPU y la memoria para que cada programa se ejecute como si fuera dueño de la máquina: un proceso agrupa un espacio de direcciones, un contexto de ejecución y recursos, y el núcleo alterna entre procesos y los protege entre sí.
Gestión de memoria por conjunto de trabajo
El modelo de conjunto de trabajo de Denning caracteriza el conjunto de páginas que un proceso utiliza activamente durante una ventana de tiempo; mantener residente el conjunto de trabajo de cada proceso evita el thrashing y guía las decisiones de paginación y admisión en los sistemas de memoria virtual.

Mechanisms

El núcleo (kernel) se ejecuta en un modo privilegiado y media el acceso al hardware. Representa los programas en ejecución como procesos e hilos, alternando entre ellos mediante cambios de contexto impulsados por un planificador. La memoria se gestiona mediante paginación y traducción de direcciones virtuales; los datos persistentes se organizan mediante sistemas de archivos; y el estado compartido se coordina con primitivas de sincronización como bloqueos, semáforos y monitores. Las llamadas al sistema proporcionan a las aplicaciones una entrada controlada a los servicios del núcleo.

Clinical relevance

Los sistemas operativos sustentan esencialmente toda la computación: desde servidores y ordenadores de escritorio hasta teléfonos y dispositivos embebidos. Su diseño determina el rendimiento, la fiabilidad y la seguridad: la planificación afecta la capacidad de respuesta, la gestión de la memoria afecta el rendimiento y los mecanismos de aislamiento son la base de la seguridad del sistema y la virtualización. Núcleos ampliamente desplegados como Linux y Windows encarnan estos principios a escala planetaria.

History

Los sistemas operativos evolucionaron desde los monitores por lotes de la década de 1950 hasta los sistemas de multiprogramación y tiempo compartido como CTSS y Multics en la década de 1960. UNIX, creado por Thompson y Ritchie alrededor de 1970, estableció abstracciones duraderas que aún son visibles en los sistemas modernos. El trabajo de Dijkstra sobre semáforos y concurrencia y el modelo de conjunto de trabajo de Denning sentaron las bases teóricas, y los sistemas personales, móviles y virtualizados extendieron el campo a lo largo de las décadas posteriores.

Debates

Diseño monolítico versus micronúcleo
Un debate de larga duración compara los núcleos monolíticos, que ejecutan la mayoría de los servicios en modo privilegiado para el rendimiento, con los micronúcleos, que mueven los servicios al espacio de usuario para la modularidad y la fiabilidad; los sistemas modernos mezclan ambos enfoques.

Key figures

  • Edsger W. Dijkstra
  • Peter J. Denning
  • Per Brinch Hansen
  • Ken Thompson
  • Dennis Ritchie
  • Abraham Silberschatz
  • Andrew S. Tanenbaum

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os
  • denning1968

Frequently asked questions

¿Cuál es la diferencia entre un proceso y un hilo?
Un proceso es una ejecución de programa independiente con su propio espacio de direcciones y recursos. Un hilo es una unidad de ejecución dentro de un proceso; múltiples hilos comparten el espacio de direcciones del proceso, lo que hace que la comunicación sea económica pero requiere sincronización para evitar condiciones de carrera.
¿Qué hace el núcleo que los programas ordinarios no pueden hacer?
El núcleo se ejecuta en un modo de procesador privilegiado que le permite acceder directamente al hardware, gestionar las asignaciones de memoria, manejar interrupciones y cambiar procesos. Las aplicaciones solicitan estos servicios privilegiados a través de llamadas al sistema en lugar de realizarlos ellas mismas, lo que preserva el aislamiento y la protección.

Methods for this concept

Related concepts