Anda di halaman 1dari 7

Contenido

[Inicio] [Final] Atrs Sig

Mapa Conceptual

1. Planificacin

2. Tipos de Planificadores

3. Tipos de Procesos

4. Algoritmos de Planificacin

6. Planificadores Especiales

7. Planificacin en Linux

8. Kernel

10. Funciones Bsicas del Kernel

12. Fuentes de Linux

Referencias

(1/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Planificacin

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Scheduler: El planificador se encarga de seleccionar un proceso que espera en la
fila y asignarle tiempo de CPU

Dispatcher: El despachador se encarga de asignar el CPU al proceso seleccionado

(2/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Tipos de Planificadores

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Co-operative multitasking: En el Planificador No-expropiativo (non-
preemptive) una vez que se asigna CPU a un proceso, dicho proceso se apropia del
CPU hasta que termine por s mismo ceda el CPU a otro proceso
Pre-emptive multitasking: Planificador Expropiativo d un tiempo limite
(Time slicing) despus del cual el proceso actual es suspendido, para dar paso a
otro proceso y mantener as la ilusin de concurrencia, e.g. quantum=20-200ms

(3/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Tipos de Procesos

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Por tipo de operaciones

Procesos con uso intensivo de CPU: gran cantidad de complejos clculos


matemticos (CPU bound)

Procesos con uso intensivo de E/S: mucha interaccin con dispositivos de E/S (IO
bound)

Por tipo de transacciones

Procesos Interactivos

Procesos por Lotes

Procesos de Tiempo Real

(4/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Algoritmos de Planificacin

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Criterios tiles para planificar procesos

Tiempo ocioso o en espera

Previsibilidad, plazos o tiempos de respuesta requerido

Equidad, prioridades y privilegios

Trabajo pendiente o tareas por realizar

Exigencias de E/S

Productividad, utilizacin y carga del CPU y E/S


(5/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"
Algoritmos de Planificacin

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
FCFS, FIFO: Por orden de arribo (first-come, first-served)

SPN, SRT: Primero el trabajo ms corto o con menor tiempo restante


(shortest process next, shortest remaining time)

RR: Por turno rotatorio usando quantums, i.e. interrupciones peridicas de reloj
(Round-robin scheduling)

FB: Realimentacin Multinivel, maneja prioridades dinmicas con mltiples colas


penalizando a los procesos ms viejos (Feedback)

(6/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Planificadores Especiales

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Planificacin de Multiprocesadores: para equipos con ms de un procesador
(Multiprocessing)

Planificacin: sistemas con altos requerimientos de precisin, eficiencia,


determinismo, bajo tiempo de respuesta, tareas peridicas, configuracin avanzada,
tolerancia a fallas, etc.

(7/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Planificacin en Linux

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Los procesos de Linux son preemptive, sin embargo el kernel es non-preemptive

A cada proceso se le permite ser ejecutado por un breve perodo de tiempo de


200ms (time-slice quantum)

Linux utiliza un algoritmo simple de planificacin basado en prioridades dinmicas,


i.e. schedule function

Linux cuenta con dos tipos de prioridades: normal y real-time


Linux Kernel 2.4 soporta con eficiencia sistemas multiprocesadores

Utileras: top, ps -aux

(8/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Kernel

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Kernel: Ncleo del Sistema Operativo

Programa que corre como proceso en modo privilegiado, supervisor o kernel

Programa de alto rendimiento (mucho cdigo ensamblador optimizado)

Proceso que siempre esta cargado en memoria no intercambiable a disco,


i.e. swapping

(9/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Kernel

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Kernel: Proceso capaz de acceder cualquier recurso de hardware directamente
(incluyendo el CPU)

Tipos de Kernel:

Monoltico: Variables compartidas entre procesos

Micro Kernel: Mdulos independientes e intercambiales

(10/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Funciones Bsicas del Kernel

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Gestin de Procesos

Creacin y terminacin de los procesos

Planificacin y expedicin de los procesos


Cambio de procesos (Context switch)

Sincronizacin de procesos

Comunicacin entre procesos (Inter-process communication)

Gestin de los bloques de control de procesos

Gestin de memoria

Asignacin de espacios de direcciones a los procesos

Intercambio (swapping)

Gestin de pginas y segmentos

(11/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Funciones Bsicas del Kernel

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Gestin E/S

Gestin de buffers

Asignacin de canales de E/S y dispositivos a los procesos

Funciones de soporte

Tratamiento de interrupciones

Contabilidad y estadsticas

Supervisin

(12/12) Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"


Fuentes de Linux

[Inicio] [Final] Atrs Sig

<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] >> [Ref] [CSS]
Actividad: Con el propsito de conocer los detalles de implementacin del
scheduler de Linux, busca y reporta links donde aparezca por ejemplo la funcin
scheduler.c, la estructura task_struct, la macro de ensamblador para cambio-
contexto switch_to, etc.
Repblica del Saber Sistemas Operativos I: "Planificacin de Procesos"
Referencias

[Inicio] [Final] [Inicio] [Final]

Richard Gooch, "Linux Scheduler Benchmark Results", 1998.


[Benchmarks]
http://www.atnf.csiro.au/people/rgooch/benchmarks/linux-scheduler.html
Wikipedia, "CPU bound", 2011.
[CPU bound]
http://en.wikipedia.org/wiki/CPU%5Fbound
[Co-operative Wikipedia, "Co-operative multitasking", 2011.
multitasking] http://en.wikipedia.org/wiki/Co-operative%5Fmultitasking
[Context Wikipedia, "Context switch", 2011.
switch] http://en.wikipedia.org/wiki/Context%5Fswitch
Wikipedia, "IO bound", 2011.
[IO bound]
http://en.wikipedia.org/wiki/IO%5Fbound
[Inter-process
Wikipedia, "Inter-process communication", 2011.
communication
http://en.wikipedia.org/wiki/Inter-process%5Fcommunication
]
Wikipedia, "Kernel (Computer Science)", 2005.
[Kernel]
http://en.wikipedia.org/wiki/Kernel_%28computer_science%29
Tigran Aivazian, "Linux Kernel 2.4 Internals", Aug 2002.
[Kernel 2.4]
http://www.tldp.org/LDP/lki/index.html
Wikipedia, "Linux", 2011.
[Linux]
http://en.wikipedia.org/wiki/Linux
Cunningham & Cunningham Inc, "Micro Kernel", 2001.
[Micro Kernel]
http://c2.com/cgi/wiki?MicroKernel
[MicroKernel Christopher Browne, "Microkernel-based OS Efforts", 2001.
Research] http://www.cbbrowne.com/info/microkernel.html
Wikipedia, "Kernel Monoltico", 2005.
[Monoltico] http://en.wikipedia.org/wiki/Kernel_%28computer_science
%29#Monolithic_kernels
[Multiprocessin Wikipedia, "Multiprocessing", 2011.
g] http://en.wikipedia.org/wiki/Multiprocessing
Wikipedia, "Planificacin", 2011.
[Planificacin]
http://en.wikipedia.org/wiki/en
[Pre-emptive Wikipedia, "Pre-emptive multitasking", 2011.
multitasking] http://en.wikipedia.org/wiki/Pre-emptive%5Fmultitasking
[Round-robin Wikipedia, "Round-robin scheduling", 2011.
scheduling] http://en.wikipedia.org/wiki/Round-robin%5Fscheduling
Wikipedia, "Scheduler", 2011.
[Scheduler]
http://en.wikipedia.org/wiki/Scheduler
moz@compsoc.man.ac.uk, "Scheduling in UNIX and Linux", 2004.
[Scheduling]
http://www.kernelnewbies.org/documents/schedule
Wikipedia, "Time slicing", 2011.
[Time slicing]
http://en.wikipedia.org/wiki/Time%5Fslicing
[schedule Arne Gleditsch & Per K Gjermshus, "Cross-Referencing Linux", 2005.
function] http://lxr.linux.no/source/kernel/sched.c?v=2.4.18#L549