Professional Documents
Culture Documents
Sistemas Operativos
INGENIERÍA
¿Qué es un sistema operativo?
INGENIERÍA
¿Cómo funciona un
computador?
INGENIERÍA
Programa en Ejecución
Simple: ejecuta instrucciones.
Millones de veces por segundo, el
procesador:
- busca una instrucción en memoria
- la decodifica
- la ejecuta
- pasa a la siguiente instrucción
INGENIERÍA
Arquitectura de Von Neumann
INGENIERÍA
¿Por qué existen los sistemas
operativos?
INGENIERÍA
Definición
Es un software que abstrae y controla los
recursos de hardware de un computador
3 tareas fundamentales:
- Esconder la complejidad del hardware
- Manejo de recursos
- Proveer de aislamiento y protección
INGENIERÍA
INGENIERÍA
¿Es Arduino un sistema
operativo?
INGENIERÍA
Firmware
Software que maneja directamente el
hardware
→ BIOS (Basic I/O System)
INGENIERÍA
Introducción al Curso
- Programa del curso
- Metodología
- Evaluaciones
INGENIERÍA
Programa del Curso
1. Introducción a los sistemas operativos.
2. Arquitectura y estructura de sistemas
operativos.
3. Procesos y threads.
4. Sincronización.
5. Manejo de memoria.
INGENIERÍA
Programa del Curso
6. Sistemas de archivos.
7. Entrada y Salida.
8. Comunicación entre procesos.
Si tenemos tiempo:
6. Redes y sistemas operativos distribuidos.
7. Virtualización y cloud computing.
INGENIERÍA
Metodología
- 2 horas de cátedra semanales
- Tareas consistentes en modificar un sistema
operativo educacional
INGENIERÍA
Evaluaciones
- 2 Pruebas (P1 y P2)
- Tareas (T)
- Examen Final
INGENIERÍA
Evaluaciones
- Ponderación:
NPE= α*(P1+P2)/2+ (1-α) * T/2
- α es el factor de importancia de
pruebas y es igual a 0,7
INGENIERÍA
Evaluaciones
- Nota Final
NF= NE*0.3+NPE*0.7
INGENIERÍA
¿Preguntas?
Reglas claras conservan la amistad
INGENIERÍA
Necesidades básicas para el
curso
INGENIERÍA
¿Qué necesitan?
- Su laptop
- Instalar herramientas de desarrollo
(incluído GIT) y QEMU
- Bajar e instalar XV6: github.com/mit-
pdos/xv6-public para las tareas
INGENIERÍA
Tarea 1
INGENIERÍA
Mini Quiz 1
El curso se basa en que programen en C
¿Lo han usado?
Vamos a ver que tal están para desarrollar en
este lenguaje
INGENIERÍA
Mini Quiz 1
Programen una lista enlazada simple en C
(usen papel o repl.it para programar online)
Necesitan entender estructuras y punteros...
INGENIERÍA
Solución
https://replit.com/@DaniloBor
quez/linkedlist
INGENIERÍA
¿Preguntas?
Estamos listos para empezar con la
materia
INGENIERÍA
Ejemplos de Sistemas Operativos
INGENIERÍA
Definición
Es un software que abstrae y controla los
recursos de hardware de un computador
3 tareas fundamentales:
- Esconder la complejidad del hardware
- Manejo de recursos
- Proveer de aislamiento y protección
INGENIERÍA
¿Cuál de los siguientes
componentes son parte de un SO?
1. Editor de texto
2. Sistema de archivos
3. Drivers de dispositivos
4. Memoria cache
5. Navegador web
6. Scheduler de procesos
INGENIERÍA
¿Cuál de las siguientes funciones
corresponde a un controlador?
1. Soportar distintos tipos de teclado/mouse
2. Distribuir memoria entre distintos procesos
3. Acceso intercambiable entre distintos
storage (reemplazar disco duro por SSD)
INGENIERÍA
Elementos
Abstracciones
- Hardware: memoria, archivo, sockets,...
- Procesos, threads
Mecanismos
- cómo crear, ejecutar, un proceso
- cómo reservar memoria
INGENIERÍA
Elementos
Políticas
- Tamaño de memoria que un proceso
puede solicitar
- Número de sockets un proceso puede abrir
- Qué espacio de memoria liberar primero
INGENIERÍA
Manejo de Memoria
Abstracción: memory page
Mecanismos: reservar, asignar a un proceso
Política: Least Recently Use (LRU)
INGENIERÍA
¿Cómo diseño un sistema
operativo?
INGENIERÍA
Principios
1. Separar mecanismos de políticas
- Mecanismos flexibles para soportar muchas
políticas
- Memoria: mecanismos → procesos;
políticas → manejo (LRU, LFU, random)
INGENIERÍA
Principios
2. Optimizar para el caso más común
- ¿Para qué se va a usar? ¿Quién lo va a
usar?
- Elegir políticas que tengan sentido dadas
estas preguntas
- Excepciones ocurren pero NO son
relevantes
INGENIERÍA
Protección por Aislamiento
User level
- Unprivileged
Kernel level
- Privileged
Switch entre estos dos modos es dado por el
hardware
INGENIERÍA
Definiciones
Trap instructions
Signals
System calls
- open (file)
- send (socket)
- mmap (memory)
INGENIERÍA
Meltdown
Vulnerabilidad en arquitecturas Intel
Meltdown rompe el mecanismo que impide
que las aplicaciones accedan a la memoria
del sistema.
INGENIERÍA
System calls
User Process
user mode
(mode bit = 1)
Proceso de usuario en Llamada a sistema Retorno de llamada a
ejecución (system call) sistema
trap
Kernel (mode bit = 0)
return
(mode bit = 1)
Ejecuta llamada a
kernel mode
sistema (mode bit = 0)
INGENIERÍA
System calls
- Asociadas con un código que define que
operación llamar, de donde obtener los
argumentos y el valor de ellos
INGENIERÍA
System calls
- Sincrónicas
- Existen mecanismos (señales) para hacerlo
asíncronas, pero es más complejo
- Operaciones caras
- Toma tiempo hacer un cambio de contexto
- Afecta al cache
INGENIERÍA
Servicios
- Ejemplos:
- Scheduler
- Manejo de dispositivos de bloque
- Manejo de memoria
- Sistema de archivos
- Disponibles mediante system calls
INGENIERÍA
INGENIERÍA
Tipos de SOs
Monolítico
Modular
MicroKernel
INGENIERÍA
SO Monolítico
Todos los servicios o drivers de hardware están
incluídos en el sistema operativo
- Optimiza procesos
- Difícil de mantener
- Muy pesados
INGENIERÍA
SO modular
Todos los servicios se pueden agregar como
un módulo
- Define una interfaz
- Se cargan según necesidad
- Puede impactar el rendimiento
INGENIERÍA
MicroKernel
Tiene lo básico de un sistema operativo
Otros componentes son APLICACIONES!
- Muy pequeño (seguro)
- Muchas interacciones entre procesos
- Costoso en términos de rendimiento
INGENIERÍA
Ejemplo: Linux
INGENIERÍA
¿Preguntas?
¿Mucha materia? Queda mucha
más
INGENIERÍA