Manual Unidad 2 Sistemas Operativos
Manual Unidad 2 Sistemas Operativos
Manual Unidad 2 Sistemas Operativos
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.
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
4 Manual
UNIDAD 2: Gestión de memoria y
planificación monoprocesador
Diagrama de organización
Gestión de memoria y
planificación
monoprocesador
Planificación
monoprocesador
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.
directamente a hasta 216 bytes, esto es, hasta 65 536 bytes (64 KB ) (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
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.
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.
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).
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).
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.
3.1 Paginación
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.
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.
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
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).
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 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).
18 Manual
Figura 22. Relación entre memoria virtual y memoria real.
Fuente: Elaboración propia.
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.
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 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.).
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):
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.
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).
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):
24 Manual
Si se repite el análisis anterior bajo este mismo mecanismo, pero con un quantum de
cuatro ticks, el resultado es:
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.
26 Manual
• El tamaño máximo del archivo de paginación es igual a tres veces (3) X Tamaño
inicial.
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.
Paso 2
Ahora con el siguiente comando vamos a gestionar la memoria virtual de forma
personalizada en Windows 10:
28 Manual
Paso 3
Finalmente, definimos los tamaños del archivo de paginación con la siguiente sintaxis:
Paso 4
En este caso ejecutamos lo siguiente:
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:
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:
Intercambio
Memoria Virtual
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
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
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)
32 Manual
Universidad Continental | Manual 33