SI 607U
Sistemas Operativos de Computadores
Estructura del Sistema Computador
Un sistema computador puede dividirse en 4 componentes:
Hardware: provee recursos básicos de computación
CPU, memoria, dispositivos I/O
Sistema Operativo:
Controla y coordina el uso de hardware entre varias aplicaciones y
usuarios
Programas de Aplicación: define las formas en los que los
recursos del sistema son utilizados para resolver los problemas
computacionales de los usuarios
Procesadores de texto, compiladores, web browsers, database
systems, video games
Usuarios:
Humanos, máquinas, otros computadores.
Sistemas Distribuidos
Componentes de un Sistema Computador
Organización del Sistema Computador
Procesos del Sistema Computador
Uno o más CPUs, controladores de dispositivos interconectados a través de un bus
común proveyendo acceso a una memoria compartida
Ejecución simultánea de CPUs y dispositivos compiten por ciclos de memoria
Arquitectura de Multiprocesamiento Simétrico
Diseño Dual-Core
Layout de Memoria para un Sistema Multiprogramación
Operación de Procesamiento a Bajo Nivel
Arquitectura Von Neumann
Definición de OS
➢ Un Sistema Operativo (SO) es un software que
proporciona un acceso sencillo y seguro al soporte físico
del computador (hardware), ocultando al usuario
detalles de la implementación particular y creando la
ilusión de existencia de recursos ilimitados: máquina
virtual.
➢ Es un programa que actúa como intermediario entre el
usuario de computador y el hardware.
Elementos de un OS
User Interface – es parte del OS que sirve como interfafaz de usuario.
Kernel – es el núcleo del OS. Interactúa con el BIOS (at one end), and
the UI (at the other end).
File Management System – organiza y gestiona archivos.
Funciones de un SO
Gestión de archivos (File Management)
Gestión de Aplicaciones (Application Management)
Gestión de Programas de utilidad incorporados
Control del hardware (Control of Computer Hardware)
Tipos de SO
Multiuser – dos o más usuarios operan con el computador
en simultáneo.
Multitasking – dos o más procesos son ejecutados en
simultáneo.
Multithreading – dos o más partes del mismo proceso se
ejecutan en simultáneo.
Sistemas Operativos de PC
Microsoft Windows
MacIntosh OS
Linux
Estructura de un Sistema Operativo
Multiprogramación: tiene impacto en la eficiencia
Un usuario no puede mantener ocupados todo el tiempo
el CPU y los dispositivos I/O
La multiprogramación organiza las tareas (Jobs) (códigos
y datos) de modo que el CPU siempre tiene uno en
ejecución
Un subconjunto del total de tareas en el sistema es
guardado en memoria
Una tarea es seleccionada y ejecutada via job
scheduling
Cuando scheduling está en espera (por ejemplo I/O), OS
conmuta a otra tarea.
Estructura de un Sistema Operativo
Tiempo compartido (multitarea): es una extension lógica en el cual el CPU
conmuta tareas (Jobs) con tal frecuencia que los usuarios pueden interactiuar
con cada tarea en tiempo de ejecución, creando un computación
interactiva
Tiempo de Respuesta debería ser < 1 seg
Cada usuario tiene al menos un programa en ejecución en memoria
process
Si varios programas están listos para ser ejecutados al mismo tiempo CPU
scheduling
Si los procesos no caben en memoria, swapping los mueve para salir de
ejecución
Memoria Virtual permite la ejecución de procesos no completados en
memoria
Operaciones de Sistema Operativo
Realiza interrupción por hardware
Solicitud de error de Software crea excepción
División por cero, solicita servicio SO
Otro proceso problemático incluye loop infinito.
Modo Dual es una operación que permite proteger al SO y a componentes
de otros sistemas
User mode and kernel mode
Mode bit es proveído por hardware
Posibilita distinguir cuando un sistema está ejecutando en código de
usuario o de kernel
Algunas instrucciones diseñadas como privilegiado, son ejecutables
sólo en modo kernel
La llamada del sistema cambia al modo kernel, el retorno de la
llamada lo restablece al usuario
Transición del Modo Usuario al Modo Kernel
Servicios SO
1. Ejecución de Programas (programa en ejecución:
ejecutable, datos, pila, contador, registros...)
2. Operaciones de E/S
3. Manipulación de archivos
4. Comunicaciones
5. Detección de errores
6. Asignación de recursos
7. Contabilidad
8. Protección
Gestión de Procesos
Un proceso es un programa en ejecución. Constituye una unidad de trabajo dentro del
sistema. Un Programa es una entidad pasiva, mientras un proceso es activa.
Un proceso necesita recursos para desarrollar una tarea.
CPU, memoria, I/O, archivos
Inicialización de datos
La terminación del proceso requiere la recuperación de los recursos reutilizables.
Procesos de un solo subproceso tienen un contador de programa que especifica la
ubicación de la siguiente instrucción a ejecutarse
Un proceso ejecuta instrucciones en modo secuencial, uno a la vez, hasta completer la
operación
Procesos con multiples subprocesos tienen un Contador de programa por subproceso.
Típicamente, el Sistema tiene varios procesos, algunos usuarios, algunos sistemas
operativos ejecutando en modo simultáeoo en uno o más CPUs
Simultaneidad y multiplexaje de las CPUs entre los procesos / subprocesos
Gestión de Procesos
Gestión de Procesos
El Sistema operativo es responsible por las actividades siguientes en conexión con la
gestion de procesos
Crear y eliminar procesos de usuario y del sistema
Asignar / Actualizar / Liberar recursos
Suspender y reanudar procesos
Proporcionar mecanismos para la sincronización de procesos.
Proporcionar mecanismos para la comunicación de procesos.
Proporcionar mecanismos para el manejo de interbloqueos
Gestión de Procesos
Gestión de Procesos
Gestión de Procesos
Información de Procesos
Gestión de Procesos
Gestión de Procesos
Gestión de Procesos
Gestión de Procesos
Gestión de Procesos
Estados de un Proceso
Gestión de Procesos
Gestión de Procesos
Gestión de Procesos
Gestión de Procesos
Gestión de Memoria
Una de las principales funciones del SO es la gestión de memoria
Gestiona no sólo la memoria física (RAM) sino también el área de
intercambio de memoria virtual (swapping).
Cuando un proceso inicia, el código se carga a memoria como páginas
(paginación) para permitir la ejecución del programa (run).
Cuando la RAM está llena con procesos adicionales, el gestor de memoria
mueve el código para procesos menos activos al área de intercambio de
disco duro
Todos los datos en la memoria antes y después del procesamiento.
Todas las instrucciones en memoria para ser ejecutados.
Gestión de Memoria
La gestión de la memoria determina qué hay en la memoria cuando se
busca la optimización de la utilización de la CPU y la respuesta del
computador a los usuarios.
Actividades de Gestión de Memoria:
Realizar un seguimiento de las partes de la memoria que se están utilizando
actualmente y por quién
Decidir qué procesos (o partes de los mismos) y datos se deben mover dentro y
fuera de la memoria
Reservar/liberar espacio en memoria
Gestión de Almacenamiento
El sistema operativo proporciona una vista lógica y uniforme del almacenamiento de
información
Abstrae las propiedades físicas a la unidad de almacenamiento lógica: - file
Cada medio está controlado por dispositivo (es decir, unidad de disco, unidad de cinta)
Las propiedades variables incluyen velocidad de acceso, capacidad, tasa de transferencia de
datos, método de acceso (secuencial o aleatorio)
Gestión de File-System
Archivos generalmente organizados en directorios
Control de acceso en la mayoría de los sistemas para determinar quién puede acceder a
qué
Las actividades OS incluyen:
Crear y eliminar archivos y directorios
Primitivas para manipular archivos y directorios
Asignación de archivos al almacenamiento secundario
Copia de seguridad de archivos en medios de almacenamiento estables (no volátiles)
Gestión de Almacenamiento Masivo
Por lo general, son discos que se utilizan para almacenar datos que no caben en la
memoria principal o datos que deben conservarse durante un período de tiempo
"prolongado".
La gestión adecuada es de vital importancia
Toda la velocidad de operación del computador depende del subsistema de
disco y sus algoritmos
Actividades OS
Gestión de espacio libre
Asignación de almacenamiento
Programación de disco
Algunas áreas de almacenamiento no necesitan ser rápido
El almacenamiento terciario incluye almacenamiento óptico, cinta magnética
Aún debe ser administrado, por sistema operativo o aplicaciones.
Varía entre WORM (escritura única, lectura muchas veces) y RW (lectura-escritura)
Desempeño de Varios Niveles de Almacenamiento
El movimiento entre niveles de jerarquía de almacenamiento
puede ser explícito o implícito
Migración del disco al registro
Los entornos multitarea deben tener cuidado de utilizar el valor más reciente, sin
importar dónde se almacene en la jerarquía de almacenamiento.
El entorno de multiprocesador debe proporcionar coherencia de caché en el
hardware de modo que todas las CPU tengan el valor más reciente en su caché
Situación del entorno distribuido aún más compleja
Pueden existir varias copias de un dato
Pueden existir varias soluciones.
Gestión de Archivos
La función del SO es abstraer las propiedades
físicas del dispositivo de almacenamiento, proporcionando
una unidad lógica de almacenamiento. Tareas de las que el
SO es responsable:
• Creación y eliminación de archivos
• Creación y eliminación de directorios
• Proporcionar primitivas para la modificación de archivos
• Asignar/manejar permisos de acceso a archivos
• Realización de copias de seguridad
Subsistema I/O
Uno de los objetivos del sistema operativo es ocultar al usuario las
peculiaridades de los dispositivos hardware.
El subsistema I/O es responsable de:
Gestión de la memoria de E/S
Almacenamiento en búfer (almacenamiento de datos temporalmente
mientras se transfieren)
Almacenamiento en caché (almacenamiento de partes de datos en un
elemento más rápido para mejorar el rendimiento)
Puesta en cola (la superposición de la salida de un trabajo con la entrada
de otros trabajos)
En general, interfaces de controlador de dispositivos
Controladores para dispositivos de hardware específicos
Control de Red
• El SO se comunica con todos los controladores de dispositivo a través
de un bus interno y depende del controlador para logra la conversión
requerida para la comunicación con el hardware específico.
• Los controladores de dispositivo transmiten y reciben data hacia o
desde el dispositivo en los siguientes formatos.
- Char: Un carácter a la vez
- Bloque: conformado por múltiple caracteres
- Red: se transmiten como paquetes de caracteres.
Protección y Seguridad
Protección – cualquier mecanismo para controlar el acceso de procesos o usuarios a
los recursos definidos por el SO
Seguridad – defensa del Sistema contra ataques internos y externos.
Existen una gran variedad, que incluye denegación de servicio, gusanos, virus, robo de
identidad, robo de servicio.
Los sistemas generalmente distinguen primero entre usuarios, para determinar quién
puede hacer qué
Las identidades de usuario (ID de usuario, ID de seguridad) incluyen el nombre y
el número asociado, uno por usuario
ID de usuario luego asociado con todos los archivos, procesos de ese usuario
para determinar el control de acceso
El identificador de grupo (ID de grupo) permite definir un conjunto de usuarios y
administrar los controles, y luego también asociarlos con cada proceso, archivo
La escalada de privilegios permite al usuario cambiar a una identificación
efectiva con más derechos.
Tarea 2: Gestión de Procesos
Estudio Comparativo de los Sistemas Operativos: Win 10, Linux y
macOS
Requerimientos mínimos:
• Analizar, en modo comparativo, el diagrama de estados e hilos los 3 SOs.
• Analizar, en modo comparativo, los recursos y estrategias en la gestión de memoria en los 3
Sos
• Analizar, en modo comparativo, los recursos y estrategias en la gestión de almacenamiento
masivo en los 3 Sos.
• Analizar, en modo comparativo, los recursos y estrategias en la gestión de la seguridad en
los 3 SOs.
• Presenta un informe (tipo exposición) en formato PPT, incluyendo Conclusiones y
Bibliografía.
Arquitectura de un SO
Arquitectura de Linux
Arquitectura de Windows 10
Arquitectura de MacOS