UTNianos

Versión completa: [Pedido] Final SisOp 2015 02 24
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Hola Gente!
Alguno rindió el final de ayer Martes 24/02/15 , como les fue?
Que tomaron?
Alguno lo puede subir?
Muchas gracias.
Saludos!!
Ale.

Off-topic:
A la noche lo subo al campus =)
Buenos dias, queria consultar sobre la parte practica de este final,

1)
llego a que el algorimo de reemplazo que se puede usar es FIFO y Clock, LRU
4 4 4 4 4 4 1 1 1
- - 3 3 3 3 3 4 4
- - - 7 7 7 7 7 0

con el algoritmo optimo llego a
4 4 4 4 4 4 4 4 4
- - 3 3 3 3 1 1 1
- - - 7 7 7 7 7 0
2)
puede ser que la matriz de necesidad quede
R1,R2,R3
P1: |2,1,2 |
P2: |1,1,1 |
P3: |1,1,1 |
NECESIDAD

R1,R2,R3
|3,3,3|
TOTALES

R1,R2,R3
|1,1,1|
DISPONIBLES

entonces resolviendo llego a que la secuencia P2,P3,P1 llega a un estado inseguro porque no alcanzan los recursos para satisfacer a P1(tiene 1 instancia de R1 y necesita 2)


gracias de antemano,

Saludos!
en el punto 1 yo puse que clock y clock mejorado no se podia porque faltaba saber donde estaba el puntero.

el optimo se llegaba a otro estado final.

y fifo y lru se podian siempre y cuando se den ciertas condiciones.

en lru que la pagina 0 este hace mas tiempo en memoria que la pagina 3.

y en fifo que haya entrado en este orden: 2-0-3

los VoF me quedaron:

1- Falso: si habia mas lugar en el disco q no estaba siendo utilizado, con fat32 se podrian direcccionar.

2- Verdadero: no hay FE en paginacion

3- Falso: se loquean los marcos

4- Falso

5- Verdadero

Nose si estarán bien..
el v/f lo respondí así



1) falso, fat16 admite 2^16-1 clusters y fat32 hasta 2^32-1 clusters ergo permite direccionar más espacio

2) falso, buddy system no tiene fragmentación externa (o muy poca) pero tiene mucha interna.

3) verdadero si es por DMA, se asigna un bit que define si la página puede ser descargada o no (creo que la puse mal porque decía la unica forma y creo que había otra forma más pero no la recordaba

4) falso, no finaliza el proceso, el SO genera una interrupción

5) verdadero, los klt no bloquean todo el proceso al ir a una E/S, y son menos portables que un ULT ya que este último podría encapsularse en una librería,mientras que el KLT es propio del SO.

B1 puse que los algoritmos podían ser FIFO o LRU, y que no podían ser Clock o Clock mejorado

para el B2 puse que cualquier pedido generaría estado inseguro (seguro lo puse mal porque no recordaba el algoritmo del banquero) y en la parte b puse que si P1 pide (1,1,1) se le será negado por generar estado inseguro.
Buenas, tengo 2 consultas.

1) Por que el 4 del VoF dicen que es falso? seguro que no se detiene la ejecución? no encuentro en los libros nada al respecto, pero me parece medio raro que el SO se pueda reponer de intentar ejecutar una instrucción privilegiada sin permisos. Si lanza una interrupción, que pasa después de que corre la rutina de atención de esa interrupcion? Sigue el programa? Probablemente no tenga lo que quiso..

2) En el B1 yo pienso que sí puede ser clock. Si bien hay que hacer concesiones, como puso HernanAlbo, creo que si el puntero estaba en el 2 y seguian el 0 y el 3 respectivamente, el clock podría haber sido uno de los utilizados, ya que los 3 arrancan con bit de uso en 1 y al estar todos igual, sería como FIFO

Por otro lado, estoy de acuerdo con Vallo en el B2 en que cualquier petición que haga el P1 dejaría al sistema en estado inseguro porque no puede cumplir la necesidad de ningún proceso (todos tienen 1 de cada uno al menos)

Espero sus respuestas, estoy preparando el final para la semana que viene así que puede que alguna sea una pregunta boluda =D
Saludos!
En el 4to del VoF. La terminologia depende un poco del SO que se este usando.

En nuestra bibliografia podes ver la pag 17 de Silber.

En lineas Grales:
http://en.wikipedia.org/wiki/General_protection_fault

En el mundo MS:
https://msdn.microsoft.com/en-us/library...s.85).aspx

Aca hay algo mas simple:

http://minnie.tuhs.org/CompArch/Lectures/week05.html

7.1 Exceptions to Inform of User-Mode Violations

Exceptions are caused by the program when it performs something illegal. Just like an interrupt, an exception can occur at any time.
Rather than coming from the program as with a system call, the CPU detects the illegal action and sends an exception to itself.
Figs/intexcepsyscalls.gif
Each CPU is designed to detect certain illegal actions. Examples are:
illegal maths operations: divide by zero, overflow.
data alignment issues: misaligned mutibyte data reads or writes.
invalid memory access: access to memory which does not exist.
Exceptions can also be used to detect when a user-mode program attempts to perform an operation which is kernel-mode only, e.g.
access to memory locations which are only available in kernel mode, e.g. the device register locations.
attempt to perform certain CPU instructions which can only be performed in kernel mode.
As with the other illegal actions, these cause an exception which diverts the CPU to kernel mode to deal with the problem, usually by terminating the running program.

Osea, resumiendo, el HW detecta la violacion y tira una exception, tu duda tiene sentido, evidentemente el proceso necesita el recurso para correr, por lo que si vos no handleaste la exception con un failover apropiado el SO dice, a ver este mono quiere este recurso en este modo no lo tiene disponible, Le tiro esta exception, si no me aviso explicitamente que hacer en estos casos Muere.
Podria pasar que tu proceso pueda seguir corriendo sin ese acceso y que entonces decidas manejar diferente esa exception... Mucho sentido no tiene desde el punto de vista del programador cuando codea, porque si sabes que esa instruccion puede ser privilegiada o usas el syscall necesario para que se cambie al modo correcto y corra o no la usas... si no sabes si es privilegiada te fijas antes de compilarlo =P
Desde el SO podría tener mas sentido si vas a administrar esa logica que hacer con los errores de modo que te tire el HW y los procesos asociados.
Hola gente, yo aprobé con ese final, me saque 8, la verdad ni idea que me habré equivocado, dejo mi resolución más o menos como me acuerdo que puse:

A))
1) falso: puse que ya al ser diferente el tamaño de las tablas ya el espacio direccionable iba a cambiar
2) falso: la paginación con memoria virtual no tiene fragmentación externa, tiene interna
3) falso: si la pagina fue sacada de memoria principal generaría un page fault y seria reingresada en la memoria tomándola del disco
4) falso: puse que el procesador valida el modo de operación, si no es el correcto arroja una excepción que es tomada por el SO
5) verdadero: los KLT son mas flexibles ya que al bloquear un hilo no bloquea todo el proceso y los ULT son mas portables al ser ejecutados siempre de la misma forma por su librería

B))
1) con las direcciones hexadecimales sacabas que los frames eran 4, 7 y 3. puse que se podia con FIFO, LRU, CLOCK. por lo que me comentaron gente afuera después de rendir, con OPTIMO y CLOCK MEJORADO no se podía

2) la tabla de necesidad quedaba como dijeron arriba (P1: 2,1,2; P2: 1,1,1; P3: 1,1,1). por lo tanto:
a) no se puede otorgar ningún pedido correctamente, ya que no se le puede dar ninguna instancia de ningún recurso porque se generaría un estado inseguro
b) cualquier pedido seria denegado, ej: 1,0,0 ; 0,1,0 ; 0,0,1 ; 1,1,0 ; etc.
(26-02-2015 10:33)patomvargas escribió: [ -> ]Buenos dias, queria consultar sobre la parte practica de este final,

1)
llego a que el algorimo de reemplazo que se puede usar es FIFO y Clock, LRU
4 4 4 4 4 4 1 1 1
- - 3 3 3 3 3 4 4
- - - 7 7 7 7 7 0

con el algoritmo optimo llego a
4 4 4 4 4 4 4 4 4
- - 3 3 3 3 1 1 1
- - - 7 7 7 7 7 0
2)
puede ser que la matriz de necesidad quede
R1,R2,R3
P1: |2,1,2 |
P2: |1,1,1 |
P3: |1,1,1 |
NECESIDAD

R1,R2,R3
|3,3,3|
TOTALES

R1,R2,R3
|1,1,1|
DISPONIBLES

entonces resolviendo llego a que la secuencia P2,P3,P1 llega a un estado inseguro porque no alcanzan los recursos para satisfacer a P1(tiene 1 instancia de R1 y necesita 2)


gracias de antemano,

Saludos!

Haciendo la secuencia P2,P3,P1 me da estado seguro, fijate que quizas este mal una cuenta, satisfaciendo P2 me queda 0 0 0, cuando sale P2, queda 1 2 2, entra P3 y queda en 0 1 1, sale P3 y queda en 2 2 3, entra P1 queda en 0 1 1, y sale P1 y queda 3 3 3.

Haciendo la secuencia P3,P2,P1 tambien estado seguro, entra P3 queda 0 0 0, sale y deja 2 1 2, entra P2 queda 1 0 1, sale y deja 2 2 3, entra P1 queda 0 0 1 y sale P1 y deja 3 3 3

Haciendo la secuencia P3,P1,P2 tambien estado seguro, entra P3 queda 0 0 0, sale y deja 2 1 2, entra P1 queda 0 0 0, sale y deja 3 2 2, entra P2 queda 2 1 1, sale y deja 3 3 3...

Me da que todo deja estado seguro...

Tengo las mismas matrices y todo que vos al principio, lo que hice fue que cuando sale el proceso, libera lo que le otorgue como pedido futuro y lo que tenia asignado, es decir, lo que quedaron de recursos disponibles, le sumo lo asignado y lo que le asigne yo.
Para 1)
Solo se puede:
FIFO si la cola estaba 2-0-3
LRU si las referencias fueron 2-0-3

Ni clock ni clock mejorado se pueden ya que, el puntero no puede estar en 2 y como estan todas en 1. Esta en 4 o 7 y nunca llegar a esa tabla final.
Optimo tampoco, por que en el frame 4 nunca va a poder estar la pag 4 ya que la pag 0 no se va a sustituir
Buenas alguien me puede explicar el primero de la practica? yo no llego con las direcciones hexadecimales a que los frames son 4,7 y 3 a mi me da la primer direccion: 0843h me da 0000100001000011 uso 5 bits para la pagina me da 00001 es decir que es la pagina 1 y si me fijo en la tabla tiene el frame 4, la segunda direccion: 2122h me da 0010000100100010 uso 5 bits para la pagina me da 00100 es decir que es la pagina 4 que si me fijo en la tabla tiene el frame 7 y la ultima direccion: 027Ah me da 0000001001111010 agarro los primeros 5 bits para la pagina me da la pagina 0 y si me fijo en la tabla tiene el FRAME 4 NO EL 3 NUNCA ME DA EL FRAME 3 .... primero tengo ese problema y despues si me diera el frame 3 nose como seguir. Gracias
Hola!!!
Respecto al B1:
A mí me dio que se llega por FIFO, por LRU (suponiendo que el orden de usadas anteriores era 2,0,3) y CLOCK (suponiendo que el puntero se encontraba en 2).
Saludos!!
(31-05-2015 18:28)CarooLina escribió: [ -> ]Para 1)
Solo se puede:
FIFO si la cola estaba 2-0-3
LRU si las referencias fueron 2-0-3

Ni clock ni clock mejorado se pueden ya que, el puntero no puede estar en 2 y como estan todas en 1. Esta en 4 o 7 y nunca llegar a esa tabla final.
Optimo tampoco, por que en el frame 4 nunca va a poder estar la pag 4 ya que la pag 0 no se va a sustituir

Buenas CarooLina, perdón que te moleste una vez más. Por qué el puntero no puede estar en dos? Tenes para recomandarme algun lugar para repasar los algoritmos de clock? Sobre todo el mejorado. Porque con los libros me quedo muy corto, busco algo más claro, práctico y conciso.

Con el de clock tenía entendido que si todas las páginas tenían el bit de referencia en 1 entonces se comporta como FIFO, después de todo también se llama FIFO segunda oportunidad.
Saludos!
Si en la carpeta del campus de adriano el tiene un ejercicio en una ppt que muestra paso por paso, esta muy bueno. Ademas busca uno de los topicos de las consultas practicas, que preguntaron como es la interpretación por que trajo dudas.
Páginas: 1 2
URLs de referencia