You are on page 1of 49

2021/02

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

- Se eximen si NPE es mayor o igual a 5.0

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

- Instalar todo lo anterior :)

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

You might also like