Este documento describe los conceptos fundamentales de la memoria virtual, incluyendo: 1) La técnica de memoria virtual permite ejecutar procesos más grandes que la memoria física disponible; 2) Se requiere un MMU para mapear las páginas lógicas a marcos de página física; 3) Los algoritmos de sustitución de páginas como FIFO, LRU y óptimo son importantes para minimizar los fallos de página.
3. Fundamentos• La técnica de Memoria Virtual es un mecanismo que permite la ejecución de
procesos que no se encuentran completamente en la memoria.
• Una ventaja es que los programas pueden tener un tamaño mayor que la propia
memoria física
• La memoria virtual no resulta fácil de implementar y puede reducir
sustancialmente el rendimiento del sistema si se la utiliza sin el cuidado.
Requisitos
Colocar el espacio completo de direcciones lógicas dentro de la memoria física
• Limita el tamaño de los programas, de manera que éstos no puedan exceder del
tamaño de la propia memoria física.
4. Fundamentos• Se ha comprobado que en muchos casos no es necesario tener el programa
completo para poder ejecutar:
• Los programas incluyen código para tratar las condiciones de error poco
usuales (éstos errores ocurren rara vez).
• A las matrices, a las listas y a las tablas se les suele asignar más memoria de la
que realmente necesitan.
• Ciertas opciones y características de un programa se utilicen raramente.
• Y en aquellos casos en que se necesite el programa completo, puede suceder que
no todo el programa sea necesario al mismo tiempo.
5. Fundamentos
• La posibilidad de ejecutar un programa que sólo se encontrará parcialmente en la
memoria proporciona muchas ventajas:
• Los programas ya no estarán restringidos por la cantidad de memoria física
disponible, se podrán escribir programas para un espacio de direcciones virtual
extremadamente grande.
• Cada programa de usuario podría ocupar menos memoria física, se podrán
ejecutar más programas al mismo tiempo.
• La posibilidad de ejecutar un programa que sólo se encontrará parcialmente en la
memoria proporciona muchas ventajas:
6. Fundamentos• La memoria virtual incluye la separación de la memoria lógica tal como la
percibe el usuario con respecto a la memoria física.
• La memoria virtual facilita la tarea de programación por que el programador ya
no tiene por que preocuparse de la cantidad de memoria física disponible sino en
el problema que deba resolver con su programa.
• La MMU (Unidad de manejo de memoria) tiene la responsabilidad de establecer
la correspondencia entre las páginas lógicas y los marcos de página física de la
memoria.
7.
8.
9. Sustitución de Páginas
• Cuando se está ejecutando un proceso de usuario, se produce un fallo de página, el SO determina
donde reside la página deseada dentro del disco y entonces se encuentra con que no haya ningún
marco libre en la lista de marcos libres, toda la memoria esta siendo utilizada, parano hay ningún
marco libre, localizamos uno que no este siendo actualmente utilizado y lo liberamos.
• El mecanismo de sustitución de páginas es:
• Hallar la ubicación de la página deseada dentro del disco.
• Localizar un marco libre.
• Si hay un marco libre utilizarlo
• Si no hay seleccionar una víctima (algoritmo de sustitución)
• Escribir el marco de víctima en el disco.
• Leer la página deseada y cargarla en el marco
• Reiniciar el proceso de usuario. esto se utiliza la técnica de sustitución de páginas
• Si
10.
11. Sustitución de Páginas
• A la hora de implementar páginas bajo demanda hay que resolver dos problemas:
Algoritmos de asignación de marcos
Algoritmos de sustitución de páginas.
• Si tenemos multiples procesos en memoria se debe decidir cuantos marcos se va a
asignar a cada proceso.
• Los algoritmos de sustitución son muy importantes debido a que las operaciones de E/S
son muy costosas en términos de rendimiento.
• Una de los aspecto a tomar en cuenta para la implementación d eun algoritmo de
sustitución es la tasa de fallos de página más baja.
12. Sustitución de Páginas FIFO
• Asocia cada página el instante en que dicha página fue cargada en memoria.
• Cuando hace falta sustituir una página se elige la páginas mas antigua.
• Se crear un cola FIFO para almacenar todas las páginas en memoria y sustituir la página
situada al principio de la cola.
• Es fácil de entender y de programar, sin embargo su rendimiento no siempre es bueno.
• Anomalía de Belady la tasa de fallos de página puede incrementarse a medida que se
incrementa el número de marco asignados.
15. Sustitución de Óptima de Páginas
• Un algoritmo óptimo de sustitución es aquel que tenga la tasa de más baja de fallos entre todos
los algoritmos y que nunca este sujeto a la anomalía de Belady.
• Sustituir la página que no vaya a ser utilizada durante el período de tiempo más largo.
• Difícil de implementar por que requiera un conocimiento futuro de la cadena de referencia.
16. Sustitución de Páginas LRU
• Sustituir la página que no haya sido utilizada durante el período más largo de tiempo.
• Menos recientemente utilizada.
• LRU asocia con cada página el instante correspondiente al último uso de dicha página.
• El problema es como implementar este algoritmo
17. Sustitución de Páginas LRU
• Contadores: asociamos con cada entada en la tabla de páginas un campo de tiempo uso y
añadimos a la CPU un reloj lógico o contador.
•El reloj se incrementa con cada referencia a memoria .
• Así tenemos el tiempo de la última referencia a cada página
• Podremos sustituir la página que tenga el valor temporal menor
• Pila: mantener una pila de números de página, cada vez que se hace referencia a una página,
se extrae esa página de la pila y se la coloca en la parte superior.
•La página mas recientemente utilizada se encontrará siempre en la parte superior de la pila.
18.
19. Sobrepaginación
Si un proceso no dispone de suficientes marcos generará rápidamente fallos
de página.
Deberá sustituir alguna página sin embargo como todas sus páginas se están
usando activamente se verá forzado a sustituir una página que volverá a ser
utilizada enseguida.
Volverá a generar otro fallo de página
Esta alta tasa de paginación se conoce como sobrepaginación
Un proceso entrará en sobrepaginación cuando invierte más tiempo generando fallos de
página que en la ejecución propia del proceso
Provoca problemas de rendimiento
20. Sobrepaginación
Las causas de la Sobrepaginación
El SO monitoriza la utilización de la CPU. Si la tasa de utilización es
demasiado baja, se incrementa el grado de multiprogramación.
Si entra un proceso nuevo y necesita más marcos de memoria. El proceso
comenzará a generar fallos de páginas y a quitar marcos a otros procesos.
Dichos procesos también necesitaran los marcos y comenzarán agenerar fallos
de páginas. Como cada proceso está esperando por el dispositivo de
paginación, la tasa de utilización de CPU disminuye.
21. Sobrepaginación
Para evitar los efectos de sobrepaginación se puede utilizar las asignación
local.
Para prevenir la sobrepaginación se debe asignar a los procesos los marcos
necesarios. Una técnica para definir esto es el modelo de localidad.
22. Sobrepaginación
Otra forma de controlar la sobrepaginación es con la frecuencia de fallos de
páginas. Sabemos que cuando la tasa de fallos de página es alta el procesos
requiere más marcos y a la inversa si es baja pueda que el proceso tenga
demasiados marcos.
24. ARCHIVO
• Un archivo desde la perspectiva del usuario es la unidad más
pequeña de almacenamiento secundario lógico; en otras
palabras no se puede escribir datos en almacenamiento
secundario a menos que se encuentre en un archivo.
•Los archivos de datos pueden ser: numéricos, alfabéticos,
alfanuméricos o binarios.
•Puede haber archivos de formato libre o rígido
•Es una secuencia de bits, bytes, líneas o registros cuyo
significado es definido por el creador y el usuario del mismo.
•Un archivo tendrá una estructura definida dependiendo de su
tipo (text, ejecutables,código fuente, etc)
25. Atributos de un archivoLos atributos de un archivo varían de un sistema a otro
•Nombre: Es única información que se mantiene en formato legible para las
personas
•Identificados: Es una etiqueta unívoca dentro del sistema de archivos (versión
de nombre no legible por las personas)
•Tipo: Esta información es necesaria para aquellos sistemas que se soportan
diferentes tipos.
•Ubicación: Es un puntero a un dispositivo y la ubicación dentro del
dispositivo.
•Tamaño: Expresa el tamaño actual del archivo (bytes, palabras o bloques).
•Protección: Información de control de acceso. Quién puede leer, escribir
ejecutar el archivo.
•Fecha, hora e identificador del usuario: Esta información puede
mantenerse para los sucesos de creación, última modificación y último uso del
archivo.
26. Operaciones con los archivos
Creación de un archivo: Para crear un archivo hace falta ejecutar dos pasos. 1º encontrar
espacio para el archivo dentro del sistema de archivos y 2º incluir en el directorio la entrada del
nuevo archivo.
Escritura en un archivo: Se debe realizar una llamada a un sistemas que especifique tanto el
nombre como la información que hay que escribir en el archivo.
Lectura de un archivo: Se debe realizar una llamada al sistema que especifique el nombre del
archivo y dónde debe colocarse (dentro de la memoria) el siguiente bloque del archivo.
Reposicionamiento del archivo: Se explora el directorio para hallar la correspondiente entrada
y se reposiciona el puntero de posición actual dentro de un archivo, asignándole un nuevo valor.
Borrado de un archivo: Exploramos el directorio en busca del archivo indicado y liberamos
todo el espacio del archivo.
Truncado de un archivo: EL usuario puede querer borrar el contenido de un archivo, pero
mantener sus atributos.
27. Tipos de archivos
•Una técnica común para
implementar los tipos de
archivos es incluir el tipo como
parte del nombre. (Nombre y
una extensión separados
generalmente por un punto)
28. MÉTODOS DE ACCEOS
• Se puede acceder a la información de un archivo de varias formas. Algunos sistemas
soportan un forma de acceso mientras que otros varias como es el caso de IBM.
•Acceso Secuencial: La información se lee en orden, un registro después de otro, es el más
común. Es soportado por dispositivos de acceso secuencial como aleatorio.
29. Estructura de Almacenamiento
•Acceso Directo: El proceso puede leer el registro en cualquier orden,
permitiendo leer o escribir bloques arbitrariamente.
• Estos son útiles para un acceso inmediato en grandes cantidades de
información. Ejm: BD
•En el método de acceso director las operaciones de archivos deben
modificarse para incluir el número de bloque como parámetro.
•Para realizar la operación leer n, ejecutamos primero posicionar en n y luego
leer siguiente
30. ESTRUCTURA DE DIRECTORIOS
• En ocasiones es deseable colocar múltiples sistemas de archivos en un mismo disco o utilizar
partes de un disco para un sistema de archivos y otra para otra cosa, como por ejemplo: espacio de
intercambio. Estas partes se conocen con diversos nombres como particiones, franjas o
minidiscos.
•De la misma manera podemos querer unir varios discos o partes para tener un estructura de mayor
tamaño a esto se lo conoce como volúmenes y también crear sistemas de archivos en dichos
volúmenes.
•Cada volumen que contenga un sistema de archivos debe también contener información acerca de
los archivos almacenados en el sistema. Esta información se almacena como entradas en un
directorio de dispositivo o tabla de contenidos del volumen. Este directorio almacena información
de todos los archivos: nombre, ubicación, tamaño y tipo.
32. ESTRUCTURA DE DIRECTORIOS
Operaciones sobre un directorio
• Búsquedas de un archivo.
• Crear un archivo
• Borrar un archivo
• Listar un directorio
• Renombrar un archivo
• Recorrer el sistema de archivos
33. ESTRUCTURA DE DIRECTORIOS
Directorios de un único nivel
• Todos los archivos están contenidos en un mismo directorio y resulta fácil de mantener y
comprender.
• Tiene limitaciones significativos cuando el número de archivos se incrementa o cuando el
sistema tiene más de un usuario. Puestos que todos los archivos se encuentran en un mismo
directorios deberán tener nombres distintos.
34. ESTRUCTURA DE DIRECTORIOS
Directorios de dos nivel
• Una solución al problema de los directorios de un solo nivel es crear un directorio por cada
usuario (directorio de archivos de usuario, UFD)
• Si un usuario quiere acceder a un archivo de otro usuario deberá especificar toda la ruta del
archivo.
• Se puede tener archivos con nombres similares pero que pertenezcan a diferentes usuarios.
35. ESTRUCTURA DE DIRECTORIOS
Directorios con estructuras de árboles
• Permite a los usuarios crear sus propios subdirectorios y organizar sus archivos.
• Cada directorio tiene un conjunto de archivos o subdirectorios. Un subdirectorios es simplemente un
archivo
• Las rutas pueden ser absolutas o relativas
36. ESTRUCTURA DE DIRECTORIOS
Directorios en un grafo acíclico
• Compartición de subdirectorios. Cada directorio o archivo compartido existirá en el sistema de
archivos en dos lugares simultáneamente.
• Compartición mediante enlaces (link) o duplicando la información
• Es una estructura más compleja por que se va a tener varios nombre de un mismo archivo.
37. ESTRUCTURA DE DIRECTORIOS
Directorios en formato de grafo general
• Uno de los problema del grafo acíclico es garantizar que no existan ciclos ya que el sistema entraría
en un bucle infinito
• Una solución a esto consiste en limitar arbitrariamente el número de directorio a la se accederá
durante una búsqueda.
• Otra solución son algoritmos que detecten la existencia de un ciclo, pero estos tiene un costo muy
alto desde el punto de vista computacional
38. MONTAJE DE SISTEMAS DE ARCHIVOS
• De la misma forma en que un archivo debe abrirse antes de
utilizarlos, un sistema de archivos debe montarse antes de estar
disponible para los procesos del sistema.
• Para el montaje, al sistema operativo se le especifica el nombre del
dispositivo y un punto de montaje Por lo general este punto de
montaje será un directorio vacío.
• Luego el sistema verifica si el dispositivo tiene un sistema de archivos
válido.
• Finalmente el sistema operativo registra en su estructura de
directorios que hay un sistema de directorios montado en el punto de
montaje especificado.
39.
40.
41. COMPARTICIÓN DE ARCHIVOS
Múltiples Usuarios
• Un sistema con múltiples usuarios requiere compartir los archivos. Una
forma para ellos es estableciendo:
•Propietario: quien podrá realizar cualquier operación sobre dicho
archivo.
•Grupo de usuarios: quienes podrán realizar un conjunto de
operaciones definidas por el propietario
•Otros usuarios: quieres podrán realizar operaciones definidas por el
propietario.
• El identificador del propietario y del grupo de un archivo se almacenan
junto con los otros atributos del archivo.
42. COMPARTICIÓN DE ARCHIVOS
Sistemas de archivos remotos
• Con la interconexión por red la compartición de una serie de recursos que son son
distribuidos por un campus o por todo el mundo. Uno de los primeros sistemas de este tipo
fue el FTP.
• Modelo Clientes-Servidor
•Los sistemas de archivos remotos permiten a una computadora montar uno o más
sistemas de archivos desde una o varias máquinas remotas. En este caso la maquina
que contiene los archivos se denomina servidor y la que trata de acceder a los archivos
es el cliente.
•La identidad del clientes puede estar dada por el segmento de red o la dirección ip, las
cuales pueden ser suplantadas o imitadas.
•Otra solución es la autentifican del cliente mediante claves cifradas.
•Ejemplo NFS (Sistemas de Archivos en Red).
43. COMPARTICIÓN DE ARCHIVOS
Sistemas de archivos remotos
• Sistemas de información distribuidas
•Proporcionan un acceso unificado a la información necesaria para la información
remota.
•Ejemplo: Ldap, Active Directory.
•Modos de fallo:
•En los sistemas de archivos remotos se tiene una más modos de fallo, debido a
su complejidad de los sistemas de red y a las interacciones requeridas entre las
máquinas remotas, puede existir el caso las redes pueden verse interrumpidas por
algún fallo en la configuración de la red. Aunque algunas redes implementan
mecanismos de protección como la existencia de múltiples rutas, otras muchas no
disponen de un mecanismo de protección.
•Para implementar un recuperación de fallos, puede mantenerse información de
estado tanto en el cliente como en el servidor. Si los dos mantienen información
de sus actividades actuales, podrá recuperar transparentemente de un fallo
44. PROTECCIÓN
Sistemas de archivos remotos
• Cuando se almacena información en un sistema, necesitamos protegerla frente a los daños
físicos y a los accesos incorrectos.
• Tipos de Accesos
•Lectura
•Escritura
•Ejecución
•Adición
•Borrado
•Listado
45. PROTECCIÓN
Sistemas de archivos remotos
• Control de Acceso
•El acceso depende de la identidad del usuario. Consiste en asociar con cada archivo y
directorio un lista de control de acceso (acl) que especifique el nombre del usuario y los
tipos de acceso que se permiten para cada uno.
•Propietario
•Grupo
•Universo
•Ejemplo
19 -rw-r--r-- jim staff 130 May 25 22:13 file1
48. SISTEMAS DE ENTRADA/SALIDA
• Analizar la estructura del subsistema de E/S de un sistema
operativo.
•Explorar los principios en que se basa el hardware de E/S
y los aspectos relativos a su complejidad.
49. GENERALIDADES DE LOS SISTEMAS DE E/S
Para los diseñadores de SO, el control de los dispositivos conectados a la
computadora es de primordial interés, debido a que cada dispositivo
cambia sus funciones y velocidad por lo cual se requiere variedad de métodos
para controlarlos.
Estos métodos de E/S forman el subsistema de E/S del kernel, el cual
aisla al resto del kernel de la complejidad de la administración de los
dispositivos de E/S.
La tecnología de E/S exhibe dos tendencias que están en conflicto:
* Creciente estandarización de las interfases de SW y HW con los cual se
ayuda a incorporar en las computadoras y SO generaciones mejoradas de
dispositivos.
50. GENERALIDADES DE LOS SISTEMAS DE E/S
•Nuevos dispositivos que son tan diferentes los anteriores que se son
difíciles de incorporar en las computadoras y SO; por lo que se convierte
en un reto esta incorporación a través de combinación de técnicas de
HW y SW.
Los detalles y peculiaridades de los diferentes dispositivos se encapsulan
en módulos de manejadores de dispositivos (interfaz uniforme de
acceso a dispositivos con el subsistema de E/S). Para lo cual se estructura
al kernel del sistema operativo para que use estos módulos.
51. OBJETIVOS DEL SISTEMA DE E/S
•Proporcionar una interfaz uniforme para el acceso a los dispositivos (independencia del
dispositivo).
•Proporcionar manejadores (drivers) para los dispositivos concretos
•Tratar automáticamente los errores más típicos.
•Para los dispositivos de almacenamiento, utilizar cachés.
•Para los discos, planificar de forma óptima las peticiones.
52. HARDWARE DE E/S
Un dispositivo se comunica con un sistema de cómputo enviando señales
a través de un cable o incluso a través de aire.
El dispositivo se comunica:
•Con la máquina mediante un punto de conexión llamado puerto.
•Si uno o más dispositivos utilizan un conjunto de cables, la conexión se
denomina bus.
53. HARDWARE DE E/S
Un controlador es un conjunto de componentes electrónicos que
pueden operar un puerto, un bus o un dispositivo.
Los controladores pueden ser sencillos (controlador de puerto serial) o
complejos (controlador de bus SCSI).
Los dispositivos de E/S que se conectan al ordenador se clasifican en:
BLOQUE: La información se almacena en bloques, esos bloques son de
tamaño fijo. Donde cada bloque tiene una dirección que lo identifica. Se
puede leer o escribir en un bloque independiente de los demás.
Por ejemplo: disquete, CD, DVD, disco duro.
54. HARDWARE DE E/S
CARÁCTER: La información que se generan o reciben son flujos de caracteres
(no bloques). Accede a los datos en secuencia: o sea, para acceder a determinados
datos, la lectura y escritura se debe hacer seguido de los datos anteriores. Por
ejemplo: teclado, pantalla, cinta, ratones.
A continuación un cuadro comparativo de diferentes dispositivos:
55. HARDWARE DE E/S
¿Cómo puede el procesador entregar comandos y datos a un controlador para
realizar una transferencia de E/S?
• El controlador tienen uno o más registros para datos y señales de control.
• El procesador se comunica con el controlador leyendo y escribiendo patrones de bits
en estos registros.
Hay dos formas de comunicación:
1) Mediante el uso de interrupciones especiales de E/S que especifican la transferencia de un
byte o palabra a la dirección de un puerto de E/S.
2) El controlador de dispositivo puede soportar E/S con mapeo en memoria; en este caso
los registros de control del dispositivo se mapean en el espacio de direcciones del
procesador.
57. INTERRUPCIONES
• Una interrupción es el mecanismo
que le permite al controlador de
hardware notificar a la CPU
cuando un dispositivo esta listo
para servicio.
• El mecanismo básico de
interrupción habilita a la CPU
para responder a un evento
asíncrono, el cual puede ser que el
controlador de dispositivo quede
listo para dar servicio
58. Características para el manejo de interrupciones:
- Capacidad para diferir el manejo de interrupciones durante
un procesamiento crítico.
- Eficiente manejo de interrupciones para un buen
desempeño del sistema (evitar hacer escrutinio).
- Basado en prioridad.
Líneas de solicitud de interrupción CPU:
* Interrupción no mascarable: eventos como errores de
memoria no recuperables.
* Inerrupción Mascarable: pueder ser apagada por la CPU
antes de la ejecución de secuencias críticas que no deben ser
interrumpidas.
60. ACCESO DIRECTO A MEMORIA
• Evitar usar el proceso de E/S programada cuando se
transfieren datos grandes para no sobrecargar la CPU.
• Transferir parte del trabajo a un procesador de propósito
especial denominado controlador de acceso directo a memoria (DMA).
• Cuando la CPU escribe la dirección del bloque de comandos en
el controlador de DMA, luego sigue con otro trabajo y el
controlador de DMA opera directamente el bus de la memoria
colocando direcciones para realizar transferencias sin ayuda de
la CPU principal.
• Algunas arquitecturas utilizan direcciones de memoria física
para DMA, pero otras efectúan un acceso directo a memoria
virtual, utilizando direcciones virtuales que se traduciran a
direcciones de memoria fisica.
62. INTERFAZ DE E/S DE LAS APLICACIONES
Compartible o dedicado: Un dispositivo compartible puede ser usado de
forma concurrente por varios procesos o hebras; un dispositivo dedicado no
puede ser compartido de esta forma.
Velocidad de operación: Las velocidades de los dispositivos van desde
unos pocos bytes por segundo a unos cuantos gigabytes por segundo.
Lectura-escritura; sólo lectura o sólo escritura: Algunos dispositivos
realizan tanto entrada como salida, pero otros sólo soportan una única
dirección de transferencia de los datos..
63. RELOJES Y TEMPORIZADORES
• Proporciona: la hora, tiempo transcurrido y el valor de un
temporizador para activar la operación X a la hora T (cronómetro).
• El hardware para medir el tiempo transcurrido y activar operaciones
se denomina temporizador de intervalos programable y se lo
usa para fijar una cantidad de tiempo y genere una interrupción,
realice operaciones periódicas.
64. E/S CON BLOQUEO Y SIN BLOQUEO
• Con Bloqueo: se suspende la ejecución de dicha aplicación. La
mayoría de SO la utilizan, puesto que es más fácil de entender
y aplicar.
• Implementación multihilos.
• Algunos procesos a nivel de usuario necesitan E/S sin bloqueo,
ya que no detiene la ejecución de la aplicación por mucho
tiempo, regresando rápidamente con un valor de retorno que
indica cuántos bytes fueron transferidos.
• Asíncrono: llamada que regresa inmediatamente, sin esperar a
65. SUBSISTEMA DE E/S DEL KERNEL
• * El subsistema de E/S kernel ofrece varios servicios y se apoya en el
hardware y se apoya en la infraestructura de manejadores de dispositivo.
• * Los servicios son la planificación de E/S, la Asignación de buffers, la
asignación de caché, el spooling, la reservación de dispositivos y el manejo
de errores.
67. PLANIFICACIÓN DE E/S
- Se debe determinar un orden adecuado para la ejecución de las
solicitudes.
- Mejora el desempeño global del sistema, así como compartir
equitativamente el acceso a dispositivos entre los procesos y reducir
el tiempo de espera promedio para la terminación de E/S.
- Los diseñadores de SO implementan la planificación manteniendo
una cola de solicitudes para cada dispositivo, puede darle prioridad
a las solicitudes sensibles a demoras (memeria virtual).
68. Empleo de buffers
º buffer: área de memoria que
almacena datos mientras éstos
se transfieren entre dos
dispositivos o un dispositivo y
una aplicación.
º Razones para el empleo de
buffers:
1. Hacer frente a la falta de
correspondencia en velocidad
entre el productor y el
consumidor de un flujo de
datos.
69. 2. Lograr una adaptación entre dispositivos que
tienen diferentes tamaños de transferencia de datos
(fragmentación y reensamblaje de paquetes en la
red).
3. Soportar semántica de copiado para E/S de
aplicaciones.
70. Empleo de Cachés
- Caché: Región de memoria rápida que contiene copias de datos. El
acceso a la caché es más eficiente que el acceso a la original.
- Diferencia entre buffer y caché es que el primero puede contener la
única copia existente de un elemento de datos y una caché sólo
contiene en almacenamiento más rápido una copia de un elemento
que reside en alguna otra parte.
- El empleo de cachés y de buffers son dos funciones distintas, aunque
en ocasiones se puede utilizar una región de memoria para ambos
propósitos.
71. Spooling y reservación de dispositivos
• Spool: es un buffer que contien la salida para un dispositivo, como una
impresora, que no puede aceptar flujos de datos entercalados.
• El spooling es una forma en que los SO pueden coordinar la salida
concurrente.
• Reservación de un dispositivo.- proporciona acceso exclusivo a un dispositivo.
72. Manejo de Errores
Los dispositivos y las transferencias de E/S pueden fallar en
muchas formas, ya sea por razones transitorias o permanente.
Los SO pueden a menudo compensar eficazmente las fallas
transitorias.
Una llamada al sistema de E/S devolverá 1 bit de información
acerca del estado de la llamada, indicando ya sea un éxito o
fracaso.
El hardware puede proporcionar una información de error con
gran detalle, aunque los SO actuales no lo hacen tan detallado.
73. ESTRUCTURA DE DATOS DEL
KERNEL
El Kernel necesita mantener información de estado acerca del uso de
los componentes de E/S lo que realiza mediante tabla de archivos
abiertos, conexiones de red, estado de dispositivos de carácter,
etc…
Algunos SO utilizan métodos orientados a objetos y el paso de
mensajes para llevar a cabo la E/S.
El subsistema de E/S coordina una extensa colección de servicios,
que están disponibles para las aplicaciones y para otras partes del
kernel.
75. MANEJO DE LAS SOLICITUDES DE
E/S
Considere que se esta leyendo un archivo desde el disco para
un proceso:
Determine el dispositivo que pertenece a ese archivo.
Descifrar el nombre que representa a ese archivo.
Si los datos no están en el buffer, realizar una E/S física.
Asignar espacio para recibir datos y planificar E/S.
Realizar transferencia de datos
Determinar estado de solicitud
Retornar el control al proceso.
78. Objetivos de la Protección…….
Necesidad de impedir una violación maliciosa e
intencionada de una restricción de acceso por parte de
un usuario.
Garantizar que cada componente de programa activo
en un sistema utilice los recursos del sistema solo en
ciertas formas que sean coherentes con las políticas
establecidas.
79. Tomar en cuenta………
Los mecanismos de protección pueden mejorar la
fiabilidad detectando los errores latentes en las interfaces
definidas entre los distintos subsistemas componentes.
Un recurso no protegido puede no puede defenderse
frente al uso (o mal uso) por parte de un usuario no
autorizado o incompetente.
El papel de la protección en un sistema informático es proporcionar
un mecanismo para la imposición de las políticas que gobiernen el
uso de los recursos.
Los mecanismos son distintos de las políticas. Los
mecanismos determinan como sé llevará a algo a cabo,
las políticas deciden qué es lo que hay que hacer.
80. PRINCIPIOS DE LA PROTECCIÓN
• Principio del Mínimo Privilegio.- los programas los usuarios incluso a los
sistemas se les concedan únicamente los suficientes privilegios para llevar a cabo
sus tareas.
• Un SO que se ajuste al principio del mínimo privilegio implementará sus
características, programas, llamadas al sistema y estructuras de datos de
modo que el fallo o el compromiso de un componente provoquen un daño
mínimo.
• Los usuarios deberán crearse con una cuenta separada y con solo los
privilegios que ese usuario necesite.
• Ayuda a obtener un entorno informático más seguro.
81. DOMINIO DE LA PROTECCIÓN
• Un Sistema informático es una colección de procesos y objetos.
• Objetos Hardware (CPU, los segmentos de memoria, impresoras,
discos y unidades de cinta) y Objetos Software (archivos, programas y
procesos)
• A un proceso sólo se le debe permitir acceder a aquellos recursos
para los que tenga autorización .
• En un instante determinado, un proceso sólo puede acceder a
aquellos recursos que necesite actualmente para completar su tarea
(necesidad de conocer)
82. MATRIZ DE ACCESO
• El modelo de protección se puede contemplar de forma abstracta
como una matriz denominada matriz de acceso.
• Las filas de la matriz de acceso representan dominios y las columnas
representan objetos
83. REVOCACIÓN DE DERECHOS DE ACCESO
En ocasiones es necesario revocar derechos de acceso a los objetos
compartidos por diferentes usuarios. Diversas cuestiones acerca de la
revocación:
• Inmediata o Diferida: la revocación tiene lugar ahora o se produce
de forma diferida
• Selectiva o General: cuando se revoca un derecho de acceso a un
objeto afecta a todos los usuarios o se puede especificar un grupo.
• Parcial o Total: revocamos un subconjunto de los derechos o todos
los derechos.
• Temporal o Permanente: revocar el acceso de manera permanente
o revocar el acceso y obtenerlo de nuevo
84. Imposición de reglas basadas en el compilador
• Especificar el control de acceso deseado a un recurso compartido no
es otra cosa que realizar un enunciado declarativo acerca del recurso.
• Cuando se declara la protección junto con la definición de tipos, el
diseñador de cada subsistema puede especificar sus requisitos de
protección:
• Las necesidades de protección se declaran en lugar de
programarlas.
• Los requisitos de protección pueden enunciarse
independientemente de la funcionalidad proporcionada por el SO
concreto.
85. Imposición de reglas basadas en el compilador
¿ Cuáles son las ventajas relativas de imponer un mecanismo de
protección basándose en un Kernel en lugar del compilador?
Seguridad
Proporciona mayor grado de
seguridad del propio sistema de
protección
Menor grado de
seguridad
Flexibilidad
Existen límites en lo que
respecta al kernel a la hora de
implementar una política
definida por el usuario
Puede declararse la
política de protección e
imponerse según sea
necesario
Eficiencia
Mayor cuando esta soportada
por hardware
Menor
Kernel
Lenguaje de
Programación
86. Resumen
• Los sistemas informáticos contienen muchos objetos y éstos necesitan
protegerse frente a posibles malos usos.
• Un derecho de acceso es el permiso para realizar una operación sobre un
objeto.
• Un dominio es un conjunto de derechos de acceso.
• Los procesos se ejecutan en dominios y pueden usar cualquiera de los
derechos de acceso del dominio para acceder a los objetos y manipularlos.
• Durante su ciclo de vida un proceso puede estar limitado a un dominio de
protección o se le puede permitir que conmute de un dominio de protección a
otro.
• La matriz de acceso es un modelo de protección que proporciona un
mecanismo que no impone ninguna política concreta.
• UNIX proporciona protección de lectura, escritura y ejecución de manera
separada para el propietario, grupo y el público en general.
87. SEGURIDAD
“La seguridad no sólo significa tener un
sistema de protección adecuado sino
considerar el ambiente externo”
88. PROBLEMA DE LA SEGURIDAD
Las violaciones a la seguridad (o mal uso) del
sistema pueden clasificarse en: maliciosas
(intencionales) o accidentales.
Acceso mal intencionado:
Lectura no autorizada de datos (robo de
información).
Modificación no autorizada de datos.
Destrucción no autorizada de Datos.
89. PROBLEMA DE LA SEGURIDAD
Para proteger al Sistema, debemos tomar
medidas de seguridad en dos niveles:
Nivel Físico: los sitios que contienen los
sistemas de cómputo, protegerse físicamente.
Nivel Humano: los usuarios debe ser
investigados cuidadosamente a fin de reducir la
posibilidad de intrusos.
91. Contraseñas
Cuando el Usuario se identifica a sí mismo
mediante un id de usuario o un nombre de
cuenta, se le pide una contraseña.
Si la contraseña que proporciona corresponde
a la contraseña que tiene almacenad, el
sistema supone que el usuario es legítimo.
92. Vulnerabilidades de las
Contraseñas Dificultad de Mantenerlas Secretas
La seguridad se compromete si se adivinan, se
divulgan accidentalmente o se transfieren de un
usuario autorizado a un no autorizado.
El intruso conozca al usuario y tenga información
sobre él.
Fuerza Bruta.
Quedan expuestas como resultado de una vigilancia
visual o electrónica (ver o monitor de red).
Las contraseñas pueden ser generadas por el
sistemas (difíciles de recordar, usuarios la anotan en
93. Contraseñas Cifradas
Mantener la Contraseña Secreta algunos
sistemas como Linux, Cifran las contraseñas.
Un problema es que muchos Sistemas UNIX
sólo tratan los primeros 8 caracteres de la
contraseña como significativos.
Para evitar el método de cifrado de diccionario
algunos sistemas no permiten el uso de
palabras de diccionario como contraseñas.
Una técnica consiste en generar una contraseña
utilizando la primera letra de cada palabra de
94. AMENAZAS A PROGRAMAS
En un ambiente en el que un programa escrito
por un usuario puede ser usado por otro,
existe la posibilidad de un uso incorrecto, y dar
por resultado un comportamiento inesperado
95. Caballo de Troya
Mitología Griega
Un segmento de código que utilice
incorrectamente su ambiente se denomina
Caballo de Troya.
Programa que emula un programa de conexión
96. Puerta Trasera
El diseñador de un Programa o Sistema podría dejar
una agujero o una puerta secreta en el software que
sólo el diseño y sólo él es capaz de utilizar.
Pélicula War Games
Malversación de Fondos de Bancos
Para evitar hay que analizar todo el código fuente de
los componentes del sistema.
Los Sistemas de Sw pueden consistir de millones de
líneas de código este análisis no se realiza.
97. AMENAZAS AL SISTEMA
Gusanos: es un proceso que utiliza el
mecanismo de engendrar para atacar
violentamente el desempeño del sistema.
El gusano engendra copias de sí mismo,
consumiendo recursos del sistema y quizás
impidiendo su uso a los demás procesos.
En redes de Computadoras los gusanos son
capaces de autorreproducirse entre los
sistemas y así paralizar la red
99. MOTIVACIÓN Un sistemas distribuido es una colección de procesadores débilmente
acoplados interconectados a través de una red de comunicación.
Estos procesadores se denominan: sitios, nodos, máquinas,
computadores, host.
100. MOTIVACIÓN Hay cuatro razones para construir un sistema distribuido:
Compartición de recursos: Si hay varios nodos conectados entre
sí, un usuario en uno de los nodos puede utilizr los recursos
disponibles en otro.
Aceleracenión de cálculos: Si un deterimnado cálculo puede
dividirse en una serie de calculos menor envergadura que pueden
ejecutarse de forma concurrente, un sistema distribuido permitira
distribuir esos subcálculos entre los diversos nodo.
Fiabilidad: Si falla uno de los nodos, nodos restantes pueden
continuar operando.
Comunicación: Cuando hay varios sitios conectados entre sí
mediante una red de comunicación, los usuarios de los diferentes
nodos tienen la oportunidad de intercambiar información.
101. TIPOS DE SO DISTRIBUIDOS
Sistemas Operativos en red.
Sistemas Operativos distribuidos.
102. Sistemas Operativos en Red Proporciona un entorno en la que los usuarios pueden acceder a
recuros remotos iniciando una sesión en una máquina remota.
Inicio de Sesión:
Una función importante que permitir a los usuarios iniciar una
sesión remota. Internet proporciona el protocolo telnet para este
proposito.
telnet cs.yale.edu
Este comando permiti iniciar una sesión remota.
El proceso en la maquina remota solicitara un usuario y clave.
Una vez recibidad la información correcta el procesos actuara como
proxy para el usuario, que podrá realizar sus cálculos en la máquina
remota exactamente igual que cualquier usuario local.
103. Sistemas Operativos en RedTransferencia remota de archivos:
El protocolo ftp permite acceder a un sistema de archivos remotos
ftp cs.yale.edu
El programa pedira un usuario y clave para iniciar sesión
Tambien se puede especificar un usuario anónimo (usuario
anonymous y clave arbitrarea)
Comandos de ftp:
put: transfiere una archivos desde la máquina local a la máquina
remota.
get: transfiere un archivo desde la máquina remota a la máquina
local
ls / dir: enumerar los archivos situados en el directorio actual
cd: cambiar de directorio
104. Sistemas Operativos Distribuidos
Los usuarios acceden a recuros remotos de la misma forma que si lo
hicieran localmente.
Migración de datos
Una técnica de migración es transferir todos los datos remotos al
equipo local, una vez que ya no se necesiten, se devuelve una copia
del archivo al sitio remoto, aún si se ha hecho un pequeño cambio.
Otra técnica consiste en transferir la porción de datos que son
necesarios en ese momento y posteriormente se devolvera una copia de
esa porción.
105. Sistemas Operativos Distribuidos
Migración de Cálculos.
Supongamos que el proceso P quiere acceder a una archivo
situado en el nodo A y sacar un resumen de ese archivo.
Una técnica para ello es por medio de RPC, El proceso P invoca a
un procedimiento predefinido en el sitio A, ese procedimiento se
ejecutara de manera apropiada y luego devolvera el resultado a P.
Otra técnica es el envio de mensajes al sitio remoto. El proceso P
envía un mensaje al sitio A. El SO en el sitio A crea entonces un
proceso Q cuya función consiste en llevar a caba la tarea asignada.
Cuando el proceso Q termina su ejecución, devuelve el resultado a
P a través del sistema de mensajes.
106. Sistemas Operativos Distribuidos
Migración de Procesos.
Es una extensión lógica de la migarción de cálculos.
Cuando se inicia un proceso no siempre se ejecuta localmente, el
proceso completo o partes del mismo, pueden ejecutarce en
diferentes sitios.
Este sistema se puede emplear por diferentes razones:
Equilibrio de carga
Aceleración de cálculos
Preferencias de hardware
Preferencias de software
Acceso a datos
108. TOPOLOGÍA DE LA RED Se puede compara las distintas configuraciones son los siguientes
criterio.
Coste de instalación: Coste de enlazar fisicamente los nodos del
sistema
Coste de comunicación: Coste de tiempo y en dinero para enviar
un mensaje.
Disponibiliad: El gardo hasta ek que puede accederse a los datos
a pesar del fallo de algún enlace o nodo.
110. ESTRUCTURA DE COMUNICACIÓN
Estrategias de encaminamiento:
Encaminamiento fijo: Se especifica de antemano una ruta desde A
a B
Encaminamiento virutal: Se fija una ruta desde A hasta B mientras
dura una sesión
Encaminamiento dinámico: La ruta utilizada para enviar un mensaje
desde el sitio A a B se selecciona en el momento de seleccionar el
mensaje.
Estrategias de paquetes:
Generalmente los mensajes son de longitud variables. Para
simplificar el diseño se implementa las comunicicaciones mediante
mensajes de longiud fija denominados paquetes, tramas o
datagramas. Todo mensaje implementado en un único paquete
puede enviarse a su destino como un mensaje sin conexión.
111. ESTRUCTURA DE COMUNICACIÓN Estrategias de conexión
Una vez que los mensajes son capaces de alcanzar su destino, los
procesos pueden establecer sesiones de comunicación para
intercambiar información.
Comunicación de circuitos: Si dos procesos quieren comunicarce
establecen dos enlaces físicos permanentes.
Comunicación de mensajes: Si dos procesos quieren comunicarse
establecen un enlace temporal mientras dure la transferencia.
Comunicación de paquetes: Cada mensaje lógico puede dividirse
en una serie de paquetes. Cada paquete puede ser enviado a su
destino por separado y debe por tanto incluir una dirección origen y
destino a través de la red.
112. ESTRUCTURA DE COMUNICACIÓN Contienda
Esposible que varios sitios quieran transmitir información
simultameamente a través de un mismo enlace. Esta situación se
produce principalmente en redes anillo y de bus multiacceso. Por lo
que hay que establecer técnicas para evitar las colisiones repentinas.
CSMA/CD: Antes de transmitir un mensaje por el enlace el nodo
debe ponerse a la escucha para determinara si se esta transmitiendo
otro mesnaje, estas técnica se denomina detección de portadora con
acceso múltiple. Si el enlace esta libre puede transmitir caso
contrario debe esperar hasta que este libre.
Paso de testigo: Un testigo circula por el sistema. El sistio que
necesite transmitir información deberá esperar hasta que le llege el
testigo. Entonces, el nodo elimina el testigo y empieza a transmitir
sus mensajes.
113. PROTOCOLOS DE COMUNICACIÓN
Nivel físico
Nivel de enlace de datos
Nivel de red
Nivel de transporte
Nivel de sesión
Nivel de presentación
Nivel de Aplicación
114. ROBUSTEZ En un sistema distribuido puede haber fallas en un enlace, en un sitio
y la perdida de mensajes. Para garantizar la robustez del sistema,
podemos detectar todos esos fallos, reconfigurando el sisetma de forma
que el procesamiento pueda continuar y efectuar la correspondiente
recuperación conado se repare un sitio o enlace.
Detección de fallos
En un entorno sin memoria compartida no podemos diferenciar
entre fallos de enlace, de sitio o permidida de mensajes. Usualmente
lo único que se puede detectar es que se ha producido un fallo.
Para detectar que se ha producido un fallo de enlace y de sitio
podemos utilizar un procedimiento de contacto.
115. ROBUSTEZDetección de fallos
Supongamos que el sitio A y B tiene un enlace físico directo entre
ellos, Ambos envia un mensaje Estoy Funcionando. Si el sitio A no
recibe ese mensaje dentro de un periodo de tiempo predeterminado,
se puede sumir que el sitio B ha fallado, que el enlace entre A y B ha
fallado o que el mensaje se ha perdido.
Para diferenciar entre un fallo del enlace y el de sitio. Se puede
enviar otro mensaje ¿Estas funcionando? A través de otra ruta.
Cuando B reciba el mensaje respondera inmediatamente. Esta
respuesta le dice a A que el enlace directo entre A y B esta fallando.
Caso contrario puede darse la siguintes situaciones:
El sitio a fallado.
El enlace directo entre A y B a fallado.
La ruta alternativa a fallado.
El mensaje se ha perdido.
116. ROBUSTEZReconfiguración
En caso que se haya deteminado que se ha producido un fallo,
deberá iniciar un procedimiento que permita al sistema
reconfigurarse y continuar con su modo normal de operación.
Si ha fallado un enlace entre A y B, debe difindirse a todos los sitios
del sistema, para poder actualizar correspondientemente las
diversas tablas de encaminamiento.
Si el sistema cree que el sitio a fallado debe notofocar a todos los
sistemas, para que no intenten utilizar los servicios del sitio que ha
fallado.
Recuperación de fallos
Supongamis que el enlace ha fallado. Cuando se repare el enlace
entre A y B debe notificarse tanto a A como a B.
Supongamso que el sitio B ha fallado. Cuando se recupere deberá
notificarse a todos los sitios que ya está en funcionamiento de nuevo.