You are on page 1of 21

Pgina 1

TEMA 4 (PARTE 1 DE 3):


PROCESOS

SISTEMAS OPERATIVOS: GESTIN DE

1.Introduccin
1.1.Conceptos bsicos
2.Los procesos y el ncleo del sistema operativo
2.1.Repaso de los conceptos de proceso y programa
2.2.Tabla de procesos (Process Control Block-Bloque de Control de Procesos)
Definicin de planificacin: Conjunto de mecanismos del SO que establecen el orden en el
que se van a ejecutar los procesos.
3.Sistema operativo. Funcionamiento. Recursos
3.1.Funciones de un sistema operativo
3.2.Concepto de ncleo(kernel) del sistema operativo
3.3.Recursos hardware y software del sistema operativo que gestionan a esos
recursos
4.Tipos de sistemas operativos
4.1.Segn como interactan con el usuario
4.2.Segn nmero de usuarios que acceden al sistema simultneamente
4.3.Segn la disponibilidad
4.4.Segn el nmero de tareas que puede realizar a la vez el usuario
simultneamente
4.5.Segn el nmero de procesadores
4.6.Segn el nmero de procesos ejecutndose en un mismo instante
4.7.Sistemas operativos por la forma de ofrecer sus servicios en red
4.8.Sistemas operativos segn su estructura
4.8.1.Estructura monoltica
4.8.2.Estructura jerrquica.
4.8.3.Estructura Mquina Virtual.
4.8.4.Estructura microkernel.
5.Planificacin de procesos (NO ENTRA PARA EXAMEN SOLO SE PROPORCIONA COMO
REFUERZO)
5.1.Concepto de planificacin
Definicin de planificacin: Conjunto de mecanismos del SO que establecen el orden en el
que se van a ejecutar los procesos.
5.2. Introduccin a la planificacin de procesos
Scheduler y Dispatcher
Estrategias de seleccin de procesos
Sin reciclaje de procesos (estrategias no preventivas)
Con reciclaje de procesos:
Reciclaje cclico simple (Round Robin)
Reciclaje con colas multi-nivel realimentadas:

Pgina 2

1. Introduccin
1.1. Conceptos bsicos
No se puede hablar de un sistema operativo sin antes tener claros ciertos
conceptos fundamentales. Vemoslos a continuacin:

Programa: descripcin del conjunto de instrucciones (tareas) que


manejan datos (por ejemplo un programa industrial, un programa
informtico, etc. que en algn momento se desarrollarn con un fin

Proceso: la ejecucin de un programa (proceso industrial, un proceso


informtico, etc.)

Sistema operativo: Un sistema operativo es un conjunto de programas


que en un sistema informtico permite:
Gestor de recursos: conjunto de programas que gestionan los recursos

(pantalla, teclado,
computador.

ratn,

procesador,

memoria,

etc.)

de

un

Mquina virtual extendida: es una abstraccin de una mquina real,


por eso se le denomina mquina virtual.
Gestor eventos (interrupciones): cada evento que ocurre en el
computador es tratado por el sistema operativo.
El sistema operativo es un conjunto de programas que gestionan
los recursos de un computador. Es una abstraccin de una mquina real,
por eso se le denomina mquina virtual.
El sistema operativo permite ofrecer todos los recursos fsicos (el
hardware como el procesador, la pantalla, el teclado, la impresora, el
ratn, la memoria) a otros programas o a un usuario que use el
computador.
Cada evento que ocurre en el computador (seal hardware) o seal
que es enviada de un proceso a otro (seal software) es tratada por el
sistema operativo. Por eso se dice que tambin es un manejador de
eventos.
Por todo ello se le conoce como intermediario entre el HW y el
usuario, aunque podemos tener el caso concreto de un sistema en el que
haya un agente inteligente autnomo, independiente de cualquier
usuario, y que su sistema operativo gestione todo el hardware .

Lenguaje: Reglas para poder realizar la comunicacin entre dos


elementos. Se puede definir tambin como el conjunto de reglas

Pgina 3

sintcticas, semnticas, y lxicas (una gramtica) que permite la


representacin de significados en smbolos.

Lenguaje de programacin: lenguaje que sirve para comunicar a un


programador (persona que hace los programas informticos) con un
computador

No podemos hablar de programas sin antes ver lo que es codificacin y


los tipos de cdigos. Hemos visto los cdigos numricos: binario, octal, y
hexadecimal. El computador en realidad trabaja con el sistema binario (ceros
y unos), y existen tcnicas que no vamos a tratar aqu para poder trabajar con
la coma decimal (en simple -32 bits- o doble precisin -64 bits). Lo que si
vamos a tratar es la diferencia entre los tres tipos de cdigos que existen en un
computador.
Pero que es un cdigo? Qu es codificar?

Cdigo:Un cdigo es una forma de representar o comunicar un smbolo


para que se le interprete con un significado. Los cdigos pueden ser
numricos, alfabticos, o alfanumricos en funcin de los tipos de datos
que trabajen. Los cdigos numricos trabajan con sistemas de
representacin de magnitudes, los alfabticos hacen corresponder u
smbolo en un lenguaje (por ejemplo la a) con una representacin real
(el evento al pulsar una tecla) o con otro cdigo (por ejemplo el octal o
hexadecimal). Los alfanumricos trabajan con nmeros y letras.

Codificar: Pasar de un cdigo a otro.

Los tipos de cdigos posibles en un computador son:

Cdigo mquina o binario. Es el que se ejecuta en el procesador. Es el


sistema binario cuyos smbolos son 1 y 0. Un bit es la unidad mnima de
informacin, y puede valer 1 0. Un byte son 8 bits.

Cdigos intermedios: Algunos lenguajes de programacin permiten el


trabajo con nmeros hexadecimales u octales, y siempre se utilizan en la
programacin de sistemas operativos.

Cdigos de entrada/salida. Es la codificacin que se da a un


smbolo(a, b, h, 32,) o signo (, ., <,[,],). Es el cdigo en el que se
introducen los datos en un computador, as como su representacin en la
salida. Son los llamados cdigos alfanumricos, y toda arquitectura de un
computador se basa en su entrada/salida en ellos. Tenemos algunos
ejemplos como ASCII

Ejercicio: se pide al alumno que busque informacin sobre los cdigos ASCII, y UTF-8

Pgina 4

2. Los procesos y el ncleo del sistema operativo


2.1. Repaso de los conceptos de proceso y programa

Proceso: Programa en ejecucin

Programa: Conjunto de acciones, instrucciones o eventos que se


desarrollan(o ejecutan en un entorno) con un fin o cometido
determinado.

2.2.
Tabla de procesos (Process Control Block-Bloque
de Control de Procesos)
Los procesos necesitan ser representados mediante una estructura de datos
que permita guardar los datos mas importantes de un proceso:

Definir inequvocamente mediante un nmero los procesos mediante un


identificador numrico de proceso llamado pid, process identifier,
diferente para cada proceso e irrepetible.
Guardar el estado de un proceso: El estado puede ser:
o

No existente: No creado o desaparecido.

Existente: creado y hay constancia de l en el sistema.

Detenido: No puede evolucionar (no se ha decido que


comiencen a ejecutarse o se ha determinado que estn un
intervalo de tiempo sin posibilidad de ejecucin.

Activado: Puede evolucionar.

Espera(BLOQUEADO): a que ocurran las condiciones


que le permitirn pasar a otro estado, a la espera de
obtener los recursos necesarios (pantalla, teclado,
ratn, procesador, etc..) para poder continuar.

Preparado o Listo: Tiene todos los recursos necesarios y


espera que se le asigne el procesador.

Ejecucin: Tiene procesador y se est ejecutando.

En todos los computadores, existe un temporizador hardware(RELOJ),


que produce interrupciones peridicas. En cada una de ellas, el SO recupera el
control y decide si debe dejar al proceso actual en ejecucin, o debe
suspenderlo y ceder el procesador a otro.

Pgina 5

Transiciones entre los 3 estados (siguiendo un algoritmo de planificacin):

EJECU
CIN

LIST
O

BLOQU
EADO

Almacenar el contexto voltil de un proceso: cuando este abandona el


procesador guardar los nuevos recursos requeridos por el proceso; por
ejemplo la direccin de memoria donde est la lnea de ejecucin que se
estaba ejecutando para que la prxima vez que arranque el proceso sepa
por donde continuar. Algunos valores son:
o

Valores de los registros de CPU: En el momento en el que


abandon el procesador para poder continuar la ejecucin donde la
dej.

Registro de quantum (tiempo mximo de ejecucin del proceso


cada vez que este accede al procesador)

Contador de programa (nmero de instruccin que se est


ejecutando)

o Propietario del programa


o Grupo del programa
o Usuario real que ejecuta el programa
o

Usuario efectivo que ejecuta el programa

o Zona de memoria asignada


o

Derechos

Datos de estado E/S ( bloqueos, recursos asignados, etc...)

o Etc ...

Pgina 6

El acceso al PCB debe ser muy rpido, algunos sistemas tienen un registro
hardware que apunta directamente al PCB del proceso actual.

3. Sistema operativo. Funcionamiento. Recursos


Veremos la funcionalidad en general y despus de su parte mas importante
primero (su ncleo), y despus su de su funcionamiento en general

3.1. Funciones de un sistema operativo


El funcionamiento de un sistema operativo se realiza observando
distribucin del software por niveles en un sistema informtico:

la

Nivel usuario final: quien usa los programas del sistema informtico
Nivel aplicaciones: las aplicaciones(programas) que usan los usuarios
Utilidades del sistema operativo: para que los usuarios puedan
parametrizar, configurar, o mantener el sistema operativo (creacin de
ficheros, copias, lecturas, comunicaciones, etc)
El sistema operativo en s
Hardware: la mquina real

La comunicacin entre los distintos niveles se realiza mediante las llamadas


interfaces(ya visto el concepto) . Para realizar esta comunicacin el sistema
operativo cuenta con unos procesos ejecutados en segundo plano o
background llamados servicios o demonios. Algunos de los servicios lanzados
por los sistemas operativos son aplicaciones del tipo cliente-servidor,
servidores Web, servidores de bases de datos, etc.

3.2. Concepto de ncleo(kernel) del sistema operativo


Trabaja directamente con el hardware, por tanto el cdigo ha de ser en
lenguaje de bajo nivel (ensamblador o cdigo mquina).
Son los mdulos ms utilizados por tanto:

Han de ser rutinas que se ejecuten con suma rapidez

El ncleo debe residir en memoria central (principal).

EL kernel se ejecuta en modo privilegiado (podrn acceder a cualquier recurso)


mientras que los procesos comunes de usuario se ejecutan en modo usuario
(con mas restricciones al uso del hardware).

Pgina 7

Resumiendo, es el manejo del PCB:

Gestin de interrupciones

Gestin de procesos

Gestin de la E/S(entrada/salida) directa con el hardware de la mquina,


lo que le convierte de intermediario con otros niveles superiores del
sistema operativo (niveles como manejador de memoria, manejador de
disco duro, manejador de ficheros, manejador de reloj -contabilizacin-,
manejador de teclado, manejador de pantalla,...)

3.3. Recursos

hardware y software del sistema operativo que


gestionan a esos recursos

Los recursos hardware que gestionan un sistema operativo son:


1. El procesador lo gestiona la parte del SO Gestin de procesos
2. La memoria interna o central (principal-RAM)- lo gestiona la parte del SO

Gestin de memoria
3. Los perifricos de entrada/salida lo gestiona la parte del SO Gestin de

E/S
4. La informacin (memoria secundaria-discos) - Gestin de Ficheros

4. Tipos de sistemas operativos


Tenemos:

4.1. Segn como interactan con el usuario


Tenemos 2 tipos:

Sistemas operativos ON-LINE: estn en lnea con el usuario


cuando se ejecutan los procesos

Tiempo compartido (interactivos): es compartir el


procesador CPU entre diversas tareas programas

Pgina 8

4.2. Segn

Tiempo real: se intenta hacer lo correcto en tiempo


adecuado.

Sistemas operativos OFF-LINE (BATCH): Ejecucin de los


programas trabajo a trabajo sin interaccin del usuario.
Sistemas antiguos.

nmero
simultneamente

de

usuarios

que

acceden

al

sistema

Monousuario: Un nico usuario accede al sistema en un instante dado: el


sistema operativo MSDOS con el interfaz grfico Windows 3.11, o por
ejemplo el sistema operativo Windows XP. Los sistemas operativos
monousuarios son aqullos que soportan a un usuario a la vez (al mismo
tiempo o simultneamente), sin importar el nmero de procesadores que
tenga la computadora o el nmero de procesos o tareas que el usuario
pueda ejecutar en un mismo instante de tiempo. Las computadoras
personales tpicamente se han clasificado en este rengln.

Multiusuario: varios usuarios acceden simultneamente: Linux, Windows


Server. Los sistemas operativos multiusuarios son capaces de dar
servicio a ms de un usuario a la vez, ya sea por medio de varias
terminales conectadas a la computadora o por medio de sesiones
remotas en una red de comunicaciones. No importa el nmero de
procesadores en la mquina ni el nmero de procesos que cada usuario
puede ejecutar simultneamente.

Pgina 9

Nota importante: Puede darse el caso de que en un sistema


monousuario(no multiusuario) accedan varios usuarios pero en distintos
instantes de tiempo.

4.3. Segn

la disponibilidad

SO propietarios: Su cdigo fuente, y por lo tanto, los derechos y


permisos sobre su uso (Licencia) son propiedad de una empresa

SO libres: Software libre en general es aquel que cumple con las


siguientes libertades:

La libertad de usar el programa, con cualquier propsito.


La libertad de estudiar cmo funciona el programa y modificarlo,
adaptndolo a tus necesidades.
La libertad de distribuir copias del programa.
La libertad de mejorar el programa y hacer pblicas esas mejoras a los
dems, de modo que toda la comunidad se beneficie.
http://es.wikipedia.org/wiki/Software_libre

4.4. Segn

el nmero de tareas que puede realizar a la vez el


usuario simultneamente

Multitarea: Ejecutan varias tareas(procesos) a la vez por usuario.


En sistemas con un procesador las tareas se reparten el tiempo de CPU
mediante algoritmos de planificacin. Para el usuario las tareas se
ejecutan simultneamente.
o Un sistema operativo multitarea es aqul que le permite al usuario
estar realizando varias labores al mismo tiempo. Por ejemplo,
puede estar editando el cdigo fuente de un programa durante su
depuracin mientras compila otro programa, a la vez que est
recibiendo correo electrnico en un proceso en background. Es
comn encontrar en ellos interfaces grficas orientadas al uso de
mens y el ratn, lo cual permite un rpido intercambio entre las
tareas para el usuario, mejorando su productividad.

Monotarea: Slo una tarea(proceso) por usuario cada vez. La CPU est
asignada a la tarea hasta que finaliza.

Pgina 10

o Los sistemas monotarea son aquellos que slo permiten una tarea
a la vez por usuario. Puede darse el caso de un sistema
multiusuario y monotarea, en el cual se admiten varios usuarios al
mismo tiempo pero cada uno de ellos puede estar haciendo solo
una tarea a la vez.

4.5. Segn

el nmero de procesadores

Conviene decir que monoproceso y multiproceso son conceptos estrechamente


relacionados con el hardware.

Monoproceso: Un sistema operativo monoproceso es aqul que es capaz


de manejar solamente un procesador de la computadora, de manera
que si la computadora tuviese ms de uno le sera intil. El ejemplo ms
tpico de este tipo de sistemas es el DOS y MacOS.

Multiproceso: Un sistema operativo multiproceso se refiere al nmero de


procesadores del sistema, que es ms de uno y ste es capaz de
usarlos todos para distribuir su carga de trabajo. Generalmente estos
sistemas trabajan de dos formas: simtrica o asimtricamente.

Cuando se trabaja de manera asimtrica (concepto hardware),


el sistema operativo selecciona a uno de los procesadores el cual
jugar el papel de procesador maestro y servir como pivote para
distribuir la carga a los dems procesadores, que reciben el nombre
de esclavos.

Cuando se trabaja de manera simtrica (concepto hardware),


los procesos o partes de ellos (threads o hilos) son enviados
indistintamente a cualesquiera de los procesadores disponibles,

Pgina 11

teniendo, tericamente, una mejor distribucin y equilibrio en la


carga de trabajo bajo este esquema.

4.6. Segn

el nmero de procesos ejecutndose en un mismo

instante

En este apartado vamos a ver conceptos que si bien parecen complicados,en el


fondo no lo son tanto y ayuda al alumnado a tener una slida comprensin.
Antes de empezar se recalca que se va a hablar de monoprogramacin y
multiprogramacin, y es un concepto que si se consulta en la Web pueden
haber distintas opiniones. Para este tema se va a impartir el concepto tal como
se concibi desde los orgenes

Monoprogramacin: Solo un proceso ejecutndose. Cosas importantes a


tener en cuenta:
Obligado que el nmero de procesadores = 1 (concepto monoproceso
visto en 3.4), y adems...
Obligado que el nmero de controladores DMA(Direct Memory Access,
chip que gobierna la transferencia de informacin entre la memoria
principal y un dispositivo externo) = 0

El concepto corresponde con los primeros sistemas operativos.


En ellos se ubicaba un programa en memoria principal, adems del
sistema operativo, y hasta que no finaliza ese programa no empieza a
ejecutarse otro.

Pgina 12

Cuando finaliza una operacin de E/S, el perifrico correspondiente


genera una interrupcin que provoca la llamada al SO y contina con
la ejecucin del programa.
Cuando acaba la ejecucin del programa, el ordenador queda listo
para aceptar uno nuevo
Ntese que adems hay un nico procesador que ejecuta los
procesos

Multiprogramacin: Permiten que se ejecuten varios procesos a la vez


(varios programas). Cosas importantes a tener en cuenta:
Puede ser dada porque haya mas de 1 procesador en el sistema, con

lo que el nmero de procesos ejecutndose en el sistema sea mas de


un proceso simultneamente (el concepto de multiproceso visto
anteriormente en el apartado 3.4)
Puede ser dada porque haya un controlador hardware DMA (Direct

Memory Access, chip que gobierna la transferencia de informacin


entre la memoria principal y un dispositivo externo -un disco duro por
ejemplo).Mientras este controlador realiza la transferencia de E/S otro
proceso puede estar ejecutndose en el sistema. Por un sistema que
permita los dos casos anteriores simultneamente.
El SO multiprogramacin carga en memoria principal varios programas

y el distribuidor(proceso del sistema operativo tambin llamado


scheduler) asigna el procesador a los procesos preparados.

Pgina 13

4.7. Sistemas operativos por la forma de ofrecer sus servicios en red


Esta clasificacin tambin se refiere a una visin externa, que en este caso se
refiere a la del usuario, el cmo accede a los servicios. Bajo esta clasificacin
se pueden detectar dos tipos principales: sistemas operativos de red y
sistemas operativos distribuidos.

Sistemas Operativos Centralizados: Son sistemas puntuales, en los que el


sistema no se conecta con el exterior

Sistemas Operativos de Red: Los sistemas operativos de red se definen


como aquellos que tiene la capacidad de interactuar con sistemas
operativos en otras computadoras por medio de un medio de transmisin
con el objeto de intercambiar informacin, transferir archivos, ejecutar
comandos remotos y un sin fin de otras actividades.

Sistemas Operativos Distribuidos: Los sistemas operativos distribuidos


abarcan los servicios de los de red, logrando integrar recursos
(impresoras, unidades de respaldo, memoria, procesos, unidades
centrales de proceso) en una sola mquina virtual que el usuario accede
en forma transparente. Es decir, ahora el usuario ya no necesita saber la
ubicacin de los recursos, sino que los conoce por nombre y simplemente
los usa como si todos ellos fuesen locales a su lugar de trabajo habitual.

Pgina 14

4.8. Sistemas operativos segn

su estructura

Se deben observar dos tipos de requisitos cuando se construye un sistema


operativo, los cuales son:
Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y
adecuado al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el
mantenimiento, forma de operacin, restricciones de uso, eficiencia, tolerancia
frente a los errores y flexibilidad.
A continuacin se describen las distintas estructuras que presentan los
actuales sistemas operativos para satisfacer las necesidades que de ellos se
quieren obtener.

4.8.1. Estructura monoltica


Es la estructura de los primeros sistemas operativos constituidos
fundamentalmente por un solo programa compuesto de un conjunto de rutinas
entrelazadas de tal forma que cada una puede llamar a cualquier otra (ver
figura siguiente). Las caractersticas fundamentales de este tipo de estructura
son:
Construccin del programa final a base de mdulos compilados
separadamente que se unen a travs del ligador (o programa linkador).
Buena definicin de parmetros de enlace entre las distintas rutinas
existentes, que puede provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos de la computadora, como memoria, disco,
etc.
Generalmente estn hechos a medida, por lo que son eficientes y rpidos
en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para
soportar diferentes ambientes de trabajo o tipos de aplicaciones.

Pgina 15

4.8.2. Estructura jerrquica.


A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del
software, del sistema operativo, donde una parte del sistema contena
subpartes y esto organizado en forma de niveles. Se dividi el sistema
operativo en pequeas partes, de tal forma que cada una de ellas estuviera
perfectamente definida y con un claro interface con el resto de elementos.
Se constituy una estructura jerrquica o de niveles en los sistemas
operativos, el primero de los cuales fue denominado THE (Technische
Hogeschool, Eindhoven), de Dijkstra, que se utiliz con fines didcticos. Se
puede pensar tambin en estos sistemas como si fueran `multicapa'.
Multics y Unix caen en esa categora.

En la estructura anterior se basan prcticamente la mayora de los sistemas


operativos actuales. Otra forma de ver este tipo de sistema es la denominada
de anillos concntricos o "rings"

Pgina 16

4.8.3. Estructura Mquina Virtual.


Se trata de un tipo de sistemas operativos que presentan una interface a cada
proceso mostrando una mquina que parece idntica a la mquina real
subyacente. Estos sistemas operativos separan dos conceptos que suelen estar
unidos en el resto de sistemas: la multiprogramacin y la mquina extendida.
El objetivo de los sistemas operativos de mquina virtual es el de integrar
distintos sistemas operativos dando la sensacin de ser varias mquinas
diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y tiene
como misin llevar a cabo la multiprogramacin, presentando a los niveles
superiores tantas mquinas virtuales como se soliciten. Estas mquinas
virtuales no son mquinas extendidas, sino una rplica de la mquina real, de
manera que en cada una de ellas se pueda ejecutar un sistema operativo
diferente, que ser el que ofrezca la mquina extendida al usuario

Pgina 17

4.8.4. Estructura microkernel.


El micro-kernel es algo menos eficiente que un kernel monoltico (aunque
no hay mucha diferencia si el microkernel es bueno), porque el monoltico
todo el sistema operativo es un programa completo en donde ha sido
enlazado todas sus rutinas en una sola, mientras que el micro-kernel
separa el kernel del resto del sistema operativo, y ah hay un coste de
rendimiento.
Esta diferencia de rendimiento se debe a que en la estructura
cliente-servidor del micro-kernel, las llamadas a los servicios de los
servidores requieren realizar cambios de contexto de modo ncleo
a modo usuario continuamente (cambio de informacin acerca del
proceso que lleva la ejecucin, y que esta se registra en la memoria
principal), pues los servidores se ejecutan siempre en modo usuario. Sin
embargo, en el kernel monoltico todo es un programa entero y no hay
que hacer eso, aumentando por tanto el rendimiento.

4.8.4.1 Un tipo de microkernel: el sistema clienteservidor


Dentro de esta estructura tambin podramos incluir el Sistema ClienteServidor ya que presenta una ligera variacin en la idea del Microkernel
la cual es que este sistema hace la diferencia entre dos clases de
procesos: los servidores, cada uno de los cuales proporciona cierto
servicio, y los clientes, que utilizan estos servicios.
En esta imagen se puede ver como se separa el microkernel del
resto del sistema operativo, y adems el sistema operativo es
desmenuzado en piezas de procesos servidores (servidor de ficherosdiscos duros-, servidor de memoria principal, servidor de teclado, de
pantalla, de ratn, servidor de DVD, etc).
Un micro-kernel con la estructura de cliente servidor permite
disear el sistema de una forma muy modulada y elegante. Para hacer
cambios en el sistema operativo no habra que recompilar todo el kernel,

Pgina 18

sino slo el mdulo que se ha modificado, y luego no habra que reiniciar


para cargar el nuevo kernel en memoria, sino recargar el mdulo
modificado.

El objetivo es desarrollar la mayora de las funciones del sistema


operativos como procesos de usuario. Un proceso de usuario, llamado en
este caso proceso cliente, enva una solicitud a un proceso servidor, que
realiza el trabajo y devuelve la respuesta.
El sistema operativo se divide en partes donde cada una controla
una faceta del sistema, entre ellos servicios a archivos, servicios a
procesos, servicios a terminales, o servicios a la memoria, donde cada
una es pequea y controlable, as al ejecutar los procesos en modo
usuario y no en modo ncleo si hay algn error en algn servidor, este
afectar slo a dicha parte y no a toda la mquina, ya que no se tiene
acceso al hardware.

Un subtipo de microkernel cliente-servidor, el


microkernel restringido a su mnima expresin
A menudo la capa inferior es un microkernel, pero eso no es requerido. La
esencia es la presencia de procesos cliente y procesos servidor.
En los sistemas operativos modernos, los sistemas cliente-servidor
nacen con la finalidad de minimizar el ncleo (kernel), trasladando el
cdigo de todos sus servicios a las capas superiores; y el ncleo slo
deber controlar la comunicacin, que se realiza mediante mensajes,
entre clientes y servidores o servidores y hardware.

Pgina 19

5. Planificacin de procesos (NO ENTRA PARA EXAMEN


SOLO SE PROPORCIONA COMO REFUERZO)
5.1. Concepto de planificacin
En todos los computadores, existe un temporizador hardware(RELOJ), que
produce interrupciones peridicas. En cada una de ellas, el SO recupera el
control y decide si debe dejar al proceso actual en ejecucin, o debe
suspenderlo y ceder el procesador a otro.

Definicin de planificacin: Conjunto de mecanismos del SO que


establecen el orden en el que se van a ejecutar los procesos.

5.2. Introduccin a la planificacin de procesos


Existen ordenadores que disponen de varios procesadores, por lo que son
capaces de ejecutar al mismo tiempo varias tareas, estos computadores
disponen de sistemas operativos especiales denominados sistemas
multiproceso. En los ordenadores que solo se dispone de un solo procesador
son sistemas monoproceso.
Ya se habl de los diferentes estados de un proceso cuando se permita que el
sistema operativo pudiese pausar y rearrancar procesos en el estado en que
estaban:

EJECU
CIN

LIST
O

Es posible crear la ilusin de multiprocesamiento por medio de


interrupciones, cambiandoBLOQU
el proceso activo cada cierto tiempo aunque no se
haya finalizado la tarea en ejecucin.

EADO

Pgina 20

Scheduler y Dispatcher

Scheduler: mdulo encargado de gestionar la cola de preparado de


procesos para el control del procesador.

Dispatcher: mdulo encargado de asignar la CPU al proceso que est en


la cabecera de la cola de preparado.

El Scheduler hace las transiciones de espera a preparado y dispatcher


de preparado a ejecucin.

Estrategias de seleccin de procesos

Sin reciclaje de procesos (estrategias no preventivas)


Consiste en dar el control a un proceso hasta que acaba o hasta que requiera
algn recurso que no tenga en ese momento. No existe el quantum. A este tipo
pertenecen:

Con reciclaje de procesos:


El S.O. puede forzar el fin de la asignacin del procesador al proceso actual.
Una forma sencilla es asignar a cada proceso el procesador durante intervalos
de tiempo determinado. quantum. Aqu a diferencia del anterior se introduce el
quantum.
Ejemplo de reciclaje de procesos:
Reciclaje cclico simple (Round Robin)
El procesador se asigna en orden FIFO. A la cola accedern procesos por paso
de espera a preparado y porque han acabado su tiempo en el procesador.

CPU

Pgina 21

Reciclaje con colas multi-nivel realimentadas:


Favorece a procesos cortos sin repercusiones dramticas para los largos. La
ltima cola puede ser Round Robin. Cada cola tiene una prioridad, y dentro de
ellas hay un orden.

CPU