Está en la página 1de 190

Sistemas Operativos Carrera de Software

Unidad 1
Introducción a los Sistemas
Operativos

Unidad 1 14/11/2022 1
Sistemas Operativos Carrera de Software

Objetivo general de la Unidad 1

Identificar los conceptos básicos, arquitectura, comandos


básicos, manejo de procesos e hilos de los sistemas
operativos.

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

De alguna manera, los sistemas operativos son


como basureros llenos de todo tipo de material
aparentemente extraño e incoherente, al que
el usuario debe darle sentido

Windows 95 para Dummies

Unidad 1 14/11/2022 4
Sistemas Operativos Carrera de Software

Los años sesenta

Años sesenta:

El software que controla al hardware

(¿¿¿¿firmware????)

Deitel
Unidad 1 14/11/2022 5
Sistemas Operativos Carrera de Software

Definición a adoptar

El programa fundamental de todos los


programas de sistemas es el sistema operativo,
que controla todos los recursos de la
computadora y proporciona la base sobre la
cual pueden escribirse los programas de
aplicación

A. Tanenbaum

Unidad 1 14/11/2022 6
Sistemas Operativos Carrera de Software

¿Qué es un Sistema Operativo?


• Es un conjunto de programas que actúan como
intermediarios entre el usuario, los programas y
el hardware de un computador
– Un programa que controla la ejecución de los
programas de aplicación.
• Su tarea es proveer una interfaz de alto nivel
para los recursos de hardware de bajo nivel,
tales como el CPU, la memoria y los dispositivos
de entrada salida
– Una interfase entre aplicaciones y hardware.

Unidad 1 14/11/2022 7
Sistemas Operativos Carrera de Software

¿Qué es un Sistema Operativo?

Pro
g ram
Sistema as Usuario final

Hardware

Programador
Operativo

Unidad 1 14/11/2022 8
Sistemas Operativos Carrera de Software

¿Qué es un Sistema Operativo?


• El objetivo principal de un sistema
operativo es lograr que el sistema de
computación se use de manera más
sencilla
• El objetivo secundario es que el hardware
del computador se emplee de manera
eficiente

Unidad 1 14/11/2022 9
Sistemas Operativos Carrera de Software

Los sistemas operativos

• Colección de programas que se encarga de


administrar recursos

instrucción proceso recursos asignados recursos necesarios


• Tiene cuatro funciones:
– Llevar un estatus de los programas o procesos que están
utilizando
– Definir políticas de asignación/reclamación de recursos
– Asignar el recurso
– Reclamar el recursos

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

Historia de los Sistemas Operativos


• Generación 0: No había S.O.
– Las máquinas se operaban desde consolas con
cables
– El panel de switchs controlaba el Cargador Binario
– La salida era impresa en tarjetas perforadas
– Un solo usuario, un solo programa, interactivo
– Cuando las luces paraban de parpadear, el trabajo
estaba listo
– Se tenía que reservar tiempo de máquina
– El usuario debía conocer todos los detalles del
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

Historia de los Sistemas Operativos


• Generación 0: No había S.O.
– ¡El cambio entre trabajos causaba un
cantidad inaceptable de demora!

Unidad 1 14/11/2022 14
Sistemas Operativos Carrera de Software

Historia de los Sistemas Operativos


• Generación 1: Monitores
– Programas para optimizar la operación
– Los operadores eran ayudados por los
monitores
– Los monitores usaban un cambio
automatizado de trabajos
– Había tarjetas de control

Unidad 1 14/11/2022 15
Sistemas Operativos Carrera de Software

Generación 1

Memoria
Central

Consola Hardware MONITOR

CAB Lector de Tarjetas

Unidad 1 14/11/2022 16
Sistemas Operativos Carrera de Software

Historia de los Sistemas Operativos


• Generación 2: Interprete de Comandos
– Los Monitores crecieron hasta convertirse en
interpretes de comandos
– Los interpretes de comandos ocultaban la
verdadera implementación de hardware
– Ya se utilizaban consolas (especie de
teclados) para ingresar la información

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

Historia de los Sistemas Operativos


• Generación 2: Interprete de Comandos
– Con la línea de comandos se dio otra
revolución, la idea del Manejo de Archivos
• Organiza los datos en el disco
• Oculta los detalles del hardware de
almacenamiento
• Nos da la Idea de Archivos y Directorios

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

E/S fuera de línea


• Las CPU eran muy caros
• Los dispositivos de entrada a salida eran
lentos
• El CPU recibía la información de cintas
• Luego de las cintas se pasaba a otro medio

Unidad 1 14/11/2022 21
Sistemas Operativos Carrera de Software

Spooling
(Simultaneous Peripheral Operation On-Line)

El spooling sobrelapa la ejecución de varios trabajos


de E/S para algunos trabajos

Unidad 1 14/11/2022 22
Sistemas Operativos Carrera de Software

Historia de los Sistemas Operativos


• Generación 3: Multiprogramación
– La gente eficiente puede trabajar en varias cosas al
“mismo tiempo” al repartirlas de manera alternada
– Algunos programas deben de estar en memoria
principal
• Necesitamos manejo de memoria
– El CPU trabaja de manera alternada entre diferentes
programas
• Necesitamos algo que planifique el uso del CPU
– Los programas estan protegidos unos de otros

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

Historia de los Sistemas Operativos


• Generación 4: Tiempo Compartido
– Una variedad de multiprogramación
– Se cambia rápidamente entre tareas
– El usuario interactúa vía terminales
– Protección entre usuarios
– Usado desde 1970

Unidad 1 14/11/2022 25
Sistemas Operativos Carrera de Software

Tiempo Compartido

Unidad 1 14/11/2022 26
Sistemas Operativos Carrera de Software

Historia de los Sistemas Operativos


• Generación 5: S.O. de Tiempo Real
– Los procesos se deben de realizar en tiempo
definido o el sistema falla
– El Hardware tiene que ser confiable y
tolerante de fallas
– Los programas se almacenan en ROM

Unidad 1 14/11/2022 27
Sistemas Operativos Carrera de Software

Historia de los Sistemas Operativos


• Generación 5: S.O. de Tiempo Real
– Sistemas de Control Industrial
– Sistemas de Imágenes Médicas
– Sistemas de Switcheo y Cobro Telefónico
– Sistemas de inyección de combustible
– Frenos ABS, Air bag
– Sistemas de vuelo

Unidad 1 14/11/2022 28
Sistemas Operativos Carrera de Software

Historia de los Sistemas Operativos


• Generación 6?: S.O. Personal
– Utiliza todos los desarrollos anteriores, pero
aplicados a las computadoras personales

Unidad 1 14/11/2022 29
Sistemas Operativos Carrera de Software

Funciones del Sistema Operativo


• Desarrollo de programas
– Editores y debuggers

• Ejecución de programas

• Acceso a dispositivos de E/S

• Acceso controlado a archivos

• Acceso al sistema

Unidad 1 14/11/2022 30
Sistemas Operativos Carrera de Software

Funciones del Sistema Operativo


• Detección de errores y respuesta
– Errores internos y externos de hardware
• Error de memoria
• Errores de dispositivos
– Errores de software
• Errores aritméticos (overflow, div por cero)
• Acceso no permitido a ubicaciones de memoria
– Requerimientos no permitidos de las
aplicaciones

Unidad 1 14/11/2022 31
Sistemas Operativos Carrera de Software

Funciones del Sistema Operativo


• Estadísticas
– Uso de recursos
– Monitores de rendimiento
– Usadas para anticipar futuras mejoras
– Usadas para prioridades

Unidad 1 14/11/2022 32
Sistemas Operativos Carrera de Software

Servicios del Sistema Operativo


• Hay servicios del S.O. que proporciona funciones útiles
para el usuario:
– Interfaz de usuario – Presente en casi todos los S.O.
• Puede ser de línea de comando (CLI), gráfica (GUI) o por lotes
– Ejecución de programas – El sistema debe ser capaz de cargar
un programa en memoria, y de ejecutar ese programa
• También, indicar si ocurren errores
– Operaciones de E/S – Un programa en ejecución puede
requerir E/S, ya sea de un archivo o de un dispositivo de E/S
– Manipulación de sistemas de archivos – Los programas
necesitan leer y escribir archivos y directorios, crearlos y
eliminarlos, buscar algo en ellos, listar sus contenidos, manejo
de permisos

Unidad 1 14/11/2022 33
Sistemas Operativos Carrera de Software

Servicios del Sistema Operativo (Cont.)


• Hay servicios del S.O. con funciones útiles para el usuario
(cont.):
– Comunicaciones – Procesos intercambian información, en la
misma PC o a través de la red
• Dos alternativas: memoria compartida o por paso de mensajes
(paquetes enviados/recibidos por el S.O.)
– Detección de errores – El S.O. necesita estar consciente de los
errores posibles
• Pueden ocurrir en CPU, memoria, dispositivos de E/S, programas de
usuario
• Para cada tipo de error, el S.O. debe tomar la medida adecuada para
asegurar una computación correcta y consistente
• Mecanismos de debugging mejoran las habilidades del usuario y
programador para usar el sistema eficientemente

Unidad 1 14/11/2022 34
Sistemas Operativos Carrera de Software

Servicios del Sistema Operativo (Cont.)


• Hay funciones del S.O. que existen para asegurar la operación eficiente del
sistema, a través de compartir recursos:
– Asignación de recursos – a usuarios o trabajos simultáneos
• Ciertos recursos usan códigos de asignación especializados: ciclos
del CPU, memoria, almacenamiento
• Otros recursos usan código estándar para pedir/liberar: E/S
– Contabilidad – Llevar control de qué usuarios usan cuántos y qué tipos
de recursos
– Protección y seguridad – Los dueños de la info. almacenada en un
sistema multi-usuario o una comp. en red, desean poder controlar el
uso de la misma; procesos concurrentes no deben interferir entre sí
• Protección: asegurar que el acceso a los recursos del sistema esté
controlado
• Seguridad: autenticación, etc.
• A chain is only as strong as its weakest link

Unidad 1 14/11/2022 35
Sistemas Operativos Carrera de Software

Clasificación de los Sistemas Operativos


• Administración de Tareas
– Monotarea: un programa al mismo tiempo.
– Multitarea: varios programas al mismo tiempo.
• Administración de usuarios:
– Monousuario: atiende un usuario al mismo tiempo
– Multiusuario: atiende varios usuarios al mismo tiempo
• Manejo de Recursos:
– Centralizado: Utiliza los recursos de un solo computador
– Distribuido: Utiliza los recursos de más de un computador al mismo tiempo
• Manejo de Procesador:
– MonoProcesador: Puede manejar solamente un procesador del computador
– MultiProcesador: Puede distribuir la carga de trabajo entre dos o más
procesadores.

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

Estructura de sistemas operativos


• 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
• UNIX, la versión original tenía una funcionalidad
limitada
– El sistema operativo consistía de dos partes: Programas de
sistema y el kernel
– Kernel
• Todo lo que está sobre la capa física
• Manejo de memoria, planificación de CPU, manejo de archivos

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

Sistemas por capas


• Una generalización del diseño monolítico es organizar el
sistema operativo como una jerarquía de capas, cada
una construida encima de la que tiene abajo.
• S.O. The (Dijkstra 1968)

Capa Función

5 El operador

4 Programas de usuario

3 Gestión de Entrada/Salida

2 Comunicación operador-procesos

1 Gestión de la memoria principal y secundaria

0 asignación del procesador y multiprogramación

Unidad 1 14/11/2022 44
Sistemas Operativos Carrera de Software

Sistemas por capas


• Organización en una jerarquía de capas.
• La capa n+1 usa (exclusivamente) los servicios
provistos por la capa n.
• En ocasiones (optimización) la capa n+1 puede
acceder a capas n-k directamente.
• Fácil de extender.
• Una llamada podría propagarse a través de varias
capas

Unidad 1 14/11/2022 45
Sistemas Operativos Carrera de Software

Enfoque por Capas


• S.O. se divide en un # de
capas (niveles), c/u
construida sobre las capas
inferiores
• La capa inferior (0) es el HW
• La capa más alta (capa N)
es la IU
• Con modularidad, las capas
se seleccionan de tal
manera que usen funciones
(operaciones)
proporcionadas únicamente
por las capas inferiores

Unidad 1 14/11/2022 46
Sistemas Operativos Carrera de Software

Sistemas por capas

Unidad 1 14/11/2022 47
Sistemas Operativos Carrera de Software

Sistemas por capas

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

Enfoque Modular de Solaris

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

Cliente Cliente Servidor Servidor .... Servidor


Núcleo

• 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

Funcionamiento del modelo C/S


• El proceso servidor comienza
• Se va a dormir en espera de una petición
• El proceso cliente comienza
• El cliente envía una petición
• El servidor procesa la petición
• El servidor se va de nuevo a dormir
• Ej de servicios que proporcionan los servidores:
– Hora del día
– Imprimir un fichero
– Leer o escribir en su sistema de ficheros
– Ejecutar una orden para el cliente en el sistema del servidor
– Dibujar algo en la pantalla servida por el servidor

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

• VM (Virtual Machine) hardware del 370

– 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

Máquinas Virtuales (Cont.)

Non-virtual Machine Virtual Machine

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

Ventajas y Desventajas de máquinas


virtuales
• La MV provee protección completa.
– Cada mv está aislada de las demás
– Sin embargo, esto no permite compartir recursos
• Estupendo para investigación
– No se afecta el funcionamiento normal del sistema operativo
del computador
• Difícil de implementar
– Copia exacta del hardware
• Conoces alguna máquina virtual?

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 órdenes​o 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.

Tipo de Shell Shell estándar Clones libres


AT&T Bourne shell sh ash, bash, bash2
Berkeley "C" shell csh tcsh
AT&T Korn shell ksh pdksh, zsh
Otros interpretes -- esh, gush, nwsh

• Estas se diferencian entre sí básicamente en la


sintaxis de sus comandos y en la interacción con el
usuario

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

Mecanismo utilizado por una


aplicación de usuario para
solicitar un servicio al sistema
operativo.
Provoca que cambie el modo
de ejecucion del SO desde
usuario a kernel (o modo
sistema).

Unidad 1 14/11/2022 81
Sistemas Operativos Carrera de Software

Syscall

Ejemplo de llamada: exec

- 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

Interrupción (también conocida como interrupción de hardware) es una


señal recibida por el procesador de un ordenador, indicando que debe
"interrumpir" el curso de ejecución actual y pasar a ejecutar código
específico para tratar esta situació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

Process Control Block (PCB)

El Process Control Block, es una ficha que lleva el sistema operativo con
toda la información administrativa de un proceso.

Estado del Proceso


Permite conocer con exactitud el estado del
Process ID
proceso, en que parte de su código se está
Parent Process ID
ejecutando, cual es su número identificador,
Program Counter
cuanta memoria tiene asociada, cuales
Registros
archivos están abiertos, etc.
Límites de memoria

Listado de archivos abiertos

Unidad 1 14/11/2022 89
Sistemas Operativos Carrera de Software

Espacio de Direcciones(Address Space)


El espacio de direcciones es el espacio en memoria asignado al proceso. Aquí se
encuentra el código del proceso y los datos que este utiliza.

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.

En el caso de sistemas sin paginación, el espacio de direcciones no puede ser particionado en


páginas, y ser cargado por partes o llevado parcialmente a swap; resultando en que el bloque
de memoria esta realmente presente ya sea en RAM o disco.

Address Space Cuando se tiene paginación, entonces el


Código espacio de direcciones es dividido en páginas,
y resultando en que no todo este en RAM,
Datos sino solo una porción. A este concepto de un
espacio que realmente no esta por completo
Stack ni en memoria, ni en disco; se le denomina
Espacio de Direcciones Virtual.
Registros

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

El modelo del proceso


• Es difícil para las personas llevar la cuenta de
varias actividades en paralelo.
• Los diseñadores de sistemas operativos han
evolucionado con el paso de los años a un modelo
conceptual llamado Modelo de procesos
secuenciales que facilita el trabajo con el
paralelismo.
• Todo el software ejecutable en la computadora, que
algunas veces incluye al sistema operativo, se
organiza en varios procesos secuenciales.

Unidad 1 14/11/2022 92
Sistemas Operativos Carrera de Software

El modelo del proceso


Programa
Conjunto de instrucciones, código. Elemento pasivo.
Proceso
Programa en ejecución. (Ente dinámico). Un programa puede levantar varios
procesos. Tiene asociado un espacio de direcciones.

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

• Opciones del Address Space


• Hijo es un duplicado del padre
• Hijo tiene un programa separado para cargarse

• Pasos para la creación de un proceso


• Cargar el código a la memoria
• Crear el stack vacío
• Crear o asignar PCB
• Inscribir el proceso en el scheduler

Unidad 1 14/11/2022 95
Sistemas Operativos Carrera de Software

Creación de un proceso (Cont.)


• Los sistemas operativos necesitan cierta
manera de crear procesos.
• En sistemas muy simples o sistemas diseñados
para ejecutar sólo una aplicación es posible
tener presentes todos los procesos que se
vayan a requerir cuando el sistema inicie.
• No obstante, en los sistemas de propósito
general se necesita cierta forma de crear y
terminar procesos según sea necesario durante
la operación.

Unidad 1 14/11/2022 96
Sistemas Operativos Carrera de Software

Creación de Procesos (Cont.)


• Proceso padre crea procesos hijos, quienes, a
su vez, pueden crear otros procesos,
formando un árbol de procesos
• Compartiendo recursos
– Padres e hijos pueden compartir todos, algunos o
ninguno de sus recursos
• Ejecución
– Padre e hijos pueden ejecutarse concurrentemente
– Padre puede esperar a que hijo termine

Unidad 1 14/11/2022 97
Sistemas Operativos Carrera de Software

Creación de Procesos (Cont.)


• Existen cuatro eventos principales que
provocan la creación de procesos:
1. El arranque del sistema.
2. La ejecución, desde un proceso, de una
llamada al sistema para creación de
procesos.
3. Una petición de usuario para crear un
proceso.
4. El inicio de un trabajo por lotes

Unidad 1 14/11/2022 98
Sistemas Operativos Carrera de Software

Creación de Procesos (Cont.)


• Espacio de direcciones
– Hijo puede ser un duplicado del padre
– Se puede cargar un nuevo programa en hijo
• Ejemplos de UNIX
– fork: llamada de sistema que crea un nuevo
proceso
– exec: llamada de sistema usada luego de
fork para reemplazar el espacio de memoria
de un nuevo proceso con un nuevo programa

Unidad 1 14/11/2022 99
Sistemas Operativos Carrera de Software

Creación de Procesos (Cont.)

Unidad 1 14/11/2022 100


Sistemas Operativos Carrera de Software

Creación de Procesos en POSIX

Unidad 1 14/11/2022 101


Sistemas Operativos Carrera de Software

Creación de Procesos en Win32

Unidad 1 14/11/2022 102


Sistemas Operativos Carrera de Software

Creación de Procesos en Java

Unidad 1 14/11/2022 103


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 104


Sistemas Operativos Carrera de Software

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).

Unidad 1 14/11/2022 105


Sistemas Operativos Carrera de Software

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)

Unidad 1 14/11/2022 106


Sistemas Operativos Carrera de Software

Terminación de un proceso

Finalización Normal (Voluntario) Espacio de usuario


El programa concluye su ejecución como se if(variable > 0)
espera, sin errores que reportar. exit(0);

Finalización con Error Voluntario


(Voluntario) Espacio de usuario
El programa entregando un error, siguiendo los
if(variable > 0)
procedimientos establecidos por el
exit(1);
programador.

Error Fatal (Involuntario)


Espacio de usuario
El sistema detecta un error fatal en el
programa y termina su ejecución. a = 1234 / 0;
(División por cero, acceso indebido a memoria,
etc)

Terminación Forzada (Involuntario) Espacio de KERNEL


Otro proceso con mayor autoridad cierra el kernel->currentThread->yield(true);
proceso actual. Función administrativa.

Unidad 1 14/11/2022 107


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 108


Sistemas Operativos Carrera de Software

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.

Unidad 1 14/11/2022 109


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 110


Sistemas Operativos Carrera de Software

Estados de un proceso

A medida que
un proceso se
ejecuta,
cambia su
estado

Nuevo / New: proceso recién creado


Corriendo / Running: proceso en ejecución
Bloqueado / Waiting: proceso en espera de un evento (I/O)
Listo / Ready : proceso listo para entrar a la CPU (esperando en cola)
Terminado / Terminated: proceso que ha terminado su ejecución

Unidad 1 14/11/2022 111


Sistemas Operativos Carrera de Software

Estados de un proceso

Procesos Suspendidos (Swap)

Listo y suspendido: Proceso swapeado listo para entrar a la CPU


Bloqueado y suspendido: Proceso swapeado Bloqueado (Esperando I/O)

Unidad 1 14/11/2022 112


Sistemas Operativos Carrera de Software

Modelo de estados

Unidad 1 14/11/2022 113


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 114


Sistemas Operativos Carrera de Software

Implementación de los procesos


• Para implementar el modelo de procesos, el sistema
operativo mantiene una tabla llamada tabla de
procesos con sólo una entrada por cada proceso.

Unidad 1 14/11/2022 115


Sistemas Operativos Carrera de Software

Tabla de Procesos

La tabla de procesos, es una estructura en memoria que contiene la ubicación de


los PCB de todos los procesos del sistema. A través de esta, el kernel puede
conocer el estado de cada proceso, saber en parte de la memoria se encuentra, etc.

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

Process ID Process ID Process ID Process ID Process ID Process ID

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

Registros Registros Registros Registros Registros Registros

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

Unidad 1 14/11/2022 116


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 117


Sistemas Operativos Carrera de Software

Modelación de la multiprogramación (1)


• Cuando se utiliza la multiprogramación, el uso de la CPU se puede
mejorar.
– Si el proceso promedio realiza cálculos sólo 20 por ciento del tiempo que
está en la memoria, con cinco procesos en memoria a la vez la CPU
deberá estar ocupada todo el tiempo.
– Sin embargo, este modelo es demasiado optimista, ya que supone que los
cinco procesos nunca estarán esperando la E/S al mismo tiempo.
• Un mejor modelo es analizar el uso de la CPU desde un punto de
vista probabilístico.
– Suponga que un proceso gasta una fracción p de su tiempo esperando a
que se complete una operación de E/S.
– Con n procesos en memoria a la vez, la probabilidad de que todos los n
procesos estén esperando la E/S (en cuyo caso, la CPU estará inactiva) es
pn.
– Entonces, el uso de la CPU se obtiene mediante la fórmula
Uso de la CPU = 1 - pn

Unidad 1 14/11/2022 118


Sistemas Operativos Carrera de Software

Modelación de la multiprogramación (2)

Uso de la CPU como una función de número de procesos en memoria (n), a lo


cual se le conoce como el grado de multiprogramación.

Unidad 1 14/11/2022 119


Sistemas Operativos Carrera de Software

Modelación de la multiprogramación (3)


• La figura deja claro que, si los procesos gastan 80 por
ciento de su tiempo esperando las operaciones de E/S, por
lo menos debe haber 10 procesos en memoria a la vez
para que el desperdicio de la CPU esté por debajo de 10%.
• Cuando nos damos cuenta de que un proceso interactivo,
que espera a que un usuario escriba algo en una terminal,
está en un estado de espera de E/S, debe estar claro que
los tiempos de espera de E/S de 80 por ciento o más no
son poco comunes.
• Pero incluso en los servidores, los procesos que realizan
muchas operaciones de E/S en disco tendrán a menudo
este porcentaje o más.

Unidad 1 14/11/2022 120


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 121


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 122


Sistemas Operativos Carrera de Software

Un procesador de textos con tres hilos


• Con tres hilos, el modelo de programación es mucho
más simple. El primer hilo interactúa sólo con el
usuario, el segundo proceso vuelve a dar formato al
documento cuando se le indica y el tercero escribe el
contenido de la RAM al disco en forma periódica

Unidad 1 14/11/2022 123


Sistemas Operativos Carrera de Software

Un servidor Web con múltiples hilos

Unidad 1 14/11/2022 124


Sistemas Operativos Carrera de Software

Un servidor Web con múltiples hilos


• El hilo despachador, lee las peticiones
entrantes de trabajo de la red.
• Después de examinar la solicitud, selecciona un
hilo trabajador inactivo (es decir, bloqueado) y
le envía la solicitud, tal vez escribiendo un
apuntador al mensaje en una palabra especial
asociada con cada hilo.
• Después, el despachador despierta al trabajador
inactivo y lo pasa del estado bloqueado al
estado listo.

Unidad 1 14/11/2022 125


Sistemas Operativos Carrera de Software

Un servidor Web con múltiples hilos


• Se muestra un bosquejo del código

while (TRUE) while (TRUE) {


{ obtener_siguiente_peticion(&buf); esperar_trabajo(&buf)
pasar_trabajo(&buf); buscar_pagina_en_cache(&buf,&pagina);
} if (pagina_no_esta_en_cache(&pagina))
leer_pagina_de_disco(&buf, &pagina);
devolver_pagina(&pagina);
}
(a) (b)

Un bosquejo del código para la figura anterior. (a) Hilo despachador. (b) Hilo
trabajador.

Unidad 1 14/11/2022 126


Sistemas Operativos Carrera de Software

Tres formas de construir un servidor

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

Unidad 1 14/11/2022 127


Sistemas Operativos Carrera de Software

Tres formas de construir un servidor


• Los hilos posibilitan el concepto de procesos secuenciales
que realizan llamadas al sistema con bloqueo (por
ejemplo, para la E/S de disco) y de todas formas logran un
paralelismo.
• Las llamadas al sistema con bloqueo facilitan el proceso
de programación y el paralelismo mejora el rendimiento.
• El servidor de un solo hilo retiene la simpleza de las
llamadas al sistema con bloqueo, pero pierde rendimiento.
• El tercer método logra un alto rendimiento a través del
paralelismo, pero utiliza llamadas e interrupciones sin
bloqueo y por ende, es difícil de programar.

Unidad 1 14/11/2022 128


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 129


Sistemas Operativos Carrera de Software

El modelo clásico de hilo (1)


• El modelo de procesos se basa en dos conceptos
independientes: agrupamiento de recursos y ejecución.
• Una manera de ver a un proceso es como si fuera una
forma de agrupar recursos relacionados.
– Un proceso tiene un espacio de direcciones que contiene
texto y datos del programa, así como otros recursos.
– Estos pueden incluir archivos abiertos, procesos hijos,
alarmas pendientes, manejadores de señales, información
contable y mucho más.
– Al reunirlos en forma de un proceso, pueden administrarse
con más facilidad

Unidad 1 14/11/2022 130


Sistemas Operativos Carrera de Software

El modelo clásico de hilo (2)


• El otro concepto que tiene un proceso es un hilo de
ejecución, al que por lo general sólo se le llama hilo.
– El hilo tiene un contador de programa que lleva el registro
de cuál instrucción se va a ejecutar a continuación.
– Tiene registros que contienen sus variables de trabajo
actuales.
• Tiene una pila, que contiene el historial de ejecución, con un
conjunto de valores para cada procedimiento al que se haya
llamado, pero del cual no se haya devuelto todavía.
– Aunque un hilo se debe ejecutar en cierto proceso, el hilo y
su proceso son conceptos distintos y pueden tratarse por
separado.
• Los procesos se utilizan para agrupar los recursos; son las
entidades planificadas para su ejecución en la CPU.

Unidad 1 14/11/2022 131


Sistemas Operativos Carrera de Software

El modelo clásico de hilo (3)


• Los hilos mejoran el modelo de procesos al permitir que se lleven a cabo
varias ejecuciones en el mismo entorno del proceso, que son en gran
parte independientes unas de las otras.
• Tener varios procesos ejecutándose en paralelo en un proceso es algo
similar a tener varios procesos ejecutándose en paralelo en una
computadora.
– En el primer caso, los hilos comparten un espacio de direcciones y otros recursos;
– En el segundo, los procesos comparten la memoria física, los discos, las
impresoras y otros recursos. Como los hilos tienen algunas de las propiedades de
los procesos, algunas veces se les llama procesos ligeros.
• El término multihilamiento también se utiliza para describir la situación de
permitir varios hilos en el mismo proceso.
– Algunas CPUs tienen soporte directo en el hardware para el multihilamiento y
permiten que las conmutaciones de hilos ocurran en una escala de tiempo en
nanosegundos.
– Cuando se ejecuta un proceso con multihilamiento en un sistema con una CPU,
los hilos toman turnos para ejecutarse.

Unidad 1 14/11/2022 132


Sistemas Operativos Carrera de Software

El modelo clásico de hilo (4)


(a) Tres procesos, cada uno con un hilo.
(b) Un proceso con tres hilos.

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

Unidad 1 14/11/2022 133


Sistemas Operativos Carrera de Software

El modelo clásico de hilo (5)


Los distintos hilos en un proceso no son tan independientes como los procesos.
Todos los hilos tienen el mismo espacio de direcciones, lo cual significa que también
comparten las mismas variables globales.

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

El modelo clásico de hilo (6)


La pila de cada hilo contiene un conjunto de valores para cada
procedimiento llamado, pero del que todavía no se ha regresado.

Este conjunto de valores contiene las variables locales del procedimiento


y la dirección de retorno que se debe utilizar cuando haya terminado la
llamada al procedimiento. Hilo 2

Hilo 1 Hilo 3

Proceso

Pila del hilo 1 Pila del hilo 3

Kernel

Cada hilo tiene su propia pila.


Unidad 1 14/11/2022 135
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 136


Sistemas Operativos Carrera de Software

Implementación de hilos en el espacio de


usuario
• Hay dos formas principales de implementar un paquete de hilos:
en espacio de usuario y en el kernel.
– La elección es un poco controversial y también es posible una
implementación híbrida.
• El primer método es colocar el paquete de hilos completamente
en espacio de usuario. El kernel no sabe nada acerca de ellos.
– En lo que al kernel concierne, está administrando procesos ordinarios con
un solo hilo.
– Ventaja: un paquete de hilos de nivel usuario puede implementarse en un
sistema operativo que no acepte hilos.
• Todos los sistemas operativos solían entrar en esta categoría e incluso hoy en día
algunos todavía lo están.
– Con este método, los hilos se implementan mediante una biblioteca
– Los hilos se ejecutan encima de un sistema en tiempo de ejecución, el
cual es una colección de procedimientos que administran hilos.

Unidad 1 14/11/2022 137


Sistemas Operativos Carrera de Software

Implementación de hilos en el espacio


de usuario
Proceso Hilo Proceso Hilo

Espacio
de
usuario

Espacio Kernel Kernel


de kernel

Sistema en tiempo de Tabla de Tabla de Tabla de Tabla


hilos procesos procesos de hilos
ejecución
(a) (b)

(a) Un paquete de hilos de nivel usuario.


(b) Un paquete de hilos administrado por el kernel.
Unidad 1 14/11/2022 138
Sistemas Operativos Carrera de Software

Implementación de hilos en el espacio


de usuario
• Cuando los hilos se administran en espacio de usuario, cada
proceso necesita su propia tabla de hilos privada para llevar la
cuenta de los hilos en ese proceso.
– Esta tabla es similar a la tabla de procesos del kernel,
excepto porque sólo lleva la cuenta de las propiedades por
cada hilo, como el contador de programa, apuntador de pila,
registros, estado, etc.
• La tabla de hilos es administrada por el sistema en tiempo de
ejecución.
– Cuando un hilo pasa al estado listo o bloqueado, la
información necesaria para reiniciarlo se almacena en la tabla
de hilos, en la misma forma exacta que el kernel almacena la
información acerca de los procesos en la tabla de procesos.

Unidad 1 14/11/2022 139


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 140


Sistemas Operativos Carrera de Software

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

Unidad 1 14/11/2022 141


Sistemas Operativos Carrera de Software

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.

Unidad 1 14/11/2022 142


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 143


Sistemas Operativos Carrera de Software

Hilos emergentes (Pop-Up Threads)


• El método tradicional es hacer que un proceso o hilo,
que está bloqueado en una llamada al sistema
receive, espere un mensaje entrante.
• Cuando llega un mensaje, lo acepta, lo
desempaqueta, examina su contenido y lo procesa
• Sin embargo, también es posible utilizar un método
completamente distinto, en el cual la llegada de un
mensaje hace que el sistema cree un nuevo hilo para
manejar el mensaje.
– A dicho hilo se le conoce como hilo emergente (pop-up
thread)

Unidad 1 14/11/2022 144


Sistemas Operativos Carrera de Software

Hilos emergentes (Pop-Up Threads)


Hilo emergente
creado para
Proceso manejar el
mensaje entrante
Hilo existente

Mensaje entrante

Red
(a) (b)

Creación de un nuevo hilo cuando llega un mensaje.


(a) Antes de que llegue el mensaje.
(b) Después de que llega el mensaje

Unidad 1 14/11/2022 145


Sistemas Operativos Carrera de Software

Hilos emergentes (Pop-Up Threads)


• Una ventaja clave de los hilos emergentes es que,
como son nuevos, no tienen historial (registros,
pila, etcétera) que sea necesario restaurar.
– Cada uno empieza desde cero y es idéntico a los
demás. Esto hace que sea posible crear dicho hilo con
rapidez.
– El nuevo hilo recibe el mensaje entrante que va a
procesar.
• El resultado de utilizar hilos emergentes es que la
latencia entre la llegada del mensaje y el inicio del
procesamiento puede ser muy baja.

Unidad 1 14/11/2022 146


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 147


Sistemas Operativos Carrera de Software

Conversión de hilado simple a multihilo (1)


• Muchos programas existentes se escribieron para procesos
con un solo hilo. Es mucho más difícil convertir estos
programas para que utilicen multihilamiento de lo que podría
parecer en un principio.
• Para empezar, el código de un hilo normalmente consiste de
varios procedimientos, al igual que un proceso. Éstos pueden
tener variables locales, variables globales y parámetros.
– Las variables y parámetros locales no ocasionan problemas, pero
las variables que son globales a un hilo, pero no globales para todo
el programa, son un problema.
– Hay variables que son globales en el sentido en el que muchos
procedimientos dentro del hilo los utilizan (como podrían utilizar
cualquier variable global), pero otros hilos deberían, por lógica,
dejarlas en paz

Unidad 1 14/11/2022 148


Sistemas Operativos Carrera de Software

Conversión de hilado simple a multihilo(2) para


1) El hilo 1 ejecuta la llamada al sistema
access para averiguar si tiene permiso
Considere la variable errno que mantiene UNIX. Cuando
acceder a cierto archivo. El sistema operativo
devuelve la respuesta en la variable global
un proceso (o hilo) realiza una llamada al sistema errno. que falla,

el código de error se coloca en errno.

3) El hilo 2 ejecuta una llamada a open


que falla, lo cual hace que se sobrescriba
el valor de errno y el código de acceso
del hilo 1 se pierde para siempre.

2) Antes de que el hilo 1 tenga la


oportunidad de leer errno, el
planificador decide que el hilo 1
ha tenido suficiente tiempo de la
CPU por el momento y decide
conmutar al hilo 2. 4) Cuando el hilo 1 se continúe más
adelante, leerá el valor incorrecto y
se comportará de manera
incorrecta.
Conflictos entre los hilos por el uso de una variable global.
Unidad 1 14/11/2022 149
Sistemas Operativos Carrera de Software

Conversión de hilado simple a multihilo(3)


Hay varias soluciones posibles para este problema.
• Una es prohibir las variables globales por completo.
– Aunque este ideal parezca conveniente, entra en conflicto con
una gran parte del software existente.
• Otra solución es asignar a cada hilo sus propias variables globales
privadas, como se muestra en la figura siguiente.
– De esta forma, cada hilo tiene su propia copia privada de errno y
de otras variables globales, por lo que se evitan los conflictos.
– En efecto, esta decisión crea un nivel de alcance en el que las
variables están visibles para todos los procedimientos de un hilo,
además de los niveles de alcance existentes en los que las
variables están visibles sólo para un procedimiento y en los que
las variables están visibles en todas partes del programa.

Unidad 1 14/11/2022 150


Sistemas Operativos Carrera de Software

Conversión de hilado simple a multihilo (4)

Código del hilo 1

Código del hilo 2

Pila(stack) del hilo 1

Pila(stack) del hilo 2


Variables globales del
hilo 1
Variables globales del
hilo 2

Los hilos pueden tener variables globales privadas

Unidad 1 14/11/2022 151


Sistemas Operativos Carrera de Software

Conversión de hilado simple a multihilo(5)

• Sin embargo, acceder a las variables globales privadas es


algo problemático, ya que la mayoría de los lenguajes de
programación tienen una manera de expresar las variables
locales y las variables globales, pero no formas
intermedias.
• Es posible asignar un trozo de memoria para las variables
globales y pasarlo a cada procedimiento en el hilo como un
parámetro adicional.
– Aunque no es una solución elegante, ¡funciona!.
• De manera alternativa, pueden introducirse nuevos
procedimientos de biblioteca para crear, establecer y leer
estas variables globales a nivel de hilo

Unidad 1 14/11/2022 152


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 153


Sistemas Operativos Carrera de Software

Administración
• El sistema operativo gestiona o administra
– El procesador
– La memoria principal
– La memoria secundaria
– Los perifericos

Unidad 1 14/11/2022 154


Sistemas Operativos Carrera de Software

Administración del procesador


• Se centra en el concepto de proceso
• Un proceso, es un programa en ejecución.
• Un programa por sí es un ente pasivo, mientras
que un proceso es un ente activo.
• Un proceso puede generar la llamada a otro
proceso,
– Denominándose a ambos: proceso padre y proceso
hijo, respectivamente.

Unidad 1 14/11/2022 155


Sistemas Operativos Carrera de Software

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.

Unidad 1 14/11/2022 156


Sistemas Operativos Carrera de Software

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

Unidad 1 14/11/2022 157


Monoprogramación:
Sistemas Operativos Ejecución secuencial deCarrera
trabajos
de Software

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

Unidad 1 14/11/2022 159


Sistemas Operativos Carrera de Software

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

Unidad 1 14/11/2022 160


Sistemas Operativos Carrera de Software

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

Unidad 1 14/11/2022 161


Sistemas Operativos Carrera de Software
Cambio de contexto
El Cambio de contexto, es el proceso por el cual el Sistema Operativo pasa de ejecutar el
código de un proceso, a ejecutar el código de otro proceso o a ejecutar código en espacio de
kernel.
ProcesoA ProcesoB Los registros de la CPU llevan el
estado de esta; son aquellos que
indican que instrucción se esta
Proceso A Grabar estado a PCB A ejecutando, cuales los valores de las
Ejecutándose
variables en un momento dado, etc.
Restaurar estado de PCBB
Tiempo Perdido
en labores admin. El Cambio de contexto consiste en
cambiar los valores de los registros de
Proceso B
Ejecutándose
la CPU de los valores de un proceso a
los valores de otro proceso. De manera
Grabar estado a PCB B
Tiempo Perdido
de no perder el estado actual del
en labores admin. proceso “saliente”, el sistema almacena
Restaurar estado de PCBA
en el PCB los valores de los registros
Proceso A actuales, para luego sobreescribirlos
Ejecutándose
con los almacenados en el PCB del
proceso “entrante”.

Unidad 1 14/11/2022 162


Sistemas Operativos Carrera de Software

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.

• Se denomina quantum de tiempo o quanto a un periodo de tiempo que el sistema


operativo le entrega a un proceso para que este utilice la CPU. El término del quantum es
indicado por una interrupción de reloj que es previamente programada, momento en el cual
se produce un cambio de contexto.

• Los cambios de contexto se pueden producir por:

• Termino de quantum de tiempo (interrupción de reloj)

• Syscall yield, que solicita al SO que este proceso sea colocado en la ready list.

• Interrupción que provoque colocar al proceso bloqueado (I/O, semáforos, etc)

Unidad 1 14/11/2022 163


Sistemas Operativos Carrera de Software

Cambio de contexto

Cambio de
Cambio de
Contexto

Contexto
Scheduler

Proc1

Proc2

Respaldo
Restauración
quanto

Unidad 1 14/11/2022 164


Sistemas Operativos Carrera de Software

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

Unidad 1 14/11/2022 165


Sistemas Operativos Carrera de Software

Scheduler - Introducción

Comportamiento de los procesos

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.

Unidad 1 14/11/2022 166


Sistemas Operativos Carrera de Software

Scheduler - Introducción

Cuándo Calendarizar

• Creación de proceso: ejecutar el padre o el hijo?

• Término de proceso: que proceso ejecutar ahora?

• Proceso bloquea por semáforo: que hacer?


En este caso el motivo afecta la decisión. Si un proceso bloquea por semáforo,
entonces conviene ejecutar el proceso que sostiene el lock en este momento.

• Proceso bloquea por I/O listo: entrar el proceso que paso de bloqueado a listo?
Entrar al proceso interrumpido? Un tercer proceso?

Proceso IDLE: proceso de inactividad proporcionado por el sistema operativo cuando no


existen procesos de usuario de ejecutar, o están todos a la espera de algún evento.

Unidad 1 14/11/2022 167


Sistemas Operativos Carrera de Software

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.

Expropiativo: existe quantum de tiempo determinado que se le permite a un proceso estar


en la CPU. Cuando este expira, el proceso debe salir y se debe ingresar uno nuevo. Este
método requiere de una interrupción de reloj al final del quantum para poder ser
implementado.

Sistemas por lotes Sistemas Interactivos Sistemas Tiempo Real


- Sin usuarios en - Algoritmos expropiativos - Pueden usar
terminales - No se puede permitir la expropiativos y no
- Algoritmos no monopolización des la expropiativos.
expropiativos CPU por parte un proceso - Generalmente todos los
- Reducido número de - Se asume hostilidad entre programas trabajan
cambios de contexto procesos. colaborativamente

Unidad 1 14/11/2022 168


Sistemas Operativos Carrera de Software

Scheduler - Introducción

Objetivos de la calendarización

Todos los sistemas


Equidad – dar a cada proceso una porción equitativa de tiempo de CPU
Cumplimiento de políticas – cuidar que se ponga en práctica la política establecida
Equilibrio – mantener ocupadas todas las partes del sistema

Sistemas por Lotes


Rendimiento – procesar el máximo de trabajos por hora
Tiempo de retorno – reducir al mínimo el lapso entre inicio y término de un trabajo
Utilización de CPU – mantener ocupada todo el tiempo la CPU

Sistemas Interactivos
Tiempo de respuesta – responder rápido a las solicitudes
Proporcionalidad – satisfacer las expectativas de todos los usuarios

Sistemas en Tiempo Real


Cumplir los plazos – evitar la pérdida de datos
Predicibilidad – evitar la degradación de la calidad en sistemas multimedia

Unidad 1 14/11/2022 169


Sistemas Operativos Carrera de Software

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.

Unidad 1 14/11/2022 170


Sistemas Operativos Carrera de Software

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?

Unidad 1 14/11/2022 171


Sistemas Operativos Carrera de Software

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

Calendarización en sistemas Interactivos -- Mayor uso de CPU


Scheduling en sistemas Interactivos

-- Percepción del usuario

Unidad 1 14/11/2022 172


Sistemas Operativos Carrera de Software

1 FCFS: First Come First Serve


Primero en llegar, primero en ser atendido (FIFO)

Algoritmo mas simple de todos donde los procesos son ingresados a la


CPU en el orden que se recibieron.

CPU

De simple programación y comprensión, tiene la desventaja de ser muy


poco eficiente con trabajos de distinta duración. Si un proceso

CPU

Proceso de larga duración


detendrá a los demás hasta que
termine

Unidad 1 14/11/2022 173


Sistemas Operativos Carrera de Software

1 FCFS: First Come First Serve


• Los procesos se reciben conformen están listos
• Cuando el proceso que esta siendo atendido
termina
– Se escoge el proceso que lleva mas tiempo
esperando
• Es un algoritmo justo y no provoca
aplazamiento indefinido
• Pero no aprovecha ninguna característica de
los procesos

Unidad 1 14/11/2022 174


Sistemas Operativos Carrera de Software

2 SJF – Shortest Job First


Trabajo más corto primero – (SJF: Shortest Job First)

Algoritmo no expropiativo que al conocer a priori los tiempos de


ejecución de los procesos, los ordena de acuerdo a su duración

4 1 12 8 2 12 CPU

12 12 8 4 2 1 CPU

Este método acorta los tiempos promedio de ejecución


considerablemente, pero solo si se tienen disponibles todos los procesos
simultáneamente. De lo contrario no tiene efecto y su comportamiento se
asemeja a FIFO.

Unidad 1 14/11/2022 175


Sistemas Operativos Carrera de Software

2 SJF – Shortest Job First


SJF v/s FIFO
Tiempos de proceso promedio sin expropiación:

FIFO 4 1 12 8 2 12 CPU

SJF 12 12 8 4 2 1 CPU

Unidad 1 14/11/2022 176


Sistemas Operativos Carrera de Software

3 SPN – Shortest Process Next


Tiempo Restante mas corto a continuación

Variación expropiativa de SJF donde al llegar un proceso, su tiempo de


ejecución se compara con el restante del proceso actual. Si el tiempo del nuevo
proceso es menor, se suspende el actual para ingresar el recién llegado.

12 12 8 CPU

12 12 8 4 CPU

Unidad 1 14/11/2022 177


Sistemas Operativos Carrera de Software

3 SPN – Shortest Process Next


• Es difícil de llevar a cabo porque…
– Se requiere tener una estimación de cuánto tiempo
necesita el proceso para terminar
• Se atiende al proceso que tenga el tiempo de
procesamiento esperado más corto
• Por ejemplo,
– Si llegan 5 procesos A,B,C,D y E
– Sus tiempos de CPU son 26, 18, 24, 12 y 4,
– Se observa que el orden de ejecución será E,D,B,C y A
(4,12,18, 24 y 26 unidades de tiempo respectivamente).

Unidad 1 14/11/2022 178


Sistemas Operativos Carrera de Software

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

Unidad 1 14/11/2022 179


Sistemas Operativos Carrera de Software

4 Round Robin
Turno Circular – Round Robin

Cada proceso recibe un quantum de tiempo en la CPU, debiendo abandonarla al


término del mismo.

De simple implementación, solo se requiere tener una lista de procesos sobre la


cual ciclar.
quantum

Proc1

Proc2

Tiempo labores
administrativas

Unidad 1 14/11/2022 180


Sistemas Operativos Carrera de Software

4 Round Robin
Turno Circular – Round Robin

Problema: Elegir el tamaño del quantum.

- Si es muy pequeño, entonces se desperdiciará mucho tiempo en labores


administrativas.

- Si es muy grande, el usuario percibirá al sistema como lento

Unidad 1 14/11/2022 181


Sistemas Operativos Carrera de Software

5 Por prioridad
Por Prioridades

Cada proceso tiene asignado un valor prioridad. Al momento de decidir


que proceso entra a la CPU, se selecciona aquel con mayor prioridad que
este listo para correr.

La asignación de prioridad puede ser de forma estatica (al inicio del


proceso) o de forma dinámica (durante la ejecución). En linux existe el
comando renice que permite a un administrador modificar la prioridad de
un proceso en el sistema.

Problema: Los procesos de alta prioridad pueden acaparar la CPU


provocando starvation a los procesos de baja prioridad.

P7 P1 P4 P10 CPU

Unidad 1 14/11/2022 182


Sistemas Operativos Carrera de Software

5 Por prioridad
Por Prioridades

El scheduler puede decidir variar la prioridad de un proceso de acuerdo a


su comportamiento:

- Un proceso de I/O que tiene poco proceso y mucho acceso a disco, se le


puede dar más prioridad, pues estará la mayor parte del tiempo
bloqueado.

Variación: Clases de prioridades. Cada clase se ejecuta hasta que no


existen más procesos haciendo round robin al interior de esta. Luego se
pasa a la clase con la siguiente prioridad.
P1

P2

P3

Unidad 1 14/11/2022 183


Sistemas Operativos Carrera de Software

6 Por política
Calendarización Garantizada

Enfocado a sistemas multiusuario, entrega porciones equitativas de CPU a cada uno. Si


existen N usuarios, entonces cada uno recibirá 1/N de la capacidad de CPU.

Para su implementación se cuenta el tiempo de CPU q ha recibido cada uno y luego se


calcula el tiempo que le corresponde:

TiempoEjecucion = relación
TiempoReal

Si la relación es bajo 1/N entonces el proceso se ha ejecutado menos de lo que debe; si es


mayor, entonces se ha ejecutado más de lo que debe tomando el scheduler otros procesos
hasta que la relación se equipare.

Unidad 1 14/11/2022 184


Sistemas Operativos Carrera de Software

6 Por política
Calendarización por lotería

Se determina la entrada a la CPU de un proceso de acuerdo a la cantidad de


“billetes” de loteria que este posee, indicando así la prioridad del proceso.
Al momento de seleccionar el proceso siguiente a entrar a la CPU, se sortea un
numero entre los billetes entregados; de esta forma un proceso que tiene 100
número de un total de 500, tendrá aproximadamente un 20% de posibilidades
de ser escogido.

A B

Unidad 1 14/11/2022 185


Sistemas Operativos Carrera de Software

6 Por política
Calendarización por porcion equitativa

Metodología que toma en cuenta a quien pertenecen los procesos en ejecución.

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.

Ejemplo: Usuario 1: Procesos A B C D


Usuario 2: Proceso Z

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 …

Unidad 1 14/11/2022 186


Sistemas Operativos Carrera de Software

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

Unidad 1 14/11/2022 187


Sistemas Operativos Carrera
Procesos Tiempode Tiempo
Software
de de

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

Unidad 1 14/11/2022 188


Sistemas Operativos Carrera de Software
Procesos Tiempo Tiempo
de Arribo de Servicio
ROUND ROBIN 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

Unidad 1 14/11/2022 189


Sistemas Operativos Carrera de Software

Unidad 1
Introducción a los Sistemas
Operativos

Final de la unidad
Unidad 1 14/11/2022 190

También podría gustarte