Resumen Operativosv2
Resumen Operativosv2
Resumen Operativosv2
Procesos:
Tienen un PCB que son los contadores , registros , planificacion , gestion y estado
del proceso ( info del proceso)
normalmente , el padre espera a que los hijos terminen , puede ser que el padre
termine y los hijos no , ahi se hace una terminacion en cascada , ya que todos
deben terminarse.
Comunicacion:
Sincronizacion:
Envio con bloqueo , el proceso que envia se bloquea hasta que el receptor o buzon
recibe el mensaje.
Envio sin bloqueo , manda el mensaje y sigue.
Recepcion con lboqueo , el receptor se bloquea hasta que hay un msj disponible.
Recepcion sin bloqueo , el receptor trae un mensaje valido o uno nulo.
Almacenamiento en buffer: los mensajes que se pasan , estan en una cola temporal.
La cola puede no exitir ( no hay almacenamiento) , ser limitada o ilimitada.
RMI , invocacion a metodos remotos : una hebra puede invocar un objeto que reside
en una locacion virtual. no le di mnucha bola a esto.
Hebras:
KLT y ULT.
KLT : hebras de kernel , las gestiona y soporte el mismo.
Hebras de usuario : el soporte lo dea el usuario.
bibliotecas de hebras:
Biblioteca en espacio de usuario : no teine soporte de del kernel , estrcturas de
datos y codigo de la bilbioteca esta en el usuario , invocar a una funcion de la
bilbioteca , es usar una funcion local y no una llamada al sistema.
Bibliteca de kernel : Codigo y estructuras en el SO . invocar algo de la
bbiblioteca de kernel = llamada al sistema. Ralentiza mucho.
Un fork puede duplciar todas las hebras o solo una hebra de un mismo proceso . Esto
depende de si hay dos fork que se diferencian de partre del SO.
Cancelacion de herbas:
asincronica , una herba pide que se termina otra , puede generar conflictos si
esta escribiendo datos o algo cuando se pide que se termine.
diferida : la herba se fija periordicamente si tiene que terminar , por lo que
termina ordenada.
Se�ales : se puede dar una se�al a todas las hebras del proceso , a una aplicable
para la se�al , a adeterminadas hebras o una herba especifica que se especializa en
recibir se�ales.
Se peude establecer unos datos especificos de hebras , para el caso de que solo se
quiere que una hebra tome el control de algo.
Se le puede dejar a la aplicacion que administre los LWP comoc rea conveniente.
El kernel avisa sobre los sucesos a la aplicacion con suprallamdas.
Planificacion CPU
Multiprogramacion : tener continuamente muchso proceso en ejecucion para maximizar
el uso de la CPU.
Cuando un proceso se pone en espera , la CPU esta inactiva , con la
multiprogamacion se usa ese tiempo para otro proceso y mantenre varios procesos a
la vez.
Normalmente el kernel desaloja una vez compeltada una llamada al sistema o cuando
se transifer eun bloque de E7S antes de hace run cambio de contexto.
Algoritmos de planifiacion:
FCFS : fifo
genera el efecto convoy : varios procesoss esperan a que un proceso de larga
duracion deje de usar la CPU. Es preferible dejar a los procesos mas cortos al
principio.
Es cooperativo.
Round robin :
Se asigna un cuanto de tiempo para los procesos y estos se corren ese cuanto de
tiempo. Puede ser que se libere la cPU voluntariamente si el proceso utiliza menos
del cuantum.
Desaloja los procesos que exceden el cuanto de tiempo. si hay n procesos cad
aproceso tiene 1/n de tiempo de procesador.
Si es muy largo , es muy parecido al FCFS , si es muy chico , se genera una
comparticion del procesador y da la apariencia que cada proceso tiene su
procesador.
Es conveniente que el cuanto sea grande , ya que si x ejemplo tenemos un proceso de
12 ciclos y el cuanto es de 6 y solo esta este , se genera un cambio de contexto al
pedo , ya que vuelve el mismo . Si el cuanto es de 12 , no genera cambio de
contexto al pedo.
colas multinivel:
Divide las colas de los proceso en varias colas disitntas de acuerdo a su funcion o
alguna propiedad de los procesos.
Cada cola tiene su algorimto de planifcacion. Ademas se hace una planificacion
sobre las colas ( la cola A puede tener mayor prioridad que la cola B).
Planificacion multiprocesador:
Equilibrador de carga: Puede ser que un procesador este a full mientras que otro no
, por lo que se equilibra la cargay se intenta distribuir equitativamente la carga
de trabajo.
Dos formas : Migracion comandada ( Una tarea epseicfica comprueba periodiamcanete
la carga en cada procesador y si encuentra desquielibrio , distribuye la carga de
los sobre cargados a los menos ocujpados o inactivos)
Migracion solicitada : Un procesador inactivo , extrae de uno ocupado una tarea que
esta en espera.
Pueden estar las dos formas al mismo tiempo.
Esto contrarresta los beneficios de la afinidad del procesador.
Multihebra simetrico:
PLanificacion de hebras:
El SO planifica KLT . las ULT son gestioandas por la biblioteca de hebras.
las ULT tiene ambito de contienda del proceso ( PCS) , ya que hebras de un mismo
proceso compiten por un proceso LWP.
LAs KLT tienen ambito de contienda del sistema (SCS) , ya que las hebras de kernel
compiten por el procesador.
Modelo determinista , se toma una carga de trabajo y se prueba con todos los
algoritmos y se ve cual es el mejor.
Sincronizacion:
seccion critica: parte del codigo en el que el proceso peude modificar variables
comunes , actualizar tablas o escribir archivos.
Dos procesos no pueden escribir su seccion critica al mismo tiempo.
La solucion debe satisfacer : Exlusion mutua ,
Progreso ( si la seccion critica esta disponible y varios quieren ejecutarla , solo
los que no esten ejecutando las secciones restantes pueden participar en al
decision de cual entra y esta decision nos e puede posponer indefinidamente)
Espera limitada:Hay un limite para las veces que otros procesos entren en la
secicon critica despues de que un proceso hizo la solicitud y antes de que haya
sido concedida ( ... )
Los semaforos requieren espera activa , osea el rpoceso que quiere entrar a una
region critica ocupada ejecuta un bucle en el codigo de entrada.
Un semaforo con cola de espera puede hacer que dos procesos esperen indenifidamente
a que pase algo que solo puede producirse por consecuencia de una operacion de los
otros procesos. ( el suceso es un signal) . Cuando se llega a este estado , hay
interbloqueo.
Tmb puede haber inanicion ( bloqueo indefinido) si se usa LIFO para la cola del
semaforo.
Deadlock - interbloqueo
Un conjunto de procesos esta en interbloqueo cuando todos los procesos del conjunto
esten esperando a que se produzxca un suceso que solo puede produciste como
resultado de la actividad de otro proceso del conjunto.
TRatamiento de interbloqueos:
Evasion asegurnado que nunca va a entrar en interbvloqueo , previniendolo.
Ignorar el itnerbloqueo
PRevencion:
Evitando alguna de las cuatro requisitos.
Retencion y esperA: se puede hacer , pidiendo que el proceso solicite todos los
recursos y se le esean asignadnos antes de ejecutarlo.( hayq ue asegurarse que lo
que solicitamos al prnicpio nos e va a cambiar , x ejemplo pedimos un archivo , lo
modificamos . Luego para laimpresora , pedimos el archivo de nuevo y la impresora ,
teniamos que habre liberado el archivo. Este pudo haberse modificado).
Otro es que permita solicitar recursos adicionales solo cuando no tenga nada
retenido. ( puede generar inanicion)
Estado seguro: se le puede asignar recursos a cada proceso en detemrinado orden sin
que se produzca Deadlock. Esto pasa si existe una secuencia segura. ( lo q reicne
dije).
Deteccion de deadlock: Puede haber deadlock , entonces se usa un algoritmo para ver
si lo hay y otro para recuperar el interbloqueo.
Un deadlock se produce solo cuando un proceso realiza una solciitud que no se puede
conceder de fomra inmediata . En caso extremo , corremos el algorimto de deteccion
siempre que pase eso.
El algoritmo de deteccion genera una gran sobrecarga del uso del procesador , por
eso se usa en intervalos mas grandes o cuando la CPU tiene baja utilizacion.
REcuperacion:Hay deadlock.
Se puede informar al operador para que haga algo de forma manual o se puede hacer
algo de forma automatica.
Se puede solucionar de dos formas : Interumpir uno o mas procesos para romper la
cadena de espera circular o desalojar algunso recursos de los procesos bloqueados.
Se puede interrumpir todos los procesos o ir viendo de a uno hasta que el ciclo se
termine.
Deadlock:
Es suficiente la espera circular cuando se forma un ciclo y cuando hay solo un
recurso de cada tipo.
Gestion de Memoria.
La cpu extrae instruccione sde la memoria de acuerdo con el contador del rpograma.
El acceso a memoria requiere muchos ciclos del reloj del procesador para poder
compeltarse , por lo que el procesador se detiene , porque no tiene los datos
requeridos para compeltar la isntruccion que se esta ejecutando.
Por eso se a�ade una memoria rapida entre la CPU y la memoria principal. La Cache.
Tmb itneresa la proteccion del SO de los psoibles accesos por aprte delso procesos
de los usuarios y tmb proteja a los usuarios de unos a otros. Esto es hecho x el
HW.
Se puede dar la proteccion del acceso a la memoria con un registro base , es decir
la memoria fisica legal y el registro limite , el tama�o del rango.
Los registros base y limite solo pueden ser cargados por el SO mediante
isntrucciones en modo kernel. Asis e evita que los usaurios cambien el contenido.
Los procesos del discoq eu estan esperando a ser cargados en memoria estan en la
cola de entrada.
Montaje estatico : las biltiocetas de lenguaje del sistema se tratna como otro
modulo objeto y son itnegrdas por el cargador dentro de la imagen binaria del
programa.
Cada pgroama de un sistmea tiene que incluir una copia de su biblitoeca de lenguaje
dentro de la imagen ejecutable. Asi se despercicia espacio de disco como memroia
prncipal.
Intercambio.
Los procesos pueden ser itnercambiados temporalmente , sacandolos de la meomria y
poniendolos en un almacen de respaldo y despues vlviendolso a llevar a memoria para
continaur la ejecucion.
Cada vez que un rpcoeso termine su tiempo de carga ,s e itnercmbia por otro
proceso. Idealmente se siempre debe haber un proceso en memoria listo para
ejecutarse . ( esto en RR).
En priordidades , se peude descargar el proceso de menor piriodad y poner el de
mayor. Cuando temrine el de mayor se puede itnrcambiar d enuevo por el que se habia
sacado.
Un proceso descargado se volvera a cargar en el mismo espacio de memoria que
ocupaba antes.(n normalmente) . Esto depende del metodo de reasignacion , si es en
tiempo de compilacion o de carga , si es asi ( ya que es dificl cambiarle el lugar
de memoria).
Si es en tiempo de ejcucion se peude mover , xq la direccion fisica se calcula en
tiempo de ejcucion.
Paginacion:
PAginacion : no hay fragmetnacion externa , todos los marcos libres pueden ser
asignados a un proceso.
Hay fragmetnacion interna , ya que el ultimo marco puede no estar completamente
lleno
Las operaciones de E/S de disco son mas eficientes cuanto mayor sea el numero de
datos transferido.
El uisuario ve la memoria como un unico esapcio que solo tiene ese programa.
La mayoria de los SO tienen una tabla de paginas para cada proceso , almacnenado un
puntero a la tabla de paginas en el PCB.
Osea varios programas pueden acceder por ejemplo al ejecutable del bloc de notas ,
pero cad aproceso tiene sus propios datos al respecto.
Paginacion jerarquica.
Al ser muy grande la tabla de paginas , se puede hacer una tabla de la tabla de
paginas , osea doble jerarquia , lo mismo con 3 o 4.
Esto sirve para reducir el espacio de la tabla de paginas . Pero muchas tablas de
paginas no es eficiente .
Se usa una tabla hash de paginas , donde el valor hash es el numero de pagina
virtual.
La entrada de la tabla hash tiene una lista de elmentos que tienen como valor hash
una misma ubicacion.
Al numero de pagina se le aplica la funcion hash , despues se usa ese valor para
buscarlo en la tabla hash. Si enceuntra correspondencia en la lista que esta en la
tabla hash, se utiliza el marco de la pagina que se encuentra para formar la
direccion fisica.
Si no es correspondiente , se exploiran las siguientes entradas hasta encontrar el
correspondiente numero de pagina virtual.
PAra aliviar esto , se puede unsar una tabla hash para limtiar la busquead a una
sola entrada de la tabla de paginas o a unas pocas entradas. Pero eso agrega una
lectura de memoria ams ( lectura de la tabla de hash y otra para la tabla de
paginas.
Igual antes se ve la TLB que el hash.
No se peude implementar la memoria compartida , porque solo hay una entrada virtual
para cada pagina fisica y una misma fisica no puede tener dos virtuales.
Segmentacion
Memoria virtual:
Cuando se tiene que cargar un proceso , el paginador hacer una estimacion de que
paginas van a ser usadas antes de bajar de nuevo el proceso.
Se sua un soprote de HW para distinguir las paginas que estan en memoria y las que
estan en disco . (bit valido - invalido).
Cuando el prgrama quiere acceder a una pagina que no esta en mmeoria , hay uan
interrupocion de fallo de pagina.
Paginacion bajo demanda pura : nunca se carga una pagina en memoria hasta que es
requerida.
localidad de referencia...
Afecta el rendimiento del sistema , ya que es mucho tiempo buscar cada pagina en
disco y traerla .
1 - servir la itnerrupcion de fallo de pagina 2- leer la pagina 3- reiniciar el
proceso.
Cuando se necesita un marco libre , se puede sacar un proceso entero con sus
paginas o se pueden sustituir paginas.
Sustitucion de paginas:
Si no hay un marco libre , se localiza uno que no este siendo usado y se libera. Se
puede liberar escribiendo su contenido en el espacio de intercambio y modficando la
tabla de paginas para indicar que esa pagina ya no esta en memoria.
Si no hay un marco libre se necesitan dos accesos , una para descargar la pagian y
otra para cargar la nueva.
Esto se puede reducir poniendo un bit de modificacion . Si se modifico la pagina ,
la misma debe ser descargada , si no se modifico significa que la pagian no fue
modificada desde que se leyo y se trajo de memoria , por lo que no se tiene que
escribir ya que lo que esta en el disco es lo mismo que esta en memoria.
LRU y Optimo no sufren de Belady , ya que son algritmos de pila ( algoritmo para el
que pued edemostrarse que el conjunto de apgians en memoria para n amrcos es
isempre un subjocnunto de paginas que habria en memoria con n+1 marcos).
Aca damos preferncia a las paginas que no han sido modificadas , para ahorrarse el
E7S de escribir.
No se usan mucho
Algunos programas especiales enceistan de una particion del disco para tratarla
como si fuera una matriz seucencial de bloques logicos , sin estructura de datos
propia de los sistemas de arhcivos , estos son discos sin formato. Las oepracioemns
E/S sobre ellos son E/S sin formato . Esto sigfnifica que puentea todos los
servicios del sistema de archivos. No siempre utilizan esto.
Asignacion de marcos:
Algotimo de asignacion :
El global es el que se sua mas , ya quie tiene mayor tasa de procesamiento del
ssistema debido a que la local puede perjudicar a un proceso al no teneer a su
disposicion otras paginas de memoria menos utilizadas.
Sobrepaginacion:
Cuando los procesos estan peleando por los marcos y estan realizando las cargas y
descargas de paginas a memoria , la cola de procesos preparados se encuentra vacia
y el planificador de largo plazo ve que la utilizacion del CPU es poca , entonces
mete otro proceso , que llega y pide mas paginas y se suma uno mas a la pelea.
Modelo de conjunto de trabajo: si una pagina esta siendo usada de forma activa , se
encuentra dentro del conjunto de trabajo.
El SO monitoriza el conjunto de trabajo de cada proceso y asigna a ese conjunto de
trbaajo los suficentes marcos como para satisfacer los requsitios de tama�o del
conjunto de trabajo. Si hay suficientes marcos , se inicia otro proceso.
Si la suma de conjunto de trabajos de los procesos supera el numero total de marcos
diposnibles , se suspende un proceso . Las paginas de ese proceso se descargan y
los marcos se reasignan a otros procesos.
Con esto se impide la sobrepaginacion y se mantiene el grado demultiprogramacion
con el mayor valro posible . Se optimiza la tasa de utilizacion de la CPU.
Lo jodido es saber cual es el conjunto de trabajo de cada proceso..
Si la CPU usa un mecanismo de sondeo para comprobar el estado del bit de control ,
viendo si el dispositivo esta listo , es una E/S programada .
Si no sondea el bit de control , sino que recibe una interrupcion cuando el
dispositivo esta listo , entonces es dirigida por interrupciones.
Asignacion de franjas:
una franja es una o mas paginas fisciamente contiguas. Una cache tiene una o mas
franjas y hay una cache por cada estructura de datos de kernel distitna.
Cada cache se rellena con objetos que sena instancias de la estructura de datos que
la cache representa. Por ejemplo la cache que representa semaforos , almacena
isntancias de semaforos.
El numero de objetos de la cache depende del tama�o de la franja asociada.
Con esto no se pierde memoria por fragmentacion ya que cada tipo de estructura de
datos del kernel tiene una cache asociada y cada cache tiene una o ams franjas que
estan divididas en segmentos cuyo tama�o coicnde con el de los obejtos que
representa.
Tambien las solciitudes de memoria se pueden satisfacer rapidamente , ya que los
oobjetos se crean de antemano y cuando este se libera vuelve a la cache para que se
le vuelve a cargar otro.
Otras consideraciones..
Tama�o de pagina:
Con un tama�o de pagina menor , se aprovecha de mejor forma la memoria y hay menos
fragmentacion interna .
Tambien con un tama�o de pagina menor , hay mejor resolucion , que permite usar
solo la memorai que sea ralmente necesaria. y asi se reduce la cantidad de
operaciones E/S y la cantidad totla de memoria asignada ( esto es xq la paginas se
asjutan con la localidad del programa que precisa ( la cantidad e paginas que posta
necesita)).
Tama�o de pagina grande : menor tiempo de E/S ya que a pesar de pasar mucha info ,
se pasa una sola vez y lo encuentra una sola vez en disco , a diferneica de mucha
veces en paginas chicas.
Tambien al haber paginas mas grandes , los tama�os de las tablas de paginas son
menores.
Se disminuyen de fallos de pagina , ya que hay menos paginas , pero de mayor
tama�o.
Alcance de TLB:incrementar tasa de aciertos = incrementar tama�o de la TLB , pero
es cara y consume mucha potencia.
el alcande es la cantidad de memorai accesible a partir del TLB y es el numero de
entrada por el tama�o de pagina , idealmente la TLB deberia almacenar el conjunto
de trabajo completo de un proceso.
Tambien si auemntnamos el tmaa�o de pagina , aumenta el alcance de la TLB , pero
hay mas fragmentacion.
Interbloqueo E/S:
.. no le encontre algo que valga la pena.
Tabla de archivos abiertos : tiene info sobre los archivos abiertos.. , cuando se
hace una operacion con un arhcivo , se espficia mediante un idnice a esta tabla ,
con lo que no hace falta explorar en el directorio.
Normalmente se tiene una tabla por cada proceso y una tabla global del sistema.
La tabla de cada proceso indica los archivos que abrio y los archivos apuntan a la
tabla global del sistema
La tabla global del sistema tiene : puntero de archivos , que marca la posicion
actual dentro del archivo , que es disitnto para cada proceso que este operando.
Cotnador de aperturas de archivo : cada vez que se abre se suma ,uan vez que se
cierran de aprte de todos los procesos y lelga a 0 el contador , se puede sacar de
la tabla .
UBicacion dentro del disco.
Derechos de acceso.
Metodos de acceso:
Estrucura de directorios:
Estrucura de almacneamiento :
Particiones , franjas , volumenes.
Cada volumen tiene un directorio de dispositivo o tabald e contenidos del volumen y
luego tiene los archivos. El directorio del dispositivo tiene la info de todos los
archivos del volumen , nomreb , ubicacion , tama�o , etc.
Directorio de unico nivel : tiene problemas ya que los archivos de mismo nombre
generarian conflicto.
Direcotrio de dos niveles , cada usuarios tiene su propio directorio de archivos
de usaurio. y antes de eso , cuando se inica un trabajo de usaurio , se explora el
MFD , master file directory , el cual esta indexado por el nombre de usuario o
numero de cuenta.
Estructura de arbol : se tiene una raiz y se va abriendo , se prohibe la
comaprticion de archivos o directorios.
Nombre de rutas absoluta : comienza en la raiz y sigue una ruta descendete hasta el
archivo espeicfiado , idnciando los nomres de los directorios que tiene la ruta.
Nombre de ruta relativo : define una ruta a partir del directorio actual.
Comparticion de archivos:
Modelo cliente servidor:el cliente accede a los archivos del servidor . Debe haber
autenticacion sobre quien entra al servidor.
En memoria se puede cargar : uan tabla de montaje que tiene info sobre el volumen
motnado ,
una cache de la estrucura de direcotrios , para los directorios que se acceden mas
seguido se accedan mas rapido.
Tabla global de archivos abiertos , que tiene una copia del FCB de cad aarchivo
abierto.
Tabla de archivos abierto de cada proceso , tiene un puntero a la entrada de la
entrada global de archivoa abiertos y otra infoa dicional.
Particiones y montaje :
puede haber discos sin formato , que se usan en los casos que no conviene usar un
sistema de archivos , como por ejemplo el espacio de itnercambio
O discos con formato , que normalmente tiene info sobre el arranque para el SO.
Implementacion de directorios :
Lista lineal : una lista lineal de nomrbes de archivos con punteros a lso bloques
de datos . Es facil de programar , pero requier emucho tiempo de eejecucion .
se tiene que explorar el directorio para asegurarse de que no haya un duplicado ,
cuando se crea un archivo.
Para localizar un arhcivo se requiere una busqueda lineal , normalmente se usa una
cache.
Tabla hash : se almacenan las entradas con una lista lineal , pero con la tabla
ahash , se toam un valor calcualdo a partir del nombre del archivo y devuelve un
puntero a la buicacion del nombre del archivo en la lista.
Reduce el tiempo de busqueda en el directorio , pero puede haber colisiones , donde
dos nombre de archivo me den el mismo puntero.
Es jodido tambien x el tama�o de la tabla hash , la funcion se calcula a partir del
tama�o de la tabla , si se agranda la tabla , se debe calcualr de nuevo la hash.
Tabla hash con desbordamiento encadanada , cada entrad apuede ser una lista
enlazada en luga de un valor individual y se peude resolver coliusiones sumando la
nueva entrada a la lista.
Igual esto es mas rapido que la lsita lineal.
Metodos de asignacion:
Asignacion contigua : cada archivo ocupa un conjunto de blqoues seguidos en disco.
Permite soportar el acceso directo como el secuencial , ya que si sabemos que
empieza en el valor B , podemos acceder al valor B+42 .
Es jodido encontrar espacio para un nuevo archivo . ( tecnicas de mejor ajsute ,
primer ajuste ).
Todos los algoritmos tienen fragmentacion externa ya que van a quedar huecos
vacios.
Se peude utilizar una compactacion para solucionarlo , pero la misma debe
realizarse cuando el sistma esta fuera de linea , osea que el sistema no tenga su
operacion normal. Ultimamente se puede hacer en linea.
Como saber cuanto va a ocupar el archivo ? es complicado ya que el archivo puede
ser mas grande de lo esperado . Una solucion es generar la isntruccion para ponerlo
y mandarle fallo , pero se conoce cuanto ocupa y se vuelve a ejecutar. No es
practico esto.
Otrosd a�aden un espacio contiguo llamado extension y asi los bloques del archivo
tienen un puntero a la extension.
Puede generar fragmentacion interna , ya que la extension puede ser mas grande de
lo encesitado.
Asignacion indexada:
Se agrupan lops putneros en un bl0oque indice.
Cada archivo tiene su bloque indice . La entrada I-esima del bloque idnice , apunta
al bloque I-esimo. Soporta el acceso directo. No sufre fragmentaicon interna ya qu
ese usan todos los bloques de disco.
Si sufre de fragmentacion itnerna , ya que quizas usamos un bloque indice para un
archivo que tiene 2 bloques nomas.
Que tama�o debe ocupar el bloque indice? tres formas :
Esquema enlazado : un bloque indice , ocupa un bloque , y se puede enlazar a varios
bloques indice para archivos grandes.
Indice multinuvle: Un bloque indice de primer nivel que aputana un conjunto de
blques indice de segundo nviel que aputnan a bloques de archivo , se puede ampliar
a mas niveles
Esquema combinado : bloques directors , bloques indirectos bloques doblemente
indirectos , bloques tirplemente indirectos.
Se peude usar un vector de bits (bitmap) . Cada bloque esta represando por un bit y
si esta elibre el bit es 1 , si esta ocupado , el bit es 0.
Es simplre y efecitvo a la hroa de localizar el priemr bloque libre del disco.
Caracteristica de HW que impone funcionalidad de SW.
Es ineficiente a menosq ues e mantetna el vector completo en memoria , lo cual en
discos grandes ocupa mucho.
Liberacion retardada : elmina una pagina del bufer cuando se solicita la pagina
siguiente , ya que las paginas anteriores no vovleran a a utilirzarse de nuevo
( probalbmente).
LEctura anticipada : se solicita una pagina , se lee y se almacena en cache tanto
esa pagian como varias pagina sucesivas. Asi se xtran de disco una vez y se ahorra
tiempo.
Recuperacion :
Comprobador de coherencia : compara los datos de escritura de directirios con lso
bloques de datos del disco y trata de corregir las incoherencias en el caso de un
fallo de la computadora.
Estructura de un disco:
bloque logico : undiad mas chicas de tranferencia.
Conexion de un disco :
conectado al host : se accede por puertos de E/S locales.
conectado a la red: se accede de forma remota . es menos eficiente y da menso
velocidad . las operacioens e/S consumen ancho de banda de red.
planificacion de disco:
Tiempo de busqueda : tiempo requerido para que el brazo del disco mueva los
cabezales hasta el cilindro que tiene el sector deseado.
Latencia rotacional : tiempo adicional necesario para que el disco rote y situe el
sector deseado bajo el cabezal de disco.
Ancho de banda : numero total de bytes trasnferidos en el tiempo total trnasucrrido
entre la priemra solicitud y lka terminacion de la ultima transferencia.
Planificacion First come , first serve. Primero que lelga , priemro servido
Planificacion SSTF , shortest seek tiume first , selecicona la solcitud que tiene
el menor tiempo de busqueda respecto a la posicion actual. Puede provcoar muerte
por inanicion.
Planificacion SCAN : algoritmo del ascensor , va desde el 0 al 199 ida y vuelta.
Planificacion C-SCAN va al extremo superior y vuelve inmediatanemten al inferior.
Planificacion LOOK : va de abajo a arriba , pero cuando llega al mas grande de los
pedidos , baja ( llega a 188 y no va hasta 199 , ahi baja).
Planificacion CLOOK : va hasta el mas grande de los pedidos y despues baja al menor
pedido disponible.
PLanificacion F-SCAN : se tienen dos colas , una de los pedidos a hacerse y otra de
pedidos proximos a realizarse. Mientras la primer cola se va realizando , se suman
pedidos a la cola de proximos . Cuando termina la de hacerse , la de prximos es la
de hacerse y se implemetna una de proximos nueva.
RAID:
Mejor fiabilidad con la redudnancia (mirroring) , mejores prestacioens con el
apralelismo ( data stripping) , distribucion de bandas a nivel de bit o bloque.
Raid 0 : tiene striping.
Raid 1 : tiene redundancia por cada disco.
Raid 0+1 : redundencia total + stripping.
con 0 +1 si falla un unico disco , la banda compelta deja de ser accesible ,
siendo accesible unicamentee la otra banda.
Con 1+0 , si falla un disco , solo ese disco deja de estar diposnible , pero su
pareja duplicada sigue operaiva , igual que los otros discos.
Raid 2 : requiere menos discos de redudnencia , se calcula con un codigo de
hamming.
Raid 3 : Paridad con entrelazado de bits. Mas barato ya que tiene 1 redundancia.
Tiene menos operacioens E/S ya que todos los discos tienen que participar en todas
la sosliciteudes.
RAID 4 : Paridad con entrelazado de bloque . No hay paralelismo entre los discos ,
cada disco es independiente.
Raid 5 : Paridad distribvuida con entrelazado de bloque , no hay un disco de
paridad , sino que se reparte entre los datos y la pardiad entre los discos . Un
bloque de paridad no puede almacenar paridad de un bloque del mismo disco.
Raid 5 : esquema de redundancia P+Q . Hay paridad doblemente distribuida en el
entrelazado de bloques . Tiene informacion redudnatne adicional que la 5.
Almacenamiento terciario:
...
Cuestiones de rendimiento :
Sistemas de E/S
Interrupcion:
La CPU comprueba su linea de solciitud de interrupcion despues de ejecutar cada
instruccion.
Cuando detecta que una controladora activo la se�al a traves de la linea , la CPU
guarda el estado actual y salta a la rutina de tratamiento de inrerupciones , la
cual determina la causa de la interrupcion y lleva a cabo el prodecimeinto
necesairo para la restauracion del estado y ejecuntra una instricion para vovler a
situar a la CPU al estado de ejcucion anterior a que se produjera la itnerrupcion.
Permite responder a un suceso asincronico.
Protecion E/S
Norlmamente para protegerrse de las E/S ilegales , el SO establece que las mismas
sean unicamente mediante llamdas al sistema.
Streams..blabla
Rendimiento
Cada interrupcion hace que el sistema realice un cambio de estado , realize la
rutina de interrupcion y restaure el estado.
Las E/S programdas pueden ser mas eficienes que las E/S dirigas por interrupcioens
si el numero de ciclos invertidos en las esperas activas no son excesivos.
Crear un hard link a ese archivo: ser�a otra entrada en el mismo u otro directorio
que apunta al inodo del archivo en cuesti�n. Si la entrada estuviera en el mismo
directorio, tendria que tener otro nombre. (Tendriamos entonces 2 entradas de
directorios que apuntan al mismo inodo).
Crear un soft link a ese archivo: ser�a un nuevo archivo de tipo "soft link" que en
su contenido tiene la ruta del archivo al que apunta. Esto implica un nuevo inodo
para ese nuevo archivo, y obviamente una nueva entrada de directorio que apunte a
ese inodo recientemente creado.(Tendr�amos entonces 2 entradas de directorios, cada
una apuntando a un inodo distinto).
De stallings:
Modelo de 5 estados:
Un proceso , uan vez que se bloqueo ,se puede suspender ( pasar al area de swap )
y queda como bloqeuado suspendido , de ahi se peude reactivar y volver al estado de
bloqueado O puede mantenerse en un estado LISTO- suspendido.
Tambien puede llegar a Listo - Suspendido desde el estado listo , ya que ahi se
suspende.
Tambien puede llegar de nuevo a Listo - suspendido.
De listo - suspendido , puede pasar a Listo , una vez que no hay mas procesos
listos en memoria.
Tambien puede ser que un proceso pase de Ejecutado a Listo-Suspendido.
Cambio de modo : cambiar de modo usuario a modo kernel , de forma que el codigo de
tratmiento de la interrupcion pueda incluir instruccions privilegiadas.
Productor consumidor:
Productor : bloquearse cuando al insertar el buffer , este esta lleno .
Desbloquearse cuando se extrajo un dato.
Consumidor : bloquearse cuando el bufer esta vacio . Desbloquearse cuando se
isnerto un dato.