planificacion de recursos (procesos y memoria) - monografia

68
UNIVERSIDAD NACIONAL DE TRUJILLO Facultad de Ingeniería ESCUELA DE INGENIERIA DE SISTEMAS MONOGRAFIA “PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA)” DOCENTE: ING. ARELLANO SALAZAR CESAR INTEGRANTES: ALFARO CARRANZA, VANESSA KATERIN BANDA ÁVILA, DANIEL LEOPOLDO VILLANUEVA NAMOC, JOHAN FRANCO ZEVALLOS PALACIOS, YULY i

Upload: johan-franco-villanueva-namoc

Post on 08-Apr-2017

379 views

Category:

Software


3 download

TRANSCRIPT

Page 1: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

UNIVERSIDAD NACIONAL DE TRUJILLO

Facultad de IngenieríaESCUELA DE INGENIERIA DE

SISTEMASMONOGRAFIA

“PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA)”

DOCENTE: ING. ARELLANO SALAZAR CESAR

INTEGRANTES:

ALFARO CARRANZA, VANESSA KATERIN BANDA ÁVILA, DANIEL LEOPOLDO VILLANUEVA NAMOC, JOHAN FRANCO ZEVALLOS PALACIOS, YULY

TRUJILLO-PERÚ

2015

i

Page 2: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

DEDICATORIA

A Dios, por ayudarme en el constante esfuerzo de lograr mis objetivos.

Vanessa

A mi querido profesor Cesar A. por guiarnos en el camino del conocimiento. Daniel

A mi familia por su gran apoyo en el camino de mi desarrollo profesional.

Johan

ii

Page 3: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

A mis padres, por brindarme lo necesario en mi camino de superación. Yuly

iii

Page 4: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

AGRADECIMIENTOS

Le agradecemos a Dios por habernos acompañado 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.

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 educación. Sobre todo porque son un gran ejemplo a seguir.

Los Autores.

iv

Page 5: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

INDICE

INDICE

CARATULA i

DEDICATORIA ii

AGRADECIMIENTO iii

INDICE iv

INTRODUCCION vi

CAPÍTULO I: SISTEMAS OPERATIVOS

1.1. LA MÁQUINA DESNUDA...........................................................................1

1.2. DEFINICION...............................................................................................2

1.3. EL SISTEMA OPERATIVO COMO INTERFAZ DE

USUARIO/COMPUTADOR.........................................................................2

1.4. EL SISTEMA OPERATIVO COMO ADMINISTRADOR DE RECURSOS. .4

1.5. TIPOS.........................................................................................................5

1.5.1. LOS PRIMEROS SISTEMAS.........................................................5

1.5.2. SISTEMAS DE COLAS SIMPLES.................................................6

1.5.3. SISTEMAS DE COLAS MULTIPROGRAMADAS..........................7

CAPÍTULO II: PROCESOS

2.1. INTRODUCCION Y DEFINICIONES SOBRE PROCESOS.......................8

2.2. ESTADOS DE PROCESOS.......................................................................11

2.3. PLANIFICACION DE PROCESOS.............................................................12

2.3.1. NIVELES DE PLANIFICACION DEL PROCESADOR...................13

2.3.2. OBJETIVOS ..................................................................................14

2.3.3. CRITERIOS ...................................................................................15

2.3.4. PLANIFICACION APROPIATIVA VS. NO APROPIATIVA.............16

2.3.5. TIPOS ...........................................................................................16

2.3.5.1. PLANIFICACION A LARGO PLAZO....................................16

2.3.5.2. PLANIFICACION A MEDIANO PLAZO................................17

v

Page 6: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

2.3.5.3. PLANIFICACION A CORTO PLAZO....................................17

2.3.6. TECNICAS DE PLANIFICACION..................................................19

CAPÍTULO III – GESTION DE MEMORIA

3.1. OBJETIVOS DEL SISTEMA DE GESTION DE MEMORIA........................21

3.1.1. ESPACIO LOGICO INDEPENDIENTE Y REUBICACION.............22

3.1.2. PROTECCION ..............................................................................23

3.1.3. COMPARTIMIENTO DE MEMORIA .............................................24

3.1.4. ORGANIZACIÓN LOGICA.............................................................25

3.1.5. ORGANIZACIÓN FISICA...............................................................25

3.2. INTERCAMBIO ........................................................................................26

3.3. DEFINICION DE PARTICIONES .............................................................27

3.3.1. PARTICIONES FIJAS....................................................................28

3.3.2. PARTICIONES DINAMICAS..........................................................29

3.4. SEGMENTACION ....................................................................................31

3.5. PAGINACION SIMPLE ............................................................................32

CAPÍTULO IV – MEMORIA VIRTUAL

4.1. FUNDAMENTOS......................................................................................35

4.2. SEGMENTACION PAGINADA ................................................................35

4.3. PAGINACION BAJO DEMANDA .............................................................36

4.4. SUSTITUCION DE PAGINA ....................................................................37

4.5. ASIGNACION DE MARCO PAGINA .......................................................39

4.6. SOBREPAGINACION (Hiperpaginación o thrashing)...............................40

BIBLIOGRAFIA 41

vi

Page 7: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

INTRODUCCIÓN

En sus inicios un computador era un dispositivo electrónico con capacidad para tomar datos y elaborar resultados a partir de algoritmos que se almacenaban en su memoria junto con algunos de los datos y resultados. El técnico encargado de operar el equipo también se encargaba de programarlo, o sea cargarle las instrucciones que debía realizar y en muchos casos también los datos que solían venir almacenados en cintas de papel, tarjetas perforadas y más adelante en cintas magnéticas y discos.

Para evitar que el técnico responsable tuviera que hacerse cargo de tareas que eran rutinarias (por ejemplo los procesos de entrada y salida de información) se comenzaron a escribir rutinas y procedimientos que podían ser utilizados por más de un técnico y para diversos procesos. Los computadores fueron creciendo en capacidad de procesos al tiempo que se desarrollaban nuevos y más potentes sistemas de almacenamiento.

La independencia de la forma de almacenar o la forma de procesar eran fundamentales para que los programadores no tuvieran que estar continuamente pensando en las características del equipo. De este modo los Sistemas Operativos siguieron evolucionando para darle al programador cada vez más independencia.

Se llegó así a la situación actual donde los usuarios, los programadores, los operadores o los responsables del procesamiento y del almacenamiento de la información son totalmente ajenos a las características técnicas de los equipos ya que este conocimiento reside en los Sistemas Operativos, que generan un puente entre los usuarios y la tecnología al punto que en la hoy con los conceptos de nube no sólo no se tiene conciencia del equipo sino que tampoco se conoce el lugar de procesamiento ni el de almacenamiento de la información lo que se ve mucho más acentuado con la aparición de internet.

Actualmente son los Sistemas Operativos los que les permiten a los usuarios, los programadores, los operadores y en general a cualquier persona que esté sentada frente a una pantalla y un teclado, no tener ningún recaudo ni preocupación respecto de donde o como se procesa la información ni donde se almacena, al punto que un cambio de equipamiento, que hace 20 años requería de miles de horas de trabajo de adaptación, en la actualidad se hace casi en forma transparente y pausada de modo que todos los procesos se vayan adaptando a la nueva realidad sin que el usuario deba ser consciente de esta situación y mucho menos sufrir las consecuencias.

vii

Page 8: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

CAPITULO I

“SISTEMAS OPERATIVOS”

1.1. LA MÁQUINA DESNUDA

CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001; pág.34) 1 plantean “El término máquina desnuda se aplica a una computadora que carece de sistema operativo.”

Esto quiere decir que una computadora sin un sistema operativo instalado solo es capaz de “repetir a alta velocidad la secuencia de: lectura de instrucción máquina, incremento del PC y ejecución de la instrucción leída”, es decir, ejecutar con rapidez una secuencia de ciclos de instrucción2.

Es así, para que la computadora realice una función determinada ha de tener en memoria principal un programa máquina específico para realizar dicha función y ha de conseguirse que el registro PC3 contenga la dirección de comienzo del programa.

Por ello, es necesario el sistema operativo, ya que éste se encarga de completar (vestir) a la máquina mediante una serie de programas que permitan su cómodo manejo y utilización.

1.2. DEFINICIÓN

CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001) 4

plantean “Un sistema operativo (S.O.) es un programa que tiene encomendadas una serie de funciones diferentes cuyo objetivo es simplificar el manejo y la utilización de la computadora, haciéndola segura y eficiente.”

A esta definición podríamos sumar la de STALLINGS, W., (2003, pág. 221)5: “Un sistema operativo es un programa que controla la ejecución de los programas de aplicación y actúa como interfaz entre el usuario y el hardware del computador.”

De estas definiciones podemos extraer que un sistema operativo es un programa que hace la comunicación usuario/computador mucho más sencilla y agradable, encargándose de la ejecución de programas y

1 CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001). Sistemas Operativos, Una visión aplicada. Editorial Mc Graw Hill. 2da ed. Madrid, España.

2 Procesamiento que requiere una instrucción captada por el procesador.3 Es un registro llamado <<contador de programa>> (Program Counter, PC), es utilizado en una CPU

típica para seguir la pista de la instrucción que debe captarse a continuación.4 CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001). Sistemas Operativos, Una visión aplicada.

Editorial Mc Graw Hill. 2da ed. Madrid, España.5 STALLINGS, William. (2003).Organización y arquitectura de computadores. Editorial Prentice Hall. 5ta

ed. Madrid, España.

1

Page 9: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

administrando correctamente los recursos con los que cuenta el computador, haciéndolo mucho más eficiente y seguro.

Además, se puede considerar que un sistema operativo tiene dos objetivos6.

- Comodidad: Un sistema operativo hace que un computador sea más fácil y cómodo de usar.

- Eficiencia: Un sistema operativo permite que los recursos del computador se utilicen de forma eficiente.

Ahora explicaremos con más detalle cada uno de estos aspectos del sistema operativo.

1.3. EL SISTEMA OPERATIVO COMO INTERFAZ DE USUARIO/COMPUTADOR

El usuario de las aplicaciones se denomina usuario final y, generalmente, no conoce la arquitectura del computador. Así, el usuario final tiene una visión del computador en términos de aplicación.6

Por esto, el sistema operativo se hace tan importante, porque hace que el usuario que no conoce la interna del computador, vea una interfaz sencilla y adecuada para el correcto uso del computador. Cabe indicar, que el S.O. es llamado el programa más importante del sistema, por lo dicho anteriormente y además porque facilita al programador y a los programas de aplicación, el acceso y el uso de los medios y servicios del sistema.

El sistema operativo puede brindar servicios para los siguientes casos6:

- Creación de programas

El S.O. proporciona una gran variedad de servicios y medios para ayudar al programador en el desarrollo de programas. Comúnmente, estos servicios y medios no son propiamente parte del sistema operativo, pero se accede a ellos a través de éste.

Por ejemplo, el software utilizado para la elaboración de un juego virtual, está instalado en el sistema, lo que hace el S.O. es brindar al programador un acceso a esta plataforma como también la gestión de recursos utilizados por ésta para su correcto funcionamiento.

- Ejecución de programas

Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los dispositivos de E/S deben cargarse y

6 STALLINGS, William. (2003).Organización y arquitectura de computadores. Editorial Prentice Hall. 5ta ed. Madrid, España

2

Page 10: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

los ficheros deben iniciarse, como también deben prepararse otros recursos. Todo esto, es brindado por el sistema operativo.

- Acceso a los dispositivos de E/S

Cada dispositivo de entrada y salida necesita su conjunto particular de instrucciones y señales de control para poder operar. En el sistema operativo hace encarga de los detalles, Para el programador pueda pensar simplemente en términos de lecturas y escrituras.

- Acceso controlado a los ficheros

En el caso de los ficheros, el control debe incluir el conocimiento no sólo de la naturaleza del dispositivo (disco, cinta), sino también del formato del fichero y del medio de almacenamiento.Nuevamente, el sistema operativo se ocupa de los detallesEs más, en el caso de un sistema con múltiples usuarios simultáneos, el sistema operativo puede proporcionar mecanismo de protección para controlar el acceso a los recursos compartidos, tales como los ficheros.

- Acceso al sistema

En el caso de un sistema compartido o público, el sistema operativo controla el acceso al sistema como un todo y a los recursos específicos del sistema. La función de acceso debe proporcionar protección de los recursos y datos frente a los usuarios no autorizados, y debe resolver los conflictos por el acceso a los recursos compartidos.

- Detección de errores y respuesta

Mientras el computador está funcionando, pueden producirse una serie de errores. Entre estos están los errores de hardware internos y externos, como errores de memoria o comportamiento incorrectos de dispositivos y también están los errores diversos de software, como el conocido overflow aritmético7, el intento de acceder a una posición de memoria no permitida o la incapacidad del S.O. para responder una petición generada por una aplicación.

Entonces, el sistema operativo debe reaccionar ante estos hechos de tal manera de que no afecte o tenga menor daño en las aplicaciones que se están ejecutando. El S.O. puede

7 El desbordamiento aritmético es un fallo informático que se da cuando el código almacenado en un registro supera su valor máximo.

3

Page 11: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

abortar el programa que causó el error, reintentar la operación o solo notificar el error a la aplicación.

- Gestión de cuentas (accouting)

Los sistemas operativos deben contener o almacenar la estadística de uso de los distintos recursos y supervisar los parámetros de prestaciones, tales como le tiempo de respuesta.

En cualquier sistema esta información es útil para anticipar la necesidad de futuras ampliaciones y ajustes que mejoren las prestaciones del sistema. En un sistema multiusuario, esta información puede utilizarse para determinar las cantidades que deben aportar los usuarios.

Como vemos, el sistema operativo es el puente de comunicación entre usuario y computador, pero no solo se encarga de eso, como veremos a continuación el sistema operativo es el encargado de administrar8 los recursos del computador, buscando lograr una eficiencia en el uso de los mismos.

1.4. EL SISTEMA OPERATIVO COMO ADMINISTRADOR DE RECURSOS

STALLINGS, W., (2003, pág. 223)9 plantea: “Un computador es un conjunto de recursos para transferir, almacenar y procesar datos y para controlar esas funciones. El sistema operativo es responsable de la administración de esos recursos”.

Es base a esto, podemos decir que un sistema operativo es el que controla la transferencia, almacenamiento y el procesamiento de los datos pero de una forma curiosa por dos razones:

- El sistema operativo funciona de la misma forma que el software ordinario del computador; esto es, se trata de un programa ejecutado por el procesador.

- El sistema operativo frecuentemente cede el control y depende del procesador para recuperar el control.

El sistema operativo, de hecho, no es más que un programa de un computador. Como otros programas, proporciona instrucciones al computador. Pero lo que diferencia al sistema operativo de los demás programas es su objetivo. El S.O. está destinado para dirigir al

8 Administrar. Graduar o dosificar el uso de una cosa para obtener mayor rendimiento o mejor resultado de ella

9 STALLINGS, William. (2003).Organización y arquitectura de computadores. Editorial Prentice Hall. 5ta ed. Madrid, España.

4

Page 12: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

procesador en el uso de otros recursos del sistema y en la temporización10 de la ejecución de otros programas.

Pero para realizar esto, el sistema operativo debe ceder el control al procesador par que éste realice el trabajo útil, y luego de esto recuperarlo para preparar el procesador para los siguientes trabajos.

1.5. TIPOS

1.5.1. LOS PRIMEROS SISTEMAS

En los primeros sistemas, el programador interactuaba directamente con el hardware del computador. Estas máquinas se accionan desde una consola, constituida por luces indicadoras, interruptores, algún dispositivo de entrada y una impresora.

Los programas en código máquina se cargaban mediante el dispositivo de entrada como el lector de tarjetas. Si un error hacía detenerse al programa, las luces indicaban la condición de error. Entonces el programador debía proceder a comprobar los registros y la memoria principal para determinar la causa del error. Si el programa terminaba, la salida aparecía en la impresora.

Pero estos sistemas tenían dos complicaciones fundamentales11:

- Planificación

En estos sistemas cada usuario debía reservarse tiempo en la máquina, estos espacios de tiempo tenían que ser múltiplos de media hora. Entonces, si el usuario terminaba en 45 minutos y había reservado una hora, había un tiempo que se desperdiciaba donde el computador estaba parado, en este caso por 15 minutos, hasta que ingrese el siguiente usuario.

Pero también podía pasar lo contrario, es decir, que en el caso de que el usuario haya reservado una hora y no acabó en ese tiempo por problemas al ejecutar el programa, estaba obligado a parar sin resolver el problema.

- Tiempo de preparación

Había un único programa, llamado trabajo (job), que se encargaba de cargar en memoria el compilador y el programa en lenguaje de alto nivel (programa fuente), guardar el

10 Temporización. Acción de cronometrar o controlar el tiempo de un proceso u operación.11 STALLINGS, William. (2006).Organización y arquitectura de computadores. Editorial Prentice Hall. 7ma

ed. Madrid, España.

5

Page 13: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

programa compiladora (programa objeto) y, después, cargar y enlazar juntos el programa objeto y las funciones comunes.

Cada uno de estos pasos podía implicar montar y desmontar cintas o activar terminales de tarjetas. Por tanto, se consumía una considerable cantidad de tiempo sólo en preparar el programa para que se pudiera ejecutar.A este modo de procedimiento podríamos nombrarlo “procesamiento en serie”, por la forma en los usuarios ingresan en serie al computador.

1.5.2. SISTEMA DE COLAS SIMPLES

El costo de las primeras máquinas era muy elevados por lo que se debía maximizar el tiempo de utilización de la máquina, haciendo que el tiempo perdido por la planificación y la preparación sean no aceptados.

Para ello, se desarrollaron los sistemas de colas sencillos. Con un sistema de este tipo, llamado monitor, el usuario ya no tiene acceso directo a la máquina. En cambio, el usuario envía el trabajo, en tarjetas o en cinta, a un operador del computador que pone los trabajos en cola y sitúa toda la cola en un dispositivo de entrada al que accede el monitor12.

1.5.3. SISTEMA DE COLAS MULTIPROGRAMADAS

El problema de los sistemas de colas sencillos, al usar la monoprogramación, es que el procesador está parado a menudo. Este problema se da porque los dispositivos de E/S son lentos en comparación con el procesador.

Esto causa que el procesador tenga que esperar a que los dispositivos de E/S transfieran los datos para luego empezar con otro programa, definitivamente esto significaría que el computador pase más del 90% de su tiempo solo esperando.

Para disminuir este tiempo desperdiciado por el computador, es que surge la multiprogramación o la multitarea. Suponga que se tiene memoria suficiente para el sistema operativo y dos programas de usuario. En este caso, cuando un trabajo necesita esperar debido a una E/S, el procesador puede conmutar al otro trabajo, que posiblemente no estará esperando una E/S.

Los sistemas operativos multiprogramados son bastante sofisticados en comparación con los sistemas de un solo programa o monoprogramados. Para tener varios trabajos listos para ejecutarse, deben mantenerse en memoria, precisándose

12 STALLINGS, William. (2006).Organización y arquitectura de computadores. Editorial Prentice Hall. 7ma ed. Madrid, España.

6

Page 14: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

una cierta gestión de la memoria12. Además, si varios trabajos están listos para ejecutarse, el procesador debe decidir cuál de ellos se ejecuta, lo que implica utilizar algún algoritmo de planificación. Estos conceptos se desarrollan con más detalle en los siguientes capítulos.

1.5.4. SISTEMAS DE TIEMPO COMPARTIDO

Para algunos trabajos es deseable disponer de un modo en el cual el usuario interactúe directamente con el computador. Para ello, se desarrolló el tiempo compartido.

Igual que la multiprogramación permite que el procesador ejecute varios trabajos de la cola en un intervalo de tiempo, también se puede hacer que ejecute varios trabajos interactivos. En este caso, la técnica se denomina tiempo compartido, puesto que el tiempo del procesador se comparte entre varios usuarios.

En un sistema de tiempo compartido, varios usuarios acceden simultáneamente al sistema a través de terminales, mientras que el sistema operativo alterna la ejecución de fragmentos o ráfagas de cómputo correspondientes a cada usuario. Así, si hay n usuarios que solicitan servicio al mismo tiempo, cada usuario solo aprovechará, por término medio, una fracción igual a \/n de la velocidad efectiva del procesador, y eso sin contar el tiempo dedicado al sistema operativo. No obstante, dado el relativamente elevado tiempo de reacción humano, el tiempo de respuesta de un sistema diseñado correctamente debería ser comparable al que proporciona un computador dedicado13.

Cabe indicar que tanto las colas multiprogramados como el tiempo compartido, usan multiprogramación.

Algunas de las diferencias entre sistema de colas multiprogramadas (CM) y tiempo compartido (TC) serían las siguientes.

- Objetivo. Mientras las CM priorizan maximizar la utilización del procesador, el TC se encarga de minimizar el tiempo de respuesta.

- Fuente de instrucciones para el sistema operativo. Las CM tiene como fuente a las instrucciones de un lenguaje de control de trabajos que proporciona el propio trabajo, mientras que el TC utiliza las ordenes introducidas a través del terminal.

13 STALLINGS, William. (2006).Organización y arquitectura de computadores. Editorial Prentice Hall. 7ma ed. Madrid, España.

7

Page 15: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

En el siguiente capítulo se abordará lo referente a los procesos como éstos son manejados por el computador, y la planificación que éstos deben tener para un uso eficiente del procesador.

CAPITULO II

“PROCESOS”

2.1. INTRODUCCION Y DEFINICIONES

El concepto central de cualquier sistema operativo es el de Proceso: una abstracción de un programa en ejecución también llamada tarea.

No hay un acuerdo universal sobre una definición de proceso, pero si algunas definiciones aceptadas:

Un programa que se está ejecutando. Una actividad asincrónica. El emplazamiento del control de un procedimiento que está siendo

ejecutado. Aquello que se manifiesta por la existencia en el sistema operativo de un

bloque de control de proceso. Aquella entidad a la cual son asignados los procesadores. La unidad despachable.

En sistemas de multiprogramación la cpu alterna de programa en programa, en un esquema de pseudoparalelismo, es decir que la cpu ejecuta en cierto instante un solo programa, intercambiando muy rápidamente entre uno y otro.

El paralelismo real de hardware se da en las siguientes situaciones:

En ejecución de instrucciones de programa con más de un procesador de instrucciones en uso simultáneamente.

Con la superposición de ejecución de instrucciones de programa con la ejecución de una o más operaciones de entrada/salida.

El objetivo es aumentar el paralelismo en la ejecución.

El modelo de procesos posee las siguientes características:

Todo el software ejecutable, inclusive el sistema operativo, se organiza en varios procesos secuenciales o procesos.

Un proceso incluye al programa en ejecución y a los valores activos del controlador, registros y variables del mismo.

Conceptualmente cada proceso tiene su propia cpu virtual.

8

Page 16: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Si la cpu alterna entre los procesos, la velocidad a la que ejecuta un proceso no será uniforme, por lo que es necesario aclarar lo siguiente.

o Que los procesos no deben programarse con hipótesis implícitas acerca del tiempo.

o Que normalmente la mayoría de los procesos no son afectados por la multiprogramación subyacente de la cpu o las velocidades relativas de procesos distintos.

Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada, salida y estado.

Un solo procesador puede ser compartido entre varios procesos con cierto “algoritmo de planificación”, el cual determina cuando detener el trabajo en un proceso y dar servicio a otro distinto.

En cuanto a las jerarquías de procesos es necesario señalar que los sistemas operativos deben disponer de una forma de crear y destruir procesos cuando se requiera durante la operación, teniendo además presente que los procesos pueden generar procesos hijos mediante llamadas al sistema operativo, pudiendo darse ejecución en paralelo.

Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:

Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos.

9

Page 17: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Los procesos pueden bloquearse en su ejecución porque:o Desde el punto de vista lógico no puede continuar porque espera

datos que aún no están disponibles.o El sistema operativo asigno la cpu a otro proceso.

Los estados que pueden tener un proceso son:o En ejecución: utiliza la cpu en el instante dado.o Listo: ejecutable, se detiene en forma temporal para que se

ejecute otro proceso.Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.

Son posibles cuatro transiciones entre estos estados.

10

Page 18: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

2.2. ESTADOS DE PROCESOS

Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado.

Debido a ello se puede establecer una “lista de listos” para los procesos “listos” y una “lista de bloqueados” para los “bloqueados”.

La “lista de listos” se mantiene en orden prioritario y la “lista de bloqueados” esta desordenada, ya que los procesos de desbloquean en el orden en que tienen lugar los eventos que están esperando.

Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en la última parte de la “lista de listos”.

La asignación de la cpu al primer proceso de la “lista de listos” se denomina “despacho”, que es ejecutado por una entidad del sistema operativo llamada “despachador”.

El “bloqueo” es la única transición de estado iniciada por el propio proceso del usuario, puesto que las otras transiciones son iniciadas por entidades ajenas al proceso.

La manifestación de un proceso en un sistema operativo es un “bloque de control de proceso” (PCB) con información que incluye:

Estado actual del proceso. Identificación única del proceso. Prioridad del proceso. Apuntadores para localizar la memoria del proceso. Apuntadores para asignar recursos. Área para preservar registros.

Cuando el sistema operativo cambia la atención de la cpu entre los procesos, utiliza las áreas de preservación del PCB para mantener la información que necesita para reiniciar el proceso cuando consiga de nuevo la cpu.

Los sistemas que administran los procesos deben poder crear, destruir, suspender, reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.

La creación de un proceso significa:

Dar nombre al proceso. Insertar un proceso en la lista del sistema de procesos conocidos.

11

Page 19: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Determinar la prioridad inicial de proceso. Crear el bloque de control del proceso. Asignar los recursos iniciales del proceso.

Un proceso puede crear un nuevo proceso, en cuyo caso el proceso creador se denomina “proceso padre” y el proceso creado “proceso hijo” y se obtiene una “estructura jerárquica de procesos”.

La destrucción jerárquica de procesos implica:

Borrarlo del sistema Devolver sus recursos al sistema Purgarlo de todas las listas o tablas del sistema Borrar su bloque de control de proceso.

Un proceso suspendido no puede proseguir hasta que otro proceso lo reanude.

Reanudar (reactivar) un proceso implica reiniciarlo en el punto donde fue suspendido.

La destrucción de un proceso puede o no significar la destrucción de los procesos hijos, según el sistema operativo.

Generalmente se denomina “tabla de procesos” al conjunto de información de control sobre los distintos procesos.

2.3. PLANIFICACION DE PROCESOS

Cuando más de un proceso es ejecutable desde el punto de vista lógico, el sistema operativo debe decidir cuál de ellos debe ejecutarse en primer término.

El planificador es la porción del sistema operativo que decide y el algoritmo de planificación es el utilizado.

Los principales “criterios” respecto de un buen algoritmo de planificación son la equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento.

Algunas de estas metas son contradictorias, por ejemplo, minimizar el tiempo de respuesta para los usuarios interactivos significaría no ejecutar las tareas batch.

Cada proceso es único e impredecible, es decir que pueden requerir intensivamente operaciones de Entrada/Salida o intensivamente cpu; el planificador del sistema operativo no tiene la certeza de cuánto tiempo transcurrirá hasta que un proceso se bloquee, ya sea por una operación de Entrada/Salida o por otra razón.

12

Page 20: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Los principales conceptos relacionados con planificación de procesador son los siguientes:

Planificación apropiativa: es la estrategia de permitir que procesos ejecutables (desde el punto de vista lógico) sean suspendidos temporalmente.

Planificación no apropiativa: es la estrategia de permitir la ejecución de un proceso hasta terminar.

Planificación del procesador: determina cuando deben asignarse los procesadores y a que procesos, lo cual es la responsabilidad del sistema operativo.

2.3.1. NIVELES DE PLANIFICACION DEL PROCESADOR

Se consideran tres niveles importantes de planificación, los que se detallan a continuación:

Planificación de alto nivel

También se denomina planificación de trabajos. Determina a que trabajos se les va a permitir competir

activamente por los recursos del sistema, lo cual se denomina planificación de admisión.

Planificación de nivel intermedio

Determina a que procesos se les puede permitir competir por la cpu.

Responde a fluctuaciones a corto plazo en la carga del sistema y efectúa suspensiones y activaciones de procesos.

Debe ayudar a alcanzar ciertas metas en el rendimiento total de sistema.

Planificación de bajo nivel

Determina a que proceso listo de le asigna la cpu cuando esta queda disponible y asigna la cpu al mismo, es decir que despacha la cpu al proceso.

La efectúa el despachador del sistema operativo, en el que opera muchas veces por segundo y reside siempre en el almacenamiento primario.

13

Page 21: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Los distintos sistemas operativos utilizan varias políticas de planificación, que se instrumentan mediante mecanismos de planificación.

2.3.2. OBJETIVOS DE LA PLANIFICACION

Los objetivos de la planificación del procesador son los siguientes e involucran a los conceptos detallados seguidamente:

Ser justao Todos los procesos son tratados de igual manera.o Ningún proceso es postergado indefinidamente.

Maximizar la capacidad de ejecucióno Maximizar el número de procesos servidos por unidad de

tiempo. Maximizar el número de usuarios interactivos que reciban unos

tiempos de respuesta aceptables

14

Page 22: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

o En un máximo de unos segundos.

Ser predecibleo Un trabajo dado debe ejecutarse aproximadamente en la

misma cantidad de tiempo independientemente de la carga del sistema.

Equilibrar respuesta y utilizacióno La mejor manera de garantizar buenos tiempos de

respuesta es disponer de los recursos suficientes cuando se necesitan, pero la utilización de recursos podrá ser pobre.

Asegurar la prioridado Los mecanismos de planificación deben favorecer a los

procesos con prioridades más altas. Dar preferencia a los procesos que mantienen recursos claves:

o Un proceso de baja prioridad podría mantener un recurso clave, que puede ser requerido por un proceso de más ata prioridad.

o Si el recurso es no apropiativo, el mecanismo de planificación debe otorgar al proceso un tratamiento mejor del que le correspondería normalmente, puesto que es necesario liberar rápidamente el recurso clave.

Muchas de estas metas se encuentran con conflictos entre si, por lo que la planificación se convierte en un problema complejo.

2.3.3. CRITERIOS LA PLANIFICACION

Para realizar los objetivos de la planificación, un mecanismo de planificación debe considerar lo siguiente:

La limitación de un proceso a las operaciones de Entrada/Salida La limitación de un proceso a la cpu Si un proceso es por lote o interactivo La prioridad de un proceso Frecuentemente un proceso genera fallos de página:

o Probablemente los procesos que generan pocos fallos de página hayan acumulado sus “conjuntos de trabajos” en el almacenamiento principal.

o Los procesos que experimentan gran cantidad de fallos de página aún no han establecido sus conjuntos de trabajo.

o Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo.

15

Page 23: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

o Otro criterio indica favorecer a los procesos con una tasa alta de fallos de página ya que rápidamente generaran una petición de Entrada/Salida.

Frecuentemente un proceso ha sido apropiado por otro de más alta prioridad, lo cual significa lo siguiente:

o A menudo los procesos apropiados deben recibir un tratamiento menos favorable.

Cada vez que el sistema operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de ejecución antes de la apropiación no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.

2.3.4. PLANIFICACION APROPIATIVA VERSUS NO APROPIATIVA

Las disciplinas de planificación pueden ser apropiativas o no apropiativas.

Las principales características de la planificación apropiativa son las siguientes:

Es útil cuando los procesos de alta prioridad requieren atención rápida.

Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.

Tiene su coso en recursos, ya que el intercambio de contexto implica sobrecarga y además requiere mantener muchos procesos en el almacenamiento principal, en espera de la cpu, lo que también implica sobrecarga.

Las principales características de la planificación no apropiativa son las siguientes:

Significa que los trabajos “largos” hacen esperar a los trabajos “cortos”.

Logra más equidad en el tratamiento de los procesos. Logra hacer más predecibles los tiempos de respuesta puesto

que los trabajos nuevos de prioridad alta no pueden desplazar a los trabajos en espera.

El diseño de un mecanismo apropiativo hace necesario considerar las arbitrariedades de casi cualquier esquema de prioridades, en razón de que muchas veces las propias prioridades no son asignadas de forma significativa. El mecanismo debería ser sencillo pero efectivo y significativo

2.3.5. TIPOS DE PLANIFICACION

16

Page 24: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

2.3.5.1. PLANIFICACION A LARGO PLAZO

El planificador a largo plazo determina qué programas se admiten para ser procesados en el sistema. De esta manera, este planificador contrala el grado de multiplicación (número de procesos en memoria). Una vez admitido, un trabajo o programa de usuario pasa a ser un proceso y se añade a una cola asociada al planificador a corto plazo. El algunos sistemas, un proceso nuevo comienza a partir de una situación en el intercambio (swapping), en cuyo caso se añade a la cola del planificador a medio plazo.

En un sistema de colas, o en la parte de colas de un sistema operativo de uso general, los trabajos nuevos que se envían pasan al disco y se mantienen en una cola. El planificador a largo plazo selecciona trabajos de esta cola cuando puede. Esto implica tomar dos decisiones. Primera, el planificado debe decidir si el sistema operativo puede aceptar uno o más procesos adicionales. Segundo, el planificador debe de decidir que trabajos o trabajos aceptar y transforma en procesos. Los criterios que se utilizan deben de incluir la prioridad, el tiempo de ejecución esperado y las E/S que se requieren.

Para los programas interactivos en un sistema de tiempo compartido, se genera una solicitud de proceso cuando un usuario intenta conectarse al sistema. Los usuarios en tiempo compartido no se introducen en una cola para mantenerse esperando a que el sistema los acepte. Por el contrario, el sistema operativo aceptará todos los usuarios autorizados hasta que el sistema se sature, según un criterio de saturación predefinido. En ese momento, si se produce una solicitud de conexión se responde con un mensaje que indica que el sistema está completo y el usuario debe intentar la conexión de nuevo, pasado en un tiempo.

2.3.5.2. PLANIFICACION A MEDIANO PLAZO

La planificación a medio plazo es parte de la función de intercambio. Usualmente, la decisión de intercambiar un proceso se toma en función del grado de multiplicación que se desea mantener. En un sistema que no utilice memoria virtual, la gestión de la memoria también debe considerarse por el planificador a medio plazo, y en las decisiones tomadas en el intercambio.

2.3.5.3. PLANIFICACION A CORTO PLAZO

17

Page 25: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

El planificador a largo plazo se ejecuta de manera relativamente poco frecuente, toma de decisiones más genéricas de si aceptar un nuevo proceso o no, y que proceso aceptar. El planificador a corto plazo, conocido también como distribuidor (dispatcher), se ejecuta frecuentemente y toma la decisión más específica de que trabajo se ejecuta a continuación.

Para comprender el funcionamiento del planificador a corto plazo necesitamos considerar el concepto de estado de un proceso.

Se define cinco estados para un proceso:

Nuevo: el planificador de alto nivel admite un programa pero todavía no está preparado para ejecutarse. El sistema operativo iniciará un proceso, pensándolo en el estado preparado.

Preparado: el proceso está preparado para ejecutarse y se encuentra esperando acceso al procesador.

En ejecución: el proceso está siendo ejecutado por el procesador.

En espera: el procesador ha suspendido su ejecución al estar preparando algún recurso del sistema, tal como una E/S.

Pardo: el proceso ha terminado y será eliminado por el sistema operativo.

Para cada proceso del sistema, el sistema operativo debe mantener información de su estado indicando la situación en que se encuentra el proceso y cualquier información de su estado indicando la situación en que se encuentra el proceso y cualquier información adicional necesaria para la ejecución de mismo. Para eso, cada proceso se representa en el sistema operativo mediante un bloque de control de proceso:

18

Page 26: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Identificador: cada proceso en curso tiene un identificador único.

Estado: el estado actual del proceso. Prioridad: el nivel de prioridad es relativo. Contador de programa: la dirección de la siguiente

instrucción a ejecutar. Punteros a memoria: las posiciones de memoria de inicio y

final del proceso. Datos de contexto: son los datos de los registros del

procesador cuando el proceso se está ejecutando, y se discutirán en la parte tercera. Representan el contexto del proceso. El contexto junto con el contador de programa se guarda cuando el proceso abandona el estado preparado. El procesador los recupera cuando reanuda la ejecución del proceso.

Información de estado de las E/S: incluye las solicitudes de E/s pendientes, los dispositivos E/S son asignados al proceso, la lista de ficheros asignados al proceso, etc.

Información para contabilidad: puede incluir el tiempo total ye l tiempo de procesador utilizados, los límites de tiempo, los datos de las cunetas, etc.

Cuando el planificador acepta un nuevo trabajo o solicitud de ejecución de un usuario, crea un bloque de control de procesos en blanco y sitúa en él al proceso asociado al estado nuevo. Después de que el sistema haya completado correctamente el bloque de control de proceso, el proceso se transfiere al estado preparado.

2.3.6. TECNICAS DE PLANIFICACION

19

Page 27: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

La figura muestra cómo se divide la memoria principal en un instante de tiempo dado. El núcleo del sistema operativo, A y B, a cada uno de los cuales se les asigna una porción de memoria.

Empezamos en un instante de tiempo dado cuando el proceso A está ejecutándose. El procesador toma las instrucciones del programa contenido en la partición de la memoria de A. En un instante posterior, el procesador deja de ejecutar instrucciones de A y empieza a ejecutar instrucciones del sistema operativo. Esto puede suceder debido a una de estas tres razones:

1. El proceso A genera una llamada a un servicio (por ejemplo, una solicitud de E/S) del sistema operativo. La ejecución de A se suspende hasta que el sistema operativo ha completado el servicio solicitado.

2. El proceso A origina una interrupción. Cuando se detecta la señal, el procesador deja de ejecutar A y pasa al gestor de interrupciones incluido el sistema operativo. Hay una diversidad de eventos de A que pueden ocasionar la interrupción.

3. Algún hecho no relacionado con el proceso A que requiere atención origina una interrupción.

En cualquier caso, el procesador guarda los datos del contexto actual y el contador del programa de A en el bloque de control del proceso A y empieza a ejecutar el sistema operativo. El sistema operativo puede realizar alguna actividad, tal como inicia una operación E/S. entonces, la porción del sistema operativo correspondiente al planificador a corto plazo decide el proceso que se ejecuta a continuación. En este ejemplo, se elige B, el sistema operativo hace que se restauren en el procesador los

20

Page 28: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

datos del contexto de B y se prosigue con la ejecución de B donde se dejó.

CAPITULO III

“GESTIÓN DE MEMORIA”

ANDREW S. TANENBAUM, ALBERT S. WOODHULL. SISTEMAS OPERATIVOS: Diseño e implementación. (1997; pág. 309)14 plantean “La memoria es un recurso importante que se debe de administrar con cuidado. La parte del sistema operativo que administra la jerarquía de memoria se denomina administrador de memoria. Su trabajo consiste en mantenerse al tanto de qué partes de la memoria están en so y cuáles no lo están, asignar memoria a los procesos cuando la necesitan y recuperarla cuando terminan y controlar el intercambio entre la memoria principal y el disco cuando la primera es demasiado pequeña para contener todos los procesos”.

3.1. OBJETIVOS DEL SISTEMA DE GESTION DE MEMORIA

CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001) 15 “El sistema operativo debe de encargarse de hacer un reparto transparente, eficiente, y seguro de los distintos recursos de la máquina, entre los procesos diversos. De forma que cada uno de ellos crea que tiene una máquina para él solo.”. Es decir, el sistema operativo debe de permitir que las personas que programen puedan desarrollar sus aplicaciones sin verse afectados por la posible existencia de otro programa durante su ejecución.

Para evitar esto, el SO junto con el hardware de gestión de memoria, deben de repartir el almacenamiento existente proporcionado un espacio adecuado independiente para cada proceso evitando una posible interferencia voluntaria o involuntaria.

El procesador realiza un “reparto en el tiempo “y la memoria “en el espacio generando de esta forma una abstracción de procesador virtual que los independiza del resto de los procesos.

14 ANDREW S. TANENBAUM, ALBERT S. WOODHULL. SISTEMAS OPERATIVOS: Diseño e implementación. Prentice Hall Hispanoamericana. 2da ed. México.

15 CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001). Sistemas Operativos, Una visión aplicada. Editorial Mc Graw Hill. 2da ed. Madrid, España.

21

Page 29: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Ofrecer a cada proceso un espacio lógico propio y Reubicación de procesos.

Proporcionar protección entre los procesos Permitir que los procesos compartan memoria Maximizar el rendimiento del sistema Proporcionar a los procesos mapas de memorias muy grandes.

3.2.1 ESPACIO LOGICO INDPENDIENTE Y REUBICACION

STALLINGS, W., (2012)16 señala que: “en un sistema multiprogramados, la memoria disponible se encuentra normalmente compartida por varios procesos”.

CARRETERO, J. y GARCÍA, F., (2003)17 plantea: “En un sistema operativo multiprogramados de propósito general no se puede conocer a priori la posición de memoria que ocupara un programa cuando se cargue en memoria para proceder a su ejecución, puesto que dependerá del estado de ocupación de la memoria, pudiendo variar, por tanto en ejecuciones del mismo”.

El que un programa haya sido descargado al disco, se limitara a declarar que: cuando este vuelva ser cargado, debe de ser situado en la misma posición de memoria principal que antes. Así, se podrá saber con anticipación dónde deberá de situarse un programa y se debe de permitir que el programa pueda moverse en la memoria principal como resultado de un intercambio.

El código máquina de un archivo ejecutable del programa incluye referencias a memoria haciendo uso de las diversas formas de direccionamiento del juego de instrucciones del procesador, tanto para poder acceder a sus operando como también para hacer bifurcaciones.

Ejemplo: un fragmento del programa que copia el contenido de un vector almacenado a partir de la posición 1000 en otro almacenado a partir de la posición 2000, estando el tamaño del vector almacenado en la dirección

El código máquina del programa presentado, incluye referencias a direcciones de memoria que corresponden a operandos y también a instrucciones.

Si fuese el caso de un sistema monoprogramado, para la ejecución del programa debemos de cargarlo a partir de la posición 0 y pasarle el control al mismo.

Lo contrario ha de ocurrir en un sistema de multiprogramación, en donde necesitamos hacer uso de un proceso de reubicación de las

16 STALLINGS, William. (2012).Sistemas Operativos. Editorial Prentice Hall. 7ma ed. Madrid, España.17 CARRETERO, J., GARCÍA, F., PÉREZ, (2003). Problemas de Sistemas Operativos. De la base al diseño.

Editorial Mc Graw Hill. 3era ed. Madrid (España).

22

Page 30: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

direcciones de memoria referenciadas por las instrucciones de un programa (direcciones lógicas) para que así puedan corresponder con las direcciones Físicas (direcciones de memoria principal). Este proceso crea un espacio lógico (mapa) de forma independiente para cada uno de los procesos.El procesador es el encargado de realizar esta reubicación mediante la MMU, así el sistema operativo deberá de especificar que función de reubicación deberá de aplicar al proceso que se está ejecutando en ese momento. En el ejemplo planteado, el procesador a instancias del sistema operativo deberá de sumarle 1000 a cada una de las direcciones que genera el programa en tiempo de ejecución. Así, el programa se cargaría de en memoria desde el ejecutable sin realizar ninguna modificación del mismo.

3.2.2 PROTECCION

CARRETERO, J. y GARCÍA, F., (2003; pág. 2)18 plantean “En un sistema con Monoprogramación es necesario proteger el sistema operativo de los accesos que realiza un programa en ejecución para evitar que voluntaria o involuntariamente, pueda interferir en el correcto funcionamiento del mismo”.

18 CARRETERO, J., GARCÍA, F., PÉREZ, (2003). Problemas de Sistemas Operativos. De la base al diseño. Editorial Mc Graw Hill. 3era ed. Madrid (España).

23

Page 31: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Como podemos observar, si esto ocurre en un sistema donde no hay muchos procesos, podemos entender entonces que en un sistema multiprogramado el problema se acentúa dado que no solo se debería de proteger el sistema operativo, sino que también a los procesos entre sí. Aquí, la manera de proteger necesita del hardware, para que se pueda verificar y validar cada una de las direcciones que genera un programa en tiempo de ejecución. Este mecanismo se sabe que está integrado en el mecanismo de reubicación.

En el caso de un sistema con mapa de memoria y e/s común, el mecanismo mencionado permitiría el impedimento de los procesos que quisieran acceder directamente a los dispositivos de E/S haciendo que estas direcciones no formen parte del mapa de ningún proceso.

3.2.3 COMPARTIMIENTO DE MEMORIA

STALLINGS, W., (2012)19 nos dice “en ciertas situaciones, bajo la supervisión y control del sistema operativo, puede ser provechoso que los procesos puedan compartir memoria”.

Como sabemos los mecanismos de protección tienen la flexibilidad de permitir que los procesos puedan acceder a la misma zona principal. Esto sería muy provechoso en situaciones cuando por ejemplo se estén ejecutando varios procesos de un mismo programa, donde cada proceso podría acceder a la misma copia del programa, en vez de que cada uno tenga su propia copia de manera independiente. Además existen unas series de procesos que cooperan en algunas tareas y pueden necesitar acceso compartido con la misma estructura de datos.

La posibilidad de que los procesos se encuentren en una mismo lugar de la memoria haciéndola corresponder con rangos diferentes de su espacio lógico nos puede traer problemas. En una situación donde una posición de memoria de la zona compartida tenga que contener otra dirección, de esta forma no se podría determinar qué dirección almacenar en la posición origen, puesto que cada proceso ve la posición referenciada en una dirección diferente de su mapa de memoria.

19 STALLINGS, William. (2012).Sistemas Operativos. Editorial Prentice Hall. 7ma ed. Madrid, España.

24

Page 32: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

3.2.1 ORGANIZACIÓN LOGICA

La memoria principal de un sistema de información se organiza como un espacio de dirección lineal dado que consta de una serie de bytes o palabras. Con respecto a la memoria secundaria tiene una organización a nivel físico muy similar pero que no corresponde con la forma en que los programas están formados habitualmente.

Existen muchos programas que se organizan en módulos (muchos de ellos no se pueden modificar porque solo son de lectura o de ejecución) así como también existen aquellos que se pueden modificar.

Al lograr tratar una forma efectiva los programas de usuarios y los datos en forma de módulos, cosa que dependerá del sistema operativo y del hardware se conseguirá ventajas tales como:

- Los módulos se podrán escribir y compilar independientemente y el sistema se encargará de resolver todas las referencias de un módulo a otro.

- Se pueden otorgar grados de protección a los diferentes módulos.- Se puede insertar mecanismos por donde los procesos pueden

compartir módulos

La herramienta que más satisface estas necesidades es la segmentación que ya veremos más adelante. 3.2.2 ORGANIZACIÓN FISICA

La memoria principal nos ofrece un acceso muy rápido, evidentemente con un coste muy alto también, sin embargo no nos asegura un almacenamiento permanente.

En el caso de la memoria secundaria, esta es muy lenta y más barata, pero no es volátil como la memoria anterior, también tiene una gran

25

Page 33: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

capacidad y permite un almacenamiento a largo plazo de programas y datos.

La organización del flujo de información entre la memoria principal y la secundaria tiene la responsabilidad de asignarse al programador pero esto es impracticable e indeseable:

- La memoria principal disponible para algún programa puede ser escaza, para esto el programador debe de hacer uso de una práctica conocida como overlaying, el cual permite organizar los datos y el programa de tal forma que pueden existir varios módulos asignados a la misma región de memoria.

- en un sistema con multiprogramación, el programador desconoce cuánto espacio ha de estar disponible o donde se ha de encontrar, esto se hace durante la fase de codificación.

Por ende, la tarea de mover información entre los dos niveles de memoria es responsabilidad del sistema. Esto viene a ser la esencia de la gestión de memoria.

3.2. INTERCAMBIO (SWAPPING)

CARRETERO, J. y GARCÍA, F., (2003)20 sostienen que: “el intercambio se basa en usar un disco o parte de un disco como respaldo de la memoria principal”.

Cuando el procesador está detenido por múltiples procesos, una buena solución es hacer uso de esta técnica, como sabemos, ha significado en su momento una forma en donde se permite la existencia de más procesos en memoria. Así, cuando en la memoria no son posible más procesos activos, entonces se pasará a elegir un proceso residente y se copia en swap el proceso.

El intercambio, como manifiestan algunos libros, la técnica de intercambio consiste en traer cada proceso en su totalidad a la memoria a medida que ésta tenga espacio disponible, conforme terminan, estos procesos serán extraídos de la memoria principal.

Ahora puede ocurrir que estos procesos en la memoria principal este el estado preparado, es aquí donde en lugar de permanecer detenido el procesador, intercambia alguno de estos procesos colocándolos en disco (en una cola intermedia). El sistema operativo puede aceptar una petición de la cola de largo plazo.

STALLINGS, W., (2012)21 nos dice que:” el intercambio es de hecho una operación de entrada y salida, y por consiguiente existe la posibilidad de

20 CARRETERO, J., GARCÍA, F., PÉREZ, (2003). Problemas de Sistemas Operativos. De la base al diseño. Editorial Mc Graw Hill. 3era ed. Madrid (España).

21 STALLINGS, William. (2012).Sistemas Operativos. Editorial Prentice Hall. 7ma ed. Madrid, España.

26

Page 34: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

empeorar el problema más que de solucionarlo”, el autor explica que debido a que las entradas y salidas de en disco es por lo general la operación de E/S más rápida, usualmente el intercambio mejora las prestaciones.

3.3. DEFINICION DE PARTICIONES

La forma más fácil de lograr la multiprogramación consiste simplemente en dividir la memoria en particiones, posiblemente desiguales. Ésta división puede, por ejemplo efectuarse manualmente cuando se inicia el sistema.

Actualmente, hay muchos casos en que desearíamos que se ejecutaran múltiples procesos a la vez, esto implica que cuando uno de los procesos está bloqueado ya sea por esperar que una E/S, otro puede usar la CPU.Cuando hacemos uso de particiones de distintos tamaños, se pude desperdiciar memoria. Una posibilidad que podría hacer el uso más eficiente de memoria es haciendo uso de particiones de tamaño variable,

27

Page 35: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

es decir cuando un trabajo entra a la memoria, a este se le debe de asignar solo la cantidad necesaria de memoria que requiere y nada más.Con el mal uso de memorias, puede provocar que estas se fragmenten para luego empeorar la utilización de esta. En la actualidad se consideran formas de solucionar estos problemas, para lo cual es necesario saber que las instrucciones contendrán direcciones de posiciones de memoria de dos tipos:

Direcciones de instrucciones ( usadas por las instrucciones de salto)

Direcciones de datos.

Las direcciones mencionadas no son fijas, pues cambiaran cada vez que haya un intercambio. Para dar solución a estos inconvenientes se distinguen entre direcciones lógicas y físicas.La dirección lógica indica una dirección relativa cuando se inicia el programa. Las direcciones físicas nos indican la posición actual en la memoria principal. Cuando el procesador ejecuta un proceso, convierte automáticamente las direcciones lógicas en físicas sumando a cada dirección lógica la posición de comienzo actual del proceso llamada dirección base.

3.2.1 PARTICIONES FIJAS

Esta manera de gestionar la memoria, consiste en dividir la memoria en muchas partes (estas pueden ser de diferente tamaño). Por ejemplo, cunado un proceso ingresa a una partición, va a permanecer en ella hasta que finalice.Cuando un trabajo se inicia y la partición designada por el sistema operativo está ocupada, éste tiene que esperar que este libre. Sin duda alguna esta espera de partición disponible causa una pérdida de eficiencia.

Para que cualquier proceso se pueda cargar en cualquier partición, para lograr esto, los programas deben de escribirse en términos de direcciones (relativas a la dirección de comienzo de carga). Como se sabe los programas no se cargan a partir de la posición cero, para esto se hace uso de la reubicación.

La posible implementación viene proporcionada por el hardware, en donde existe un registro llamado base, en el que el sistema operativo mediante la operación de cambio de proceso, escribe la dirección de memoria a partir del cual ocurrió el almacenamiento del proceso. Así, esta dirección ha de coincidir con el comienzo de la partición en que se encuentra. Cuando la CPU genera una dirección de memoria, esta es transformada por el hardware

28

Page 36: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

3.2.2 PARTICIONES DINAMICAS

Con las particiones dinámicas se pueden superar algunas de las dificultades de la partición estática. Cuando hacemos uso de las particiones dinámicas, estas serán variables en número como también en longitud, por ende cuando se trae un proceso a la memoria principal, a este se le asignara exactamente tanta memoria como se necesita y no más. Por ejemplo:

- Tenemos una memoria principal de 1MB que al principio se encuentra vacía. Se cargan dos procesos empezando donde acaba el sistema operativo y ocupando solo un espacio suficiente para cada proceso; esto deja un hueco muy pequeño al final de la memoria no apto para un tercer proceso.

- Puede que en algún momento ninguno de los procesos esté listo, para esto el sistema operativo saca al proceso 2 que deja suficiente para el proceso 3 y si este proceso es más pequeño 2, de esta manera se creara hueco pequeño.

Ahora pensemos que se llegue un punto en que ninguno de los procesos existentes en memoria principal esté listos y uno de ellos

29

Page 37: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

que está en estado listo, pero suspendido. Dado que no hay espacio para el proceso 2, entonces el sistema operativo expulsa a uno de los procesos y carga de nuevo el proceso 2.

Como podemos darnos cuenta el método de particiones comienza bien, pero al finalizar nos damos cuenta que nos encontramos en una situación en donde nos encontramos como mucho huecos en la memoria. D esta manera conforme pase el tiempo nos encontraremos memoria fragmentada y con menor rendimiento. A este fenómeno se le fragmentación externa (fragmentación de memoria externa).

Existe una técnica para poder superar la fragmentación externa, que es la compactación, que ocurre cuando el sistema operativo desplaza para que estén contiguos de manera que toda la memoria libre quede junta en un bloque. El uso de compactación tiene su desventaja ya que consume tiempo, por lo que el procesador desperdiciara tiempo. Además la compactación necesita de reubicación dinámica.

30

Page 38: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

3.2. SEGMENTACIÓN

Haciendo uso del método de segmentación, podemos subdividir el programa y sus datos asociados se dividen en un conjunto de segmentos. Aquí no es necesario que todos los segmentos tengan la misma longitud. En segmentación simple la dirección lógica segmentada consta de dos partes: número de segmento y un desplazamiento.Cuando hacemos uso de segmentación es necesario cargar en memoria todos los segmentos de un programa para su debida ejecución. Aplicando el método de segmentación un programa puede ocupar más de una partición y estas no necesariamente tienen que ser contiguas, de esta manera la segmentación elimina la fragmentación interna pero sufre de fragmentación externa (claro, mucho menor que la que la partición dinámica).

31

Page 39: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

STALLINGS, W., (2012)22 señala que: “la segmentación es generalmente visible y se proporciona como una comodidad para la organización de los programas y datos”. Lo contrario de la paginación que es transparente al programador. Una de las consecuencias sobre los diferentes tamaños de los segmentos, es que no existe una correspondencia entre las direcciones lógicas y las físicas.

Este autor también nos dice: “un esquema de segmentación simple hará uso de una tabla de segmentos para cada proceso y una lista de bloques libres en la memoria principal”, esta entrada deberá de proporcionar la longitud del segmento para evitar que se usen direcciones inválidas.

Pasos para la traducción de direcciones:

Extraer de los n bits más significativos de la dirección lógica, el número de segmento.

Usar el número de segmento como índice en la tabla de segmentos del proceso, para de esta manera encontrar la dirección física del inicio del segmento.

Comparar el desplazamiento (m menos bits menos significativos) con la longitud del segmento. Si m es mayor que la longitud, entonces la dirección es inválida.

La suma de la dirección física de comienzo de segmento más el desplazamiento, es la dirección física que se busca.

En conclusión, al hacer uso de segmentación simple, se hace una división de la memoria en varios segmentos; cuando un proceso se introduce en memoria se han de cargar todos sus segmentos en zonas de memorias libres y así se ha de llenar la tabla de segmentos.

22 STALLINGS, William. (2012). Sistemas Operativos. Editorial Prentice Hall. 7ma ed. Madrid, España.

32

Page 40: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

3.3. PAGINACIÓN SIMPLE

Las particiones de tamaño fijo y de tamaño variable hacen uso ineficiente de la memoria ya que generan fragmentación interna y externa respectivamente. En lo que concierne a paginación, se supone que la memoria principal esta particionada en muchos trozos iguales de tamaño fijo a los que llaman Marcos de PÁGINAS, igualmente con los procesos, se dividen en trozos pequeños del mismo tamaño que de las memorias llamados PÁGINAS. Así se le puede asignar a cada arco de página una página. Con la paginación simple se reduce el espacio de memoria malgastado cuando se hacen uso de particiones.

El sistema operativo es el que mantiene una lista de los marcos libres, así cuando llega el momento de un proceso, el SO busca la cantidad de marcos disponibles según la cantidad de páginas que tiene el proceso.

33

Page 41: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Ahora lo que nos debemos de estar preguntando es que ocurre cuando tenemos muchos procesos, cuyas páginas se encuentran en sus respectivos macos y un proceso es expulsado, ¿Impide que el sistema operativo pueda cargar otro proceso? La respuesta es que no, aquí se podría emplear el concepto de dirección lógica u no bastará con un simple registro base. En su lugar el SO mantiene una tabla de páginas para cada proceso, en esta tabla se muestra la posición del marco de cada página del proceso. Dentro del programa cada dirección lógica consta de un número de páginas y de un desplazamiento dentro de la página. Con paginación el hardware del procesador también realiza la traducción de direcciones lógicas a físicas y debe saber cómo acceder a la tabla de páginas del proceso actual.

Cuando se da una dirección lógica, el procesador usa la tabla de páginas para obtener así una dirección física. Se puede decir que la paginación simple es similar a la partición estática; con paginación se dice que las particiones se hacen más pequeñas, un programa puede hacer uso de más de una partición y estas no tienen que ser necesariamente contiguas.

El tamaño de la página que es igual a ala del marco debe de ser potencia de dos. Aquí se presentan dos consecuencias al usar un tamaño de página de potencia de dos:

- Cada dirección lógica de un programa es idéntica a su dirección relativa.

- Resulta sencillo realizar una función hardware para llevar a cabo la traducción de direcciones dinámicas durante la ejecución. Para la traducción de direcciones se deben de hacer los siguientes pasos:

Calcular la cantidad de páginas de los n bits más significativos de la dirección lógica.

Usar el número página como índice en la tabla de páginas, para encontrar el número de marco.

34

Page 42: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

El inicio de la dirección física del marco es múltiplo de dos y la dirección física del byte referenciado es este mismo número más el desplazamiento.

Para concluir, podemos decir que haciendo uso de la paginación simple, la memoria principal se divide en pequeños marcos del mismo tamaño. Cuando se introduce un proceso en memoria, se han de cargar todas sus páginas en los marcos libres, esta técnica resuelve sin lugar a duda muchos problemas generados durante la partición.

35

Page 43: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

CAPITULO IV

“MEMORIA VIRTUAL”

4.1 FUNDAMENTOS

23La memoria virtual se considera como una memoria secundaria, está localizada en un espacio de disco que presenta un comportamiento de memoria.

Su principal función es intercambiar procesos con la memoria principal. A la memoria virtual llegan aquellos procesos que fueron bloqueados por

falta de algún recurso, donde los procesos llegan en estado de suspensión.

Una ventaja es que los programas pueden tener un tamaño mayor al que la memoria física.

4.2 SEGMENTACIÓN PAGINADA

24Como bien sabemos, la segmentación proporciona soporte directo a las regiones del proceso y la paginación permite un mejor aprovechamiento de la memoria y una base para construir un esquema de memoria virtual.

Mezclando ambas técnicas, un segmento está formado por un conjunto de página y, por tanto, no tiene que estar contiguo en memoria. La MMU utiliza una tabla de segmentos, tal que cada entrada de la tabla apunta a una tabla de páginas.

Valoración

23 SILBERSCHATZ A, BAER GALVIN P., GAGNE G., (2005). Fundamentos de Sistemas Operativos, Editorial Mc Graw Hill. 7ma ed. Madrid, España. Capítulo 9 – Página 279.24 CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001). Sistemas Operativos, Una visión aplicada. Editorial Mc Graw Hill. 2da ed. Madrid, España. Página 199.

36

Page 44: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Corresponde con la unión de las dos técnicas mencionadas anteriormente25:

Espacios lógicos independientes. Cada proceso tiene una tabla de segmentos que crea un espacio lógico independiente para el mismo.

Protección. La tabla de segmentos de un proceso restringe que parte de la memoria puede ser accedida por el mismo, permitiendo asegurar que los procesos usan espacios disjuntos.

Compartir memoria. Bajo la supervisión del sistema operativo, que es el único que puede manipular las tablas de segmentos, dos o más procesos pueden tener su segmento asociado a la misma zona de memoria.

Soporte de las regiones del proceso, gracias a la segmentación. Maximizar el rendimiento. La paginación proporciona un buen

aprovechamiento de la memoria y puede servir como base para construir un esquema de memoria virtual.

Mapas de memoria grandes para los procesos. La paginación permite implementar un esquema de memoria virtual.

Tener en cuenta que:

4.3 PAGINACIÓN BAJO DEMANDA

Cargar programas únicamente cuando sean necesarias. Exclusiva de memoria virtual.

25 Mencionamos anteriormente a lo de Segmentación y paginación, ya mencionado en el subtema anterior.

37

En la segmentación paginada se requiere un hardware más complejo, la cual pocos OS lo tienen.Por lo tanto la mayoría de los OS están construidos suponiendo que el procesador proporciona un esquema de paginación.

Page 45: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

Sólo se cargan las páginas cuando se solicitan durante la ejecución del programa. Por lo tanto la página que se accedan nunca van a estar en la memoria física.

Cuando se quiere ejecutar un proceso, se realiza un intercambio para cargarlo en memoria pero no se intercambia el proceso completo sino más bien se utiliza un intercambiador perezoso.

El intercambiador perezoso es el componente que solamente realiza un cambio de página cuando es estrictamente necesario. Para este caso en específico de memoria virtual, se le llamará localizador, puesto que, solamente carga las páginas necesarias y no todo el proceso, que provocaría un gasto de memoria.

Un intercambiador perezoso nunca reincorpora una página a memoria a menos que se necesite. Como ahora consideramos un proceso como una secuencia de páginas, en vez de un gran espacio contiguo de direcciones, el término intercambio es técnicamente incorrecto.

Un intercambiador manipula procesos enteros, mientras que un paginador trata con las páginas individualmente de un proceso.

4.4 SUSTITUCIÓN DE PÁGINA26Cuando se está ejecutando un proceso de usuario y si se produce un fallo de página, el OS determina donde reside la página dentro del disco y entonces se encuentra con que no haya ningún marco libre en la lista de marcos libres, toda la memoria está siendo utilizada. Para esto se utiliza la técnica de sustitución de páginas.

Si no hay ningún marco libre, se localiza uno que no esté siendo utilizado actualmente y se lo libera.

27Algoritmos Básicos:

FIFO (First – Int, First On): Trata los marcos asignados a un proceso como un buffer circular y las páginas se suprimen de memoria según la técnica de espera circular. Todo lo que se necesita es un puntero que circule a través de los marcos del proceso. Esta es, por tanto, una de las políticas de reemplazo más sencillas de implementar. La lógica que hay detrás de esta selección, además de su sencillez, es reemplazar la página que ha estado más tiempo en memoria. Una página introducida en memoria hace mucho tiempo puede haber caído en desuso. Este razonamiento será a menudo incorrecto, porque habrá regiones de programa o de datos que son muy usadas a lo largo de la vida de un programa. Con el algoritmo FIFO estas páginas cargaran y

26 SILBERSCHATZ A, BAER GALVIN P., GAGNE G., (2005). Fundamentos de Sistemas Operativos, Editorial Mc Graw Hill. 7ma ed. Madrid, España. Capítulo 9 – Página 290 Punto 9.4.27 STALLINGS, William. (2003).Organización y arquitectura de computadores. Editorial Prentice Hall. 5ta ed. Madrid, España. Página 306. En este caso hemos usado sólo Optima, FIFO y LRU

38

Page 46: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

expulsaran repetidas veces. Genera el mayor número de fallas de la página.

Óptima: Selecciona para reemplazar la página que tiene que esperar una mayor cantidad tiempo hasta que se produzca la referencia siguiente. Se puede demostrar que esta política genera el menor número de fallos de página. Sin duda, este algoritmo resulta imposible de implementar, puesto que requiere que el sistema operativo tenga un conocimiento exacto de los sucesos futuros. Sin embargo, sirve como un estándar con el que comparar los otros algoritmos.

39

Page 47: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

LRU (Least Recently Used): Reemplaza la página de memoria que no ha sido referenciada desde hace más tiempo. Debido al principio de cercanía esta debería ser la página con menor posibilidad de ser referenciada en un futuro cercano. De hecho, la política LRU afina casi tanto como la política óptima. El problema de este método es su dificultad de implementación. Una solución sería etiquetar cada página con el instante de su última referencia; esto tendría que hacerse para cada referencia a memoria, tanto para instrucciones como datos. Incluso si es hardware respaldara este esquema, la sobrecarga resultaría tremenda. Como alternativa, se podría mantener una pila de referencias a página. Aunque también con un coste elevado.

4.5 ASIGNACIÓN DE MARCO DE PÁGINA

28Nuestras estrategias para la asignación de marcos están restringidas de varias maneras.

No podemos, por ejemplo, asignar un numero de marcos superior al número total de marcos disponibles (Al menos que existan mecanismos de compartición de páginas).

Debemos asignar un número mínimo de marcos (Rendimiento) A medida que el número de marcos asignados a un proceso se reduzca,

se incrementará la tasa de fallos de páginas, haciendo más lenta la ejecución del proceso. Además, recuerde que, cuando se produce un fallo de página antes de completar la ejecución de una instrucción, dicha instrucción debe reiniciarse. En consecuencia, debemos tener suficientes marcos como para albergar todas las diferentes páginas a las que una misma instrucción pudiera hacer referencia.

El número mínimo de marcos está definido por la arquitectura informática.

28 SILBERSCHATZ A, BAER GALVIN P., GAGNE G., (2005). Fundamentos de Sistemas Operativos, Editorial Mc Graw Hill. 7ma ed. Madrid, España. Capítulo 9 – Página 302 Punto 9.5.1.

40

Page 48: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

El número máximo está definido por la cantidad de memoria física disponible.

Asignación Fija y Asignación Dinámica29

Asignación Fija:

Conlleva a una estrategia de reemplazo Local. El número de marcos asignados no varía, que un proceso sólo usa

para reemplazo los marcos que tienen asignados. El comportamiento del proceso es relativamente predecible. Desventaja: No se adapta a las diferentes necesidades de memoria

de un proceso a lo largo de su ejecución.

Asignación Dinámica:

El número asignados a un proceso varía según las necesidades que tenga el proceso en diferentes instantes de tiempo. Se pueden usar tanto estrategias tanto locales como globales:

Reemplazo local: El proceso va aumentando o disminuyendo su conjunto residente dependiendo de sus necesidades en las distintas fases de ejecución del programa.

Reemplazo global: Los procesos compiten en el uso de la memoria quitándole entre si las páginas.

4.6 SOBREPAGINACIÓN (Hiperpaginación o thrashing) 30

Se le llama a la situación la cual se da si el número de páginas asignados a un proceso no es suficiente para almacenar las páginas referenciadas activamente por el mismo, la cual se producirá un número elevado de fallos de página,

Cuando se produce la hiperpaginación, el proceso pasa más tiempo en la cola de servicio del dispositivo de paginación que ejecutando. Dependiendo del tipo de asignación utilizado, este problema puede afectar a procesos individuales o a todo el sistema.

Por lo tanto la sobrepaginación provoca grandes problemas de rendimiento.

29 CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001). Sistemas Operativos, Una visión aplicada. Editorial Mc Graw Hill. 2da ed. Madrid, España. Página 20430 CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001). Sistemas Operativos, Una visión aplicada.

41

Page 49: PLANIFICACION DE RECURSOS (PROCESOS Y MEMORIA) - MONOGRAFIA

BIBLIOGRAFÍA

- CARRETERO, J., DE MIGUEL, P., GARCÍA, F., PÉREZ, F., (2001). Sistemas Operativos, Una visión aplicada. Editorial Mc Graw Hill. 2da ed. Madrid, España.

- CARRETERO, J., GARCÍA, F., PÉREZ, (2003). Problemas de Sistemas Operativos. De la base al diseño. Editorial Mc Graw Hill. 3era ed. Madrid (España).

- STALLINGS, William. (2003).Organización y arquitectura de computadores. Editorial Prentice Hall. 5ta ed. Madrid, España.

- STALLINGS, William. (2006).Organización y arquitectura de computadores. Editorial Prentice Hall. 7ma ed. Madrid, España.

- SILBERSCHATZ A, BAER GALVIN P., GAGNE G., (2005). Fundamentos de Sistemas Operativos, Editorial Mc Graw Hill. 7ma ed. Madrid, España.

- ANDREW S. TANENBAUM, ALBERT S. WOODHULL. SISTEMAS OPERATIVOS: Diseño e implementación. Prentice Hall Hispanoamericana. 2da ed. México.

42