You are on page 1of 8

Ao de la Diversificacin Productiva y

Fortalecimiento de la Educacin

Facultad:
Ingeniera
Industrial,
Sistemas e
Informtica
E.A.P. :
Ingeniera Informtica
Ciclo
:
VI
Curso :
Sistemas Operativos
Docente:
Ing. William Joel Marn
Rodrguez
Tema
:
Planificacin de
Procesos
Alumno:
Benjy Manuel Collantes

HUACHO PER
2015

INGENIERIA INFORMATICA VI CICLO

PLANIFICACIN DE PROCESOS

Antes de comenzar a describir los respectivos algoritmos de planificacin, es importante


conocer dos conceptos relacionados. Uno de ellos es la funcin de seleccin que determina
qu proceso, de entre los listos, se elige para ejecutar a continuacin. El otro es el modo de
decisin o esquema de planificacin, que especifica los instantes de tiempo en que se aplica la
funcin de seleccin. Hay dos categoras generales:

I.

PLANIFICACION APROPIADA (Nonpreemptive scheduling)


Tambin conocido como cooperative multitasking. Una vez que el proceso pasa al estado
de ejecucin, contina ejecutando hasta que termina, se bloquean en espera de una E/S o
al solicitar algn servicio del sistema. Esta poltica de ejecucin para terminacin fue
implementada en los primeros sistemas de lote (batch).

II.

PLANIFICACION NO APROPIADA (Preemptive scheduling)


Generalmente conocida como poltica de planificacin por torneo. El proceso que se est
ejecutando actualmente puede ser interrumpido y pasado al estado de listos por el sistema
operativo. La decisin de sustituirlos por otro proceso puede llevarse a cabo cuando llega
un nuevo proceso, cuando se produce una interrupcin que lleva a un proceso bloqueado
al estado listo o peridicamente, en funcin de una interrupcin del reloj.

SISTEMAS OPERATIVOS

INGENIERIA INFORMATICA VI CICLO

ALGORITMOS DE PLANIFICACIN
Un algoritmo de planificacin se utiliza para calcular los recursos que consumen otro algoritmo
o conjunto de algoritmos (programa) al realizar una determinada tarea. Ej: Tiempo de
finalizacin, porcentaje de utilizacin de la CPU, etc...)
El planificador es el mdulo del sistema operativo que decide qu proceso se debe ejecutar,
para ello usa un algoritmo de planificacin que debe cumplir con los siguientes objetivos:

Imparcialidad.

Poltica justa.

Eficiencia: mantener la CPU ocupada en lo posible el mayor tiempo con procesos de


usuario.
Minimizar el tiempo de espera de usuarios.

Maximizar el nmero de procesos ejecutados. (Rendimiento: trabajos que se procesan


por hora).

Tiempo de respuesta excelente (por ejemplo: minimizar el tiempo de respuesta para los
usuarios interactivos).

Predecibilidad en la ejecucin.

Equilibrio en el uso de los recursos.

Algunos algoritmos de planificacin son:


1. PRIMERO EN LLEGAR PRIMERO EN SER SERVIDO
Conocido como FCFS (First Come First Served). Este algoritmo emplea una cola de
procesos, asignando un lugar a cada proceso por el orden de llegada. Cuando el proceso
llega es puesto en su lugar en la cola despus del que lleg antes que l y se pone en
estado de listo. Cuando un proceso comienza a ejecutarse no se interrumpe su ejecucin
hasta que termina de hacerlo.
2. PRIORIDAD AL MS CORTO

SISTEMAS OPERATIVOS

INGENIERIA INFORMATICA VI CICLO

Su nombre es SJF (Shortest Job First). El proceso que se encuentra en ejecucin cambiar
de estado voluntariamente, o sea, no tendr un tiempo de ejecucin determinado para el
proceso. A cada proceso se le asigna el tiempo que usar cuando vuelva a estar en
ejecucin, y se ir ejecutando el que tenga un menor tiempo asignado. Si se da el caso de
que dos procesos tengan igual valor en ese aspecto emplea el algoritmo FCFS.
3. ROUND ROBIN
A cada proceso se le asigna un tiempo determinado para su ejecucin, el mismo tiempo
para todos. En caso de que un proceso no pueda ser ejecutado completamente en ese
tiempo se continuar su ejecucin despus de que todos los procesos restantes sean
ejecutados durante el tiempo establecido. Este es un algoritmo basado en FCFS que trata
la cola de procesos que se encuentran en estado de listos como una cola circular.

4. PLANIFICACIN POR PRIORIDAD


En este tipo de planificacin a cada proceso se le asigna una prioridad siguiendo un criterio
determinado, y de acuerdo con esa prioridad ser el orden en que se atienda cada proceso.
5. PLANIFICACIN GARANTIZADA
Para realizar esta planificacin el sistema tiene en cuenta el nmero de usuarios que deben
ser atendidos. Para un nmero "n" de usuarios se asignar a cada uno un tiempo de
ejecucin igual a 1/n.
6. PLANIFICACIN DE COLAS MLTIPLES
El nombre se deriva de MQS (Multilevel Queue Schedulling). En este algoritmo la cola de
procesos que se encuentran en estado de listos es dividida en un nmero determinado de
colas ms pequeas. Los procesos son clasificados mediante un criterio para determinar en
qu cola ser colocado cada uno cuando quede en estado de listo. Cada cola puede
manejar un algoritmo de planificacin diferente a las dems.

SISTEMAS OPERATIVOS

INGENIERIA INFORMATICA VI CICLO

MINIX
Es un clon del sistema operativo Unix distribuido junto con su cdigo fuente y desarrollado por
el profesor Andrew S. Tanenbaum en 1987.
Fue creado para ensear a sus alumnos el diseo de sistemas operativos en la Vrije
Universiteit de msterdam. La razn de su desarrollo fue porque Unix estaba bajo restricciones
de licencia de AT&T, era demasiado complicado y corra sobre mquinas complejas; algo
completamente antipedaggico.
Gracias a su reducido tamao, diseo basado en el paradigma del microncleo, y su amplia
documentacin, resulta bastante apropiado para personas que desean instalar un sistema
operativo compatible con Unix en su mquina personal as como aprender sobre su
funcionamiento interno.
Minix fue desarrollado para correr sobre IBM PC con microprocesador Intel 8088 o superior,
aunque se han creado conversiones para otros sistemas.
Debido al enfoque puramente educacional de MINIX, Tanenbaum no permita que este fuera
modificado demasiado ya que esto complicara el sistema y no permitira que sus estudiantes
lo entendieran en un semestre. Por estos motivos, Linus Torvalds decidi escribir su
propio ncleo de sistema operativo (Linux) compatible con Unix. En simbiosis con las
herramientas de GNUsurgi GNU/Linux, que ha ganado protagonismo en el campo de los Unix
para ordenadores compatibles con el IBM PC, principalmente debido a que su licencia (GPL)
permite la modificacin del mismo. Actualmente Minix se distribuye con una licencia similar a
la licencia BSD, lo que permite su modificacin.
Para una persona poco familiarizada con los elementos internos de un sistema operativo,
MINIX es una buena opcin que le permite entender casi todos los elementos del sistema con
solo algunos meses de uso y estudio.

SISTEMAS OPERATIVOS

INGENIERIA INFORMATICA VI CICLO

HISTORIA
Andrew S.Tanenbaum cre MINIX en la Universidad Libre de msterdam para ejemplificar los
principios recogidos en su libro de texto Operating Systems: Design and
Implementation (1987). Una parte del cdigo en C del ncleo, el controlador de memoria y el
sistema de ficheros de MINIX 1.0 se recogen en este libro.
Junto con el libro tambin haba disponible un disquete con el cdigo fuente de MINIX y
los binarios, junto con un manual de referencia del sistema.
Tanenbaum cre originalmente MINIX para que fuera compatible
arquitecturas IBM PC e IBM PC/AT, que eran las comunes en esa poca.

con

las

MINIX 1.5, publicado en 1991, inclua soporte para MicroChannel IBM PS/2 y tambin fue
adaptado para las arquitecturas Motorola 68000 y SPARC, soportando Atari ST,Commodore
Amiga, Apple Macintosh y plataformas Sun SPARCstation.
Tambin existi una adaptacin no oficial a las arquitecturas compatibles con Intel 80386 (en
modo de 32 bits protegido), National Semiconductor NS32532, ARM y procesadores INMOS
transputer. Meiko Scientific utiliz una primera versin de MINIX como base de su sistema
operativo MeikOS. Tambin existi una versin de MINIX que se ejecutaba como un proceso
de usuario en el sistema operativo SunOS.
Al decrementarse la demanda de las computadoras de arquitectura de 68k, MINIX 2.0,
publicado en 1997, slo era compatible con las arquitecturas x86 y SPARC. Fue el tema para
la segunda edicin del libro de Tanenbaum, en esta ocasin co-escrito junto con Albert
SISTEMAS OPERATIVOS

INGENIERIA INFORMATICA VI CICLO

Woodhull, y fue distribuido en un CD-ROM incluido en el libro. MINIX 2.0 aada compatibilidad
con POSIX1, soporte para arquitecturas Intel 80386 y superiores de 32 bits y reemplaz los
protocolos de red Amoeba incluidos en MINIX 1.5 por TCP/IP. Tambin aparecieron
adaptaciones no oficiales de MINIX 2.0 para las arquitecturas basadas en el 68020 ISICAD
Prisma 7000 y las basadas en Hitachi SH3.
Minix-vmd es una variante de MINIX 2.0 para procesadores compatibles con Intel IA-32, que
fue creada por dos investigadores de la Vrije Universiteit, la cual aada memoria virtual y
soporte para el sistema grfico X Window System.
MINIX 3 fue pblicamente anunciado el 24 de octubre de 2005 por Andrew Tanenbaum,
durante su exposicin en la conferencia de ACM en el Symposium on Operating System
Principles. Aunque sigue mantenindose como ejemplo para la nueva edicin de su libro, est
comprensiblemente rediseado para ser utilizado como un sistema serio en computadoras
con recursos limitados y para aplicaciones que requieren de gran fiabilidad.
Actualmente MINIX 3 soporta slo arquitecturas derivadas de IA-32, y est disponible en
LiveCD, lo que permite ser utilizado sin necesidad de instalar el sistema operativo, y en
versiones
compatibles
con
sistemas
de
emulacin
o
virtualizacin
como BOCHS, Qemu, VMware y VirtualPC.
La
versin
3.1.5
fue
lanzada
el
5
de
noviembre
de
2009,
y
contiene X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine y
cerca
de 650 aplicaciones ms, comunes a los sistemas Unix. Con la incorporacin de X11, esta
versin marca el punto de transicin entre el modo texto y grfico en este sistema operativo.
Otra caracterstica de esta versin, que ser mejorada en un futuro, es la habilidad del sistema
para mantenerse cuando el driver de algn componente deja de funcionar, y en algunos casos
stos son reemplazados automticamente sin afectar a los procesos que se estn ejecutando.
Siguiendo este camino, MINIX es self-healing, lo que lo hace ideal para sistemas que requieren
alta fiabilidad.
ESTRUCTURA
Para comprender mejor la estructura microkernel de MINIX se detallan a continuacin las
diferentes capas:
Capa 1: Esta es la capa que interacta directamente con el hardware. Es la encargada de
atrapar todas las interrupciones y trampas, de planificar y ofrecer a las capas superiores un
modelo de procesos independientes y secuenciales para comunicarse mediante el uso de
mensajes. En resumen cuenta con dos partes bien definidas: la primera trata todo lo referente
a la programacin de bajo nivel para brindar la abstraccin de procesos a las capas superiores.
La segunda parte gestiona los aspectos ms mecnicos de los mensajes, como los buffers de
envo y recepcin de mensajes que se alojan en la memoria fsica, las verificaciones de
SISTEMAS OPERATIVOS

INGENIERIA INFORMATICA VI CICLO

destinos y todo lo referente al manejo fsico de memoria en lo que respecta a los mensajes.
Esta primera capa est est escrita en lenguaje ensamblador, el resto estn escritas
en lenguaje C.
Capa 2: Contiene todo lo concerniente a los procesos de E/S, uno por cada tipo de dispositivos
(tareas). Como se ilustra en el grfico, tenemos tareas para discos, impresoras, relojes,
interfaces de red y tareas de sistema, que si bien no son dispositivos de sistema s tienen por
finalidad el servicio de copiado entre diferentes regiones de memoria para procesos que no
cuentan con los privilegios para realizarlos ellos mismos. Todas las tareas de la capa 2 y el
cdigo de la capa 1 se combinan para formar un solo programa binario llamado kernel, aunque
a pesar de que son compilados juntos cuando el kernel y los manejadores de interrupciones se
estn ejecutando estos tienen mayores privilegios que las tareas. De este modo se logra que el
kernel pueda ejecutar todo tipo de instrucciones usando datos de cualquier parte del sistema, a
fin de poder acceder a cualquier parte de la memoria y cualquier registro de procesador. Sin
embargo, las tareas a pesar de no contar con los privilegios a nivel de kernel s pueden
acceder a cualquier regin de memoria que pertenezca a un proceso menos privilegiado con el
objetivo de realizar E/S para ellos.
Capa 3: Aglutina los procesos conocidos como procesos servidores. Se ejecutan en un nivel
menos privilegiado que el kernel o las tareas, y no acceden directamente a los puertos de
entrada y slida. Tampoco pueden acceder a otra regin de memoria que no sea la que le fue
asignada. Para ello se vale de las llamadas al sistema (FORK, EXEC y BRK) las cuales son
proporcionadas por el administrador de memoria (MM). El sistema de archivos (FS) realiza las
llamadas al sistema para los archivos (READ, MOUNT y CHDIR). Cabe destacar que el
sistema de archivos de MINIX est diseado como servidor de archivos por lo que se podra
mover a una mquina remota casi sin cambios. Otros servidores de esta capa son el servidor
de reencarnacin (RS), que permite reiniciar los drivers que se cierren por fallos u otras
causas.
Capa 4: Finalmente aqu se alojan todos los procesos de usuario tales como shells, editores,
compiladores, programas, etc.

SISTEMAS OPERATIVOS