Introducción a los SOs
Definición y funciones
Evolución de los sistemas operativos
Componentes de un sistema operativo
Gestión de procesos
Gestión de la memoria principal
Gestión de archivos
Gestión del sistema de E/S
Gestión de almacenamiento secundario
Trabajo con redes
Sistema de protección
Intérprete de comandos
Tema 1: Definición y Funciones
¿Qué es un Sistema Operativo?
Un programa que actúa como intermediario entre el usuario de un computador y el hardware
Objetivos principales:
Hacer el sistema cómodo de usar
Utilizar el hardware de forma eficiente
Componentes de un Sistema de Computación
Otras Perspectivas
Un SO convierte el computador en una máquina virtual
Aísla al usuario de la complejidad del hardware
Un SO es un asignador de recursos
Gestiona los recursos como CPU, memoria, etc. y los asigna a tareas del usuario
Un SO es un programa de control
Controla la ejecución de programas para prevenir errores y usos inapropiados del computador
Definición de Sistema Operativo
No hay una definición universalmente aceptada
Todo lo que el vendedor entrega cuando se compra un SO se aproxima bastante
Pero es muy variable
El programa que está siempre ejecutándose en la máquina es la definición que habitualmente se acepta. Dicho programa es denominado kernel o núcleo
Tema 2: Evolución de los SOs
Evolución de los SOs
Procesamiento en serie
Los trabajos se preparan y ejecutan uno a uno
La preparación de trabajos requiere mucho tiempo
Procesamiento por lotes
Se prepara un lote de trabajos y el computador los ejecuta de forma secuencial
Reduce el tiempo de preparación de trabajos
La CPU se queda ociosa cuando hay una operación de E/S
Multiprogramación
Se mantienen varios trabajos en memoria, cuando uno hace E/S se escoge otro para ocupar la CPU
Mejora el rendimiento de los computadores
Evolución de los SOs
Esquema de la Memoria en sistemas Multiprogramados
Evolución de los SOs
Tiempo compartido
Se conmuta rápidamente entre los procesos en ejecución
Permite que varios usuarios puedan interaccionar con sus trabajos simultáneamente
Sistemas multiprocesadores
Consisten en varios procesadores compartiendo memoria
Aplicaciones: fiabilidad, rendimiento, coste
Sistemas distribuidos
Están formados por equipos autónomos conectados entre sí por líneas de alta velocidad (ej. red local)
El SO debe proporcionar transparencia en el acceso de los recursos de cualquier equipo
Sistemas en tiempo real
Las tareas poseen requisitos estrictos de tiempo
El SO debe prescindir de algunos componentes para asegurar los requisitos de tiempo
Tema 3: Componentes de un SO
Gestión de Procesos
Un proceso es un programa en ejecución. Es una unidad de trabajo en el sistema.
Programa es una entidad pasiva mientras que proceso es una entidad activa
Los procesos necesitan recursos para realizar sus tareas: CPU, memoria, E/S, archivos, etc.
El sistema operativo realiza las siguientes operaciones con los procesos:
Crea y elimina procesos
Suspende y reanuda procesos
Provee mecanismos para la sincronización de procesos
Provee mecanismos para la comunicación entre procesos
Provee mecanismos para la gestión de interbloqueo
Gestión de la Memoria Principal
La memoria principal es un recurso al que la CPU puede acceder directamente
Los programas deben estar en memoria antes de poder ser ejecutados
El SO gestiona la memoria y para ello debe ser capaz de:
Llevar el control de las partes de memoria usadas en cada momento y de quién las usa
Decidir qué procesos o datos se cargan o se liberan de la memoria
Asignar y liberar espacio de memoria conforme se necesite
Gestión de Ficheros
Un fichero es una representación lógica uniforme que hace el SO del almacenamiento de información.
De esta forma el SO abstrae las propiedades físicas de los dispositivos de almacenamiento
Los archivos se suelen agrupar en directorios
Las tareas que el SO realiza en relación a la gestión de ficheros son:
Crea y elimina archivos y directorios
Proporciona primitivas para la manipulación de archivos y directorios
Establece una correspondencia entre los archivos y el almacenamiento secundario
Controla los accesos de usuarios y programas a los archivos
Gestión del Sistema de E/S
Un propósito del SO es ocultar los detalles de los dispositivos hardware al usuario
El sistema de E/S se encarga de:
Planificar las peticiones de E/S para mejorar el rendimiento
Gestionar la memoria de E/S incluyendo
caching: almacenamiento de datos en dispositivos de acceso rápido para mejorar el rendimiento
buffering: almacenamiento de datos temporalmente mientras se transfieren
Gestión de Almacenamiento Secundario
En los dispositivos de almacenamiento secundario se suelen encontrar los datos permanentes y los que no caben en la memoria principal
La gestión correcta de este recurso es muy importante para un computador
El SO se encarga de las siguientes actividades:
Administración del espacio libre
Asignación de almacenamiento
Planificación del disco
Formateo de discos
Control del sector de arranque
Manejo de bloques defectuosos
Administración del espacio de intercambio
Trabajo con Redes
Los procesadores de un sistema distribuido se conectan por medio de redes de comunicaciones
Cada máquina de la red puede ser diferente y cada una de ellas posee en general distintos recursos
El SO debe permitir el acceso a los recursos de las máquinas conectadas a la red
Sistema de Protección
La protección se refiere a cualquier mecanismo para controlar el acceso de los procesos o usuarios a los recursos definidos por el SO
La memoria y los dispositivos de E/S están protegidos
Existen instrucciones de máquina privilegiadas (sólo las debe ejecutar el SO)
Los sistemas distinguen los usuarios para determinar lo que puede hacer cada uno
Cada usuario posee un identificador: nombre y número
El identificador se asocia con todos los ficheros y procesos del usuario para determinar el control de acceso
Los usuarios se pueden agrupar formando grupos con los mismos permisos
Intérprete de comandos
Es uno de los programas más importantes del SO
Actúa de interfaz entre el usuario y el SO
Diversos tipos de shell:
Gráficos: fáciles de usar (ej. basados en ventanas)
Texto: muy potentes pero más difíciles de usar
Las órdenes emitidas al intérprete de comandos sirven para:
Administrar procesos
Manejar la E/S
Administrar el almacenamiento secundario
Gestionar la memoria principal
Acceder al sistema de ficheros
Proteger el sistema
Trabajar con redes