Está en la página 1de 39

Sistemas Operativos:

Historia
Breve reseña de los sistemas operativos, desde sus inicios hasta la actualidad
Bibliografía sugerida y de soporte
Historia de los SOs: Inicio (años 40s y 50s)

▪ La primera generación de un
Sistema Operativo fue realizada
por “computadoras” del tipo físico
(clavijas), que carecían software
programado y utilizaban
conexiones físicas:

▪ La segunda generación de SOs


comenzó a principio de los 50
GMOS. Un SO desarrollado por
General Motors. Trabajaba con
procesos batch de una única
entrada.
Historia de los SOs: Años 60s/70s

Llega la tercera generación


de SOs.

▪ SOs propietario de la marca.


▪ Diferían de cualquier otro
existente.
▪ Aparece el concepto de
“Multiprogramación”
permitiendo procesar más de un
trabajo tipo batch
Historia de los SOs: 1969 - UNIX

▪ Se introduce el “Spooling”
(Simultaneous periferal operations on
line)
▪ Primer Sistema Operativo compartido.
▪ Base original de casi todos los SOs que
actuales:
– Linux
– MacOS
– OpenBSD
– Etc.…

▪ Windows no fue basado en UNIX


Historia de los SOs: 1973 – Xerox Alto

Afectó toda la generación de Primera interfaz gráfica (GUI)


computadoras personales Primera aparición del “mouse”
Historia de los SOs: 1977 – Apple II

▪ Creado por Steve Wozniak, fue uno


de los SOs mayormente utilizado
en computadoras hogareñas
▪ Apple DOS (Disk Operating System)
aparece con la Apple II
▪ En combinación con Xerox Alto, se
convierte en una de las mayores
influencias de los SOs de la década
Primera aparición de los “Hilos” en de los 80.
versiones actualizadas de UNIX
Historia de los SOs: Años 80s y 90s

▪ 1981 – MS DOS: DOS fue adquirido ▪ IBM también utilizó DOS en


por Microsoft y renombrado sus computadoras personales
Historia de los SOs: Windows y NeXTSTEP

▪ 1985 – Windows 1.0: Versión gráfica ▪ 1988 - NeXTSTEP: Primer


de MS-DOS SO de Steve Jobs
Historia de los SOs: Aparece Linux

▪ 1991 – Linus Tordvals crea LINUX ▪ 1992 - Windows 3.1: Primer


(un SO basado en UNIX) aparece el Windows con Internet
concepto de “Opensource” en SOs
Historia de los SOs: Windows NT y 95

▪ 1993 - Windows NT (Nathan


Myhrvold): Primera versión de ▪ 1995 – Windows 95: Continua
Windows con Kernel en memoria siendo una interface gráfica de DOS
separada exclusiva
Historia de los SOs: MacOS y Windows 98

▪ 1996 - MacOS (7.6) Primer ▪ 1998 - Windows 98: Última


SO con este nombre interface gráfica de DOS
Historia de los SOs: Sistemas tipo Unix

▪ Unix es el origen de
mucho SOs y hasta el
día de hoy, continua
evolucionando para
incluir más
(especialmente en la
línea de Linux y sus
derivados)
Historia de los SOs: Windows
Historia de los SOs: Actualidad

▪ Desde Linux se desprenden


Windows – Cientos de diferentes distribuciones
• Windows 11 - 21H2 según su uso
• Windows Server 2022 (2202) – Android
– webOS (para Smart TVs)
Apple – chormeOS
– Cientos de SOs para distintos tipos de
• MacOS 12.5 dispositivos (GPS, tableros de control,
• iOS 15.6 pantallas de multimedia en
aeronáutica, entre otros)
Linux
• Linux 5.19.1
Sistemas Operativos:
Arquitectura de un
computador
Revisión de conceptos necesarios para la asignatura
Componentes de un computador: Von Neumann

Arquitectura de von
Neumann
Componentes de un computador: Bus

R/W
Petición Bus
Cesión Bus
Clock
ACK
Petición
interrupción
Int ACK
Reset

Dispositivo + Posición
Componentes de un computador: Registros

De uso general De uso específico


➔ Acumulador (AX) ➔ Stack Pointer (SP)
➔ Contador (CX) ➔ Instruction Pointer (IP) /Program
➔ Base (BX) Counter (PC)
➔ Datos (DX) ➔ Program Status Word (PSW)

De segmento De control
➔ Code Segment (CS) ➔ Memory address register (MAR)
➔ Data Segment (DS) ➔ Memory buffer register (MBR)
➔ Stack Segment (SS) ➔ Instruction register (IR)

CF ACF OF IF TP SF ZF PF MF DF MODE
Ciclo de instrucción
CODOP + (OPERANDO)*
ADD R1,X F
ISZ X
MOV A, B
PUSH A Búsqueda
POP B Decodificación INSTR OFF
de
INC A de la Instrucción
Operandos
JMP F
NOP
CLI Búsqueda 1. Próx instrucción -> PC
de 2. PC -> MAR
Instrucción 3. MAR ->BUS DIR Ejecución
4. Unidad de control realiza lectura = CONT(Read) de la
5. RAM -> BUS DAT(INSTR) -> MBR Instrucción
6. MBR -> IR
7. PC ++
Write Back
Interrupciones: Definición

¿Qué son las


interrupciones?
Interrupciones: Clasificación

Internas
De Hardware vs
vs
de Software
externas
Síncronas vs
Asíncronas
¿Son controladas por
el programador?
¿Son causadas interna
o externamente al
procesador?

Excepciones vs
Enmascarables vs Traps
No Enmascarables ¿Pueden
¿Puede ignorarse? predecirse?
Interrupciones: Procesamiento

El controlador del dispositivo u otro


HW genera una interrupción La rutina guarda el resto de la
información del estado de la CPU

El procesador completa la ejecución de Se da el


control al Se procesa la interrupción P
P la instrucción en curso.
interrupt O
O
handler R
R
S
H El procesador identifica la fuente y la
Se restaura la info del estado de W
W notifica.
la CPU.

El procesador coloca el PC y el PSW en la


pila del sistema
Se restaura el anterior PC y PSW

El procesador carga el nuevo PC en función de la int.


Interrupciones por Hardware: IRQ

IRQ = Interruption Request


Son manejadas por el PIC.
PIC = Programmable Interrupt
Controller
A menor número de IRQ,
mayor es la prioridad para
tratar la interrupción
Interrupciones: Prioridades y Vector de
Interrupciones

Prioridades
Interrupciones hardware
♦Internas: producidas por la CPU
• división por cero
• desbordamiento
• instrucción ilegal
• dirección ilegal
• logaritmo de cero
• raíz cuadrada de negativos
• etc.
♦Externas: producidas por los dispositivos de E/S
• Vectorizadas
• no vectorizadas
Interrupciones software: producidas por la ejecución de instrucciones de la CPU.
Ciclo de instrucción + Interrupciones

F
Decodificación
Búsqueda de
de la Instrucción Operandos
INSTR OFF
Búsqueda de
Instrucción Write Back Ejecución
de la
Instrucción

INT
habilitadas?
NO SI
Procesamiento
INT
HAY
NO INT?
SI
¿Preguntas?

This Photo by Unknown Author is licensed under CC BY-SA-NC


Sistemas Operativos:
Introducción
Definición de Sistema Operativo
Sistemas Operativos: Definición

Podemos definir un Sistema Operativo (de ahora en más SO), como un


programa, o conjunto de programas de software que interactúan entre sí, y
que proporcionan un sistema informático, capaz de gestionar los recursos de
hardware de diferentes dispositivos, actuando como interface entre “la
máquina” y “los humanos”, proveyendo servicios de diferentes tipos (como
seguridad, interconectividad, etc.) y una plataforma apropiada para la
creación y ejecución de aplicaciones de usuario.

Esta definición… ¿Describe y representa en forma completa lo que


podríamos entender por SO?
Sistemas Operativos: Funciones

➔Administrar la ejecución de programas


➔Ser interfaz de usuario
¿Qué debería ➔Ser interfaz con los dispositivos
cumplir un SO?
➔Administrar la memoria
➔Administrar los dispositivos de E/S
➔Administrar los archivos
➔Comunicación entre programas
Sistemas Operativos: Capas del SO
Sistemas Operativos: Núcleo o Kernel

El núcleo o Kernel es el
parte Central del Sistema
Operativo, que tiene
Software
control sobre el hardware (Aplicaciones del usuario)
sobre el que éste se ejecuta.

Funciones Centrales
Kernel
✓Manejo y administración de
procesos
✓Administración de dispositivos
Procesador Otros
✓Administración de Memoria (CPU)
Memoria Discos
dispositivos
✓Manejo de interrupciones
✓Comunicación de Entrada/Salida
Sistemas Operativos: Modos de Ejecución

Modo Usuario: Modo en el


que se ejecutan las
aplicaciones de menor
privilegio

Modo Administrador
(Root / Kernel): Modo en el
que se ejecutan las
aplicaciones de mayor
privilegio
Sistemas Operativos: Cambio de Modo

¿Cómo puedo saber cuál PSW


es el modo de ejecución? (Program Status Word)

Cambio de Usuario a Cambio de Administrador


Administrador (User to Kernel) a Usuario (Kernel to User)
▪ Interrupción (de hardware) ▪ Instrucción privilegiada
▪ Llamada al sistema (Syscall) ▪ Restaurando contexto
– Interrupción de software
– Fast syscall
Sistemas Operativos: Llamadas al sistema

Llamadas al sistema “Syscalls” o


Wrappers
“System Calls”
▪ Solicitud realizada por un programa ▪ Son funciones programadas que
que se ejecuta en modo USUARIO utilizan las “syscalls” dentro de su
y necesita realizar una operación código para cumplir el mismo
que requiere privilegios propósito, pero son dependientes
administrativos (de “root”). del lenguaje en el que estén
implementadas.
Ej: File_object.write(str1) en Python, no es la real
Nota: Existen también syscalls conocidas “syscall” write(), sino que es una “función” que
como “Fast Syscalls” que serán similares a las envuelve (de ahí el nombre “wrapper”) el uso de
anteriores, pero no producirán bloqueos. la real syscall write().
Sistemas Operativos: Importancia de los
Modos de ejecución
Las aplicaciones pueden
acceder directamente a
controladores (drivers) de
dispositivos de E/S

VULNERABILIDAD
Sistemas Operativos: Tipos de Núcleo (Kernel)

Monolítico MicroKernel Multicapa


Sistemas Operativos: Tipos de Núcleo
(Ventajas y desventajas)

Monolítico MicroKernel Por capas

▪ Todo el kernel corre en un ▪ El kernel maneja sólo ▪ Kernel de Dijkstra (1968)


único programa interrupciones, procesos,
planificación e IPC ▪ Compuesto de múltiples
▪ Las aplicaciones de usuario capas, cada una con su
utilizan llamadas al sistema ▪ El modo usuario posee
para solicitar operaciones todas las demás funciones función
con privilegios elevados (incluyendo Drivers,
Programas de usuario, etc.) ▪ Comunicación entre capas
▪ Complejos en diseño y bajo el mismo nivel de
mantenimiento ▪ Un error en un servicio no privilegio
arriesga la estabilidad del
▪ Un error en el kernel, tira kernel
▪ Última capa (capa 5)
abajo el sistema completo
▪ Muy baja probabilidad de destinada a los programas
errores en el Kernel del usuario
¿Preguntas?

También podría gustarte