Você está na página 1de 38

Arquitectura de Computadoras

UNIVERSIDAD
NACIONAL DE
TRUJILLO

Arquitectura de Computadoras

Arquitectura de
Computadoras

DOCENTE

ALUMNOS

Ing. Csar Arellano Salazar


1. Cabrera Huamn, Ysabel
2. Escalante Snchez, Luigui
3. Gonzales Haro, Zulmi
4. Montoya Javes, Eder

CICLO

VI

TEMA

Planificacin de Recursos

AGRADECIMIENTOS

A Dios
Le
agradecemos
por
habernos
acompaado y guiado a lo largo de este
trabajo, por ser nuestra fortaleza en los
momentos en los dificultad y por
brindarnos una vida llena de aprendizaje
y sobre todo felicidad.
Luigui

Arquitectura de Computadoras

A Nuestros Padres
Le damos gracias a nuestros padres por apoyarnos
en todo momento, por los valores que nos han
inculcado, y habernos dado la oportunidad de
tener una excelente educacin. Sobre todo porque
son un gran ejemplo a seguir.
Eder

A Dios
En primer lugar agradecemos a Dios
por las fuerzas, las ganas y la sabidura
que nos da da a da para continuar y
poder lograr nuestros objetivos.
Al docente
Agradecemos y estimamos a nuestro
docente por la enseanza y por
brindarnos su gua y sabidura para el
desarrollo de este trabajo.
Ysabel

Arquitectura de Computadoras

A Dios
Le damos gracias a Dios ante todo y a nuestras familias
por nunca dejarnos solos y siempre darnos su
incondicional apoyo en nuestro camino haca lograr
todas las metas que nos trazamos.
Al Docente
Tambin a los docentes por la gua necesaria y por
compartirnos el conocimiento, por lograr que da a da
nos planteemos nuevas metas y nos ayuden a lograrlas.
Zulmi

ndice
Agradecimientos
..2
ndice
4
Introduccin........................................................................................
..........6

Arquitectura de Computadoras

Resumen
...7
I.

Planificacin de
Procesos................................................................... 8
1.1 Concepto de
recursos.8
1.2 Concepto de
proceso..9
1.3 Concepto de planificacin ...

II.

...11
Planificacin de
Memoria................................................................. 24
2.1. Administrador de
memoria24
2.2 Administrador de sistemas
multiprogramados24
2.3 Esquema de asignacin de
memoria24
2.4. Particiones fijas
.25
2.5. Particiones variables.

III.

.28
La gestin de la
memoria................................................................. 30
3.1 Memoria
virtual...31
3.2
Paginacin
..31
5

Arquitectura de Computadoras

3.3 Fallo de
pgina.35
3.4 Paginacin por
demanda....36

3.5 Memoria segmentada o segmentacin de


memoria.37
Conclusiones
...41
Bibliografa
,..42
Web
grafa
.43

Arquitectura de Computadoras

INTRODUCCIN
El presente trabajo est elaborado de una manera sencilla para poder conocer y entender los
procesos y planificacin de recursos de un computador. Desarrollando aqu conceptos,
caractersticas, tipos, causas de ciertos procesos, de cierta planificacin, hablaremos de la
segmentacin de la memoria, de la gestin de la memoria, entre otros puntos todos ellos tratados
con el fin de lograr dar un breve resumen de cada punto planteado en este trabajo.
Este tema es de importancia en el conocimiento bsico sobre un computador y lo referente a l, ya
que el estudiar ingeniera de sistemas no quiere decir que slo vamos a programar sino debemos de
tener conocimientos en general sobre todo lo relacionado a nuestro mundo y as poder sobrevivir en
l y poder resolver cualquier problema que se nos presente.
Esperamos que este trabajo sea de su total comprensin y agrado, fue elaborado con todo el esmero
y dedicacin por el grupo para poder participar en el compartir del conocimiento.

Arquitectura de Computadoras

RESUMEN
La forma en que se reparte el uso de la CPU entre los procesos tiene un enorme impacto en el
rendimiento de un sistema multiprogramado, por lo que siempre se ha prestado una gran atencin a
las polticas de planificacin que se implementan y se han elaborado multitud de conceptos
relacionados con ello.
La planificacin hace referencia a un conjunto de polticas y mecanismos incorporados al sistema
operativo que gobiernan el orden en que deben ser ejecutados los trabajos que deben completarse
por el sistema operativo. El objetivo de la planificacin es optimizar el rendimiento del sistema.

Arquitectura de Computadoras

I.

PROCESOS
I.1. Concepto de Recursos
En informtica los recursos son las aplicaciones,
herramientas, dispositivos (perifricos) y capacidades
con las que cuenta una computadora.

Fig1.1 Recursos que administra


una computadora

Planif
caci
n de
recurs
os

Sistema operativo
Hardware
CPU
Memoria RAM
Disco duro
Software, entre otros

Arquitectura de Computadoras

I.2. Concepto de Proceso


Definimos proceso como un programa en ejecucin.
Un programa ejecutable es un conjunto de instrucciones y datos almacenados en un fichero.
Cuando lo que tiene ese programa se carga en la memoria y se pone en ejecucin, se
convierte en un proceso.

Fig1.2. Proceso de un computador

El programa necesita de recursos para su ejecucin:


-

Tiempo de la CPU
Memoria
Con el contenido del programa
Pila para datos temporales
Seccin de datos con variables globales.
Acceso a archivos y dispositivos E/S.

Los procesos tambin se definen como una unidad de trabajo del sistema y tienen un
carcter esencial:
-

Un proceso en su ejecucin puede generar ms de un proceso. (fork)


Dos procesos pueden asociarse al mismo programa.

En general, habr ms de un proceso ejecutndose concurrentemente.

10

Arquitectura de Computadoras

El sistema operativo se encargar de:

La creacin y eliminacin de procesos


La planificacin de procesos.
La sincronizacin, comunicacin y manejo de bloqueos mutuos entre
procesos.

a. Estado de un proceso
El estado de un proceso est relacionado con su actividad del proceso en cierto
momento y al ejecutarse ir cambiado de estado.

Fig. 1.3. Estados de un proceso


Definicin de los estados:
Nuevo: El proceso se acaba de crear, pero an no ha sido admitido en el grupo de
procesos ejecutables por el sistema operativo.
Habitualmente en un sistema operativo multitarea como Windows, nada ms
que un proceso se crea, ste resulta admitido, pasando al estado listo. Sin
embargo, esto no tiene por qu ser siempre as. Por ejemplo, en una situacin
de sobrecarga temporal del sistema, el SO puede decidir retardar la admisin
de los procesos nuevos. As se alivia la carga del sistema, ya que hasta que un
proceso no es admitido, ste no compite por los recursos del sistema.

Listo: El proceso est esperando ser asignado al procesador para su ejecucin.


11

Arquitectura de Computadoras

Una CPU clsica (con un solo ncleo) solo se puede dedicar en cada
momento a un proceso. Los procesos que estn preparados para ejecutarse
permanecen en estado listo hasta que se les concede la CPU. Entonces pasan
al estado En ejecucin.
En ejecucin: El proceso tiene la CPU y sta ejecuta sus instrucciones.
En espera o bloqueado: No puede hacer nada porque est esperando a que ocurra
algn suceso, como por ejemplo la terminacin de una operacin de E/S.
Terminado: El proceso ha sido sacado del grupo de procesos ejecutables por el
sistema operativo. Despus de que un proceso es marcado como terminado se
liberarn los recursos utilizados por ese proceso, por ejemplo, la memoria.
I.3. Concepto de Planificacin
El objetivo de los sistemas multitarea es mantener mltiples programas en ejecucin
simultneamente, pero como la CPU slo puede ejecutar un programa de cada vez, hay
que decidir quin se ejecuta en cada momento.
La planificacin de la CPU es la base de los sistemas operativos multiprogramados.
Mediante la conmutacin de la CPU entre distintos procesos, el sistema operativo puede
hacer que la computadora sea ms productiva.
Debemos considerar el problema de seleccionar el mejor algoritmo para un sistema
particular.
La planificacin de procesos es una de las funciones principales del Sistema Operativo,
este determina que proceso debe ejecutarse en cada momento, normalmente el Hardware
interrumpe un proceso en ejecucin en determinados instantes para de esta manera
permitir que el sistema operativo tome una nueva decisin de planificacin de forma que
el tiempo se utilice por igual entre los procesos.

Si hay dos procesos listos para ejecucin el planificador (scheduler) del sistema
operativo decide cual. El planificador utiliza un algoritmo de planificacin.

12

Arquitectura de Computadoras

Fig. 1.3. Un ejemplo de planificacin de proceso: P0 y P1

Fig. 1.4. Una manera sencilla de planificacin sin multiprogramacin

Fig. 1.5. Planificacin con multiprogramacin

Planificacin en sistemas de tiempo compartido


Los sistemas operativos ms importantes del marcado actual (Windows, Linux, Mac
OS y todas las versiones de Unix) se consideran sistemas operativos de tiempo
compartido.

Objetivo prioritario de estos sistemas: Garantizar que el tiempo de respuesta de los


programas se mantiene en unos valores admisibles para los usuarios.
Cuando un usuario interacciona con un programa y le da una orden, quiere que el
programa responda en un tiempo razonable. Para conseguir esto hay que hacer que el
resto de programas que se encuentren en ejecucin no monopolicen la CPU. Para
ello, hay que ir repartiendo la CPU entre todos los programas, y adems muy
rpidamente, para que cada programa tenga una fraccin del recurso CPU cada muy
poco tiempo.

13

Arquitectura de Computadoras

Esquema de funcionamiento: A cada proceso en ejecucin se le asigna un quantum,


que representa el tiempo mximo que puede estar ocupando la CPU. Entonces un
proceso abandona la CPU, o bien cuando se bloquea por una operacin de E/S
(pasando al estado en espera), o bien cuando expira su quantum (pasando al estado
listo.)

Colas de planificacin
Son unas estructuras de datos que organizan los PCBs de los procesos que se
encuentran cargados en el sistema en funcin de su estado.
El SO planifica los procesos en funcin de la informacin mantenida en estas colas.
Estas estructuras se forman enlazando los PCBs de los procesos mediante punteros.
Existen tres tipos de colas:
Cola de procesos listos: Contiene a los procesos que se encuentran en el estado
listo.
Debe indicarse una vez ms que estos procesos son los que estn preparados para ser
asignados a la CPU.

Cola de dispositivo: Contiene los procesos que estn esperando por un determinado
dispositivo. Estos procesos se encuentran en el estado En espera. Cada dispositivo
tiene una cola asignada.
Colas de trabajos: Procesos en almacenamiento secundario esperando memoria
principal
Hay muchos dispositivos, como por ejemplo el disco, que son intensivamente utilizados por
muchos procesos. Los procesos deben esperar ordenadamente para poder utilizar este
recurso.
Un proceso cambia de cola a lo largo de su ejecucin.

El planificador
Es un elemento del sistema operativo que selecciona procesos en esas colas. Cuando
hablamos de ejecucin de proceso, el planificador a largo plazo (planificador de trabajos) y
el planificador a corto plazo (planificador de la CPU).

14

Arquitectura de Computadoras

El activador tambin forma parte del sistema operativo y su funcin es poner en ejecucin
el proceso seleccionado por el planificador.
Un planificador de trabajos cuenta con caractersticas:

Necesidad: Si hay muchos procesos, algunos en almacenamiento secundario.

Cometido: Se encarga del intercambio entre memoria y almacenamiento secundario.

Frecuencia: Se ejecuta con menor frecuencia que el planificador CPU (cuando


termina un proceso) puede ser ms lento.

Eficiencia: Buena mezcla en memoria entre procesos limitados por la CPU y por E/S.

Ejecucin de un proceso: Los ciclos de rfagas CPU y E/S en la ejecucin de un


proceso se alternan la ejecucin en CPU y la espera de E/S.

Rfaga CPU: tiempo de ejecucin en CPU entre dos E/S.

Rfaga E/S: tiempo entre solicitud y terminacin de E/S.

La ejecucin del proceso comienza con una rfaga de CPU. Esta va seguida de una rfaga de E/S. A
la cual sigue otra rfaga de CPU, luego otra rfaga de E/S, etc. Finalmente, la rfaga final de CPU
concluye con una solicitud al sistema para terminar la ejecucin.

Fig. 1.6. Ejemplo grfico de ejecucin de proceso

15

Arquitectura de Computadoras

Fig. 1.7. Histograma tpico de duracin de rfagas de CPU

Un proceso limitado por la E/S predomina la duracin de rfagas de E/S normalmente


muchas rfagas de CPU breves.
Un proceso limitado por la CPU predomina la duracin de rfagas de CPU, normalmente
pocas rfagas de CPU de larga duracin.
El planificador de la CPU (a corto plazo) selecciona un proceso listo y le asigna CPU,
reparte el tiempo de CPU entre procesos. Su frecuencia es mayor que la del planificador de
trabajos.
Pueden efectuarse decisiones de planificacin de la CPU:
1.

Proceso cambia de estado de ejecucin a bloqueado (E/S).

2.

Cuando termina un proceso.

3.

Proceso cambia de estado de ejecucin a listo (interrupcin).

4.

Un proceso cambia de estado bloqueado a listo (acaba E/S).

En 1 y 2 se debe seleccionar un nuevo proceso para ejecucin. En 3 y 4 puede o no hacerse


un esquema de planificacin expulsiva o un esquema de planificacin hasta terminacin.
o Concepto de cambio de contexto (context switch)
16

Arquitectura de Computadoras

Es el hecho de abandonar la ejecucin de un proceso y poner en marcha otro


proceso.

El cambio de contexto requiere salvar el estado que tienen los registros de la CPU
justo antes de que sta abandone el proceso que se saca de ejecucin. As, despus,
se podr reanudar la ejecucin de este proceso, justo en el punto en el que se
suspendi su ejecucin. El estado de los registros de la CPU se salva en el PCB del
proceso.

o Concepto de swapping (intercambio)

Se trata de un mecanismo que permite sacar procesos de ejecucin, salvndolos en el


disco, para luego volver a ponerlos en ejecucin cuando sea requerido.
El objetivo del swapping es aliviar al sistema, cuando su carga de trabajo es
demasiado alta, suspendiendo temporalmente en el disco unidades de trabajo
(procesos). Cuando la carga del sistema baja, se ponen de nuevo en ejecucin los
procesos temporalmente suspendidos. Al final se conseguir mejorar el rendimiento
global del sistema multitarea.

b. Niveles de planificacin:
El planificador a corto plazo se ejecuta con muy poca frecuencia, tomando una
primera decisin sobre si tomar o no un nuevo proceso, y cual tomar. Existe tambin
el planificador a mediano plazo que se ejecuta con algo ms de frecuencia para tomar
la decisin del intercambio. El planificador a largo plazo tambin conocido como
distribuidor, es el de ejecucin ms frecuente y toma decisiones con un mayor detalle
sobre el proceso que se ejecutara a continuacin:

Fig. 1.8. Niveles de la planificacin


1. Planificador a largo plazo
Este planificador est presente en algunos sistemas que admiten adems de procesos
interactivos trabajos por lotes. Usualmente, se les asigna una prioridad baja a los trabajos
por lotes, utilizndose estos para mantener ocupados a los recursos del sistema durante
17

Arquitectura de Computadoras

perodos de baja actividad de los procesos interactivos. Normalmente, los trabajos por
lotes realizan tareas rutinarias como el clculo de nminas; en este tipo de tareas el
programador puede estimar su gasto en recursos, indicndoselo al sistema. Esto facilita
el funcionamiento del planificador a largo plazo.
El objetivo primordial del planificador a largo plazo es el de dar al planificador de la
CPU una mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan
mucho la CPU) o la E/S. As, por ejemplo, cuando la utilizacin de la CPU es baja, el
planificador puede admitir ms trabajos para aumentar el nmero de procesos listos y,
con ello, la probabilidad de tener algn trabajo til en espera de que se le asigne la CPU.
A la inversa, cuando la utilizacin de la CPU llega a ser alta, y el tiempo de respuesta
comienza a reflejarlo, el planificador a largo plazo puede optar por reducir la frecuencia
de admisin de trabajos. Normalmente, se invoca al planificador a largo plazo siempre
que un proceso termina. La frecuencia de invocacin depende, pues, de la carga del
sistema, pero generalmente es mucho menor que la de los otros dos planificadores. Esta
baja frecuencia de uso hace que este planificador pueda permitirse utilizar algoritmos
complejos, basados en las estimaciones de los nuevos trabajos.
2. Planificador a Mediano plazo
En los sistemas de multiprogramacin y tiempo compartido varios procesos residen en la
memoria principal. El tamao limitado de sta hace que el nmero de procesos que
residen en ella sea finito. Puede ocurrir que todos los procesos en memoria estn
bloqueados, desperdicindose as la CPU. En algunos sistemas se intercambian procesos
enteros (swap) entre memoria principal y memoria secundaria (normalmente discos), con
esto se aumenta el nmero de procesos, y, por tanto, la probabilidad de una mayor
utilizacin de la CPU.
El planificador a medio plazo es el encargado de regir las transiciones de procesos entre
memoria principal y secundaria, acta intentando maximizar la utilizacin de los
recursos. Por ejemplo, transfiriendo siempre a memoria secundaria procesos bloqueados,
o transfiriendo a memoria principal procesos bloqueados nicamente por no tener
memoria.

3. Planificador a corto Plazo


Este planificador decide que procesos toman el control de la CPU. Su principal objetivo
es maximizar el rendimiento del sistema de acuerdo con el conjunto de criterios elegidos.
Al estar a cargo de la transicin de estado listo a ejecucin, el PCP deber ser invocado
cuando se realice una operacin de conmutacin de procesos para seleccionar el
siguiente proceso a ejecutar. En la prctica el PCP es llamado cada vez que un suceso
18

Arquitectura de Computadoras

interno o externo hace que se modifique alguna de las condiciones que definen el estado
actual del sistema.
c. Objetivos de la planificacin
Los objetivos de la planificacin del procesador son los siguientes:
Ser justa:
Todos los procesos son tratados de igual manera.
Ningn proceso es postergado indefinidamente.
Maximizar la capacidad de ejecucin:
Maximizar el nmero de procesos servidos por unidad de tiempo.
Maximizar el nmero de usuarios interactivos que reciban unos tiempos de respuesta
aceptables:
En un mximo de unos segundos.
o Ser predecible:
Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de
tiempo independientemente de la carga del sistema.
o Minimizar la sobrecarga:
No suele considerarse un objetivo muy importante.
o Equilibrar el uso de recursos:
Favorecer a los procesos que utilizarn recursos infrautilizados.
o Equilibrar respuesta y utilizacin:
La mejor manera de garantizar buenos tiempos de respuesta es disponer de
los recursos suficientes cuando se necesitan, pero la utilizacin total de
recursos podr ser pobre.
o Evitar la postergacin indefinida:
Se utiliza la estrategia del envejecimiento .
Mientras un proceso espera por un recurso su prioridad debe aumentar, as la
prioridad llegar a ser tan alta que el proceso recibir el recurso esperado.

o Asegurar la prioridad:
Los mecanismos de planificacin deben favorecer a los procesos con
prioridades ms altas.
o Dar preferencia a los procesos que mantienen recursos claves:
Un proceso de baja prioridad podra mantener un recurso clave, que puede
ser requerido por un proceso de ms alta prioridad.

19

Arquitectura de Computadoras

Si el recurso es no apropiativo, el mecanismo de planificacin debe otorgar al


proceso un tratamiento mejor del que le correspondera normalmente, puesto
que es necesario liberar rpidamente el recurso clave.
o Dar mejor tratamiento a los procesos que muestren un comportamiento deseable:
Un ejemplo de comportamiento deseable es una tasa baja de paginacin.
o Degradarse suavemente con cargas pesadas:
Un mecanismo de planificacin no debe colapsar con el peso de una exigente
carga del sistema.
o Se debe evitar una carga excesiva mediante las siguientes acciones:
No permitiendo que se creen nuevos procesos cuando la carga ya es pesada.
Dando servicio a la carga ms pesada al proporcionar un nivel
moderadamente reducido de servicio a todos los procesos.
Muchas de estas metas se encuentran en conflicto entre s, por lo que la
planificacin se convierte en un problema complejo.

d. Criterios de la planificacin
Para realizar los objetivos de la planificacin, un mecanismo de planificacin debe considerar lo
siguiente:
Ser equitativa: Debe intentar hacer una planificacin justa, esto es, se debe tratar a todos los
procesos de la misma forma y no aplazar indefinidamente ningn proceso. La mejor forma
de evitarlo es emplear alguna tcnica de envejecimiento; es decir, mientras un proceso
espera un recurso, su prioridad debe crecer.
Ser eficiente: debe maximizar el uso de los recursos tales como intentar que la ocupacin de
la CPU sea mxima. Al mismo tiempo se debe intentar reducir el gasto extra por considerar
que es trabajo no productivo. Normalmente el idear algoritmos eficientes supone invertir
recursos en gestin del propio sistema.
Lograr un tiempo bueno de respuesta, es decir, que los usuarios interactivos reciban
respuesta en tiempos aceptables.
Lograr un tiempo de proceso global predecible. Esto quiere decir que un proceso debe
ejecutarse aproximadamente en el mismo tiempo y casi al mismo costo con independencia
de la carga del sistema.
Elevar al mximo la productividad o el rendimiento, esto es, maximizar el nmero de
trabajos procesados por unidad de tiempo. Eso supone, por un lado, dar preferencia a los
procesos que ocupan recursos decisivos y, por otro, favorecer a los procesos que muestran
un comportamiento deseable. En el primer caso conseguimos liberar el recurso cuanto antes
para que est disponible para un proceso de mayor prioridad. Con el segundo criterio
escogemos a los procesos que no consumen muchos recursos dejndole al sistema mayor

20

Arquitectura de Computadoras

capacidad

de

actuacin.

Estos criterios son dependientes entre s y es imposible optimizar todos de forma simultnea.
Por ejemplo, obtener un buen tiempo de respuesta puede exigir un algoritmo de
planificacin que alterne entre los procesos con frecuencia, lo que incrementa la sobrecarga
del sistema y reduce la productividad.
e. Algoritmo de planificacin
Decide el proceso de la cola de procesos listos al que se le asigna CPU. Sus principales
objetivos son maximizar la eficiencia y rendimiento y minimizar tiempo de retorno, espera y
respuesta.
Orden de llegada (FCFS)
*Planificacin de servicio por orden de llegada.
*Es el algoritmo ms sencillo, el primer proceso que solicita la CPU es el primero en
recibirla.
*Fcil de implementar con una poltica FIFO para la cola de preparados. Tiempo de
espera promedio bastante largo. Ejemplo:

Llamado tambin FCFS (First-come, First-served) es un algoritmo del tipo ejecucin


hasta terminacin. El primer proceso que entr en cola de procesos listos es el
primero al que se le asigna CPU. Se implementa con una cola FIFO.
El tiempo promedio de espera suele ser bastante largo. Ejemplo (efecto convoy):
Un proceso A, limitado por CPU, se ejecuta y retiene la CPU.
Los dems acabaran su E/S y pasan a la cola de listos.
Cuando acaban, entra A y retiene de nuevo la CPU.
Todos vuelven a esperar otra vez (rfagas cortas CPU).

Primero el trabajo ms corto (SJF)


*Primero el trabajo ms corto.
*Calcular el tiempo medio de espera que resulta de aplicar:
Un algoritmo SJF no expulsivo.
Un algoritmo SJF expulsivo (SRTF, Shortest Remaining Time First).

Ejemplo:
21

Arquitectura de Computadoras

Entra en la CPU el proceso con la rfaga de CPU ms corta.


Minimiza el tiempo de espera medio.
Riesgo de inanicin de los procesos de larga duracin.
No es implementable: Se pueden estimar las duraciones de los procesos,
segn su historia reciente.
Versin expulsiva (SRTF): el proceso en CPU es desalojado si llega a la cola
un proceso con duracin ms corta.
Planificacin por prioridad:
Cada proceso tiene una prioridad, entrar primero en la CPU el que tenga
mayor prioridad.
Poltica de prioridades expulsiva o no.
La prioridad se puede definir:
De forma interna, la define el SO.
De forma externa, la definen los usuarios.
SJF es un caso de planificacin por prioridad.
Los procesos de prioridad ms baja tienen riesgo de inanicin. Solucin:
envejecimiento. Ir aumentando de forma progresiva la prioridad de los
procesos en espera.

II.

PLANIFICACIN DE MEMORIA
2.1. Administrador de memoria
Parte del S.O. que gestiona la memoria:
Control de que partes de la memoria estn utilizadas o libres.
Asignar memoria a procesos y liberarla cuando terminan.
Administrar intercambio entre memoria y disco (Memoria Virtual)
2.2. Administracin en sistemas multiprogramados
Es deseable que haya varios procesos en memoria para su ejecucin concurrente.
22

Arquitectura de Computadoras

Se debe compartir la memoria entre varios procesos que esperan asignacin de la


misma.
2.3. Esquemas de asignacin de memoria

Contigua: particiones fijas y variables


Intercambio (swapping)
Paginacin
Segmentacin
Segmentacin paginada

Primer esquema de asignacin de memoria: Particiones

La memoria est dividida de antemano en espacios (Particiones).


Un proceso necesita ejecutarse -> Se le asigna uno de dichos espacios (Particin).
Cada particin puede contener un nico proceso.
Pueden ser:
Particiones Fijas:
Todo el mismo tamao.
Con diferentes Tamaos.
Particiones Variables.

2.4. PARTICIONES FIJAS


Particiones de igual tamao:

Fig. 2.1. Particiones de igual tamao


Nivel de multiprogramacin limitado por nmero de particiones.
Hay una cola con procesos que quieren utilizar memoria y ejecutarse.
Hay una tabla para indicar particiones ocupadas y libres.
Particiones con diferentes tamaos:

Fig. 2.2. Particiones de diferente tamao


Para procesos que quieren utilizar memoria para ejecutarse:

23

Arquitectura de Computadoras

o Podemos tener varias colas: Cada proceso se asigna a una cola en funcin de su
tamao.
o Podemos tener una nica cola: Cuando se libera una particin -> se asigna al
primer proceso que cabe en ella.

Fig. 2.3. Particiones con memoria


Problemas que presenta este tipo de asignacin de memoria
1. Debe proporcionarse reubicacin
En qu particin entrar el proceso?
Existe Fragmentacin Interna y Externa:
Interna:
Una particin asignada y no ocupada totalmente por el proceso.
Externa:
Un proceso quiere ejecutarse, hay una particin libre, pero de menor
tamao que el proceso.
2. Necesidad de proteccin: (en sistemas multiprogramados)
Un proceso no acceda al rea de memoria del otro.
Si la reubicacin es dinmica puede usarse registros base-lmite.

Funcionamiento

Inicialmente: Toda la memoria (salvo particin del S.O.) disponible para


procesos, como si fuese un gran hueco.
Llega un proceso:
Se introduce en un hueco libre.
El espacio no ocupado ser un nuevo hueco.
Cada zona de memoria ocupada -> una particin.
24

Arquitectura de Computadoras

Proceso termina:
Libera su zona de memoria.
Se convierte en un hueco.
Dicho hueco se fusiona con los adyacentes.
Se conserva una tabla de partes de memoria ocupadas y libres y la cola de
entrada de procesos en memoria.

Fig. 2.3. Un ejemplo: los procesos se cargan en memoria, compiten por la CPU y al acabar liberan
la memoria.

2.5. Fragmentacin de Particiones Variables

Externa: SI. (Memoria dividida en huecos pequeos)


Suma del espacio libre en memoria suficiente para el nuevo proceso.
Pero no hay huecos suficientemente grandes para l.
El nuevo proceso no se carga en memoria.
Interna: NO.
Las particiones se crean con el tamao solicitado por el proceso.

Esta asignacin de memoria se denomina: Asignacin dinmica


almacenamiento
Cmo elegir un hueco cuando llega un nuevo proceso de tamao N?
Estrategias:

de

Primer Ajuste:
Escoge el primer hueco libre de tamao suficiente.
Mejor Ajuste:
Hueco ms pequeo con tamao suficiente (requiere ver toda la lista si
no est ordenada).
Peor Ajuste:
Hueco ms grande: Pretende conseguir que los huecos que queden
sean grandes (requiere ver toda la lista si no ordenada).
25

Arquitectura de Computadoras

Cul es el mejor?
Simulaciones y Estadsticas:
Criterio tiempo (reduccin) y utilizacin de memoria (aprovechamiento):
Primer Ajuste y Mejor Ajuste son mejores que Peor Ajuste.
Regla del 50%: un anlisis estadstico refleja que
Con Primer Ajuste por cada N bloques de memoria asignados se pierden
0,5 N bloques por fragmentacin externa (1/3 memoria inutilizada).

Proteccin de Memoria: se utiliza cdigo reubicable


Si cdigo reubicable -> se pueden usar registros base y lmite.

Fig. 2.4.
Compactacin: intenta solucionar fragmentacin ext.
Consiste en desplazar las particiones ocupadas para que estn juntas en
memoria:
Queda un solo hueco libre de mayor tamao.
Es una solucin al problema de fragmentacin externa.
Slo es posible si la reubicacin es dinmica (en ejecucin).
Ejemplo:

Fig. 2.5.

Problemas de la Compactacin:
Consume tiempo: Desplazar zonas de memoria.
Difcil seleccionar una estrategia de compactacin ptima.

26

Arquitectura de Computadoras

Fig.2.6.

III.

LA GESTIN DE LA MEMORIA
La memoria es uno de los principales recursos de la computadora, la cual debe de
administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas de
cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones
actuales tienen tambin altos requerimientos de memoria, lo que sigue
generando escasez de memoria en los sistemas multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama administrador de
memoria y su labor consiste en llevar un registro de las partes de memoria que se estn
utilizando y aquellas que no, con el fin de asignar espacio en memoria a
los procesos cuando stos la necesiten y liberndola cuando terminen, as como
administrar el intercambio entre la memoria principal y el disco en los casos en los que
la memoria principal no le pueda dar capacidad a todos los procesos que tienen
necesidad de ella.
Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los que
desplazan los procesos de la memoria principal al disco y viceversa durante la ejecucin
y los que no.
El propsito principal de una computadora es el de ejecutar programas, estos programas,
junto con la informacin que accesan deben de estar en la memoria principal (al menos
parcialmente) durante la ejecucin.

3.1 MEMORIA VIRTUAL


El tamao combinado del programa, datos y pila puede exceder la cantidad de memoria
fsica disponible. El sistema operativo guarda aquellas partes del programa
concurrentemente en uso en memoria central y el resto en disco. Cuando un programa
espera que se le cargue en memoria central de disco otra parte del mismo. La CPU se
puede asignar a otro proceso.
Memoria virtual, el sistema operativo gestiona niveles de memoria principal y memoria
secundaria:
Transferencia de bloques entre ambos niveles (normalmente basada en paginacin).
De memoria secundaria a principal: por demanda.
De memoria principal a secundaria: por expulsin.

27

Arquitectura de Computadoras

Beneficios:
-

Aumenta el grado de multiprogramacin.


Permite ejecucin de programas que no quepan en memoria principal.

3.2 PAGINACIN
El espacio virtual de direcciones se divide en unidades llamadas pginas, todas del
mismo tamao. La memoria principal se divide en marcos de pginas (page frames) del
mismo tamao que las pginas virtuales y son compartidas por los distintos procesos del
sistema (en cada marco de pgina se carga una pgina de un proceso).
No todo el espacio virtual de direcciones est cargado en memoria central. Una copia
completa se encuentra en disco y las pginas se traen a memoria central cuando se
necesitan.
Tabla de pginas (TP) Relaciona cada pgina con el marco que la contiene.
MMU usa TP para traducir direcciones lgicas a fsicas.
Tpicamente usa 2 TPs: TP usuario y T.P sistema (slo se permite usar estas direcciones
en modo sistema).

Transformacin de la direccin virtual en direccin fsica: Los bits de mayor peso de la


direccin se interpretan como el nmero de la pgina en la TP y los de menor peso como
el nmero de palabra dentro de la pgina (desplazamiento).

Contenido de cada entrada de la IP:


1. Nmero de marco asociado
2. Informacin de proteccin (RWX), si operacin no permitida => Excepcin
3. Bit de pgina vlida/invlida (utilizado en memoria virtual para indicar si pgina
presente), si se accede => Excepcin.
4. Bit de pgina accedida (referenciada) => MMU lo activa cuando se accede a esta
pgina.
5. Bit de pgina modificada => MMU lo activa cuando se escribe en esta pgina.
6. Bit de desactivacin de cach => utilizado cuando la entrada corresponde con
direcciones de E/S.
Tamao de pgina (condicionado por diversos factores contrapuestos) Potencia de 2
y mltiplo del tamao del bloque de disco (compromiso entre 2K y 16K).
28

Arquitectura de Computadoras

Gestin de la TP por parte del sistema operativo:


El sistema operativo mantiene una TP por cada proceso en el cambio de
contexto notifica a MMU que TP debe usar.
El sistema operativo mantiene una nica TP para el propio sistema operativo
=> proceso en modo kernel accede directamente a su mapa y al del sistema
operativo.
El sistema operativo mantiene tabla de marcos de pginas => estado de cada
marco (libre u ocupado).
El sistema operativo mantiene tabla de regiones de memoria por cada
proceso.

Implementacin de las TPs que se mantiene normalmente en memoria principal =>


problemas: eficiencia y gasto de almacenamiento.
Eficiencia => Cada acceso lgico requiere dos accesos a memoria principal
(a la tabla de pginas + al propio dato o instruccin) > solucin: cach de
traducciones (TLB, Translation Lookaside Buffer.
Gasto de almacenamiento => Tablas muy grandes > solucin: tablas
multinivel
TLB. Buffer cach con informacin sobre ltimas pginas accedidas => cach de
entradas de TP correspondientes a estos accesos. 2 alternativas:
1.

Entradas en TLB no incluyen informacin sobre proceso => invalidar TLB en


cambios de contexto.
2. Entradas en TLB incluyen informacin sobre proceso => registro de CPU debe
mantener un identificador de proceso actual.
TLB gestionada por hardware: (1) MMU consulta TLB. Si fallo, entonces utiliza
la TP en memoria. TLB gestionada por software (ceder al sistema operativo parte
del trabajo de traduccin): (1) MNU no usa las TPs, slo consulta TLB, (2) el
sistema operativo mantiene TPs que son independientes del hardware, si fallo en
TLB => activa el sistema operativo que se encarga de: buscar en TP la fiaduccin y rellenar la TLB con la traduccin; proporcionando flexibilidad en el
diseo del sistema operativo pero menor eficiencia.

29

Arquitectura de Computadoras

TP multinivel. Tablas de pginas organizadas en NI niveles: entrada de TP del nivel


K apunta a TP de nivel K+ 1 y entrada del -Ultimo nivel apunta a marco de pgina_
Direccin lgica especifica la entrada a usar en cada nivel: un campo por nivel +
desplazamiento. Un acceso lgico => M + 1 accesos a memoria (uso de TLB). Si
todas las entradas de una TP son invlidas: no se almacena esa TP y se pone invlida
la entrada correspondiente de la TP superior.

Ventajas de las tablas de pginas multinivel: (1) Si proceso usa una parte pequea de
su espacio lgico => ahorro en espacio para almacenar TPs; (2) Ahorro en la
memoria utilizada para su implementacin => Por ejemplo: proceso que usa 12MB
superiores y 4MB inferiores > 2 niveles, pginas de 4K, direccin lgica 32 bits
(10 bits por nivel) y 4 bytes por entrada > Tamao: 1 TP N1 + 4 TP N2 = 5 * 4KB
= 20KB (frente a 4MB); (3) Permite compartir TPs intermedias: (4) Slo se requiere
que est en memoria la TP de nivel superior => TPs restantes pueden estar en disco y
traerse por demanda, cuando se necesiten.
Con la paginacin, la MMU no sabe nada sobre las distintas regiones de los
procesos, slo entiende de pginas. El sistema operativo debe guardar para cada
proceso una tabla de regiones que especifique qu pginas pertenecen a cada regin.
Esto tiene dos desventajas: (1) Para crear una regin hay que rellenar las entradas de
las pginas pertenecientes a la regin con la mismas caractersticas (por ejemplo, que
no se puedan modificar si se trata de una regin de cdigo); y (2) Para compartir una
regin, hay que hacer que las entradas correspondientes de dos procesos apunten a
los mismos narcos. En resumen, lo que se est echando en falta es que la MMU sea
consciente de la existencia de regiones y que permita tratar a una regin como una
entidad.

30

Arquitectura de Computadoras

Fig. 3.1.

3.3 FALLO DE PGINA


En un sistema de memoria virtual paginada, un fallo de pgina (del ingls page fault) es una
excepcin arrojada cuando un programa informtico requiere una direccin que no se
encuentra en la memoria principal actualmente. Aunque el trmino sugiere un mal
funcionamiento, se trata de un procedimiento normal dentro de la marcha del programa.
Lo que ocurre ante un fallo de pgina es:
1. Se emite el fallo de pgina (excepcin) que es atrapado por el sistema operativo.
2. Se guarda el contador de programa y eventualmente otros registros en la pila.
3. El kernel determina que al excepcin es de tipo fallo de pgina, y llama a la rutina
especfica.
4. Hay que averiguar qu direccin virtual se estaba buscando. Usualmente queda en
algn registro.
5. Se chequea que sea una direccin vlida y que el proceso que la pide tenga permisos
para accederla. Si no es as, se mata al proceso (en Unix se enva una seal de
segmentation violation, lo que lo hace terminar).
6. Se selecciona un page frame libre si lo hubiese y si no se libera mediante el
algoritmo de reemplazo de pginas.
7. Si la pgina tena el bit dirty prendido, hay que bajarla a disco. Es decir, el "proceso"
del kernel que maneja E/S debe ser suspendido, generndose un cambio de contexto
y permitiendo que otros ejecuten. La pgina se marca como busy para evitar que se
use.
31

Arquitectura de Computadoras

8. Cuando el SO es notificado de que se termin de bajar la pgina a disco, comienza


otra operacin de E/S, esta vez para cargar la pgina que hay que subir. De nuevo se
deja ejecutar a otros procesos.
9. Cuando llega la interrupcin que indica que la E/S para subir la pgina termin, hay
que actualizar la tabla de pginas para indicar que est cargada.
10.La instruccin que caus el fallo de pgina se recomienza, tomando el contador de
programa que haba quedado en el pila y los valores anteriores de los registros.
3.4 PAGINACIN POR DEMANDA
Segmentacin pura no es adecuada para memoria virtual => Tamao de segmentos
variable.
Paginacin y segmentacin paginada si son para memoria virtual => (1) Bloque
transferido > Pgina; (2) Memoria virtual + Paginacin > Paginacin por demanda.
Estrategia de implementacin: Uso del bit de validez, donde la pgina no residente se
marca como no vlida. Acceso a una pgina (Excepcin de falta de pgina de la MMU al
kernel del sistema operativo si la pgina no est en la MMU): el kernel del sistema
operativo trae la pgina correspondiente de memoria secundaria => el kernel del sistema
operativo debe diferenciar entre pgina no residente y pgina invlida.
Prepaginacin => Traer pginas por anticipado (no por demanda): En caso de falta de
pgina se traen adems otras panas que se consideran que necesitar el proceso >
Beneficiosa dependiendo de si hay acierto en la prediccin.
Tratamiento de falta de pgina (peor de los casos, falta de pgina puede implicar dos
operaciones de E/S al disco) => Tratamiento de la excepcin provocado por la MRT
(direccin de fallo disponible en registro): (1) Si direccin invlida > aborta proceso o
le manda seal; (2.) Si no hay ningn marco libre (consulta tabla de marcos de pgina):
(a) Seleccin de vctima (algoritmo de reemplazo de pgina): pgina P marco M >
Marca P como invlida:. (b) Si P modificada (bit Modificado de P activo) > inicia
escritura P en memoria secundaria; (2) Si hay marco libre (se ha liberado o lo haba
previamente): (a) Inicia lectura de pgina en marco M; (b) Marca entrada de pgina
vlida referenciando a M; (c) Pone M como ocupado en tabla de marcos de pgina (si no
lo estaba).
Polticas de administracin de la memoria virtual: (1) Poltica de reemplazo: Qu
pgina reemplazar si hay falta de pgina y no hay marco libre? => (a) Reemplazo local
> slo puede usarse para reemplazo un marco de pgina asignado al proceso que causa
la falta de pgina; (b) Reemplazo global > puede usarse para reemplazo cualquier
32

Arquitectura de Computadoras

mareo; (2) Poltica de asignacin de espacio a los procesos: Cmo se reparten los
marcos entre los procesos? => Asignacin fija o dinmica.

3.5 MEMORIA SEGMENTADA O SEGMENTACIN DE MEMORIA


1. Memoria virtual segmentada
Mientras que la paginacin es transparente para el programador, y le proporciona un
espacio mayor de direcciones, la segmentacin es normalmente visible para el
programador, y proporciona una forma lgica de organizar los programas y los
datos, y asociarle los privilegios y atributos de proteccin.
La segmentacin permite que el programador vea la memoria constituida por
mltiples espacios de direcciones o segmentos. Los segmentos tienen un tamao
variable, dinmico. Usualmente, el programador o el sistema operativo asignar
programas y datos a segmentos distintos. Puede haber segmentos de programa
distintos para varios tipos de programas, y tambin distintos segmentos de datos. Se
pueden asignar a cada segmento derechos de acceso y uso. Las direcciones virtuales
estarn constituidas en este caso por un nmero de segmento (NS) y un
desplazamiento dentro del segmento (DP). El proceso de traduccin de direccin
virtual a fsica es anlogo al de la memoria virtual paginada, con la diferencia que
ahora tenemos una tabla de segmentos (TS) cuyas entradas (denominadas tambin
descriptores de segmento) contienen, adems de los bits de control y la direccin real
del segmento, la longitud L del mismo, ya que los segmentos tienen longitud
variable. En la siguiente figura hemos representado esquemticamente el proceso de
traduccin

Fig. 3.2
Esta organizacin tiene ciertas ventajas para el programador, frente a un espacio de
direcciones no segmentado:

Simplifica la gestin de estructuras variables de datos. Si el programador


no conoce a priori el tamao que puede llegar a tener una estructura de
datos particular, no es necesario que lo presuponga. A la estructura de
datos se le asigna su propio segmento, y el sistema operativo lo expandir
o lo reducir segn sea necesario.
Permite modificar los programas y recompilarlos independientemente, sin
que sea necesario volver a enlazar y cargar el conjunto entero de
programas. De nuevo, esto se consigue utilizando varios segmentos.
33

Arquitectura de Computadoras

Permite que varios procesos compartan segmentos. Un programador


puede situar un programa correspondiente a una utilidad o una tabla de
datos de inters en un segmento, que puede ser direccionado por otros
procesos.
Se facilita la proteccin. Puesto que un segmento se construye para
contener un conjunto de programas o datos bien definido, el programador
o el administrador del sistema puede asignar privilegios de acceso de
forma adecuada.
2. Multiprogramacin en la memoria

Concepto de Multiprogramacin
En un sistema monoprocesador, slo puede ejecutarse un proceso cada vez.
Cualquier otro proceso tendr que esperar hasta que la CPU quede libre y
pueda volver a planificarse. El objetivo de la multiprogramacin es tener
continuamente varios procesos en ejecucin, con el fin de maximizar el uso
de la CPU.
Un proceso se ejecuta hasta que tenga que esperar, normalmente porque es
necesario completar alguna solicitud de E/S. La CPU permanecera entonces
inactiva y todo el tiempo de espera se desperdiciara al no realizar ningn
trabajo til. Con la multiprogramacin, se usa ese tiempo de forma
productiva.

Multiprogramacin y uso de memoria

Esta organizacin facilita la programacin de una aplicacin al dividirla en dos o


ms procesos. Adems ofrece la capacidad de tener ms de un proceso a la vez en
memoria as puede ofrecer servicios a varios usuarios a la vez.
El esquema de multiprogramacin incrementa el aprovechamiento del CPU, dado
que a diferencia de la monoprogramacin en donde solo un proceso reside en
memoria a la vez limitando el uso del procesador a las llamadas que requiera dicho
proceso, desperdiciando un promedio del 80% del tiempo del procesador. En cambio
la multiprogramacin, al tener varios procesos en la memoria principal y
dividindose el tiempo de uso del procesador, logra reducir drsticamente el
desperdicio del procesador.

Multiprogramacin con particiones fijas

Para poder implementar la multiprogramacin, se puede hacer uso de particiones


fijas o variables en la memoria. En el caso de las particiones fijas, la memoria se
puede organizar dividindose en diversas partes, las cuales pueden variar en tamao.
Esta particin la puede hacer el usuario en forma manual, al iniciar una sesin con la
mquina.
34

Arquitectura de Computadoras

Una vez implementada la particin, hay dos maneras de asignar los procesos a ella.
La primera es mediante el uso de una cola nica que asigna los procesos a los
espacios disponibles de la memoria conforme se vayan desocupando. El tamao del
hueco de memoria disponible es usado para localizar en la cola el primer proceso que
quepa en l. Otra forma de asignacin es buscar en la cola el proceso de tamao
mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal mtodo
discrimina a los procesos ms pequeos. Dicho problema podra tener solucin si se
asigna una particin pequea en la memoria al momento de hacer la particin inicial,
el cual sera exclusivo para procesos pequeos.

Fig. 3.3

3. Memoria con segmentos paginados


Como vimos en el apartado anterior, la segmentacin presenta una serie de
propiedades ventajosas para el programador, sin embargo, la paginacin proporciona
una forma ms eficiente de gestionar el espacio de memoria. Para combinar las
ventajas de ambas, algunos sistemas permiten una combinacin de ambas, es decir,
un sistema virtual con segmentos paginados. El mecanismo de traduccin de DVs a
DFs no es ms que la composicin del mecanismo de la memoria segmentada y el de
la paginada, tal como se muestra en la siguiente figura

Fig.3.4.

35

Arquitectura de Computadoras

CONCLUSIONES

Los procesos son aquellos programas que estn en ejecucin, los cuales presentan
determinadas situaciones que van cambiando a lo largo de la vida del proceso, estas
situaciones son denominadas estados.

La planificacin es importante para poder optimizar el comportamiento del procesador ya


que con esta se puede repartir, de la manera ms eficiente posible, los tiempos de los
procesos que se desean ejecutar.
Para esto en la planificacin se hacen uso de 3 algoritmos comunes: Orden de llegada
(FCFS), primero el trabajo ms corto (SJF) y prioridades, que hacen posible maximizar la
eficiencia y rendimiento y minimizar tiempo de retorno, espera y respuesta.

La paginacin es una tcnica de manejo de memoria, en la que el espacio de memoria se


divide en secciones fsicas de igual tamao, denominadas marcos de pgina. Los programas
se dividen en unidades lgicas, denominadas pginas, que tienen el mismo tamao que los
marcos de pginas. De esta forma, se puede cargar una pgina de informacin en cualquier
marco de pgina. Estas pginas sirven como unidad de almacenamiento de informacin y de
transferencia entre memoria principal y memoria auxiliar o secundaria.

BIBLIOGRAFIA

36

Arquitectura de Computadoras

Prez-Campanero, Juan M. (2002). Conceptos de Sistemas Operativos


ESPAA

David A. Patterson, Jhon L. Hennessy. (2000). Estructura y Diseo de Computadores


ESPAA

WEB GRAFIA

http://es.slideshare.net/gladysmamani/planificacion-de-proceso-presentation

http://astreo.ii.uam.es/~ortigosa/ssoo/05-planificador-2pp.pdf
37

Arquitectura de Computadoras

http://www.ecured.cu/index.php/Planificaci
%C3%B3n_de_procesos_en_Sistemas_Operativos

http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap3.pdf

http://www.monografias.com/trabajos13/gesme/gesme.shtml

http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap4.pdf

http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/ADMINISTRACIONDE
LAMEMORIA/5.3SegmentacionPaginada.htm

http://www.monografias.com/trabajos10/gesmem/gesmem2.shtml

http://www.atc.uniovi.es/telematica/2ac/Apuntes-y-Ejercicios/T08-Procesos.pdf

http://www.infor.uva.es/~fjgonzalez/apuntes/Tema5.pdf

http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap4.pdf

http://www.dia.eui.upm.es/asignatu/Sis_op1/Paco/memoria.pdf

38

Você também pode gostar