Manual Unidad 2 Sistemas Operativos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 33

Sistemas Operativos

Pedro Yuri Marquez Solis


Manual – Unidad 2
Índice
Introducción ................................................................................................................................ 3
Organización de la Asignatura ................................................................................................. 4
Unidades didácticas .......................................................................................................................... 4
Tiempo mínimo de estudio ............................................................................................................... 4
UNIDAD 2: Gestión de memoria y planificación monoprocesador ..................................... 5
Diagrama de organización .............................................................................................................. 5
Tema N° 1 Requisitos de la gestión de memoria .................................................................... 6
Tema N° 2 Carga de Programas en la memoria principal .................................................... 8
2.1 Espacio de direccionamiento .............................................................................................. 8
2.2 Estrategias de colocación ................................................................................................... 12
Tema N° 3 Paginación – Segmentación ................................................................................ 14
3.1 Paginación ............................................................................................................................... 14
3.2 Segmentación ......................................................................................................................... 15
Tema N° 4 Memoria Virtual ...................................................................................................... 17
4.1 Premisa para implementación de la memoria virtual ................................................. 17
Tema N° 5 Planificación monoprocesador ............................................................................ 20
5.1 Tipos de planificación ........................................................................................................... 20
5.2 Algoritmos de planificación ................................................................................................ 22
De la teoría a la práctica ............................................................................................................... 26
Glosario de la Unidad 2............................................................................................................ 30
Bibliografía de la Unidad 2 ...................................................................................................... 32

2 Manual
Introducción
El sistema operativo de las computadoras, opera normalmente en una capa
transparente al usuario, al extremo que muchos desconocen que es el sistema operativo
quien está facilitando cada una de las operaciones que el usuario ordena al
computador, finalmente le permite almacenar, procesar y recuperar información;
mostrar todo tipo de documentos; hace posible que los programas de usuario
funcionen; y realizar muchas otras actividades valiosas para justificar su existencia.

La importancia de los sistemas operativos nace históricamente desde los 50's, cuando
se hizo evidente que el operar una computadora por medio de tableros se podía
mejorar notoriamente, pues el operador realizaba siempre una secuencia de pasos
repetitivos, lo cual es una de las características contempladas en la definición de lo que
es un programa. Es decir, se comenzó a ver que las tareas mismas del operador podían
plasmarse en un programa, el cual a través del tiempo y por su enorme complejidad se
le llamó "Sistema Operario", de este nombre se derivó el de Sistema Operativo como se
le conoce actualmente.

Posteriormente con los avances en hardware los sistemas operativos pudieron optar por
nuevas implementaciones tanto gráficas, como en su forma de proceso, de tal forma
que, en la actualidad trabajar sin tener un sistema operativo instalado haría de nuestra
labor diaria una difícil rutina.

Por ello, es de suma importancia que el estudiante de Ingeniería de Sistemas e


Informática posea una sólida base en la operación interna del sistema operativo, así
como el manejo y administración de Sistemas Operativos. Además, el conocimiento
sólido de los sistemas operativos nos permite aprender de las soluciones utilizadas en
estos, que van desde la forma de atención a los usuarios (procesos), hasta la seguridad
de nuestros sistemas informáticos.

En este manual buscamos explicarte el funcionamiento de un computador supervisado


mediante el Sistema Operativo, como gestiona el funcionamiento de los programas,
que políticas de asignación de memoria podría emplear, que operaciones realiza para
almacenar y recuperar los archivos, cómo logra comunicarse con sus dispositivos
periféricos, siempre tratando de tomar en cuenta su aplicación inmediata en el ámbito
informático.

A la par con este material, encontrarás diversas actividades que te ayudarán en tu


formación, ponte el reto de calificarte propia y personalmente. Finalmente, las
actividades propuestas intentan generar nuevos aprendizajes, a partir de la práctica;
anímate a completarlas.
El autor.

Universidad Continental | Manual 3


Organización de la Asignatura
Resultado de aprendizaje de la asignatura
Al finalizar la asignatura, el estudiante será capaz de diseñar e implementar
configuraciones de trabajo del sistema operativo considerando aspectos de
eficiencia, efectividad y licenciamiento.

Unidades didácticas
UNIDAD 1 UNIDAD 2 UNIDAD 3 UNIDAD 4
Gestión de Gestión de Gestión de Seguridad y
procesos memoria y entrada/salida y licenciamiento
planificación memoria de sistemas
monoprocesador secundaria operativos

Resultado de Resultado de Resultado de Resultado de


aprendizaje aprendizaje aprendizaje aprendizaje
Al finalizar la Al finalizar la Al finalizar la Al finalizar la
unidad el unidad el unidad el unidad el
estudiante será estudiante será estudiante será estudiante es
capaz de analizar capaz de capaz de capaz de
soluciones a argumentar el uso discriminar entre implementar
problemas típicos de paginación, sistemas de medidas de
de gestión de segmentación, archivos y tipo de seguridad para
procesos en memoria virtual, y memoria proteger al sistema
Sistema Operativos algoritmos de secundaria para operativo de
de escritorio y planificación de un sistema de diversas amenazas.
móviles monoprocesador cómputo.
en la optimización
del Sistema.

Tiempo mínimo de estudio

UNIDAD 1 UNIDAD 2 UNIDAD 3 UNIDAD 4

16 horas 16 horas 16 horas 16 horas

4 Manual
UNIDAD 2: Gestión de memoria y
planificación monoprocesador
Diagrama de organización

Gestión de memoria y
planificación
monoprocesador

Requisitos de la gestión Paginación –


de memoria Segmentación

Carga de Programas en Memoria virtual


la memoria principal

Planificación
monoprocesador

Universidad Continental | Manual 5


Tema N° 1 Requisitos de la gestión de memoria
La gestión de memoria es fundamental para que un computador pueda procesar, ya
que es un recurso limitado que debe emplearse eficientemente, veremos a
continuación las técnicas que se emplean para lograr este cometido.

1.1 Requisitos de la gestión de memoria:


Los computadores basan su operación en la arquitetura de Jhon Von
Neumman, es decir que el único espacio de almacenamiento que el procesador
puede utilizar directamente, es la memoria física o memoria Ram. Todas las
arquitecturas de procesador tienen instrucciones para interactuar con la memoria,
pero ninguna lo tiene para hacerlo con medios persistentes de almacenamiento, como
las unidades de disco (Wolf, 2015).

Considere que el almacenamiento primario siempre se referirá a la memoria FISICA,


mientras que el almacenamiento secundario se refiere a los discos u otros medios de
almacenamiento persistente (Wolf, 2015).

Los sistemas multiprogramados requieren de gestión de la memoria efectiva, ya que sí


sólo unos pocos procesos se encuentran en memoria, entonces durante una gran parte
del tiempo todos los procesos esperarían por operaciones de E/S y el procesador estaría
ocioso. Por tanto, es necesario asignar la memoria para asegurar una cantidad de
procesos listos que consuman el tiempo de procesador disponible. (William, 2005)

Basicamente las operaciones que debe realizar el Sistema Operativo son:

REUBICAR:
a los procesos, a otras zonas de memoria, debido a diversos motivos como son el ciclo
de vida de los procesos, o el proceso de intercambio debido desde memoria virtual.

PROTECCIÓN DE MEMORIA:
El Sistema Operativo debe en todo momento evitar que los procesos no escriban sobre
bloques que no se les ha asignado sea intencional o accidental, otros procesos no
deben ser capaces de referenciar sin permiso posiciones de memoria de un proceso,
tanto en lectura como escritura (William, 2005).

COMPARTICIÓN:
Mecanismo que permita la flexibilidad de permitir a varios procesos acceder a varios

6 Manual
procesos a los mismos bloques de memoria, por ejemplo, si varios procesos están
ejecutando el mismo código, es ventajoso permitir que cada proceso pueda acceder
a la misma copia de código del programa (William, 2005).

ORGANIZACIÓN FÍSICA:
La memoria se organiza como un espacio lineal de direcciones, análoga a una hoja de
cálculo, compuesto por una secuencia de bytes o palabras.
Pero los programas no están estructurados de una forma similar, por lo tanto, si el Sistema
Operativo y el hardware del computador pueden tratar a los programas de usuario y los
datos en la forma de módulos de algún tipo, esto daría varias ventajas, como es: que
los módulos se puedan escribir y compilar independiente, cada uno con diferentes
grados de protección (solo lectura, sólo ejecución), y que estos módulos se puedan
compartir entre diferentes procesos (William, 2005).

ORGANIZACIÓN LÓGICA:
El Sistema Operativo debe permitir el flujo de datos desde memoria Principal a memoria
secundaria y viceversa permitiendo la aplicación del concepto de Jerarquía de
memoria.

Universidad Continental | Manual 7


Tema N° 2 Carga de Programas en la memoria principal
Los programas no podrán ser llevados a ejecutar al procesador sino están cargados en
la memoria RAM, por ello un punto clave es dividir la memoria RAM.
Se da por sentada la necesidad de tener los programas en memoria, necesidad que
genera cuestiones a resolver, por ejemplo:

¿Cómo repartir la memoria? ¿Cómo ubicar los programas en memoria, de forma


continua o discontinua?, los que a su vez plantean resolver situaciones como:

• Decidir cuales procesos serán cargados a memoria cuando exista espacio


de memoria disponible.
• Asignar y quitar espacio de memoria según sea necesario.
• Conocer que partes de la memoria están siendo utilizadas y por cual
proceso.
• Considerar la Jerarquía de Memoria del computador, controlar el flujo de
datos desde hard disk hasta registros.

2.1 Espacio de direccionamiento

La memoria está estructurada como un arreglo direccionable de bytes. Esto es, al


solicitar el contenido de una dirección específica de memoria, el hardware entregará
un byte (Wolf, 2015)., 2 Bytes o 4 Bytes de acuerdo con la arquitectura del sistema.

Ejemplo de espacio de direcciones:


Un procesador que soporta un espacio de direccionamiento de 16 bits puede referirse

directamente a hasta 216 bytes, esto es, hasta 65 536 bytes (64 KB ) (Wolf, 2015).

El procesador empleado en las primeras PC, el Intel 8086, manejaba un


direccionamiento de 20 bits (220 = 1 024 KB ), pero al ser una arquitectura real de 16 bits
requería del empleo de segmentación para alcanzar toda su memoria (Wolf, 2015).

Hoy en día, los procesadores dominantes son de 32 o 64 bits. En el caso de los


procesadores de 32 bits, sus registros pueden referenciar hasta 4 294 967 296 bytes (232 = 4
GB) de RAM (Wolf, 2015).

Una arquitectura de 32 bits sin extensiones adicionales no puede emplear una memoria
de mayor capacidad. No obstante, a través de un mecanismo llamado PAE (extensión

8 Manual
de direcciónes físicas, Physical Address Extension) permite extender esto a rangos de

hasta 252 bytes a cambio de un nivel más de indirección (Wolf, 2015).

2.1.1 Formas de separar el espacio de memoria:


La separación del espacio de memoria para procesos concurrentes se puede efectuar
de dos formas:

Asignación continua:
Se caracteriza por que cada proceso debe ocupar necesariamente bloques continuos
de localidades de memoria, sus Ventajas son:
• Colocación muy Rápida
• Sencillo de programar.

Mientras que posee por desventajas:


• El hecho que no emplea óptimamente la Memoria ya que va generándose
fragmentación Externa.

En la Figura 15, se aprecia que bajo la asignación continua el proceso 4 no pasaría a


estado de listo, porque no hay 4 bloques contiguos de memoria que es lo que necesita
para cargar completamente en memoria.

Figura 15. Asignación de Memoria continua.


Fuente: Elaboración propia

Asignación no continua:
En esta forma de asignación, el Proceso es divido en bloques o segmentos que pueden
ser asignados a localidades no necesariamente continuas de memoria, posee como
ventaja:
• El uso más eficiente de la memoria.

Universidad Continental | Manual 9


En contrapartida la desventaja:
• Que su programación es más compleja,
Ya que el control de bloques para la protección se hace complejo, al tener que
controlar varios segmentos de memoria.

Figura 16. Asignación de memoria no continua.


Fuente: Elaboración propia.

2.1.2 El problema de la relocalización


Los programas poseen un ciclo de vida, por lo cual van dejando espacios libres en la
memoria, y en muchos casos se requiere moverlos para lograr generar bloques más
grandes, por ello como los programas que necesitan cargarse a memoria real ya están
compilados y ligados, e internamente contienen una serie de referencias a direcciones
de instrucciones, se tiene instrucciones que ya no son válidas en las nuevas direcciones
(Wolf, 2015), de memoria a las que se moverá el programa.

Cuando se compiló el programa se definieron o resolvieron las direcciones de memoria


de acuerdo con la sección de ese momento, pero si el programa se carga en otro
momento en una sección diferente, las direcciones reales ya no coinciden.
En este caso, el manejador de memoria puede solucionar el problema de dos maneras:
de manera `estática' o de manera `dinámica' (Fito RB, 2013).

La solución estática:
Consiste en que todas las direcciones del programa se vuelvan a recalcular al momento
en que el programa se carga a memoria, esto es, prácticamente se vuelve a recompilar
el programa (Fito RB, 2013).

La solución dinámica:
Consiste en tener un registro que guarde la dirección base de la sección que va a
contener al programa. Cada vez que el programa haga una referencia a una dirección
de memoria, se le suma el registro base para encontrar la dirección real. Por ejemplo,

10 Manual
suponga que el programa es cargado en una sección que comienza en la dirección
100. El programa hará referencias a las direcciones 50,52,54. Pero el contenido de esas
direcciones no es el deseado, sino las direcciones 150, 152 y 154, ya que ahí comienza
el programa. La suma de 100 + 50, ...,etcétera (Fito RB, 2013).

2.1.3 Grado de multiprogramación


Es el Tiempo promedio que el CPU está ocupado. Si el sistema tuviese un solo proceso
siempre, y éste gastara 60% en entrada/salida, el grado de multiprogramación sería:
1 - 60% = 40% = 0.4. Con 1 proceso el grado de MP es 0.4 (Fito RB, 2013).

Con dos procesos, para que el CPU esté ocioso se necesita que ambos procesos
necesiten estar haciendo entrada/salida, es decir, suponiendo que son independientes,
la probabilidad de que ambos estén en entrada/salida es el producto de sus
probabilidades, es decir, 0.6x0.6 = 0.36. Ahora, el grado de multiprogramación es 1 -
(probabilidad de que ambos procesos estén haciendo entrada/salida) = 1 - 0.36 = 0.64
(Fito RB, 2013).

2.1.4 Particionamiento fijo


Mediante este esquema de particionamiento la memoria se divide en bloques de
tamaño estático en tiempo de generación del sistema, el Tamaño de los bloques es
diferente y durante la ejecución del sistema los tamaños dados a los bloques de
memoria son inamovibles. Considera que se asigna un Único proceso por partición,
siempre en cuando se cumpla la condición:

tamaño del proceso <= tamaño de la partición

Este esquema es muy sencillo de implementar, pero usa ineficientemente la memoria,


debido a la Fragmentación Interna, ya que dentro de cada partición queda una zona
de memoria no aprovechable, cuando el proceso asignado es más pequeño que la
partición, este espacio no se puede asignar a ningún otro proceso, además que el
grado de multiprogramación está muy limitado al número de particiones

Universidad Continental | Manual 11


Figura 17. Particiones fijas de memoria con colas de entrada independientes para
cada partición. Tomado de Stallings, 2005. p. 315.
Figura 18.
2.1.5 Particionamiento dinámico
Los bloques se crean de forma dinámica, de tal manera que cada proceso se carga
hacia un bloque que tiene un tamaño igual al del proceso. Tiene entre sus ventajas que
no se genera fragmentación interna, además de emplear más eficientemente la
memoria, en contrapartida como desventaja se emplea ineficientemente el procesador
ya que se requiere compactar la memoria para evitar la fragmentación interna.

Figura 19. Particiones variables: la asignación de memoria cambia cuando el proceso


llega o sale de la memoria. Tomado de Tanembaum, 2009: p.183.

2.2 Estrategias de colocación

Las estrategias de colocación son usadas para determinar dónde se va a ubicar el


proceso dentro de la memoria principal, en general se tienen (Gómez, s. f.)
• First-fit.
• Best-fit.
• Worst-fit.

12 Manual
2.2.1 First Fit o Primer Ajuste:
Se revisa la lista de bloques libres hasta encontrar el primer espacio lo suficiente grande.
El espacio del bloque asignado se divide en 02 partes, una para el proceso, y otra para
la memoria no utilizada, salvo un ajuste perfecto.
Posee como ventaja que es rápido debido a que busca lo menos posible, ya que coloca
al proceso en el primer bloque libre suficientemente grande que encuentre, dentro de
sus desventajas está el hecho que genera fragmentación externa, es decir se van
generando bloques de memoria bastante pequeños que luego no se pueden emplear
por procesos grandes.

2.2.2 Best Fit o Mejor Ajuste:


Mediante esta estrategia se busca en toda la lista de bloques disponibles, se elige el
mínimo bloque suficientemente grande como para ubicar el proceso. Para lograr esto
búsqueda rápidamente se Ordena en forma ascendente el listado de los bloques libres,
es este proceso que genera la desventaja de un tiempo adicional para ordenar
ascendentemente la lista, y como ventaja APARENTE el hecho de desperdiciar menos
la memoria.

2.2.3 Worst Fit o Peor Ajuste:


Esta estrategia busca en todo el listado de bloques disponibles aquel en el que se
genera un hueco más grande, esto con la finalidad de crear luego dentro de este hueco
un nuevo bloque libre, tiene la desventaja de consumir ciclos de reloj para ordenar
ascendentemente el listado de bloques libres, y como ventaja la posibilidad de poder
ejecutar procesos de tamaño grande.

Universidad Continental | Manual 13


Tema N° 3 Paginación – Segmentación

En los sistemas multiprogramados, cada proceso tiene la necesidad de compartir con


los demás el espacio de direcciones, provocando que se necesite dividir de manera
apropiada la memoria, no necesariamente en partes iguales, de tal forma que se
puedan ejecutar la mayor cantidad de procesos. Así, se optimiza el uso del procesador
durante una mayor cantidad de tiempo. Este proceso de partición constituye la base
fundamental de dos tipos de gestión de memoria denominados paginación y
segmentación (Universidad Militar Nueva Granada, 2020).

3.1 Paginación

La paginación pura en el manejo de memoria consiste en que el sistema operativo


divide dinámicamente los programas en unidades de tamaño fijo (generalmente
múltiplos de 1 kilobyte) los cuales va a manipular de RAM a disco y viceversa (Wolf, 2015).

De igual forma, en este modelo, los procesos son divididos en fragmentos del mismo
tamaño de los marcos, los cuales se les denomina páginas.

De esta forma, un proceso tendrá varias páginas asignadas que podrán ocupar marcos
de página en la memoria, no necesariamente de forma contigua.

Las direcciones lógicas para el modelo de paginación se componen de un número de


página y un desplazamiento.

Este método se convierte en la base de la división de la memoria en los sistemas


operativos actuales (Universidad Militar de Nueva Granada, s. f.).

Considere dos conceptos importantes para implementar la paginación:


• Se requiere utilizar estructuras de control que permitan conocer que paginas
están asignadas a cada proceso y en que marco, estas se denominan tablas de
página.
• Debido a que el tamaño de página es menor que al utilizar particiones fijas, la
fragmentación interna también disminuye, logrando así optimizar el uso de
espacio de memoria.

Una dirección de página está compuesta en realidad por dos porciones los n bits menos
significativos indican el desplazamiento, mientras que los m bits más significativos indican

14 Manual
el número de página. Por ejemplo: en el esquema de paginación siguiente se emplean
5 bits para indicar el número de página y 16 bits para indicar el desplazamiento.

Número de pagina Offset o desplazamiento


11000 1111000000000001

Del esquema anterior obtendríamos que este puede direccionar un total de 32 páginas
(2 5, donde 5 es el número de bits empelados), y cada página tiene un tamaño de (2
16) celdas es decir 64K celdas.

3.2 Segmentación

La memoria se divide de acuerdo con el tamaño de cada proceso en pequeños


fragmentos denominados segmentos, el tamaño tiene un valor máximo asignado. En
memoria, los segmentos pueden ocupar posiciones no necesariamente contiguas.
Tiene como ventaja (Universidad Militar Nueva Granada, 2020):
• Se elimina la fragmentación interna manteniéndose la fragmentación externa
en cantidades inferiores debido a la reducción del tamaño del segmento.

También se hace necesaria la utilización de una estructura de datos en la cual se


establece la ubicación en memoria de cada uno de los segmentos que componen el
proceso denominada tabla de segmentos (Universidad Militar Nueva Granada, 2020).

Las direcciones lógicas en la segmentación también están compuestas por un número


de segmento y un desplazamiento (Universidad Militar Nueva Granada, 2020).

La segmentación asigna particiones de memoria a cada segmento de un programa y


busca como objetivos el hacer fácil el compartir segmentos (por ejemplo, librerías
compartidas) y el intercambio entre memoria y los medios de almacenamiento
secundario (Wolf, 2015).

La Figura 20, muestra la forma como se divide la memoria utilizando el método de


segmentación. Cada proceso utiliza el espacio necesario para llegar a memoria,
eliminando la fragmentación interna, pero pueden quedar huecos intermedios de
pequeño tamaño que producen lo que se conoce como fragmentación externa
(Universidad Militar Nueva Granada, 2020).

Universidad Continental | Manual 15


Figura 20. Segmentación de memoria. Tomado de Universidad Militar Nueva Granada,
2020.

16 Manual
Tema N° 4 Memoria Virtual
Hay otro problema que se tiene que resolver: la administración del crecimiento del
espacio de memoria para la ejecución del software (bloatware) (Tanenbaum, 2009).

Aunque el tamaño de las memorias se ha incrementado, el del software aumenta


mucho más. Microsoft recomienda tener por lo menos 2 GB para que un sistema
Windows de un solo usuario ejecute aplicaciones simples y 4 GB si el usuario va a realizar
algún trabajo serio. La tendencia hacia la multimedia impone aún mayores exigencias
sobre la memoria (Tanenbaum, 2009).

Como consecuencia de estos desarrollos, existe la necesidad de ejecutar programas


que son demasiado grandes como para caber en la memoria y sin duda existe también
la necesidad de tener sistemas que puedan soportar varios programas ejecutándose al
mismo tiempo, cada uno de los cuales cabe en memoria, pero que en forma colectiva
exceden el tamaño de esta (Tanenbaum, 2009).

El problema de que los programas sean más grandes que la memoria ha estado
presente desde los inicios de la computación, en áreas limitadas como la ciencia y la
ingeniería (para simular la creación del universo o, incluso, para simular una nueva
aeronave, se requiere mucha memoria) (Tanenbaum, 2009).

El método ideado por Fotheringham en 1961 se conoce actualmente como memoria


virtual. La idea básica detrás de la memoria virtual es que cada programa tiene su
propio espacio de direcciones, el cual se divide en trozos llamados páginas. Cada
página es un rango contiguo de direcciones. Estas páginas se asocian a la memoria
física, pero no todas tienen que estar en la memoria física para poder ejecutar el
programa. Cuando el programa hace referencia a una parte de su espacio de
direcciones que está en la memoria física, el hardware realiza la asociación necesaria
al instante (Tanenbaum, 2009).

4.1 Premisa para implementación de la memoria virtual

No se requiere que un proceso este almacenado en la memoria principal en forma


completa, brindando su aplicación las siguientes Ventajas:
• No hay límite para el tamaño de los procesos
• Aumenta el número de procesos en memoria
• Disminución de las Operaciones E/S.

Universidad Continental | Manual 17


En (Universidad Militar Nueva Granada, 2020), con respecto a este método indican: En
este método, los procesos tendrán sus páginas o segmentos divididos unos en la
memoria principal y otros en la memoria virtual, de tal forma que puedan compartir la
memoria y por supuesto los demás recursos del sistema.

Para optimizar la búsqueda en memoria de las páginas de utilización más frecuente,


cada proceso recurre a un apoyo adicional en hardware denominado Buffer de
Traducción Adelantada o TLB, el cual contiene una lista con dichas páginas (Universidad
Militar Nueva Granada, 2020).

El modelo de segmentación con memoria virtual cumple con las mismas características
de paginación beneficiando en este caso la programación orientada a objetos, por
ejemplo, una clase que contiene múltiples métodos solo se compilan en el momento de
ser necesitados por el programa, adicionalmente beneficia el concepto de protección
(Universidad Militar Nueva Granada, 2020).

La memoria virtual se implementa utilizando cualquiera de los dos esquemas que


acabamos de ver es decir páginas o segmentos.

Figura 21. Formas de implementar memoria virtual.


Fuente: Elaboración propia.

La forma de operación consiste en que se ocupa un área de un dispositivo de


almacenamiento de escritura y lectura como por ejemplo un HardDisk, esta área se
conoce en los sistemas Windows como un archivo pagefile.sys, mientras que en sistemas
Linux como una partición de disco llamada Swap.

Típicamente el área de disco tiene un tamaño que es el doble de la memoria RAM


instalada, donde se definen un número mayor de páginas que en la RAM, estas páginas
si contienen todos los bloques que se han activado, en memoria RAM se colocan
únicamente los marcos=bloques de programas que se encuentran en estado de Listo, y
se van intercambiando con las páginas según se requieran.

18 Manual
Figura 22. Relación entre memoria virtual y memoria real.
Fuente: Elaboración propia.

Como se aprecia en la figura 22, se tienen 2 procesos cargados completamente en


memoria virtual, pero en la memoria real únicamente se han colocado los marcos que
se requieren utilizar por el procesador, inclusive se pueden apreciar que los marcos 3 y 5
se encuentran libres y disponibles para cargar otros procesos, incrementando con ello
el grado de multiprogramación.

Figura 23. Ubicación en memoria virtual de procesos


Fuente: Elaboración propia.

4.1.1 Fallo de página


Un fallo de página se sucede cuando un proceso trata de usar una página que no está
en memoria real, para solucionar este problema se implementan los siguientes pasos:
1. Referencia a una página, verifica su bit de validez (esta invalida = i)
2. Ocurre una trampa
3. El Sistema Operativo busca un marco libre
4. Lleva la página del disco a la memoria
5. Actualiza la tabla de páginas
6. Reinicia la operación

Universidad Continental | Manual 19


Tema N° 5 Planificación monoprocesador
En los sistemas informáticos se tienen múltiples procesos de modo concurrente en la
memoria, estos procesos pueden estar usando el procesador o estar esperando por
algún suceso, como una entrada/salida, el procesador se mantiene ocupado mientras
los otros procesos esperan.

La planificación de procesos se refiere a cómo determina el sistema operativo al orden


en que irá cediendo el uso del procesador a los procesos que lo vayan solicitando, y a
las políticas que empleará para que el uso que den a dicho tiempo no sea excesivo
respecto al uso esperado del sistema (Wolf, 2015).

La planificación de procesos tiene los siguientes objetivos:


• Asignar procesos para ser ejecutados por el procesador(es).
• Tiempo de respuesta el menor posible.
• Rendimiento el mayor posible.
• Eficiencia del procesador.

Al planificar se logra:
• Tener un proceso en ejecución en todo momento.
• Ocupar el tiempo en el cual la CPU se encuentra ociosa.
• Cuando un proceso espera por algún evento, el SO le “quitará” y se la entregará
a otro proceso.

Las directrices que rigen la planificación son:


• Distribución equitativa del tiempo de CPU sin discriminar a los procesos.
• El Tiempo de respuesta debe ser el mínimo posible.
• Maximizar la Productividad: nº máximo de trabajos por unidad de tiempo.
• Maximizar la Eficiencia del procesador: lograr que el CPU este ocupado al 100 %.

5.1 Tipos de planificación

Hay tres tipos principales de planificación:

A largo plazo Decide qué procesos serán los siguientes en ser iniciados. Este tipo de
planificación era el más frecuente en los sistemas de lotes (principalmente aquellos con
spool) y multiprogramados en lotes; las decisiones eran tomadas considerando los
requisitos pre-declarados de los procesos y los que el sistema tenía libres al terminar

20 Manual
algún otro proceso. La planificación a largo plazo puede llevarse a cabo con
periodicidad de una vez cada varios segundos, minutos e inclusive horas (Gómez, s. f.).

En los sistemas de uso interactivo, casi la totalidad de los que se usan hoy en día, este
tipo de planificación no se efectúa, dado que es típicamente el usuario quien indica
expresamente qué procesos iniciar (Gómez, s. f.).

A mediano plazo: Decide cuáles procesos es conveniente bloquear en determinado


momento, sea por escasez/saturación de algún recurso (como la memoria primaria) o
porque están realizando alguna solicitud que no puede satisfacerse
momentáneamente; se encarga de tomar decisiones respecto a los procesos conforme
entran y salen del estado de bloqueado (esto es, típicamente, están a la espera de
algún evento externo o de la finalización de transferencia de datos con algún
dispositivo) (Gómez, s. f.).

En algunos textos, al planificador a mediano plazo se le llama agendador (scheduler).

A corto plazo: Decide cómo compartir momento a momento al equipo entre to- dos los
procesos que requieren de sus recursos, especialmente el procesador. La planificación
a corto plazo se lleva a cabo decenas de veces por segundo (razón por la cual debe
ser código muy simple, eficiente y rápido); es el encargado de planificar los procesos
que están listos para ejecución (Gómez, s. f.).

El planificador a corto plazo es también frecuentemente denominado despachador


(dispatcher).

Figura 24. Tipos de planificación y transiciones de estados de Procesos. Tomado de


Stallings, 2005, p. 403.

Universidad Continental | Manual 21


Podrían ubicarse estos tres planificadores en las siguientes transiciones entre estados
(Gómez, s. f.):

1. El planificador a largo plazo se encarga de admitir un nuevo proceso: la transición


de nuevo a listo.
2. El planificador a mediano plazo maneja la activación y bloqueo de un pro- ceso
relacionado con eventos, esto es, las transiciones entre en ejecución y bloqueado,
y entre bloqueado y listo.
3. El planificador a corto plazo decide entre los procesos que están listos para
ejecutarse y determina a cuál de ellos activar, y detiene a aquellos que exceden su
tiempo de procesador —implementa las transiciones entre los estados listo y en
ejecución.
En esta sección se trata particularmente el planificador a corto plazo, haciendo
referencia como mucho a algunos efectos del planificador a mediano plazo
(Gómez, s. f.).

Figura 25. Niveles de planificación. Tomado de Stallings, 2005. p. 404.

5.2 Algoritmos de planificación

5.2.1 Primero llegado, primero servido (FCFS)


El esquema más simple de planificación es el primero llegado, primero servido (first

22 Manual
come, first serve, FCFS). Este es un mecanismo cooperativo, con la mínima lógica posible:
cada proceso se ejecuta en el orden en que fue llegando, y hasta que suelta el control.
El despachador es muy simple, básicamente una cola FIFO.

Para comparar los distintos algoritmos de planificación que serán presentados, se dará
el resultado de cada uno de ellos sobre el siguiente juego de procesos (Finkel 1988, p.
35):

Proceso Tiempo de t Inicio Fin T E P


llegada

A 0 3 0 3 3 0 1
B 1 5 3 8 7 2 1.4
C 3 2 8 10 7 5 3.5
D 9 5 10 15 6 1 1.2
E 12 5 15 20 8 3 1.6
Promedio 4 6.2 2.2 1.74
Figura 26. Ejemplo de secuencia de procesos, Tomado de Wolf, 2015, p. 139.

Cada proceso se une a la cola de listos. Cuando el proceso actualmente en ejecución


deja de ejecutar, se selecciona el proceso que ha estado más tiempo en la cola de
listos. Un proceso corto tendrá que esperar mucho tiempo antes de poder ejecutar.
Favorece procesos limitados por el procesador .

Los procesos limitados por la E/S deben esperar hasta que el proceso limitado por el
procesador haya terminado.

Figura 27. Primero llegado, primero servido (FCFS). Tomado de Wolf, 2015, p. 140.

Puede observarse que FCFS tiene características claramente inadecuadas para trabajo
interactivo, sin embargo, al no requerir de hardware de apoyo (como un temporizador)
sigue siendo ampliamente empleado (Wolf, 2015).

Universidad Continental | Manual 23


5.2.2 Ronda (Round Robin) o Turno Rotatorio
El esquema ronda busca dar una relación de respuesta buena, tanto para procesos
largos como para los cortos. La principal diferencia entre la ronda y FCFS es que en este
caso sí emplea multitarea apropiativa: cada proceso que es- té en la lista de procesos
listos puede ejecutarse por un sólo quantum (q). Si un proceso no ha terminado de
ejecutar al final de su quantum, será interrumpido y puesto al final de la lista de procesos
listos, para que espere a su turno nuevamente. Los procesos que sean despertados por
los planificadores a mediano o largo plazos se agregarán también al final de esta lista
(Wolf, 2015).
 Utiliza la expulsión basándose en el reloj.
 Se determina una cantidad de tiempo, lo que permite que cada proceso utilice
el procesador durante ese intervalo.
 Utiliza la expulsión basándose en el reloj.
 Se determina una cantidad de tiempo, lo que permite que cada proceso utilice
el procesador durante ese intervalo(Wolf, 2015).

Con la misma tabla de procesos presentada en el caso anterior (y, por ahora, ignorando
la sobrecarga administrativa provocada por los cambios de contexto) se obtienen los
siguientes resultados (Wolf, 2015):

Proceso Tiempo de llegada t Inicio Fin T E P


A 0 3 0 6 6 3 2.0
B 1 5 1 11 10 5 2.0
C 3 2 4 8 5 3 2.5
D 9 5 9 18 9 4 1.8
E 12 5 12 20 8 3 1.6
P r omedio 7.6 3.6 1.98

La ronda puede ser ajustada modificando la duración de q. Conforme se incrementa


q, la ronda tiende a convertirse en FCFS —si cada quantum es arbitrariamente grande,
todo proceso terminará su ejecución dentro de su quantum; por otro lado, conforme
decrece q, se tiene una mayor frecuencia de cambios de contexto; esto llevaría a una
mayor ilusión de tener un procesador dedicado por parte de cada uno de los procesos,
dado que cada proceso sería incapaz de notar las ráfagas de atención que éste le da
(avance rápido durante un periodo corto seguido de uno sin avance). Claro está, el
procesador simulado sería cada vez más lento, dada la fuerte penalización que iría
agregando la sobrecarga administrativa (Sistema Operacional, 2015).

24 Manual
Si se repite el análisis anterior bajo este mismo mecanismo, pero con un quantum de
cuatro ticks, el resultado es:

Figura 28. Round Robin. Tomado de Wolf, 2015, p.141.

5.2.3 El proceso más corto a continuación (SPN, shortest process next)


Cuando no se tiene la posibilidad de implementar multitarea apropiativa, pero se
requiere de un algoritmo más justo, contando con información por anticipado acerca
del tiempo que requieren los procesos que forman la lista, puede elegirse el más corto
de los presentes (Wolf, 2015).

Ahora bien, es muy difícil contar con esta información antes de ejecutar el proceso. Es
más frecuente buscar caracterizar las necesidades del proceso: ver si durante su historia
de ejecución ha sido un proceso tendiente por manejar ráfagas limitadas por entrada-
salida o limitadas por procesador, y cuál es su tendencia actual (Wolf, 2015).

• Política no expulsiva.
• Se selecciona el proceso con el tiempo de procesamiento esperado más corto.
• El proceso más corto se situará a la cabeza de la cola, delante de los procesos
más largos.
• Utiliza la expulsión basándose en el reloj.
• Se determina una cantidad de tiempo, lo que permite que cada proceso
utilice el procesador durante ese intervalo.

Universidad Continental | Manual 25


De la teoría a la práctica
Veremos cómo determinar el espacio de memoria empleado por los procesos
en un sistema operativo Windows 10, además experimentaremos que sucede si
aumentamos o reducimos la memoria virtual.

Parte 1: Determinar el espacio de memoria de los procesos:


1. Carga los siguientes programas:
a. Microsoft Word.
b. Google Chrome.
c. Android Studio.

2. Anota el espacio de memoria que cada uno está empleando:


a. Microsoft Word ______________
b. Google Chrome ______________
c. Android Studio _______________

3. Realiza las siguientes operaciones en cada programa activado:

a. Microsoft Word : Abre un documento en blanco, escribe


=rand(300,20) y presiona Enter, anota ahora el espacio empleado
por Word ________________
b. Google Chrome : En el buscador indica la dirección URL para
Youtube, carga algún video, abre otra pestaña y carga otro video
de Youtube,
c. Android Studio , genera una aplicación básica que muestre un
saludo, ejecuta la aplicación en el emulador, cuanta memoria se
está consumiendo? __________

PARTE 2: Calcular el tamaño de la memoria virtual en Windows.


Existe una fórmula que nos permite calcular el límite de la memoria RAM en ambientes
Windows.

• El tamaño inicial del archivo de paginación es igual a = una y media (1.5) X la


cantidad total de la memoria RAM del sistema operativo.

26 Manual
• El tamaño máximo del archivo de paginación es igual a tres veces (3) X Tamaño
inicial.

Cómo aumentar memoria virtual en Windows 10 de forma gráfica


Paso 1
Para este proceso debemos ingresar el comando : SYSDM.CPL en la ventana de
ejecutar
Paso 2
Damos clic en la línea “Configuración avanzada del sistema” ubicada en el costado
lateral izquierda y se desplegará lo siguiente:

Paso 3
Allí damos clic en el botón “Configuración” ubicado en el campo “Rendimiento” y en
la próxima ventana iremos a la pestaña “Opciones avanzadas” donde veremos lo
siguiente:

Paso 4
Vamos a la sección “Memoria virtual” y allí podemos validar cuál es el tamaño del
archivo de paginación actual. Para editar este valor damos clic en Cambiar y en la
siguiente ventana haremos lo siguiente. Pulsamos en el botón Aceptar para guardar los
cambios y luego damos clic en Aplicar y Aceptar para salir del asistente.
Desmarcamos la casilla “Administrar automáticamente el tamaño del archivo de
paginación para todas las unidades” para evitar que el sistema administre esto.
Seleccionamos la unidad C.

Universidad Continental | Manual 27


Activamos la casilla “Tamaño personalizado” y asignamos los tamaños mínimos y
máximos en los campos respectivos.

Cómo aumentar memoria virtual en Windows 10 usando el Símbolo del sistema


Paso 1
Para esto debemos acceder como administradores a la terminal y lo primero que
haremos será validar el estado actual del archivo de paginación en el sistema con el
siguiente comando. Allí comprobamos el tamaño actual, su ruta, estado y demás.

wmic pagefile list /format:list

Paso 2
Ahora con el siguiente comando vamos a gestionar la memoria virtual de forma
personalizada en Windows 10:

wmic computersystem where name="%computername%" set


AutomaticManagedPagefile=false

28 Manual
Paso 3
Finalmente, definimos los tamaños del archivo de paginación con la siguiente sintaxis:

wmic pagefileset where name="C:\\pagefile.sys" set


InitialSize=TAMAÑO,MaximumSize=TAMAÑO

Paso 4
En este caso ejecutamos lo siguiente:

wmic pagefileset where name="C:\\pagefile.sys" set


InitialSize=5000,MaximumSize=60000

Paso 5
Después de esto debemos aplicar los cambios reiniciando Windows 10 con el siguiente
comando:

shutdown -r -t 00

Paso 6
En caso de que deseemos que Windows 10 administre estos valores de forma
automática, podemos deshabilitar el uso personalizado con el siguiente comando:

wmic computersystem where name="%computername%" set


AutomaticManagedPagefile=true

Universidad Continental | Manual 29


Glosario de la Unidad 2
C

Compartición de memoria

En ciertas situaciones, bajo la supervisión y control del sistema operativo, puede ser
provechoso que los procesos puedan compartir memoria. Esto es, la posibilidad de que
direcciones lógicas de dos o más procesos, posiblemente distintas entre sí, se
corresponda n con la misma dirección física. (Carretero Pérez, 2001, p. 169).

Despachador:

Es el módulo que proporciona el control de la CPU a los procesos seleccionados por el


planificador a corto plazo. (Silverschatz, 2005, p. 140).

Intercambio

Mecanismo por el cual los procesos pueden ser intercambiados temporalmente


sacándolos de la memoria y almacenándolos en un almacén de respaldo y volviéndolos
a llevar luego a memoria para continuar con su ejecución. (Tanenbaum, 2009, p. 190)

Memoria Virtual

La memoria virtual utiliza dos niveles de la jerarquía de memoria: la memoria principal y


una memoria de respaldo (que suele ser el disco, aunque puede ser una memoria
expandida). Sobre memoria de respaldo se establece un mapa uniforme de memoria
virtual. (Carretero Pérez, 2001, p. 16.).

Multiprogramación

En un sistema con un único procesador, sólo puede ejecutarse un proceso cada ve,
cualquier otro proceso tendrá que esperar hasta que la CPU quede libre, por lo que el
objetivo de la multiprogramación es tener continuamente varios procesos en ejecución,
con el fin de maximizar el uso de la CPU. (Silverschatz, 2005, p. 137).

30 Manual
P

Paginación

El espacio de direcciones virtuales se divide en unidades de tamaño fijo llamadas


páginas. Las unidades correspondientes en la memoria física se llaman marcos de
página. Las páginas y los maros de página por lo general son del mismo tamaño.
(Tanenbaum, 2009, p. 190).

Planificador a corto plazo

Cuando la CPU queda inactiva, el sistema operativo debe seleccionar uno de los
procesos que se encuentran en la cola de procesos preparados para ejecución, el
planificador a corto plazo lleva a cabo esa selección del proceso. (Silverschatz, 2005, p.
138).

Protección de memoria

En un sistema con monoprogramación es necesario proteger al sistema operativo de los


accesos que realiza el programa en ejecución para evitar que, voluntaria o
involuntariamente, pueda interferir en el correcto funcionamiento de este. (Carretero
Pérez, 2001, p. 168.)

Segmentación

Cada segmento consiste en una secuencia lineal de direcciones, desde 0 hasta cierto
valor máximo. La longitud de cada segmento puede ser cualquier valor desde 0 hasta
el máximo permitido. Los distintos segmentos pueden tener distintas longitudes (y por lo
general así es). Además, las longitudes de los segmentos pueden cambiar durante la
ejecución. (Tanenbaum, 2009, p. 235)

Universidad Continental | Manual 31


Bibliografía de la Unidad 2
Carretero, J. (2001). Sistemas Operativos - Una visión Aplicada. México: Mc Graw Hill.
Fito RB. (2013). Gestión de memoria [Blog]. Recuperado de
http://memoriaunisarc.blogspot.com/2013/11/gestion-de-memoria.html
Gómez, R. (s. f.). Administración de la memoria aspectos fundamentales. TEC de
Monterrey. Recuperado de https://docplayer.es/30586251-Aspectos-
fundamentales.html
Silverschatz, A. E. (2005). Fundamentos de sistemas operativos. Madrid: Mc Graw Hill.
Sistema Operacional. (2015). Linux . Recuperado de
https://soedgargonzalez.blogspot.com/2015
Tanenbaum, A. (2009). Sistemas operativos modernos. México: Prentice Hall.
Universidad Militar Nueva Granada. (2020). Administración de la memoria y el
almacenamiento. Recuperado de
http://virtual.umng.edu.co/distancia/ecosistema/odin/odin_desktop.php?pat
h=Li4vb3Zhcy9pbmdlbmllcmlhX2luZm9ybWF0aWNhL3Npc3RlbWFzX29wZXJhdG
l2b3MvdW5pZGFkXzQv
William, S. (2005). Sistemas Operativos. Aspectos internos y principios de Diseño. Madrid:
Prentice Hall.
Wolf, G. (2015). Fundamentos de Sistemas Operativos. México: Universidad Nacional
Autónoma de México.

32 Manual
Universidad Continental | Manual 33

También podría gustarte