Coloquio Flashcards

(177 cards)

1
Q

Que hace un sistema operativo?

A

Administra los recursos de hardware de un sistema de
computación para ofrecer servicios a sus usuarios.
Es un programa que controla la ejecucion de otros programas (aplicaciones). Debe perseguir 3 objetivos:
Eficiencia
Evolucion
Comodidad

Debe ofrecer servicios tales como: creacion de programas, ejecucion de programas, acceso a dispositivos de E/S, acceso controlado a los archivos.
Ademas, el SO debe proveer servicio de deteccion y respuesta a errores, como fallas de hardware o de software. Tambien debe proveer un sistema de contabilidad y monitoreo de recursos.

Es un sistema de control, que funciona dentro del mismo sistema que controla, y ademas abandona el control del sistema para dar lugar a las tareas de los usuarios

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Componentes de un sistema de computación

A

Procesador, Memoria principal, Dispositivos de E/S, Interconexión

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Registros del procesador

A

Visibles para el usuario: Al utilizarlos se reduce el acceso a la memoria principal.

De control y estado: Utilizados por el procesador para ejercer control sobre las operaciones y por rutinas del SO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Registros visibles

A

Se puede hacer referencia a estos registros (programador). Por ejemplo de datos, de direcciones, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Registros de direccion (forma parte de registros visibles para el usuario)

A

Registro indice: para formar direcciones fisicas a partir de logicas

Puntero de segmento: tambien se usa para formar direcciones

Puntero de pila: contiene direccion a extremo superior de la pila

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Registros de control y estado

A

PC (program counter): contiene direccion de memoria donde se almacena la proxima direccion a ejecutar

IR (instruction register): contiene ultima instruccion leida

PSW (program state word): muestra los codigos de condiciones, estado de interrupciones, privilegio de ejecucion, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Ciclo de instruccion

A

Procesador lee instruccion de memoria RAM que indica el PC, luego de esto el PC se incrementa. Procesador carga la instruccion en el IR, se interpreta y ejecuta, y el ciclo se repite.

Con interrupciones: antes de buscar una nueva instruccion el procesador verifica si hubo una interrupcion. Luego busca siguiente instruccion del programa o primera instruccion de la rutina de interrupcion, segun sea el caso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tipos de instruccion (CPU)

A

Transferencia procesador/memoria: se mueven datos desde registros a RAM y viceversa

Transferencia procesador E/S: se mueven datos desde el procesador a dispositivo E/S y viceversa

Manipulacion de datos: operaciones aritmeticas o logicas sobre datos en los registros

Control: instrucciones que alteran la secuencia de ejcucion, modificando PC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Interrupciones

A

Evento que interrumpe el flujo normal de instrucciones. Procesador guarda estado de sus registros y sirve la interrupcion. Luego reanuda su ejecucion donde la dejo. Esto tambien se usa para que el procesador multiplexe entre procesos.

Se transfiere el control desde el programa del usuario hacia el SO.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Tipos de interrupciones

A

De programa: generadas por el mismo procesador mientras ejecuta un programa. Desbordamiento, division por cero, etc.

De reloj: disparada por un contador de hardware

De E/S: generada por dispositivos externos: mouse, teclado, placa de red, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Interrupciones multiples

A

En estos casos pueden servirse de manera secuencial o por orden de prioridad.

Secuencial: se sirve la primera, inhabilitando servicio de interrupciones hasta terminar de servirla, y luego se continua.

Prioridad: si se esta sirviendo una interrupcion y llega otra de mayor prioridad, se interrumpe la actual y se sirve la de mayor prioridad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Multiprogramación

A

Ejecucion de multiples programas en simultaneo. Mientras un programa espera por E/S se ejecuta otro. Todo esto se hace con interrupciones.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Ejecucion de operaciones de E/S (tipos)

A

E/S programada: Procesador pide datos (lectura o escritura) y espera hasta que la operacion termine

E/S por interrupciones: Procesador pide datos (lectura o escritura), luego comienza a ejecutar otro programa hasta que el dispositvo interrumpe para avisar que termino

E/S por DMA (direct memory access): igual al anterior pero el dispositivo interrumpe cuando termina de copiar datos a memoria principal. De esta forma se libera al procesador de la tarea de mover los datos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

DMA (Direct memory access)

A

Sistema que permite a dispositivos de E/S acceder directamente a la memoria RAM, liberando al procesador de esta tarea

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jerarquia general de memoria

A

Al descender por la piramide el costo por bit se reduce, aumenta la capacidad, pero disminuye la velocidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cache de disco

A

Porcion de la memoria principal que se utiliza para guardar datos de la memoria secundaria, que se supone se utilizan frecuentemente, con el objetivo de ganar velocidad. Tambien se usa para juntar bloques de datos a escribir antes de iniciar tranferencia al disco

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Memoria cache

A

Es la misma idea que el cache de disco, pero esta se situa entre el CPU (registros) y la RAM. Se utiliza para guardar datos o instrucciones que el CPU usa con frecuencia. El SO desconoce esto, ya que se maneja por HW especifico. Cuando el CPU necesita un dato primero lo busca en la cache, y si no lo encuentra lo busca en memoria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Evolucion de los SO

A

Primera generacion (1945-55) Sistemas basados en valvulas concebidos de manera casi artesanal.

Segunda generacion (1955-65) Sistemas a base de transistores

Tercera genracion (1965-80) Se intenta mejorar la eficiencia de la produccion de sistemas, aparece multiprogramacion, se desarrolla UNIX y estandar POSIX

Cuarta generacion (1980-90…) Aparecen microcomputadoras o computadoras personales PC. Aparece MAC, windows, redes LAN, WAN, se desarrolla el kernel LINUX

Quinta generacion (1990-….) Evolucion de dispositivos moviles. IOS, Android, Windows, RIM (blackberry)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Multiprogramacion y Tiempo compartido

A

Multiprogramacion: multiples programas ocupando la memoria de manera simultanea y que se alternan para usar el CPU

Tiempo compartido: similar a multiprogramacion, pero con la diferencia de que soporta multipes sesiones interactivas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Atributos de SO modernos

A

Concepto de proceso, gestion de memoria y concepto de memoria virtual, seguridad en el manejo de la informacion, planificacion avanzada del uso de recursos, estructura modular del sistema

Otros atributos mas recientes:

MicroKernels: solo las funciones esenciales son ejecutadas por el kernel

Multithreading: para soportar procesadores con capacidad de ejecutar multiples threads

Multiprocesamiento simetrico: para soportar sistemas con multiples nucleos que comparten E/S y memoria

Sistemas operativos distribuidos: en base a multiples sistemas diferentes le ofrece al usuario uno unico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Problemas de la multiprogramacion

A

Sincronzacion incorrecta: rutinas que esperan señales, que pueden llegar duplicadas o no llegar

Fallos de exclusion mutua: accesos simultaneos y conflictivos a los recursos

Funcionamiento no deterministico: interferencias entre programas, dificil de depurar

Interbloqueos: dos o mas programas esperandose mutuamente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Concepto de proceso

A

Es una unidad de ejecucion constituida por:

Un programa ejcutable
Datos e instrucciones necesarios para el programa
Entorno o contexto de ejecucion para el programa, es decir informacion externa al programa que crea y mantiene el SO para administrar su ejecucion (informacion de estado y de control)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Avances en el manejo de memoria

A

Aislamiento de procesos, evita interferencias

Asignacion automatica y gestion de la memoria para los procesos de manera transparente

Proteccion y control de acceso, permite compartir datos entre programas de forma controlada

Almacenamiento de largo plazo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Memoria virtual

A

Permite a los programas utilizar y acceder a la memoria independientemente de su implementacion fisica. Aparecen conceptos de paginacion y segmentacion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Seguridad y proteccion de informacion
Los SO se enfocan en la disponbilidad, confidencialidad e integridad con respecto a la informacion y archivos
26
Planificacion y gestion de recursos
Se consideran factores tales como equidad en la reparticion de recursos, respuesta diferenciada basada en prioridades, eficiencia, entre otros
27
Traza
Es el listado de la secuencia de instrucciones que se ejecutan para un proceso particular
28
Modelos de estados y de colas para el manejo de procesos
Hay distintos modelos para representar los estados de los procesos, algunos mas simples que otros, buscar imagenes en las diapositivas
29
Creacion y terminacion de procesos
Creacion: nuevo usuario intenta acceder al sistema, SO genera un nuevo proceso para ofrecer un servicio, o un proceso puede crear otro, llamado proceso hijo. SO asigna id al proceso nuevo Define cuanto espacio va a ocupar el proceso, incluyendo bloque de control Inicializa bloque de control, stack, estado, etc Incluye el proceso en las tablas adecuadas Terminacion: Programa termina por si mismo, usuario desconecta su sesion, usuario termina la ejecucion de una app, o bien errores anormales
30
Procesos suspendidos
El CPU es tan rapido que puede suceder que la memoria este llena de procesos que esperan eventos. Para esto se suspenden los procesos, copiando su imagen al almacenamiento secundario, para poder cargar otro proceso en memoria. Asi surgen dos estados nuevos: bloqueado y suspendido, o listo y suspendido. Procesos pueden ser suspendidos por muchas razones: Intercambio: el SO necesita memoria para cargar otro proceso A pedido del usuario: usuario puede solicitar suspension de algun proceso Temporizacion: suspension por clock A pedido del padre: padre puede pedirle al SO que suspenda algun descendiente suyo
31
Estructuras de control del SO
Permiten al SO conocer el estado de los recursos y procesos del sistema: Tablas de memoria, tablas de E/S, Tablas de archivos
32
Tablas de memoria
Para seguir estado de memoria principal y virtual. Parte de la memoria esta reservada siempre para el SO. Se necesita la siguiente info: Asignacion de memoria principal y virtual a cada proceso Esquemas de proteccion de memoria Informacion de gestion de memoria virtual
33
Tablas de E/S y archivos
Para E/S el SO necesita conocer el estado de cada dispositivo: Disponible Ocupado Proceso al cual esta asignado Direcciones de memoria de destino u origen de las transferencias Tablas de almacenamiento secundario mantienen info de los archivos: Posicion en memoria secundaria Estado actual Atributos
34
Imagen de un proceso
Programa ejecutable Espacios de memoria donde se almacenan variables Stack del programa Bloque de control del proceso, administrado por SO Todo esto es la imagen del proceso
35
Tablas de procesos
Contienen: Ubicacion: SO debe saber donde esta la imagen del proceso. Puede estar completa o parcialmente en memoria principal o secundaria Identificacion: generalmente un numero unico que identifica al proceso, tambien se almacenan identificadores del proceso padre y el usuario que lo genero Informacion de control del proceso: info de estado y planificacion, prioridad, evento que se espera si esta bloqueado, comunicacion con otros procesos, manejo de memoria, recursos asignados
36
Gestion de procesos (modos de ejecucion)
Modos de ejecucion: modo kernel o sistema y modo usuario El modo usuario tiene restricciones: no puede leer registros de control, ni ejecutar instrucciones de manejo de memoria o interrupciones, etc. El objetivo el proteger estructuras criticas del SO de acceso indebido de porogramas de usuario. CPU intercambia estos modos segun distintos eventos
37
Cambio de proceso (posibles causas)
Disparo de interrupcion del clock: proceso consumio su tiempo asignado Interrupcion de E/S: SO actualiza estructuras de control y puede decidir cambiar de proceso Fallo de memoria: no es enrealidad una falla de hw, sino que una instruccion o dato no esta en memoria principal y hay que buscarlo en el disco. SO puede decidir cambiar de proceso mientras esto ocurre Cepos o trampas: error durante ejecucion de programa, SO toma el control y lo suspende o termina Llamada de sistema del proceso: se transfiere control al SO, y este puede cambiar de proceso Al cambiar de procesos se debe: guardar contexto del procesador actualizar bloque de control poner el proceso en la cola correspondiente seleccionar nuevo proceso a ejecutar actualizar estructuras etc.
38
Detalles sobre ejecucion del SO (kernel y funciones del SO)
Kernel se encuentra separado, no se considera un proceso. Muchas funciones del SO se encuentran dentro de los espacios de memorias compartida de los procesos, entonces al ejecutar estas funciones no se cambia de proceso, solo de modo
39
Cambio de modo
Mucho mas liviado que el cambio de proceso. Se guardan registros del CPU, se modifica el PC y segun lo que siga despues se guarda mas info o no
40
Seguridad
Privilegios de usuario limitados. Privilegios de administrador le permiten acceder y modificar todos los recursos. Los SO deben prevenir o detectar intentos de escalar privilegios de los usuarios.
41
Amenazas de seguridad para el SO y contramedidas
Intrusos: buscan acceso al sistema o mejorar privilegios actuales Malware parasito: porciones de programa que necesitan de otro para cumplir su funcion Malware independiente: son programas completos que se ejecutan por el SO Contramedidas: Anaizar eventos del sistema para buscar intrusos o malware, analisis de red
42
Procesos e hilos
Se puede decir que el proceso es un "supervisor" de hilos de ejecucion. El proceso se encarga de control de recursos, mientras que la ejecucion en si es a lo que generalmente se conoce como hilo. Un hilo es una secuencia de codigo en ejecucion dentro del contexto de un proceso. Un hilo no puede existir por si solo, siempre depende de un proceso que lo contiene. Un proceso puede tener multiples hilos. Cada hilo posee estado de ejecucion, su pila propia. El acceso a la memoria y recursos son los de su proceso, y los comparte con los demas hilos en ese proceso. Ver imagenes de diapos.
43
Beneficios de usar hilos
Crear hilos es mucho mas rapido que crear procesos. Lo mismo sucede para matarlos. Para el CPU es mas rapido conmutar entre hilos que entre procesos La comunicacion entre hilos es mas veloz ya que comparten memoria y archivos
44
Desventajas de usar hilos
Dado que comparten memoria, el acceso a recursos se debe sincronizar por parte del programador. Dificiles de testear y depurar. Si se abusa de la sincronizacion esta tiene un costo demasiado alto
45
Usos de hilos
Trabajo en primer y segundo plano Procesamiento asincrono Velocidad de ejecucion mayor En SO que soportan hilos la planificacion se hace a nivel de hilo, por lo que la info de estado de ejecucion se mantiene en estructuras dentro de los hilos Sin embargo hay acciones que afectan a todos los hilos, por lo que se manejan a nivel de proceso, como la terminacion o suspension de un proceso.
46
Estados de un hilo
Creacion: un hilo se crea al crear un proceso, luego el proceso puede crear mas hilos. Bloqueo Desbloqueo Terminacion
47
Nivel de existencia de hilos
Hilos a nivel de usuario: el kernel no conoce su existencia Procesos o aplicaciones administran hilos, el kernel solo gestiona procesos. Los hilos se manejan con alguna libreria que lo permita. Hilos a nivel de kernel: kernel conoce existencia de los hilos El kernel administra los procesos y sus hilos, la aplicacion no se encarga de administrar los hilos. Planificacion del uso del CPU se realiza por el kernel a nivel de thread Ventajas de hilos a nivel de usuario: independientes del SO, no se necesita el modo kernel para cambiar de un thread a otro, y la planificacion de hilos puede ser distinta segun la app Desventaja: si un thread hace llamada al sistema todo el proceso se bloquea Ventajas de hilos a nivel de kernel: rutinas del SO pueden ser multithread
48
Multiprocesadores
Se utilizan multiples computadoras normales para lograr capacidad de computo mayor. Arquitecturas mas populares: Multiprocesadores simetricos (SMP) y clusters
49
MIMD (multiple instructions, multiple data streams)
Si los procesadores tienen cada uno su memoria: clusters de computadoras Si los procesadores comparten memoria entonces hablamos de memoria compartida, para este caso tenemos varias opciones: SO independientes: Cada CPU con su SO y procesos, no se comparte memoria. Hay desbalance de carga entre los CPUs y memorias Maestro/esclavo: Un procesador maestro se dedica a planificacion mientras que los otros ejecutan procesos. Maestro puede generar cuello de botella. SMP: Todos los CPUs pueden realizar planificacion y ejecucion de procesos.
50
Consideraciones para SO con soporte SMP
Procesos concurrentes y simultaneos: rutinas del kernel deben ser reentrantes y estructuras de datos deben estar protegidas por la concurrencia Planificacion: tambien se deben evitar problemas de concurrencia. Sincronizacion: Acceso a recursos debe estar sincronzado Manejo de memoria: sistemas de paginacion deben coordinarse Confiabilidad y tolerancia a fallos: sistema debe seguir funcionando frente a falla de algun CPU
51
MicroKernels
Se busca reducir al maximo la cantidad de codigo que se ejecuta en modo kernel. Solo incluye servicios esenciales como gestion de interrupciones, E/S, entre otros. El resto de funciones se ejecutaran en modo usuario como servicios modulares. Esto provee mas flexibilidad. Imagen comparativa en diapos
52
Manejo de memoria
Es la tarea de subdividir la memoria para darle espacio a los distintos procesos. Esto se realiza dinamicamente. La idea es mantener la mayor cantidad de procesos en memoria para ocupar al CPU. Los requerimentos para implementar esto son la reubicacion, la proteccion, compartir memoria y organizacion logica
53
Reubicacion (manejo de memoria)
Al suspenderse un proceso y volver a cargarse en memoria, muy probablemente lo haga en una ubicacion distinta. El programador no sabe donde se ubica el proceso de manera dinamica ni sus cambios de posicion. El SO debe resolver la traduccion de direcciones relativas a direcciones fisicas en la memoria
54
Proteccion (manejo de memoria)
SO debe proteger espacio de memoria de cada proceso para que no se interfieran entre si. Esto es dinamico, no se puede controlar en compilacion. Se deben verificar todos los accesos a memoria para garantizar que estan en zonas permitidas. Se debe evitar que un proceso acceda a espacio de memoria del SO o de otro proceso. A este requisito lo satisface el hardware.
55
Compartir (manejo de memoria)
Debe estar la opcion de compartir memoria entre procesos, puede resultar mas eficiente en procesos que usan los mismos datos o instrucciones. Esto es un claro requerimiento
56
Organizacion logica (manejo de memoria)
Los programas se organizan en modulos. El SO debe reconocerlos, para poder escribir y compilar los modulos de manera independiente, como asi tambien agregar distintos grados de proteccion, o compartir modulos entre procesos
57
Particionado de memoria
Es la operacion que realiza el SO para dividir en partes la memoria, asignando un espacio a cada proceso. Estas particiones pueden ser fijas o dinamicas
58
Particiones fijas (memoria)
Particiones de igual capacidad. Cualquier proceso mas chico que la particion se puede cargar en memoria. Si todas estan ocupadas debe suspenderse algun proceso. El uso de memoria es muy ineficiente (procesos muy chicos desperdician memoria), ya que se produce fragmentacion interna (ver imagenes). Una solucion podria ser usar particiones fijas de diferentes tamaños, pero no resuelve del todo el problema. Esto evita mucho desperdicio, pero puede haber procesos sin cargar en memoria aun cuando esta tiene espacio libre suficiente.
59
Particiones dinamicas
Particiones variables en numero y capacidad. A cada proceso se le asigna exactamente la memoria necesaria. Luego de un tiempo la memoria se fragmenta externamente, reduciendo capacidad de aceptar nuevos procesos. Se puede resolver usando compactacion de memoria, pero esto genera overhead. Se debe usar algun algoritmo para reducir la frecuencia de compactacion. 3 ejemplos: best-fit, first-fit y next-fit
60
Algoritmos para manejo de particiones dinamicas en memoria
Best-fit First-fit Next-fit Colegas
61
Algoritmo Best-fit (particiones dinamicas en memoria)
Elige entre los espacios libres aquel que tiene la capacidad mas parecida a la que requiere el nuevo proceso. Genera memoria fragmentada en muchos espacios pequeños y tiene baja performance.
62
Algoritmo First-fit (particiones dinamicas en memoria)
Elige el primer espacio libre de memoria donde entre el nuevo proceso. Mas simple y rapido, pero genera fragmentacion al comienzo de la memoria
63
Algoritmo Next-fit (particiones dinamicas en memoria)
Elige el primer espacio libre donde entre el nuevo proceso pero buscando desde la posicion donde se cargo el proceso previo. Genera fragmentacion hacia el final de la memoria y requiere mas frecuencia de compactacion que first-fit
64
Algoritmo de Colegas (particiones dinamicas en memoria)
En este caso el espacio total de memoria se trata como un solo bloque incialmente. Si se realiza solicitud de espacio menor este se subdivide, y asi sucesivamente hasta encontrar el tamaño mas adecuando. Cuando hay dos bloques libres adyacentes de igual capacidad se funden en uno. Funciona coomo si fuera un arbol binario de busqueda para asignar el espacio en memoria (ver imagenes)
65
Direccion fisica, logica y relativa (memoria)
Direccion fisica: ubicacion real en memoria fisica Direccion logica: referencia a una ubicacion de memoria independiente de su asignacion real. Direccion relativa: tipo de direccion logica expresada como una ubicacion relativa a un punto conocido de la memoria. Generalmente los programas usan direcciones relativas a la del comienzo de programa.
66
Paginacion
Proceso que se realiza para reducir la fragmentacion interna y externa. Consiste en dividir la memoria en pedazos de igual capacidad, relativamente pequeña, llamados marcos. Lo mismo se hace con los procesos, dividiendolos en porciones de la misma capacidad que los marcos, llamados paginas. Cuando se carga un proceso, se asignan paginas del mismo a un conjunto de marcos libres (no siempre adyacentes). El SO mantiene una lista de paginas para cada proceso, que indica en que marco de la memoria se encuentra cada una. En los programas cada direccion se representa como un numero de pagina sumado a un deplazamientoa dentro de esta. Para simplificar la tarea de traduccion (direcciones logicas o relativas a fisicas) se suele usar paginas que tengan una capacidad de una potencia de dos
67
Segmentacion
Se utiliza para dividir programas en segmentos, organizando asi la informacion y datos con diferentes permisos para cada segmento. El compilador o el programador definen los segmentos. Al ejecutar el programa el SO arma una tabla de segmentos indicando el inicio de cada uno. A diferencia de la paginacion (que es invisible para el programador), la segmentacion si puede ser controlada por este.
68
Seguridad (memoria)
La memoria es un verctor comun de ataques. Se debe proteger contra accesos no autorizados. Se debe evitar el buffer overflow, que consiste en poner en un buffer mas informacion que su capacidad maxima, sobreescribiendo otra informacion adyacente a este. Esto sucede tipicamente como un error de programacion, y normalmente el SO termina el programa cuando esto sucede, ya que se sale de su espacio de memoria asignado.
69
Conjunto residente
Parte de un proceso que esta en la memoria, ya que no se carga todo el proceso, sino algunas paginas, y se cargan mas a medida que se necesitan. Esto permite cargar muchos procesos en memoria. Cuando un proceso requiere una pagina que no esta en memoria se produce un "fallo de memoria", el SO toma el control y mediante E/S carga la pagina faltante a memoria. Mientras tanto el SO cambia a otro proceso para que aproveche el tiempo
70
Hiperpaginacion
Cuando el SO necesita traer una nueva pagina a memoria debe liberar un marco ocupado, y existe el riesgo de eliminar una pagina que proximamente se necesitara. Si se da esto muy seguido el SO pierde mucho tiempo cargando paginas en memoria, perdiendo tiempo para ejecutar procesos. A esto se le llama hiperpaginacion.
71
Principio de cercania
Por lo general las referencias a datos e instrucciones de los programas en la memoria suelen juntarse en grupos. Las referencias se concentran en periodos cortos en una zona de memoria, luego se salta a otra, y asi sucesivamente. Con esto se puede predecir cuales paginas se necesitaran en un futuro cercano.
72
Tabla de paginas
So la mantiene actualizada para cada proceso. Cada entrada indica en que marco se encuentra cada pagina. Con un bit de control se indica si la pagina esta en memoria o no. Otro bit indica si fue modificada. Muchas veces los procesos son muy grandes, por lo que tienen muchas paginas, entonces sule convenir paginar las propias tablas de paginas, o implementar tablas de varios niveles de profundidad
73
Buffer de traduccion adelantada
Cada referencia a memoria puede generar dos accesos: uno para obtener la entrada de la tabla de paginas y otro para obtener el dato que se necesita. Entonces se puede utilizar el cache para almacenar las referencias a las paginas mas utilizadas, reduciendo las busquedas en memoria. El hardware primero busca la pagina referenciada en el TLB (cache), y si no la encuentra la busca en la tabla de paginas
74
Tamaño de pagina adecuado?
Reducir tamaño de pagina reduce fragmentacion interna, pero incrementa el tamaño de las tablas. Si las tablas son muy grandes puede que parte de estas no este en memoria. Todo esto genera mas fallos de pagina, por lo que se debe buscar un balance
75
Segmentacion y paginacion (comentario)
Espacio de direcciones se divide en segmentos a conveniencia del programador. Cada segmento es a su vez dividido en paginas. Si un segmento es menor que una pagina la ocupara por completo. El sistema combina ambos metodos de division para direccionar la memoria
76
Politicas de lectura (cargado de páginas en memoria)
A demanda: pagina se carga cuando se hace referencia a ella. Al cargar por primera vez el proceso habra muchos fallos de pagina, y luego se reduciran por principio de cercania Prepaging: Frente a un fallo de pagina se cargan varias consecutivas. Esto aprovecha cualidades de almacenamiento magnetico
77
Politicas de ubicacion y reemplazo (páginas en memoria)
Ubicacion: define el lugar en la memoria donde se deben ubicar datos que se cargan. en sistema con paginacion esto no tiene relevancia Reemplazo: decide que pagina reemplazar cuando toda la memoria esta ocupada. Se debe considerar manejo de conjunto residente y politica de reemplazo en si. Por principio de cercania se considera que paginas que no se referencian hace mucho tiempo son candidatas a reemplazarse algoritmos: Optimo LRU FIFO Clock Almacenamiento intermedio
78
Optimo (algoritmo de reemplazo de páginas)
No es aplicable en la realidad, es teorico. Supone que se conoce la secuencia de paginas que seran utilizadas, y reemplazar aquellas cuya proxima referenciacion es mas lejana.
79
Menos utilizado recientemente (LRU) (algoritmo de reemplazo de paginas)
Reemplaza la pagina que no ha sido referenciada desde hace mas tiempo. Sigue el principio de cercania. Muy eficiente pero costoso de implementar
80
Primero en entrar primero en salir (FIFO) (algoritmo de reemplazo de paginas)
Forma un buffer circular con los marcos asignados al proceso y va reemplazando las paginas en round robin. Reemplaza la pagina que ha estado en memoria mas tiempo. No es muy bueno pero es sencillo.
81
Reloj (algoritmo de reemplazo)
Se asocia bit de uso a cada marco. Al cargar pagina o referenciarla se pone en 1. Cuando hay que reemplazar se busca alguna que tenga un 0. Al buscar se ponen en 0 las que tenian 1
82
Almacenamiento intermedio (algoritmo de reemplazo)
Se crean dos listas de paginas y marcos, una de liberadas y otra de modificadas. Al reemplazar se elije una de la lista de liberadas. Al escribirse en disco las modificadas pasan a la otra lista. Al cargar una pagina primero se busca en las listas a ver si no se encuentra ya en memoria.
83
Manejo del conjunto residente, tamaño adecuado?
Tamaño del conjunto residente? Mientras menos memoria se le asigna a un proceso se pueden tener mas procesos en simultaneo en memoria, pero hay mayor probabilidad de fallos de pagina. Surgen dos opciones para la asignacion de marcos para un proceso (conjunto residente): Asignacion fija y variable
84
Asignacion fija (manejo de conj residente)
El numero de marcos se define al cargarse el proceso y luego no varia. Esta cantidad puede estar definida en general o por el tipo de proceso. Al haber fallo de pagina se reemplaza un marco del propio proceso. Tamaño del conj residentes es constante
85
Asignacion variable (manejo del conj residente)
El taño del conj residente es variable, en funcion de la frecuencia de los fallos de pagina. Es mas complejo porque requiere llevar una estadistica de cada proceso
86
Politicas de vaciado (cuando escribir en disco las paginas modificadas)
Vaciado a demanda: pagina se escribe cuando ha sido elegida para ser reemplazada. Puede generar esperas de pagina antes de cargar la requerida Vaciado previo: paginas modificadas se escriben en grupos independientemente de si han sido elegidas para su reemplazo. Puede escribir paginas innecesariamente Buffering: Se arman dos listas, una de paginas modificadas y otra de paginas sin modificar. Solo se reemplazaran las de la segunda lista.
87
Control de carga
Control de cantidad de procesos residentes en la memoria. Si es baja, pueden estar todos bloqueados en algun momento. SI es alta, entonces los conjuntos residentes son muy pequeños, generando hiperpaginacion
88
Suspension de procesos: cual suspender?
Procesos con menor prioridad, procesos con fallos de pagina, procesos con conjunto residente mas pequeño, proceso con mayor conjunto residente, procesos con la mayor ventana de ejecucion restante, etc.
89
Planificacion
El planificador se encarga de repartir el tiempo de procesador entre los procesos, cumpliendo requerimentos dados del sistema. Este trabajo se llama planificacion. El planificador debe repartir justamente el tiempo de CPU, evitar inanicion de procesos, y proveer la opcion de priorizar algun proceso cuando se requiera
90
Tipos de planificaciones
A largo plazo: Controla la creacion de procesos, es decir el grado de multiprogramacion. Debe decidir cuando el SO puede crear procesos, y cual de los trabajos a realizar se convertira en el proximo proceso. A mediano plazo: Afecta las decisiones de suspension de procesos (o llevarlos a memoria principal). A corto plazo: Se conoce como scheduler propiamente dicho. Se ejecuta al ocurrir un evento, como: interrupcion de clock o E/S, llamadas al SO, señales, etc.
91
Requerimentos de usuario vs de sistema para planificacion a corto plazo
Usuario: afectan a usuario, por ejemplo maximizar la cantidad de usuarios que experimentan un tiempo de respuesta menor a x segundos. Ej: tiempo de retorno (tpo entre creacion y finalizacion de proceso), tiempo de respuesta, limites, consistencia Sistema: mas especifico y tecnico, a nivel del SO, como por ejemplo un numero de procesos completados por unidad de tiempo que se debe cumplir. EJ: productividad, utilizacion, equitatividad, prioridades, recursos.
92
Prioridades (scheduler)
Scheduler debe elegir ejecutar procesos de mayor prioridad, pero evitando inanicion de procesos con menor prioridad. Ver imagenes de colas de prioridades
93
Politicas de planificacion preferentes vs no preferentes
Preferentes: proceso actualmente en ejecucion puede ser interrumpido y llevado al estado de listo. No preferentes: una vez que un proceso se esta ejecutando solo se detiene si termina o se bloquea.
94
Politicas de planificacion (procesos) vistas
Primero en llegar primero en servir Round robin Primero el mas corto Primero menor tiempo restante Primero mayor tasa de respuesta Realimentado Planificacion justa
95
Primero en llegar primero en servir (politica de planificacion)
Es un sistema de cola puro, no preferente, que favorece procesos intensivos en uso de CPU (ya que los deja terminar), procesos cortos esperan mucho
96
Round robin (politica de planificacion)
Es preferente, basado en un clock que interrumpe ejecucion. El proceso interrumpido se pone en cola de listos y espera su turno de nuevo. El problema que tiene es que un proceso puede requerir un poco mas de tiempo que el asignado por clock, entonces esperara toda una vuelta para terminar, siendo que originalmente le quedaba muy poco para terminar. Tambien puede ocurrir que el proceso termine mucho antes de su ventana de tiempo, generando tiempo muerto
97
Primero el mas corto (politica de planificacion)
No preferente, se elige para ejecutar el proceso con tiempo de procesamiento esperado mas corto. Puede generar inanicion de procesos largos, ademas se debe estimar duracion de cada proceso para decidir.
98
Primero menor tiempo restante (politica de planificacion)
Es una version preferente a primero el mas corto. Se debe estimar el tiempo de ejecucion restante de cada proceso para decidir.
99
Primero el de mayor tasa de respuesta (politica de planificacion)
Es no preferente. Elige el proceso de mayor R = (w+s)/s w: tiempo que el proceso ha estado esperando s: tiempo de servicio requerido por el proceso
100
Realimentado (politica de planificacion)
Tiene n colas de procesos. A medida que se le da tiempo de CPU a un proceso este pasa a la siguiente cola de menor prioridad. Gradualmente penaliza procesos que se estuvieron ejecutando por mas tiempo. Puede generar inanicion de procesos antiguos.
101
Planificacion justa (politica de planificacion)
Aplicaciones de usuarios son un conjunto de procesos o threads, entonces esta planificacion trabaja repartiendo tiempo de CPU a grupos de procesos, considerando prioridad relativa. Cada usuario afecta prioridad de su grupo de procesos.
102
Tiempo de respuesta
Tiempo que tarda el sistema en reaccionar ante una entrada. Obviamente se desea que sea despreciable siempre. Sin embargo lograr esto tiene un costo, generalmente asociado a potencia de calculo y requerimentos contrapuestos, ya que otorgarle respuesta rapida a un proceso se debe penalizar otro. En apps interactivas es muy importante que este tiempo sea bajo
103
Tiempo de respuesta de usuario y del sistema
Del usuario: tiempo que transcurre entre que el usuario recibe respuesta y genera nueva orden Del sistema: tiempo que transcurre entre que el usuario ingresa una orden y recibe una respuesta completa.
104
Clasificacion de dispositivos de E/S
Legibles por humano: imporesoras, teclados, pantallas, placas de sonido, etc. Legibles por maquina: memorias usb, sd, discos duros, sensores, camaras, etc. Comunicaciones: placas de red, modems, etc.
105
Variaciones entre dispositivos de E/S
Velocidad: puede haber varios ordenes de diferencia en velocidad Aplicacion: uso que se le va a dar al dispositivo influye en su software controlador. Complejidad del control: diferentes complejidades segun el dispositivo logicamente. Unidad de transferencia: flujo de bits o caracteres Representacion: distintos esquemas de codificacion usados por distintos dispositivos Condiciones de error: naturaleza de errores, como repoortarlos, entre otros difieren de dispositivo a dispositivo.
106
DMA (detalle)
Unidad DMA es capaz de imitar al CPU en el control de la memoria. CPU le envia al DMA la siguiente info: tipo de operacion, cual dispositivo de E/S usar, direccion inicial de memoria para operar, cantidad de palabras a leer/escribir. DMA avisa al CPU al terminar la operacion. Diagrama de DMA en diapo.
107
Objetivos del SO en cuanto a operaciones de E/S
Eficiencia, ya que estas operaciones son el mayor cuello de botella. Por esto se necesita multiprogramacion. Generalidad: poder manejar todos los dispositivos en una interfaz uniforme. Para esto se usa un diseño jerarquico (en capas), donde cada capa provee servicios a la superior.
108
Capas para dispositivo E/S simple que se comunica por stream de bytes
E/S logica: maneja comandos logicos como abrir, cerrar, escribir, leer E/S a dispositivo: operaciones de capa superior y datos se organizan y convierten a instrucciones mas detalladas y ordenes al controlador Control y planificacion: se realizan operaciones monitoreando estado e interactuando con el dispositivo.
109
Capas para almacenamiento secundario con filesystem
Directorios: nombres simbolicos se traducen a referencias y se interpretan operaciones del tipo crear, borrar, mover Sistema de archivos: trabaja con estructura logica de archivos y operaciones del tipo abrir, cerrar, leer, escribir Organizacion fisica: igual que con la RAM, referencias logicas a archivos se traducen a direcciones fisicas.
110
Almacenamiento intermedio (buffering)
Como las paginas no pueden suspenderse al hacer operacion de E/S (porque sino perderiamos la info), resulta ineficiente bloquear al proceso por cada transferencia. Entonces estas transferencias desde y hacia el dispositivo de E/S se realizan sobre paginas asignadas al SO, permitiendo suspender al proceso mientras se realiza la operacion. Esta estructura puede ser de un solo buffer, o de doble buffering (se escribe en uno y se lee el otro), o de buffering circular (se cargan de a poco y se procesan rapido)
111
Limites del buffering (E/S)
Cuando la demanda de operaciones de E/S es alta, eventualmente los buffers se van a llenar o vaciar, bloqueando los procesos. Sin embargo el uso de buffers mejora la respuesta del sistema en general.
112
Discos magneticos
Se utilizan mucho hoy en dia para el almacenamiento en nube, debido a su gran capacidad y bajo costo. Contienen un cabezal de lectura/escritura, que se mueve por sectores dentro de pistas, todo esto en un disco giratorio. Obviamente CPU y RAM son mucho mas veloces, por esto se intenta mejorar lo mas posible la eficiencia de estos discos. Imagen del timing en diapo.
113
Tiempo de acceso (disco magnetico)
tiempo de busqueda mas tiempo de retardo de giro. Es el tiempo que se tarda en posicionar el cabezal en el sector deseado. El tiempo de acceso es mucho mayor al de lectura propiamente dicho Tiempo de busqueda tiene dos partes: arranque inicial + posicionamiento en la pista. La demora para acceder a los datos esta en el orden de los milisegundos.
114
Fragmentacion en discos magneticos
Este efecto se da cuando los datos que se necesitan para la operacion de E/S no estan contiguos, aumentando el tiempo de acceso total a los datos. Por lo tanto se desea reducir al minimo este efecto. Ademas se pueden aplicar politicas de planificaion (planificar orden de recorrido del disco)
115
Politicas de planificacion de discos
Planifican el orden en que se visitaran los sectores que se tienen que leer/escribir Aleatoria FIFO Prioridad LIFO Mas cercano primero Scan C-Scan n-step-Scan
116
Politica de planificacion aleatoria (discos magneticos)
Performance mala, pero sirve de referencia para comparar con otras
117
Politica FIFO (discos magneticos)
Primero en entrar, primero en salir. Es equitativa para los procesos, pero cuando hay un numero grande de procesos se aproxima al caso aleatorio.
118
Politica por prioridad (discos magneticos)
Se asigna prioridades a los trabajos, busca minimizar el retardo para trabajos interactivos
119
Politica LIFO (discos magneticos)
Ultimo en entrar, primero en salir. Si la fragmentacion se mantiene baja, entonces minimiza el movimiento del brazo. Puede generar inanicion debido a que si se pierde la cabeza de linea puede no recuperarse
120
Politica el mas cercano primero (discos magneticos)
Elige el sector mas cercano al cabezal a partir de su posicion actual. Elige el minimo tiempo de busqueda, y rinde mejor que el FIFO.
121
Politica SCAN (discos magneticos)
Se define que el brazo solo se mueve en una direccion. Sirve pedidos cuyas pistas encuentra en el camino. Al final cambia de direccion y vuelve en sentido contrario. Favorece levemente pistas externas e internas.
122
Politica C-SCAN (discos magneticos)
Solo sirve operaciones en un sentido de movimiento. Cuando llega al final regresa al otro extremo sin servir datos, y vuelve a empezar. Mejora el desbalance de SCAN para pistas internas y externas.
123
Politica n-step-SCAN (discos magneticos)
Mantiene dos colas de pedidos de longitud N. Las colas se sirven por turnos usando SCAN. Mientras se sirve una cola los nuevos pedidos ingresan a la otra. Al terminar de servir una cola se procede con la otra.
124
Politicas de planificacion de disco en LINUX
Ascensor Deadline Con anticipacion Completamente justo No-op
125
Planificador del ascensor (planificacion de disco en LINUX)
Tiene una cola unica para lectura y escritura, que se mantiene ordenada continuamente. De esta forma el cabezal se mueve en una sola direccion. Ademas tiene condiciones: Si un pedido es en el mismo sector o uno adyacente a uno que se encuentra en cola entonces se funden en uno solo Si un pedido es viejo se agrega uno nuevo al final de la cola Si hay un lugar adecuado se inserta el pedido en el lugar correcto de la cola Si no hay lugar adecuado se coloca al final de la cola
126
Planificador de deadline (planificacion de disco en LINUX)
Similar al ascensor, pero ademas de colocar los pedidos en cola del ascensor los coloca en una FIFO de lectura o de escritura con tiempo limite. Esto ya que escritura no suele bloquear proceso, pero la lectura si, porque se necesita el dato para seguir.
127
Planificador con anticipacion (planificacion de disco en LINUX)
Busca favorecer situaciones donde vienen pedidos de lectura seguidos. Entonces el planificador espera un tiempo estimado luego de servir un pedido, para ver si llega un nuevo pedido a un lugar cercano, en ese caso lo sirve inmediatamente.
128
Planificador completamente justo (CFQ) (planificacion de disco en LINUX)
Mantiene cola de E/S para cada proceso, y atiende esas colas en round robin. Los pedidos en cada cola se ordenan, y se atiende un tiempo determinado a una cola y luego se cambia de cola. Si una cola se vacia se espera un poco antes de pasar a la otra (anticipacion)
129
Ventajas y desventajas de dispositivos de estado solido
Menor tamaño y peso, menor consumo, mas resistencia, mas velocidad y silencio. Las desventajas son su mayor costo, menor capacidad y vida util. Las celdas flash tienen vida util, por esto se suele controlar el disco para utilizar las celdas de manera pareja.
130
Planificador no-op (planificacion de disco en LINUX)
Mantiene cola de E/S para cada proceso. Planificador las atiende en round robin, pero los pedidos no se ordenan en las colas, se comportan como FIFO, lo que reduce el overhead del CPU
131
RAID
Redundant array of independient/inexpresive disks Es un conjunto de discos conectados al sistema que son considerados por este como uno solo. La info se distribuye entre los discos. Parte de la capacidad se usa para guardar info de redundancia, para resistir fallas de algun disco. Ademas se busca mejorar la performance usando paralelismo. La idea es reemplazar un disco caro de alto desempeño por un conjunto de discos baratos.
132
RAID 0
No es un RAID realmente, ya que no tiene redundancia. Permite incremento de velocidad al acceder a datos en paralelo. Datos se dividen en bandas y se distribuyen en los discos. Si falla un disco todo se pierde
133
RAID 1
Se incluye redundancia, simplemente duplicando todos los datos. Escritura rapida ya que se escribe en simultaneo en dos unidades. Se duplica el costo por bit almacenado, pero es tolerante a la falla de un disco, ya que este esta duplicado
134
RAID 2
Provee redundancia utilizando un codigo de Hamming a nivel de bit, por lo que la info se distribuye en los discos y la info de paridad tambien. Entonces la capacidad total sera de 4/7 de la suma de capacidades de las unidades (mejor que en RAID 1). Puede corregir errores de 1 disco y detectar errores en 2, pero necesita sincronizacion de cabezales.
135
RAID 3
Utiliza paridad a nivel de byte. Info se escribe secuencialmente en los discos para mejorar velocidades de escritura y lectura. paridad se almacena en un solo disco, usando XOR. Puede continuar funcionando tras el fallo de una unidad. ecuacion: X4 = X0 + X1 + X2 + X3
136
RAID 4
Las bandas son mayores y los accesos son independientes entre discos. Cuando se escribe una banda hay que escribir la correspondiente en el disco de paridad. Puede escribir paridad sin tener que leer los otros discos. Frente a cargas grandes de escritura el disco de paridad se vuelve un cuello de botella
137
RAID 5
No usa un disco de paridad, sino que la distribuye entre los discos, reduciendo el cuello de botella que tenia RAID 4. Tiene buena performance y tolera falla de un disco. Cuando hay una falla y se cambia un disco RAID 5 reconstruye los datos Debido a las grandes capacidades hoy en dia la reconstruccion al realizar un cambio de disco puede ser muy lenta.
138
RAID 6
Se agrega otro calculo independiente de paridad. Los bloques de paridad se almacenan repartidos entre los discos. Se necesitan dos discos extras para almacenar la paridad, pero puede tolerar falla de dos discos en simultaneo.
139
Politicas de reemplazo de bloques en cache de disco
Menos usado recientemente Menos referenciado
140
Menos usado recientemente (politica de reemplazo de bloques en cache de disco)
Reemplazar el bloque que ha estado en cache por la mayor cantidad de tiempo sin ser utilizado. Se implementa con una pila. Al referenciar un bloque se lo coloca en el tope de la pila. Al descartar un bloque se saca el del fondo.
141
Menos referenciado (politica de reemplazo de bloques en cache de disco)
Se descarta el bloque menos referenciado hasta el momento. Se implementa con contador para cada bloque, que se incrementa al referenciarlo. La desventaja es que un bloque que tuvo muchas referencias pero ya no se utilizara quedara mucho tiempo en la cache. Para mejorar esto se pueden usar distintas secciones para bloques nuevos y viejos, previniendo esta desventaja. Los contadores solo se incrementan para los bloques en la zona de viejos, previniendo contadores muy altos.
142
Propiedades de los archivos/sistema de archivos
El filesystem permite al usuario crear conjuntos de datos relacionados, llamados archivos, que poseen propiedades como: duracion en el tiempo (en memoria secundaria), ser compartibles, y posibilidad de guardarlos siguiendo estructuras
143
Operaciones que ofrecen los filesystems
crear, borrar, abrir, cerrar, leer, escribir
144
Estructura de los datos (filesystem)
Campo: unidad basica de informacion, que contiene un unico valor. Esta definido por su tipo de dato y su longitud. Registro: conjunto de campos relacionados entre si, que pueden ser considerados como una unidad para una aplicacion. Archivo: conjunto de registros similares o relacionados, que puede ser referenciado por un nombre, creado y borrado. Base de datos: conjunto de datos relacionados, donde las relaciones se muestran de manera explicita. Compuesta por uno o mas archivos.
145
Organizacion de archivos
La organizacion de archivos refiere a la estructuracion logica de los registros definida por la manera con la cual se accede a ellos. Algunos criterios para elegir una organizacion logica son: bajo tiempo de acceso, facilidad para la actualizacion, economia de espacio, mantenimiento simple, confiabilidad.
146
Formas de organizar informacion dentro de archivos
Pilas Archivo secuencial Archivo secuencial indexado Archivo indexado
147
Pilas (organizacion de info dentro de archivos)
Los datos se guardan en el orden que aparecen. Los registros pueden tener diferentes campos, y los campos pueden ser de distintos tamaños, por lo que cada uno debe ser descripto. Esta falta de estructura genera una busqueda lenta de un registro en particular.
148
Archivo secuencial (organizacion de info dentro de archivos)
Todos los registros respetan un formato fijo, son todos de igual longitud. Lo mismo sucede con los campos de los registros. Un campo de cada registro es el campo clave. Los registros se ordenan en funcion de este campo particular
149
Archivo secuencial indexado (organizacion de info dentro de archivos)
Archivo secuencial con dos agregados: un indice y un archivo de overflow. El indice permite buscar rapidamente registros particulares. El indice es un archivo secuencial con info de ubicacion de los registros. Ademas cada registro tiene un campo para apuntar al archivo de overflow. Periodicamente se reorganiza el archivo para vaciar el de overflow.
150
Archivo indexado (organizacion de info dentro de archivos)
Se generan multiples indices exhaustivos para cada tipo de campo existente en los registros. Se puede buscar por cada campo y no solo por el campo clave. Se utilizan cuando se desea rapidez en el acceso a la informacion.
151
Sistema de gestion de archivos (filesystem)
Software que provee servicios para utilizar los archivos. Objetivos generales: garantizar validez de los datos, optimizar desempeño, soportar variedad de dispositivos, generar una interfaz para los procesos, proveer soporte para multiples usuarios, etc. Debe permitir al usuario operar con los archivos, hacer copias de seguridad, mantener control sobre permisos, mover datos entre archivos, y asignarles nombres.
152
Capas del filesystem (de abajo hacia arriba)
Gestores de dispositivos (drivers) Sistema de archivos basico Supervisor basico de E/S Entrada y salida logica Metodo de acceso
153
Gestores de dispositivos (capas del filesystem)
Se conocen como drivers, se encargan de controlar el hardware, comunicandose directamente con los dispositivos. Son parte del SO.
154
Sistema de archivos basico (capas del filesystem)
Maneja la info del usuario a nivel de bloques de datos, y los almacena en buffers de memoria, sin comprender del todo su estructura.
155
Supervisor basico de E/S (capas del filesystem)
Responsable de E/S a nivel de archivo, genera y asigna buffers de E/S, y planifica accesos a dispositivos.
156
Entrada y salida logica (capas del filesystem)
Permite el acceso a los usuarios y los procesos a los registros de los archivos, con una interfaz basica. Tambien mantiene info sobre los archivos que esta procesando.
157
Metodo de acceso (capas del filesystem)
Capa mas cercana al usuario, que provee interfaz estandar entre apps y el resto del filesystem. Diferentes opciones reflejan distintas estructuras de archivos (pilas, secuenciales, indexados, etc)
158
Directorios
Se utilizan para organizar archivos, y mantener informacion sobre estos (ubicacion, propietarios, permisos). Es en si mismo un archivo, pero el usuario no accede a el de forma directa, sino con rutinas del SO. Contienen: nombre, tipo de archivo, y organizacion del archivo Proveen informacion de ubicacion: volumen (dispositivo), direccion de inicio, tamaño utilizado, tamaño maximo. Proveen control de acceso: propietario, acciones permitidas. Proveen informacion de uso: fecha de creacion, ultima lectura, ultima modificacion, etc.
159
Estructura de los directorios
Depende el filesystem. El usuario requiere ciertas operaciones en el directorio: buscar un archivo, crear o borrar archivos, listar archivos del directorio, etc. La forma mas simple es una lista de registros, uno para cada archivo. Pero en casos mas complejos (cantidad de archivos) conviene una estructura jerarquica (en forma de arbol).
160
Nombres de archivos
Estructura de arbol permite nombres duplicados, siempre y cuando esten los archivos en directorios diferentes.
161
Compartir archivos
En sistemas multiusuario se deben manejar derechos de acceso y gestion de archivos simultaneos. Derechos de acceso: ninguno, conocimiento, ejecucion, lectura, escritura, etc. Cada uno engloba al anterior. Acceso simultaneo: el SO puede bloquear acceso a archivo a otros usuarios mientras alguien lo esta usando. Se pueden bloquear registros individuales. Debe considerarse exclusion mutua e interbloqueos.
162
Agrupacion de registros
Registro: unidad logica base para manejar archivos Bloque: unidad base para operaciones E/S Los registros deben organizarse en bloques al momento de almacenar archivos. Si el archivo se procesa secuencialmente convienen bloques mas grandes. Si el procesamiento es aleatorio convienen bloques pequeños. Hay varios metodos de agrupacion de registros en bloques: Bloques fijos Longitud variable multi bloque Longitud variable simple bloque
163
Bloques fijos (agrupacion de registros en archivos)
Registros del mismo tamaño. Numero entero de registros por bloque. Hay un espacio sin usar al final del bloque
164
Longitud variable multi bloque (agrupacion de registros en archivos)
Registros de longitud variable, sin espacio desperdiciado. Hay registros que ocupan mas de un bloque (bloques de tamaño fijo).
165
Longitud variable bloque simple (agrupacion de registros en archivos)
Registros de longitud variable, pero con un numero entero de registros por bloque, con espacio sin utilizar al final del bloque (bloques fijos).
166
Gestion de almacenamiento secundario
SO debe adignar sectores del almacenamiento secundario a los archivos. Dos cuestiones a resolver: recordar ubicaciones de archivos y recordar que sectores estan libres. Al crear archivo, cuanto espacio se le asigna? Cuando se asigna mas espacio a un archivo, que tamaño agregar? Estructura de datos para llevar contabilidad de archivos?
167
Preasignacion vs asignacion dinamica (gestion de almacenamiento)
Preasignacion: requiere conocer el tamaño maximo del archivo al crearlo, y eso es dificil de lograr. Genera sobreestimacion del tamaño y desperdicio. Asignacion dinamica: Resuelve estos problemas, asignando dinamicamente el espacio necesario.
168
Tamaño de los bloques (gestion de almacenamiento)
Bloques contiguos mejoran performance. Nro grande de porciones aumenta tamaño de tablas de control. Porciones de tamaño fijo simplifica reubicacion de bloques. Tamaños variables o fijos pero pequeños minimiza el espacio desperdiciado por sobreasignacion. Bloques continuos de tamaño variable: mejor performance, poco desperdicio, tablas pequeñas. Dificil de reusar el espacio liberado Bloques pequeños: provee mas flexibilidad, pero se pierde contiguidad y se necesitan tablas mas grandes. Cualquier alternativa es compatible con preasignacion y asignacion dinamica.
169
Metodos de asignacion de archivos en almacenamiento secundario
Asignacion contigua Asignacion encadenada Asignacion indexada
170
Asignacion contigua (metodos de asignacion de archivos)
Se le asigna un conjunto de sectores al momento de la creacion, la tabla de asignacion solo necesita incluir el bloque inicial y el tamaño de bloques del archivo. Se puede buscar un bloque particular de manera directa.
171
Asignacion encadenada (metodos de asignacion de archivos)
El espacio se asigna dinamicamente. Cada bloque indica cual es el siguiente. La tabla solo indica el bloque inicial y el tamaño del archivo. No tiene fragmentacion y es facil asignar mas espacio, pero si hay muchos bloques el acceso a los del final se vuelve lento (como una lista enlazada)
172
Asignacion indexada (metodos de asignacion de archivos)
Se genera un indice con una entrada para cada porcion del archivo, indicando su ubicacion. El indice suele ser parte del mismo archivo, y la tabla de asignacion solo apunta al indice. Se puede usar con asignacion variable o fija.
173
Gestion del espacio libre (almacenamiento)
Para implementar cualquier metodo de asignacion se necesita saber los bloques libres. Esto se puede hacer con una tabla de asignacion de disco que lleve la cuenta de los bloques libres en todo momento. Por ej: Tablas de bits Porciones libres encadenadas Indexacion Lista de bloques libres
174
Tablas de bits (gestion de espacio libre en almacenamiento)
Se genera un vector que contiene un bit representando cada bloque del almacenamiento secundario. 0 indica libre, 1 indica ocupado. Si el dispositivo es de mucha capacidad la busqueda en el vector puede ser lenta.
175
Porciones libres encadenadas (gestion de espacio libre en almacenamiento)
Se utilizan los propios bloques libres para guardar la informacion. Se guardan punteros al proximo bloque libre en cada uno. Solo se necesita conocer el primero. Es lento para liberar espacio ya que hay que reasignar los punteros.
176
Indexacion (gestion de espacio libre en almacenamiento)
Considera al espacio libre como un archivo mas. Utiliza la indexacion como en los archivos pero para los bloques libres.
177
Lista de bloques libres (gestion de espacio libre en almacenamiento)
Cada bloque es identificado con un numero, y se mantiene en el dispositivo una lista con todos los bloques libres, y solo se requiere un porcion de esa lista en memoria para saber espacios libres.