Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 1
Introducción a los Sistemas
Operativos
Unidad 1 14/11/2022 1
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 2
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 3
Sistemas Operativos Carrera de Software
1a. Definición
Unidad 1 14/11/2022 4
Sistemas Operativos Carrera de Software
Años sesenta:
(¿¿¿¿firmware????)
Deitel
Unidad 1 14/11/2022 5
Sistemas Operativos Carrera de Software
Definición a adoptar
A. Tanenbaum
Unidad 1 14/11/2022 6
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 7
Sistemas Operativos Carrera de Software
Pro
g ram
Sistema as Usuario final
Hardware
Programador
Operativo
Unidad 1 14/11/2022 8
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 9
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 10
Sistemas Operativos Carrera de Software
Sistema Operativo
• Responsable de
manejar recursos
• Funciona igual que
cualquier software de
computadora
– Programa que es
ejecutado
• Sistema operativo
cede el control del CPU
Unidad 1 14/11/2022 11
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 12
Sistemas Operativos Carrera de Software
Generación 0
Memoria
Central
Lector de Tarjetas
Consola Hardware
CAB
Unidad 1 14/11/2022 13
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 14
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 15
Sistemas Operativos Carrera de Software
Generación 1
Memoria
Central
Unidad 1 14/11/2022 16
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 17
Sistemas Operativos Carrera de Software
Generación 2
Memoria
Central
ajedrez
s3,t4
M. Archiv.
Interprete
CAB
Unidad 1 14/11/2022 18
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 19
Sistemas Operativos Carrera de Software
Monoprogramación
Tarea terminada
Activo
Fin E/S
Activación
Com. E/S
carga Espera
Bloqueado
por CPU
Unidad 1 14/11/2022 20
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 21
Sistemas Operativos Carrera de Software
Spooling
(Simultaneous Peripheral Operation On-Line)
Unidad 1 14/11/2022 22
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 23
Sistemas Operativos Carrera de Software
Multiprogramación
Tarea completada
Activo
Desactivación
Comienzo E/S
activación
carga
Espera E/S
bloqueado
descarga el CPU completada
Unidad 1 14/11/2022 24
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 25
Sistemas Operativos Carrera de Software
Tiempo Compartido
Unidad 1 14/11/2022 26
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 27
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 28
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 29
Sistemas Operativos Carrera de Software
• Ejecución de programas
• Acceso al sistema
Unidad 1 14/11/2022 30
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 31
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 32
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 33
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 34
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 35
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 36
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 37
Sistemas Operativos Carrera de Software
Sistemas Monolíticos
• Hasta ahora se considera como la
organización más común
• Todo el sistema operativo se ejecuta como
un solo programa en modo kernel.
• El sistema operativo se escribe como una
colección de procedimientos, enlazados
entre sí en un solo programa binario
ejecutable extenso.
Unidad 1 14/11/2022 38
Sistemas Operativos Carrera de Software
Sistemas Monolíticos
• Arquitectura básica
Procedimiento principal
Procedimientos
de servicio
Procedimientos
Auxiliares(utilitarios)
Unidad 1 14/11/2022 39
Sistemas Operativos Carrera de Software
Sistemas monolíticos
•Conformado por un solo
programa
•Diseño para los primeros
sistemas de computación
•No se tiene una estructura
•El sistema es una colección de
procedimientos
•No existe encapsulamiento de
información (módulos, packages,
clases)
•Se tiene un proc. Principal y un
conjunto de procedimientos para
servicios varios
Unidad 1 14/11/2022 40
Sistemas Operativos Carrera de Software
Estructura de MS-DOS
• MS-DOS escrito para proveer la máxima
funcionalidad en el mínimo espacio
– No dividido en módulos
– Aunque hay una cierta estructura, interfases y
niveles de funcionalidad no están bien
separados
Unidad 1 14/11/2022 41
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 42
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 43
Sistemas Operativos Carrera de Software
Capa Función
5 El operador
4 Programas de usuario
3 Gestión de Entrada/Salida
2 Comunicación operador-procesos
Unidad 1 14/11/2022 44
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 45
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 46
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 47
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 48
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 49
Sistemas Operativos Carrera de Software
Microkernel
• Con el diseño de capas, los diseñadores podían elegir en dónde
dibujar el límite entre kernel y usuario.
• Tradicionalmente todos las capas iban al kernel, pero eso no es
necesario.
• De hecho, puede tener mucho sentido poner lo menos que sea posible
en modo kernel, debido a que los errores en el kernel pueden paralizar
el sistema de inmediato.
Unidad 1 14/11/2022 50
Sistemas Operativos Carrera de Software
Microkernel
• Mueve la mayor parte de la funcionalidad del kernel
al espacio de usuario.
– Comunicación se da usando mensajes.
• Qué debe ir al kernel y qué al espacio de usuario?
– Funciones esenciales
• Procesos
• Espacio de direcciones, seguridad
• Interprocess communication (IPC), Threads
• Planificación
• Beneficios
– Más seguro (por qué)
– Más confiable
Unidad 1 14/11/2022 51
Sistemas Operativos Carrera de Software
Estructura de Microkernel
• Saca lo más que se pueda del kernel, para colocarlo en
espacio de “usuario”
• Comunicaciones se dan entre módulos de usuario, usando
paso de mensajes
• Beneficios:
– Más fácil extender el microkernel
– Más fácil portar el S.O. a nuevas arquitecturas
– Más confiable (menos código corre en modo de kernel)
– Más seguro
• Desventajas:
– Rendimiento reducido debido a las comunicaciones entre
espacio de usuario y de kernel
Unidad 1 14/11/2022 52
Sistemas Operativos Carrera de Software
Estructura de Mac OS X
Unidad 1 14/11/2022 53
Sistemas Operativos Carrera de Software
Módulos
• La mayoría de S.O. modernos implementan
módulos de kernel
– Enfoque orientado a objetos
– Cada componente central está separado
– Cada componente habla con los otros a través de
interfaces conocidas
– Cada módulo puede ser cargado de manera
independiente, de ser necesario
• En resumen, similar a las capas, pero más
flexible
Unidad 1 14/11/2022 54
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 55
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 56
Sistemas Operativos Carrera de Software
Modelo Cliente-Servidor
• Una ligera variación de la idea del
microkernel es diferenciar dos clases de
procesos:
– los servidores, cada uno de los cuales
proporciona cierto servicio, y
– los clientes, que utilizan estos servicios.
Unidad 1 14/11/2022 57
Sistemas Operativos Carrera de Software
Modelo Cliente-Servidor
• Núcleo mínimo:
– Gestión de las comunicaciones entre clientes y servidores
– Acceso directo al hardware
• Servidor:
– Proceso que espera peticiones de los clientes
• Es sencilla la adaptación a sistemas distribuidos
Cliente Servidor Servidor Cliente
Núcleo Núcleo Núcleo Núcleo
Red de
Comunicaciones
Unidad 1 14/11/2022 58
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 59
Sistemas Operativos Carrera de Software
Tipos de servidores
• Iterativos
– El servidor maneja la petición
– La petición del cliente puede ser atendida por el servidor
en un tiempo conocido y corto
– Ej: Servidor de la hora
• Concurrentes
– El servidor invoca a otro proceso que da el servicio
mientras el servidor duerme esperando otro cliente
– Arranca un nuevo proceso por cada cliente que llega
– No se sabe el tiempo que llevará servir la petición, ya que
la cantidad de tiempo requerido, depende de la petición.
Unidad 1 14/11/2022 60
Sistemas Operativos Carrera de Software
Cliente/Servidor
Unidad 1 14/11/2022 61
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 62
Sistemas Operativos Carrera de Software
Máquinas virtuales
• El corazón del sistema, que se conoce como monitor de
máquina virtual, se ejecuta en el hardware solamente y
realiza la multiprogramación, proporcionando no una, sino
varias máquinas virtuales a la siguiente capa hacia arriba.
• Sin embargo, a diferencia de otros sistemas operativos,
estas máquinas virtuales no son máquinas extendidas,
con archivos y otras características adecuadas.
• En vez de ello, son copias exactas del hardware,
incluyendo el modo kernel/ usuario, la E/S, las
interrupciones y todo lo demás que tiene la máquina real.
Unidad 1 14/11/2022 63
Sistemas Operativos Carrera de Software
Máquinas virtuales
• Máquina virtual:
– Hardware es simulado en software
– Todos los recursos se manejan como recursos virtuales
– Sistema operativo individual corriendo con recursos virtuales
– Provee una interfaz que esconde el hardware
– Crea la ilusión de varios procesos.
• Cada uno con su propio procesador y memoria
– Los recursos físicos son compartidos para crear las
máquinas vrituales
Unidad 1 14/11/2022 64
Sistemas Operativos Carrera de Software
Máquinas Virtuales
• Toman el enfoque por capas y lo llevan a su conclusión
lógica
• Tratan el HW y kernel del S.O. como si todo fuera HW
• La MV proporciona una interfaz idéntica a la del hardware
real
• S.O. crea la ilusión de múltiples procesos, c/u ejecutándose
en su propio procesador, con su propia memoria (virtual)
Unidad 1 14/11/2022 65
Sistemas Operativos Carrera de Software
Máquinas virtuales
• Se separan: Llamadas
al sistema
– Multiprogramación CMS CMS CMS
Instrucciones
– Máquina virtual VM/370 de E/S
– Multiprogramación
– Se ejecuta directamente sobre el hardware
– Ofrece varias máquinas virtuales
• CMS (conversational Monitor System)
– Cada máquina virtual puede tener cualquier S.O
– Tiene instrucciones normales para operaciones de E/S
• No es sencillo de simular
Unidad 1 14/11/2022 66
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 67
Sistemas Operativos Carrera de Software
Máquinas virtuales
Unidad 1 14/11/2022 68
Sistemas Operativos Carrera de Software
Arquitectura de VMware
Unidad 1 14/11/2022 69
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 70
Sistemas Operativos Carrera de Software
Exokernels
• Es un programa cuyo trabajo es asignar recursos a las
máquinas virtuales y después comprobar los intentos
de utilizarlos, para asegurar que ninguna máquina
trate de usar los recursos de otra.
• En vez de clonar la máquina actual, como se hace con
las máquinas virtuales, otra estrategia es particionarla;
– en otras palabras, a cada usuario se le proporciona un
subconjunto de los recursos.
– Así, una máquina virtual podría obtener los bloques de disco
del 0 al 1023, la siguiente podría obtener los bloques de
disco del 1024 al 2047 y así sucesivamente.
Unidad 1 14/11/2022 71
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 72
Sistemas Operativos Carrera de Software
Shell De Comandos
el
sh
e ll
Unidad 1 14/11/2022 73
Sistemas Operativos Carrera de Software
Shell De Comandos
• El shell o intérprete de órdeneso intérprete de comandos es
el programa informático que provee una interfaz de usuario
para acceder a los servicios del sistema operativo.
• Dependiendo del tipo de interfaz que empleen, los shells
pueden ser:
– De líneas texto (CLI, Command-Line Interface, interfaz de línea de
comandos),
– Gráficos (GUI, Graphical User Interface, interfaz gráfica de usuario),
– De lenguaje natural (NUI, Natural User Interface, interfaz natural de
usuario).
• Los shell son necesarios para invocar o ejecutar los distintos
programas disponibles en la computadora.
Unidad 1 14/11/2022 74
Sistemas Operativos Carrera de Software
Shell De Comandos
• El objetivo de cualquier intérprete de comandos es
ejecutar los programas que el usuario teclea en el
prompt del mismo.
• El prompt es una indicación que muestra el intérprete
para anunciar que espera una orden del usuario.
– Cuando el usuario escribe una orden, el intérprete ejecuta dicha
orden.
• En dicha orden, puede haber programas internos o
externos:
– Los programas internos son aquellos que vienen incorporados
en el propio intérprete, mientras que los externos son
programas separados (ej: aplicaciones de /bin,/usr/bin,...).
Unidad 1 14/11/2022 75
Sistemas Operativos Carrera de Software
Shell De Comandos
• En el mundo Linux/Unix existen tres grandes familias
de Shells como se muestra en la siguiente tabla.
Unidad 1 14/11/2022 76
Sistemas Operativos Carrera de Software
Shell De Comandos
Sintaxis de los comandos
Los comandos tienen la siguiente sintaxis:
# programa arg1 arg2 ... argn
Se observa que, en la “línea de comandos”, se introduce el programa seguido
de uno o varios argumentos. Así, el intérprete ejecutará el programa con las
opciones que se hayan escrito.
Cuando se quiere que el comando sea de varias líneas, se separa cada línea
con el carácter barra invertida (\). Además, cuando se quiere ejecutar varios
comandos en la misma línea, los separa con punto y coma (;). Por ejemplo:
# make modules; make modules_install
Unidad 1 14/11/2022 77
Sistemas Operativos Carrera de Software
Shell De Comandos
Sintaxis de los comandos
En los comandos, también se puede utilizar los
comodines:
El asterisco (*) es equivalente a uno o más
caracteres en el nombre de un archivo. Ejm: ls
*.c lista todos los archivos con extensión c.
El signo de interrogación (?) es equivalente a un único
carácter. Ejm: ls curso.te? lista el archivo curso.tex
completando el último carácter.
Un conjunto de caracteres entre corchetes es equivalente a
cualquier carácter del conjunto. Ejm: ls curso_linux.t[aeiou]x
lista curso_linux.tex seleccionando la e del conjunto.
Unidad 1 14/11/2022 78
Sistemas Operativos Carrera de Software
Shell De Comandos
Sintaxis de los comandos
Unidad 1 14/11/2022 79
Sistemas Operativos Carrera de Software
CLI
• Permite ingresar comandos directamente:
– Implementado en kernel o por programas del
sistema
– A veces, hay múltiples versiones: shells
– Principalmente, dedicado a leer comandos
del usuario, y ejecutarlos
• Los comandos pueden estar integrados, o pueden
ser nombres de programas
– En el segundo caso, se puede añadir nuevos comandos
sin cambiar el shell
Unidad 1 14/11/2022 80
Sistemas Operativos Carrera de Software
Syscall
Llamada al sistema
Unidad 1 14/11/2022 81
Sistemas Operativos Carrera de Software
Syscall
- Llamada: exec(“a.exe”)
- Almacenamiento de codigo de syscall en registro de la CPU
- Trap al Kernel
- Manejador de Traps reconoce la syscall
- Se llama al manejador especifico de la syscall (ej: function void
exec() )
- Retorno al control del usuario
Unidad 1 14/11/2022 82
Sistemas Operativos Carrera de Software
Trap
Interrupción
I/O
Syscall Detención Manejo Reanudación
TRAP Programa Trap Programa
Exception Actual Anterior
Time Slice
Unidad 1 14/11/2022 83
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 84
Sistemas Operativos Carrera de Software
Introducción
• Todas las computadoras modernas ofrecen varias
cosas al mismo tiempo.
• En cualquier sistema de multiprogramación, la
CPU conmuta de un proceso a otro con rapidez,
ejecutando cada uno durante décimas o
centésimas de milisegundos.
• En cualquier instante la CPU está ejecutando
sólo un proceso, y en el transcurso de 1 segundo
podría trabajar en varios de ellos, dando la
apariencia de un paralelismo.
Unidad 1 14/11/2022 85
Sistemas Operativos Carrera de Software
Concepto
• Un S.O. ejecuta una variedad de programas
– En sistemas por lotes se los denomina trabajos (job)
– En sistemas de tiempo compartido son programas
de usuario o tareas (task)
• En el libro, se usa los términos trabajo o
procesos de manera casi equivalente
• Proceso: un programa en ejecución; su
ejecución transcurre de manera secuencial
– Incluye:
• Contador del programa
• Pila
• Datos
Unidad 1 14/11/2022 86
Sistemas Operativos Carrera de Software
Proceso
• La idea clave es que un proceso es una actividad de
cierto tipo: tiene un programa, una entrada, una
salida y un estado.
• Varios procesos pueden compartir un solo procesador
mediante el uso de un algoritmo de planificación para
determinar cuándo se debe detener el trabajo en un
proceso para dar servicio a otro.
Unidad 1 14/11/2022 87
Sistemas Operativos Carrera de Software
Concepto de Proceso
• Proceso es un programa en ejecución
• Si el SO soporta múltiples procesos es porque
se implementa ….
– Pseudo-paralelismo
– Concurrencia
A A B C
A
Comp B B
Vista conceptual C
C Tiempo
Unidad 1 14/11/2022 88
Sistemas Operativos Carrera de Software
El Process Control Block, es una ficha que lleva el sistema operativo con
toda la información administrativa de un proceso.
Unidad 1 14/11/2022 89
Sistemas Operativos Carrera de Software
Desde el punto de vista del proceso, el Address Space es la única memoria existente en el
sistema, no pudiendo acceder a direcciones foráneas.
Unidad 1 14/11/2022 90
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 91
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 92
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 93
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Unidad 1 14/11/2022 94
Sistemas Operativos Carrera de Software
Creación de un proceso
Crear un proceso es la acción de poner en memoria un programa, entregarle un
contexto donde poder ejecutar sus instrucciones (Espacio Virtual), registrar la
información de donde está y que características posee (PCB), e iniciar su
funcionamiento (Calendarizar su ejecución).
• Opciones de ejecución:
• Concurrente
• Padre espera conclusión de hijo
Unidad 1 14/11/2022 95
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 96
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 97
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 98
Sistemas Operativos Carrera de Software
Unidad 1 14/11/2022 99
Sistemas Operativos Carrera de Software
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Terminación de procesos
• Una vez que se crea un proceso, empieza a
ejecutarse y realiza el trabajo al que está destinado.
• Sin embargo, nada dura para siempre, ni siquiera
los procesos. Tarde o temprano el nuevo proceso
terminará, por lo general debido a una de las
siguientes condiciones:
1. Salida normal (voluntaria).
2. Salida por error (voluntaria).
3. Error fatal (involuntaria).
4. Eliminado por otro proceso (involuntaria).
Terminación de procesos
1. Salida normal (ej.: cerrar una ventana de
windows)
2. Error voluntario (ej.: tratar de compilar un
programa que no existe)
3. Error fatal involuntario (ej.: división por cero,
llamada a memorias que no existen, etc.)
4. Terminado por otro proceso (ej.: kill,
TerminateProcess)
Terminación de un proceso
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Jerarquía de procesos
• En algunos sistemas, cuando un proceso
crea otro, el proceso padre y el proceso
hijo continúan asociados en ciertas formas.
• El proceso hijo puede crear por sí mismo
más procesos, formando una jerarquía de
procesos.
• Un proceso sólo tiene un padre, pero cero,
uno, dos o más procesos hijos.
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Estados de un proceso
A medida que
un proceso se
ejecuta,
cambia su
estado
Estados de un proceso
Modelo de estados
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Tabla de Procesos
0 1 2 Process Table3 4 5
Estado del Proceso Estado del Proceso Estado del Proceso Estado del Proceso Estado del Proceso Estado del Proceso
Parent Process ID Parent Process ID Parent Process ID Parent Process ID Parent Process ID Parent Process ID
Program Counter Program Counter Program Counter Program Counter Program Counter Program Counter
Límites de memoria Límites de memoria Límites de memoria Límites de memoria Límites de memoria Límites de memoria
Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Un bosquejo del código para la figura anterior. (a) Hilo despachador. (b) Hilo
trabajador.
Modelo Características
Hilos Paralelismo, llamadas al sistema con bloqueo
Proceso con un solo hilo Sin paralelismo, llamadas al sistema con bloqueo
Máquina de estados Paralelismo, llamadas al sistema sin bloqueo,
finitos interrupciones
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Aunque en ambos casos tenemos tres hilos, en la figura (a) cada uno de ellos opera
en un espacio de direcciones distinto, mientras que en la figura (b) los tres
comparten el mismo espacio de direcciones
Como cada hilo puede acceder a cada dirección de memoria dentro del espacio de
direcciones del proceso, un hilo puede leer, escribir o incluso borrar la pila de otro
hilo. No hay protección entre los hilos debido a que (1) es imposible y (2) no debe
ser necesario.
Elementos por proceso Elementos por hilo
Espacio de direcciones Contador de programa
Contador de programa Registros
Variables globales Pila
Archivos abiertos Estado
Procesos hijos
Alarmas pendientes
Señales y manejadores de señales
Información contable
La primera columna lista algunos elementos compartidos por todos los hilos en un
proceso; la segunda, algunos elementos que son privados para cada hilo.
Unidad 1 14/11/2022 134
Sistemas Operativos Carrera de Software
Hilo 1 Hilo 3
Proceso
Kernel
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Espacio
de
usuario
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Implementaciones híbridas
• Se han investigado varias formas de tratar de combinar las
ventajas de los hilos de nivel usuario con los hilos de nivel
kernel.
• Una de esas formas es utilizar hilos de nivel kernel y después
multiplexar los hilos de nivel usuario con alguno o con todos los
hilos de nivel kernel, como se muestra en la figura siguiente.
Varios hilos de usuario
en un hilo de kernel
Multiplexaje de
hilos del nivel
usuario sobre hilos Espacio de
usuario
del nivel kernel.
Espacio
Kernel Hilo de kernel de kernel
Implementaciones híbridas
• Con este método, el kernel está consciente sólo de
los hilos de nivel kernel y los planifica.
• Algunos de esos hilos pueden tener varios hilos de
nivel usuario multiplexados encima de ellos; los hilos
de nivel de usuario se crean, destruyen y planifican de
igual forma que los hilos de nivel usuario en un
proceso que se ejecuta en un sistema operativo sin
capacidad de multihilamiento.
• En este modelo, cada hilo de nivel kernel tiene algún
conjunto de hilos de nivel usuario que toman turnos
para utilizarlo.
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Mensaje entrante
Red
(a) (b)
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Contenido
• Estructura Del Sistema – Estados de un proceso
Operativo – Implementación de los procesos
– Sistemas Operativos – Modelación de la
Monolíticos multiprogramación
– Sistemas Operativos Por Capas • Hilos
– Microkernels/Exokernels – Uso de hilos
– Modelo Cliente-Servidor – El modelo clásico de hilo
– Máquinas Virtuales – Implementación de hilos en el
• Shell De Comandos. espacio de usuario
– Implementaciones hibridas
• Procesos – Hilos emergentes
– El modelo del proceso – Conversión de hilado simple a
– Creación de un proceso multihilo
– Terminación de procesos • Planificación Del Cpu
– Jerarquía de procesos
Administración
• El sistema operativo gestiona o administra
– El procesador
– La memoria principal
– La memoria secundaria
– Los perifericos
Monoprogramación
• Un solo programa en
memoria principal
– Hasta que este no
termina
– No comienza otro
• Un sistema operativo de
monoprogramación
– La memoria queda
parcialmente ocupada
– Cuando hay una Proceso 1
operación de E/S, el
procesador no se usa
– El programa en ejecución Memoria sin
ocupar
solo puede usar uno de
los periféricos
S.O.
Multiprogramación
• UNIX
– Introdujo el concepto de thread o hilo
• Un proceso puede descomponerse
– En distintas hebras o tareas
– Que se puede ejecutar “en paralelo”
• Concurrentemente
• Por ejemplo:
– Al usar Word se generan distintos hilos
– Cada uno con distintos objetivos
T5
S.O.
T3 E/S T
T25 T3
T
T253
T2 T
T6565
CPU ociosa 35,7%
t
9 19 28
Multiprogramación: Ejecución simultánea de trabajos
T5 S.O.
UCP T2
T1, T2,
T3 IT5 T3
T2
T3 T3, T4,
T2 T5 T5, T6
t
15 1718
Unidad 1 14/11/2022 158
Sistemas Operativos Carrera de Software
MULTIPROGRAMACION Y PLANIFICACION
• El S.O.
– Carga en memoria
principal un
programa
• El planificador de
trabajos
– Asigna el
procesador a un
proceso
– Aprovechandolo al
maximo
• Existiran varios
trabajos
– Cargados en
memoria al mismo
tiempo
Multiprog. No apropiativo
• Desde el punto de vista del S.O.
• No Apropiativo
– El S.O. no se apropia del procesador
– Y permite a un proceso ser atendido hasta
• Termina o
• Se bloquea por usar un periferico o
• El mismo proceso llama a otro proceso
Multiprog. Apropiativo
• El S.O. puede apropiarse del procesador
– Cuando lo necesite
– Para dar paso a otro proceso que ya este preparado
• El S.O. detiene la ejecución de un proceso
– De acuerdo a algun criterio preestablecido
– Por ejemplo: mayor prioridad
• Windows 95/98, NT, OS/s, Unix y Linux lo usan
Cambio de contexto
• El cambio de contexto es una labor administrativa del sistema operativo que consume
tiempo de CPU. Durante este tiempo, ningún proceso esta en ejecución por lo que se
considera overhead en la administración de procesos.
• Syscall yield, que solicita al SO que este proceso sea colocado en la ready list.
Cambio de contexto
Cambio de
Cambio de
Contexto
Contexto
Scheduler
Proc1
Proc2
Respaldo
Restauración
quanto
Scheduler - Introducción
Scheduler (Calendarizador)
Componente del sistema operativo que decide cual de los procesos que esta en estado ready
es el que entrara a la CPU. Su decisión es basada según el sistema que este administrando y
es resuelta por los Algoritmos de Calendarización.
P3
P2 P4
P1 P5
Scheduler
P6
CPU
Scheduler - Introducción
Dedicados al cómputo
Dedicados al I/O
Con el tiempo, a haber avanzado más rápido la velocidad de las CPU que la de los
dispositivos de I/O, la calendarización de procesos dedicados al I/O ha cobrado mayor
importancia.
Scheduler - Introducción
Cuándo Calendarizar
• Proceso bloquea por I/O listo: entrar el proceso que paso de bloqueado a listo?
Entrar al proceso interrumpido? Un tercer proceso?
Scheduler - Introducción
Tipos de calendarización
No Expropiativo: una vez que inicia un proceso, lo deja correr hasta que termina, realiza
I/O o queda a la espera de otro proceso.
Scheduler - Introducción
Objetivos de la calendarización
Sistemas Interactivos
Tiempo de respuesta – responder rápido a las solicitudes
Proporcionalidad – satisfacer las expectativas de todos los usuarios
Scheduler - Introducción
Definiciones
Rendimiento: número de trabajos que el sistema termina por hora (ceteris paribus)
Tiempo de retorno: promedio estadístico del tiempo que transcurre entre que se
presenta un trabajo por lotes y el momento q termina.
Starvation: situación en la cual un proceso se le niega el acceso a un recurso de forma
sistemática, sin que este pueda acceder a él nunca.
Scheduler - Introducción
Calendarización en 3 niveles
Scheduler De CPU – Corto Plazo
Determina que proceso en entra a la
Proceso
Corriendo CPU CPU. Puede utilizar cualquier método
expropiativo o no. Pieza que se le
conoce como scheduler.
Nuevo
Trabajo Proceso
Listo para correr
Proceso
swapeado
RAM
Disco
Scheduler De Admision – Largo Plazo
Determina una combinación de procesos
óptima (CPU – I/O, duracion, etc)
Scheduler De Memoria – Mediano Plazo
Determina que procesos son mantenidos en RAM y cuales
swapeados a disco. Determina el grado de múltiprogramacion (cant
de procesos). Toma su decisión basado por ejemplo en:
- Cuanto hace que el proceso se swapeo a disco?
- Cuanto tiempo de CPU ha tenido últimamente?
- Que tan grande es el proceso?
- Que tan importante?
Algoritmos de planificación
• ¿Cómo escoger cual proceso atender?
• Hay varios algoritmos
1. El primero en llegar, primer en ejecutarse (FIFO)
2. El mas corto primero (SJF)
3. El tiempo restante mas corto (SPN)
4. Round Robin
5. Por prioridad Calendarización en sistemas por lotes
6. Por política
Scheduling en sistemas por lotes
CPU
CPU
4 1 12 8 2 12 CPU
12 12 8 4 2 1 CPU
FIFO 4 1 12 8 2 12 CPU
SJF 12 12 8 4 2 1 CPU
12 12 8 CPU
12 12 8 4 CPU
4 Round Robin
• Por turno
• Consiste en darle a cada proceso un tiempito
• Cuando se vence ese intervalo se efectúa un
“cambio de contexto”
– Se copia el proceso a un lugar seguro y se le da su
turno a otro proceso
• Los procesos están ordenados en una cola
circular
• Es un algoritmo simple, justo y no provoca
aplazamiento indefinido
4 Round Robin
Turno Circular – Round Robin
Proc1
Proc2
Tiempo labores
administrativas
4 Round Robin
Turno Circular – Round Robin
5 Por prioridad
Por Prioridades
P7 P1 P4 P10 CPU
5 Por prioridad
Por Prioridades
P2
P3
6 Por política
Calendarización Garantizada
TiempoEjecucion = relación
TiempoReal
6 Por política
Calendarización por lotería
A B
6 Por política
Calendarización por porcion equitativa
Si 2 usuarios tienen la misma prioridad ante el sistema, entonces sin importar la cantidad
de procesos que tenga cada uno, se deberá entregar el 50% de la CPU a cada usuario.
Ejecucion: A Z B Z C Z D Z A Z ….
Por otra parte, si existe diferencia de prioridad entre estos, también se puede modelar.
Supóngase que el usuario 1 ahora tiene 3 veces mas prioridad que el usuario 2:
Ejecucion: A B C Z D A B Z …
EJERCICIO: PLANIFICADOR
• Llene la siguiente tabla
• Usando :
– FCFS,
– ROUND ROBIN,
– SPN Intrusivo y
– SPN No Intrusivo
Procesos Tiempo Tiempo Tiempo Tiempo Tiempo Tiempo de
de de de Inicio de Fin de Normalized
Arribo Servicio Turnaround Turnaround
1 0 3
2 2 6
3 3 5
4 5 4
5 7 3
FCFS
Arribo Servicio
1 0 3
2 2 6
3 3 5
4 5 4
5 7 3
P5
P4
P3
P2
P1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
P5
P4
P3
P2
P1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Unidad 1
Introducción a los Sistemas
Operativos
Final de la unidad
Unidad 1 14/11/2022 190