You are on page 1of 35

ING.

HERVILT ZAMBRANO
SISTEMAS OPERATIVOS

UNIDAD I
SISTEMAS OPERATIVOS

Es un conjunto de programas especialmente hechos para la ejecución de varias


tareas (como abrir un fichero y acceder a la información que contiene sin
preocuparse de aspectos de bajo nivel como: mover los cabezales del
disco, la velocidad de giro del motor del disco, la posición que ocupan los
bits en la superficie del disco) gestionando los recursos disponibles (cpu,
memoria, disco, comunicaciones en red, dispositivos periféricos), en las
que sirve de intermediario entre el usuario y la computadora.
SISTEMAS OPERATIVOS

Mientras el usuario final trabaja con


aplicaciones, el administrador de sistemas
habitualmente trabajará con el sistema
operativo para conseguir que el sistema
informático (hardware + software) realice su
función con la máxima eficiencia.
COMPONENTES DE LOS SISTEMAS DE
COMPUTACIÓN
HARDWARE: Componentes físicos del
ordenador, es decir, todo lo que se puede ver
y tocar.

SOFTWARE: es un conjunto de
programas, instrucciones y reglas
informáticas que permiten ejecutar distintas
tareas en una computadora.

FIRMWARE: es una combinación de


software y hardware. se refiere al chip de
memoria de sólo lectura (ROM) que
almacenan las instrucciones permanentes
de dispositivos informáticos.
COMPONENTES DE LOS SISTEMAS DE
COMPUTACIÓN
ESTRUCTURA DEL SISTEMA
OPERATIVO
APLICACIÓN: es un programa
informático diseñado como herramienta
para permitir a un usuario realizar uno o
diversos tipos de tareas.

SHELL: Se puede considerar como el


intérprete de comandos, que permite que
los comandos y programas que
tecleamos sean ejecutados.

KERNEL: Puede considerarse como el


núcleo del sistema operativo y es leído
cada vez que se inicializa el sistema.
Evolución de los sistemas operativos

Proceso en serie: Inicialmente, finales de los 40, el programador


interactúa directamente con la máquina mediante conmutadores,
indicadores luminosos y tal vez una impresora. No existe el sistema
operativo y los usuarios de un ordenador se turnan para acceder
secuencialmente, en serie.

Proceso por lotes: Se desarrolla un elemento de software denominado


monitor que es capaz de ejecutar tareas, lotes, de manera secuencial.
En estos sistemas informáticos los programadores pasaban a los
administradores de sistemas los programas a ejecutar en cinta (o tarjetas
perforadas) y el sistema los ejecutaba secuencialmente y de manera no
interactiva.
Evolución de los sistemas operativos

Multiprogramación o multitarea: Con el ánimo de maximizar el uso de


la CPU se cargan varios programas de manera simultánea. Así mientras
un proceso está bloqueado por una operación de entrada/salida, la CPU
puede continuar la ejecución de otro proceso.

Sistemas de tiempo compartido: El sistema reparte la atención de la


CPU (o CPUs) entre diferentes procesos, simulando la ejecución en
paralelo de los mismos. Los sistemas de tiempo compartido permiten que
varios usuarios trabajen de manera simultánea y en modo interactivo. Uno
de los primeros sistemas de tiempo compartido fue el CTSS (Compatible
Time-Sharing System) desarrollado en el MIT.
TIPOS DE SISTEMAS OPERATIVOS SEGÚN LAS
NECESIDADES

Monousuario: Desde el punto de vista de la máquina (o el sistema


informático) no se hace distinción entre los usuarios que utilizan la
máquina. Sólo un usuario puede estar trabajando en un momento
determinado. Ejemplos: MS-DOS, Windows 3.x, 95, 98, Me.

Multiusuario: Varios usuarios pueden trabajar simultáneamente en el


mismo sistema informático. Además, el sistema realiza distinciones
entre usuarios. La gestión de los recursos (memoria, CPU, disco, etc...)
es mucho más complicada, pero al tener a varias personas trabajando a
la vez, se rentabiliza con mayor facilidad la inversión.
TIPOS DE SISTEMAS OPERATIVOS SEGÚN LAS
NECESIDADES

Monoproceso: El sistema informático sólo puede mantener un proceso en


ejecución, las tareas se realizan secuencialmente.

Multiproceso/Multitarea: El sistema informático es capaz de ejecutar


varios procesos simultáneamente. Si hubiese suficientes CPUs, se
ejecutaría cada proceso en una CPU distinta, si el número de CPUs es
menor (como habitualmente ocurre) que el de procesos preparados para
ejecutar. El sistema operativo asigna franjas de uso de CPU a cada
proceso, para simular una ejecución en paralelo. De cualquier modo,
realmente o de forma simulada, los procesos en ejecución avanzan en
paralelo.
TIPOS DE SISTEMAS OPERATIVOS SEGÚN LAS
NECESIDADES

Tiempo compartido: Se realiza una planificación del uso de las


CPUs disponibles entre los procesos preparados para ser
ejecutados. De este modo, aparentemente, se ejecutan todos los
procesos a la vez.

Tiempo real: Los sistemas operativos en tiempo real son


predecibles, de tal manera que se comprometen a realizar
determinadas tareas dentro de unos límites de tiempo. Su
aplicación típica es el control de maquinaria y procesos
industriales. Ejemplos: Marte, QNX.
Unidad II
Gestión de Procesos
Unidad II
Planificación de Procesos Gestión de Procesos

● Un planificador de procesos: es un módulo del SO que


se encarga de mover los procesos entre las distintas
colas de planificación
● La ejecución de un proceso: consiste en una
alternancia entre ráfagas de CPU y ráfagas de E/S
● Un proceso limitado por E/S: es aquél que pasa más
tiempo haciendo E/S que usando la CPU (tiene ráfagas de
CPU cortas)
● Un proceso limitado por CPU (CPU bound): es aquél
que pasa más tiempo computando que haciendo E/S
(tiene ráfagas de CPU largas).
Alternancia de Ráfagas de CPU y E/S
Unidad II
Tipos de Planificadores
Gestión de Procesos

● Planificador a largo plazo (planificador de trabajos) -


escoge los procesos que ingresarán en la cola de listos
● Planificador a medio plazo - escoge los procesos que se
sacarán/introducirán temporalmente de/en la memoria
principal (intercambio, swapping)
● Planificador a corto plazo (planificador de CPU) -
escoge el proceso que se ejecutará a continuación y le
asigna la CPU
Características del Planificador Unidad II
Gestión de Procesos

● Escoge un proceso de entre los que están en memoria listos para ejecutarse y le
asigna la CPU al proceso elegido
● La decisión de planificación puede ocurrir:

1. Cuando un proceso pasa de ejecución a espera

2. Cuando un proceso pasa de ejecución a preparado

3. Cuando un proceso pasa de espera a preparado

4. Cuando un proceso termina


● Un planificador es no expropiativo (nonpreemptive) cuando sólo planifica en los
casos 1 y 4. También se llama sin desalojo o cooperativo.
● En otro caso decimos que el planificador es expropiativo (preemptive)
Unidad II
Despachador Gestión de Procesos

El despachador es un módulo que cede la CPU al proceso elegido por


el planificador de CPU. Para ello el despachador tiene que:
Realizar una conmutación de contexto
Cambiar la máquina a modo usuario (no privilegiado)
Saltar al punto apropiado del programa para continuar con su
ejecución
El tiempo que tarda el despachador en detener un proceso y poner
otro en ejecución se denomina latencia del despachador. Debe ser lo
más pequeña posible
Unidad II
Criterios de Planificación Gestión de Procesos

 Utilización de la CPU – mantener la CPU tan ocupada como sea posible


(maximizar).
 Rendimiento – número de procesos que se completan por unidad de
tiempo (maximizar).
 Tiempo de retorno – tiempo transcurrido desde que se presenta el
proceso hasta que se completa (minimizar).
 Tiempo de espera – tiempo que un proceso pasa en la cola de
procesos listos esperando la CPU (minimizar).
 Tiempo de respuesta – tiempo que tarda un proceso desde que se le
presenta una solicitud hasta que produce la primera respuesta
(minimizar).
Unidad II
Algoritmos de Planificación Gestión de Procesos

1.- FIFO - FCFS Criterios tomados en cuenta:


2.- Por turnos – Round Robin  Identificación del Proceso
3.- SPN - SJN  Tiempo de Llegada
4.- SRT  Duración de CPU
5.- Por Prioridades  Quantum de tiempo (solo RR)
6.- Colas Multinivel  Prioridad en su caso

Objetivo:
 Minimizar el tiempo de espera
promedio
Unidad II
1. Algoritmo First Come – First Served. FIFO Gestión de Procesos

Procesos Llegada Tiempo CPU (ms)


P1 0 7
P2 2 4
P3 4 1
P4 5 4
P1 P2 P3 P4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Tiempo de Espera Tiempo de Espera Promedio


P1 = 0 (0+5+7+7)/4 = 4.75
P2 = 11 – 4 – 2 = 5
P3 = 12 – 1 – 4 = 7 Con este algoritmo se puede producir un
efecto convoy: varios procesos de ráfaga de
P4 = 16 – 4 – 5 = 7 CPU corta tienen que esperar a un proceso
de ráfaga larga
Unidad II
2. Algoritmo por turnos Round Robin Gestión de Procesos

 Cada proceso obtiene el CPU durante un breve espacio de tiempo (quantum


de tiempo), normalmente de 10 a 100 milisegundos. Cuando el tiempo pasa,
el proceso es sacado de ejecución e insertado al final de la cola de
preparados.
 Si hay n procesos en la cola de preparados y el quantum es q, cada proceso
recibe 1/n del tiempo de CPU en intervalos de q unidades de tiempo como
mucho. Ningún proceso espera más de (n-1)q unidades de tiempo.
 Desempeño
• q grande  FCFS.
• q pequeño  q debe ser grande con respecto a la conmutación de
contexto, en otro caso la sobrecarga es muy alta.
Unidad II
2. Algoritmo por turnos Round Robin (cont…) Gestión de Procesos

Con un Quantum de 3
Procesos Llegada Tiempo CPU (ms)
P1 0 7
P2 2 4
P3 4 1
P4 5 4

P1 P2 P1 P3 P4 P2 P1 P4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Tiempo de Espera
P1 = 15 – 7 – 0 = 8 Tiempo de Espera Promedio
P2 = 14 – 4 – 2 = 8 (8+8+5+7)/4 = 7
P3 = 10 – 1 – 4 = 5
P4 = 16 – 4 – 5 = 7
Unidad II
3. SPN o SJN – Primero el Proceso más corto Gestión de Procesos

Asigna la CPU al proceso cuya siguiente ráfaga de CPU es más corta. Si dos
procesos empatan se resuelve el empate por FCFS

Procesos Llegada Tiempo CPU (ms)


P1 0 7
P2 2 4
P3 4 1
P4 5 4
P1 P3 P2 P4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Tiempo de Espera
P1 = 7 – 7 – 0 = 0
Tiempo de Espera
P2 = 12 – 4 – 2 = 6 Promedio
P3 = 8 – 1 – 4 = 3 (0+6+3+7)/4 = 4
P4 = 16 – 4 – 5 = 7
Unidad II
4. SRT – Menor tiempo restante Gestión de Procesos

Versión apropiativa de SJN en la que el planificador elige al proceso que le


queda el menor tiempo de ejecución.
Procesos Llegada Tiempo CPU (ms)
P1 0 7
P2 2 4
P3 4 1
P4 5 4
P1 P2 P3 P2 P4 P1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Tiempo de Espera
P1 = 16 – 7 – 0 = 9 Tiempo de Espera
Promedio
P2 = 7 – 4 – 2 = 1
(9+1+0+2)/4 = 3
P3 = 5 – 1 – 4 = 0
P4 = 11 – 4 – 5 = 2
Unidad II
5. Por Prioridades Gestión de Procesos

Se asocia con cada proceso una prioridad (número entero)


La CPU se asigna al proceso con la prioridad más alta (número pequeño 
prioridad alta)
Problema: Inanición (starvation) – los procesos de más baja prioridad podrían no
ejecutarse nunca
Solución: Envejecimiento (aging) – conforme el tiempo pasa aumentar la
prioridad de los procesos que esperan mucho en el sistema
Unidad II
5. Por Prioridades (cont…) Gestión de Procesos

Procesos Llegada Tiempo CPU (ms) Prioridad


P1 0 7 3
P2 2 4 1
P3 4 1 3
P4 5 4 2
P1 P2 P4 P1 P3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Tiempo de Espera
P1 = 15 – 7 – 0 = 8 Tiempo de Espera
Promedio
P2 = 6 – 4 – 2 = 0
(8+0+11+1)/4 = 5
P3 = 16 – 1 – 4 = 11
P4 = 10 – 4 – 5 = 1
Unidad II
6. Algoritmo de Colas Multinivel Gestión de Procesos

La cola de listos se divide en colas separadas. Ej.:


procesos de primer plano (interactivos)
procesos de segundo plano (por lotes)
Cada cola puede tener un algoritmo de planificación diferente
primer plano – RR
segundo plano – FCFS
Se debe planificar a nivel de cola
Planificación por prioridad fija; ej.: la cola de primer plano tiene prioridad sobre la de
segundo plano. Posible inanición.
División de tiempo – cada cola obtiene cierta porción de tiempo de CPU que reparte entre sus
procesos; ej., 80% para la cola de primer plano (RR) y 20% para la de segundo (FCFS)
Unidad II
6. Algoritmo de Colas Multinivel Gestión de Procesos
Unidad II
6. Algoritmo de Colas Multinivel con realimentación Gestión de Procesos

En este caso un proceso se puede mover entre las colas. Es una forma de
implementar el envejecimiento para evitar inanición.
Un algoritmo de planificación de colas multinivel con realimentación está definido
por los siguientes parámetros:
Número de colas
Algoritmos de planificación para cada cola
Método usado para determinar cuándo promover un proceso a una cola de mayor
prioridad
Método usado para determinar cuándo degradar un proceso a una cola de menor
prioridad
Método usado para determinar en qué cola ingresará un proceso cuando necesite
servicio
Unidad II
Ejemplo de Colas Multinivel con Realimentación Gestión de Procesos

Tenemos tres colas:


Q0 – RR con quantum 8 ms
Q1 – RR con quantum 16 ms
Q2 – FCFS

Planificación
Un proceso que entra en la cola de procesos listos ingresa en la cola Q0 . Cuando obtiene la
CPU se le asignan 8 ms. Si no termina su ráfaga de CPU en ese tiempo se pasa a Q1.
En Q1 se asignan 16 ms de CPU al proceso. Si no termina en ese tiempo es expropiado y
colocado en la cola Q2.
Planificación de Hebras

Ámbito de contienda del Proceso:


PCS (Process Contention Scope)
 La biblioteca de hebras planifica las hebras a nivel de usuario para que se
ejecute sobre un proceso LWP disponible
 Modelo Muchos a Muchos y Muchos a uno
 Se basa en la prioridad mas alta

Ámbito de contienda del Sistema:


SCS (System Contention Scope)
 El kernel planifica cual de los LWP usará el CPU
 Modelo Uno a uno
Unidad II
Planificación en Windows XP Gestión de Procesos

Clases de Prioridad (procesos)


Modificadores (hilos)

 El algoritmo es de Colas Multinivel con Realimentación. Cada prioridad tiene


asociada una cola con planificación RR.
 Prioridades 0-15 variables, 16-31 fijas (tiempo real).
 A los hilos que agotan su quantum se les reduce la prioridad. Cuando un hilo
pasa de espera a listo se aumenta su prioridad.
Planificación en Linux

 Se usan dos algoritmos: tiempo compartido y tiempo real


 Tiempo compartido
• Prioridad basada en créditos – el proceso con más créditos es el siguiente en
tomar la CPU
• Los créditos se reducen cuando ocurre una interrupción de reloj
• Cuando el crédito es 0, se escoge otro proceso
• Cuando todos los procesos tienen crédito 0 se asigna de nuevo crédito para todos
los procesos
 Basado en factores como prioridad e historia
 Tiempo real
• Tiempo real blando
o Cumple el estándar Posix.1b – dos clases
o FCFS y RR
o El proceso de mayor prioridad siempre se ejecuta primero

You might also like