Este documento trata sobre los conceptos fundamentales de la administración de memoria en sistemas operativos. Explica las diferentes abstracciones de memoria como espacios de direcciones y memoria virtual, así como los algoritmos de reemplazo de páginas como FIFO, LRU y Clock. También discute cuestiones de diseño como el control de carga y el tamaño de página en sistemas de paginación.
4. ¿QUÉ ES UN SISTEMA OPERATIVO?
• 1.1.1 El sistema operativo como una máquina extendida
• 1.1.2 El sistema operativo como administrador de recursos
5. 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS
• 1.2.1 La primera generación (1945 a 1955): tubos al vacío
• 1.2.2 La segunda generación (1955 a 1965): transistores
y sistemas de procesamiento por lotes- cintas
• 1.2.3 La tercera generación (1965 a 1980): circuitos integrados
• y multiprogramación
• 1.2.4 La cuarta generación (1980 a la fecha):
• las computadoras personales
36. Combinación en Videojuegos
Sonido Gráficos
Los videos juegos antiguos estaban diseñados
a base de sprites.
Los videos juegos
actuales están formados
por polígonos.
37. Entorno 3D Entorno 2D
Gráficos Poligonales
Gráficos SpritesSuper Mario Galaxy (2007)
Super Mario Bros(1985)
40. Hipermedia
El primer sistema hipermedia creado fue el Aspen Movie Map. Actualmente ejemplos de
hipermedia son:
•La World Wide Web.
•Las películas almacenadas en un DVD.
•Las presentaciones en Powerpoint o en Flash, o productos informáticos similares.
87. DISEÑO DE SISTEMAS
OPERATIVOS
□LA NATURALEZA DEL PROBLEMA DE
DISEÑO
□¿Por qué es difícil diseñar un sistema
operativo?
□DISEÑO DE INTERFACES
□Principios de guía
88. • Paradigmas
• La interfaz de llamadas al sistema
• IMPLEMENTACIÓN
• Estructura del sistema
89. □ Comparación entre mecanismo y directiva
□ Ortogonalidad
□ Nomenclatura
□ Tiempo de vinculación
□ Comparación entre estructuras estáticas y
dinámicas
□ Comparación entre la implementación de arriba-
abajo y la
implementación de abajo-arriba
□ Técnicas útiles
90. • RENDIMIENTO
• ¿Por qué son lentos los sistemas operativos?
• ¿Qué se debe optimizar?
• Concesiones entre espacio y tiempo
• Uso de caché
• Sugerencias
• Explotar la localidad
91. □ Optimizar el caso común
□ ADMINISTRACIÓN DE PROYECTOS
□ El mítico hombre-mes
□ Estructura de equipos
□ La función de la experiencia
□ Sin bala de plata
□ TENDENCIAS EN EL DISEÑO DE SISTEMAS
OPERATIVOS
□ Virtualización
□ Chips multinúcleo
92. •Sistemas operativos con espacios de direcciones
extensos
•Redes
•Sistemas paralelos y distribuidos
•Multimedia
•Computadoras operadas por baterías
•Sistemas embebidos
•Nodos de monitoreo
97. Objetivos
¿Qué desean los diseñadores de sistemas operativos?
cuatro puntos principales:
1. Definir las abstracciones
2. Proveer operaciones primitivas.
3. Asegurar el aislamiento.
4. Administrar el hardware.
98. ¿Por qué es difícil diseñar un
sistema operativo?
105. Virtualización
es una idea cuyo tiempo ha
llegado otra vez. Primero
surgió en 1967 con el
sistema IBM CP/CMS, pero
ahora está de vuelta con
toda su fuerza en la
plataforma Pentium.
107. Sistemas operativos con espacios de
direcciones extensos
A medida que las máquinas pasan
de los espacios de direcciones de
32 bits a los de 64 bits,
120. Dispositivo de entrada y salida
● Los dispositivos de E/S se pueden dividir básicamente en dos categorías: dispositivos de
bloque y dispositivos de carácter.
122. CAPAS DEL SOFTWARE DE E/S
Por lo general, el software de E/S se organiza en
cuatro capas
132. SIN ABSTRACCIÓN DE MEMORIA
● La abstracción más simple de memoria es ninguna abstracción. Las
primeras computadoras mainframe
● (antes de 1960),
● (antes de 1970)
● (antes de 1980)
MOV REGISTRO1, 1000
133. UNA ABSTRACCIÓN DE MEMORIA:
ESPACIOS DE DIRECCIONES
● Lo que la IBM 360
● reubicación estática. Esta técnica funcionaba así:
dirección 16,384, se sumaba el valor constante
16,384
134. ● En primer lugar, si los programas de usuario
pueden direccionar cada byte de memoria, pueden
estropear el sistema operativo con facilidad, (a
menos que haya hardware especial como el
esquema de bloqueo y llaves de la IBM 360).
138. Aceleración de la paginación
● 1. La asociación de una dirección virtual a una dirección física debe ser rápida.
● 2. Si el espacio de direcciones virtuales es grande, la tabla de páginas será grande.
● El primer punto es una consecuencia del hecho de que la asociación virtual-a-física debe
realizarse en cada referencia de memoria.
139. Tablas de páginas para memorias
extensas
● Los TLBs se pueden utilizar para acelerar las traducciones de direcciones virtuales a
direcciones físicas sobre el esquema original de la tabla de páginas en memoria. Pero
ése no es el único problema que debemos combatir. Otro problema es cómo lidiar con
espacios de direcciones virtuales muy extensos
140. ALGORITMOS DE REEMPLAZO DE
PÁGINAS
● Cuando ocurre un fallo de página, el sistema operativo tiene que elegir una página para
desalojarla (eliminarla de memoria)
El algoritmo de reemplazo
de páginas óptimo
El algoritmo de reemplazo
de páginas: no usadas
recientemente
141. El algoritmo de reemplazo de páginas: Primera en
entrar,
primera en salir (FIFO)
142. El algoritmo de reemplazo de páginas:
segunda oportunidad
● Una modificación simple al algoritmo FIFO que evita el problema de descartar una
página de uso frecuente es inspeccionar el bit R de la pág utilizado, por lo que se
sustituye de inmediato. Si el bit R es 1, el bit se borra, la página se pone al final de la
lista de páginas y su tiempo de carga se actualiza, como si acabara de llegar a la
memoria. Después la búsqueda continúa.
144. Simulación de LRU en software
● Este algoritmo requiere un contador de software asociado con cada página, que al
principio es cero. En cada interrupción de reloj, el sistema operativo explora todas las
páginas en memoria. Para cada página se agrega el bit R, que es 0 o 1, al contador. Los
contadores llevan la cuenta aproximada de la frecuencia con que se hace referencia a
cada página. Cuando ocurre un fallo de página, se selecciona la página con el contador
que sea menor para sustituirla.
145. El algoritmo de reemplazo de páginas
WSClock
● WSClock (Carr y Hennessey, 1981). Debido a su simplicidad de implementación y
buen rendimiento, es muy utilizado en la práctica.
● La estructura de datos necesaria es una lista circular de marcos de página, como en el
algoritmo de reloj, mostrada en la figura 3-21(a). Al principio, esta lista está vacía.
Cuando se carga la primera página, se agrega a la lista. A medida que se agregan más
páginas, pasan a la lista para formar un anillo.
● es decir que evalúa todos los posibles candidatos y de los mejores hace un anillo
147. Control de carga
● PFF indica que algunos procesos necesitan más memoria, pero ningún proceso necesita
menos memoria. En este caso no hay forma de proporcionar más memoria a esos
procesos que la necesitan sin lastimar a algún otro proceso. La única solución real es
deshacerse temporalmente de algunos procesos.
148. Tamaño de página
● El tamaño de página es un parámetro que a menudo el sistema operativo puede elegir.
Incluso si el hardware se ha diseñado, por ejemplo, con páginas de 512 bytes, el sistema
operativo puede considerar fácilmente los pares de páginas 0 y 1, 2 y 3, 4 y 5, y así en
lo sucesivo, como páginas de 1 KB al asignar siempre dos marcos de página de 512
bytes consecutivos para ellas.
● fragmentación interna. Con n segmentos en memoria y un tamaño de página de p
bytes, se desperdiciarán np/2 bytes en fragmentación interna. Este razonamiento está a
favor de un tamaño de página pequeño.
155. Segmentación con paginación: Intel
Pentium
● La memoria virtual en el Pentium se asemeja en muchas formas a MULTICS,
incluyendo la presencia de segmentación y paginación. Mientras que MULTICS tiene
256K segmentos independientes, cada uno con hasta 64K palabras de 36 bits, el
Pentium tiene 16K segmentos independientes, cada uno de los cuales contiene hasta un
mil millones de palabras de 32 bits. Aunque hay menos segmentos, entre mayor sea el
tamaño del segmento será más importante, ya que pocos programas necesitan más de
1000 segmentos, pero muchos programas necesitan segmentos extensos.
158. Seguridad multinivel
Es un tipo de política de seguridad que clasifica a los usuarios en distintos niveles de seguridad, permitiendo el acceso simultáneo a
distintos usuarios con diferentes permisos y asegurándose de que cada usuario acceda a aquellos recursos que tiene autorizados.
159. MALWARE
código maligno, software malicioso o software malintencionado, es un tipo de software que tiene como objetivo infiltrarse o dañar
una computadora o sistema de información sin el consentimiento de su propietario
160. Gusanos
Es un malware que tiene la propiedad de duplicarse a sí mismo. Los gusanos utilizan las partes automáticas de un sistema operativo
que generalmente son invisibles al usuario
161. Firewalls
Un cortafuegos es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado,
permitiendo al mismo tiempo comunicaciones autorizadas
163. Trampas
Las trampas informáticas o trucos informáticos no tienen otro objetivo mas que atraparte y
arruinarte el ordenador o hachear tu computador
164. Spyware
Es un malware que recopila información de un ordenador y después transmite esta información a una entidad externa
sin el conocimiento o el consentimiento del propietario del ordenador
165. DEFENSAS
Son actividades y programas cuya función es evitar los ataques informáticos como los virus, gusanos, troyanos y otros
invasores(malware) que puedan dañar el equipo
169. PROCESOS
• Todas las computadoras modernas ofrecen
varias cosas al mismo tiempo.
170. El modelo del proceso
Un proceso
no es más que una instancia
de un programa en
ejecución
171. Creación de un proceso
• 1. El arranque del sistema.
• 2. La ejecución, desde un proceso, de una llamada al sistema para
creación de procesos.
• 3. Una petición de usuario para crear un proceso.
• 4. El inicio de un trabajo por lotes
Hay cuatro eventos principales que provocan la creación de
procesos:
172. Terminación de procesos
1. Salida normal (voluntaria).
2. Salida por error (voluntaria).
3. Error fatal (involuntaria).
4. Eliminado por otro proceso(involuntaria).
173. Jerarquías de procesos
• En algunos sistemas, cuando un proceso crea otro, el proceso padre y el proceso hijo
continúan asociados en ciertas formas
175. Es el bloqueo permanente de un conjunto de procesos que se comunican entre ellos,
ningún proceso del conjunto puede avanzar
Interbloqueo
176. Los recursos se pueden clasificar en Compartido & exclusivos.
Los compartidos : Este puede ser utilizado por más de un proceso al mismo tiempo.
Los exclusivos: Pueden ser utilizados sólo por un proceso a la vez
177. Recursos apropiativos y no apropiativos
• Un recurso apropiativo: es uno que se puede quitar al proceso que lo
posee sin efectos dañinos.
• Un recurso no apropiativo: es uno que no se puede quitar a su
propietario actual sin hacer que el cómputo falle.