Multiprogramacion Flashcards
Tipos de manejo de multiples estados de ejecucion
batch processing, cooperative schedulling y preemtive schedulling
supervision call
instruccion especial que permite ceder el control de la CPU notificando el fin del proceso (en batch processing)
cuando se esta en modo supervisor y en modo usuario
estado de la CPU. Modo supervisor cuando el SO esta corriendo, otros casos es modo usuario
PTBR page table base register
registro en la CPU el cual solo puede ser escrito en modo supervisor. indica la posicion inicial de la tabla de la pagina actualmente usada
batch processing
cada programa se ejecuta completamente y, al terminar, le entrega la CPU al siguiente programa.
desventajas batch processing
hay que esperar a que termine un programa para poder ejecutar otro. Si se quiere hacer operaciones en paralelo, no sirve.
Schedulling
logra ilusion de paralelismo, se intercala el uso de la CPU y SO. “agenda” el uso de la CPU entre procesos
cooperative schedulling
cada proceso puede entregar voluntariamente el control de la CPU al SO, antes de terminar a traves de yield. Cuando ocurre el SO se encarga de hacer un cambio de contexto, entregándole a la CPU otro proceso.
PCB process control block
estructura
manejada por el sistema operativo para almacenar el estado de los procesos. lugar en la memoria del SO donde se almacena el valor e los registros antes de que el proceso devuelva el control al SO.
desventajas cooperative schedulling
depende de que cada programa entregue voluntariamente la CPU, lo que no es optimo y se corre el riesgo de que el programa no suelte la CPU
preemptive schedulling
se agrega al computador un timer que estar´a generando interrupciones
peri´odicamente a la CPU. Ser´a mediante estas interrupciones que el SO ganar´a control de la CPU,
permitiendo en ese momento entregar el control a otro proceso
modo supervisor de la CPU
consiste en un mecanismo para poder restringir el acceso de usuarios a
elementos que solo pueden ser manejados por el sistema operativo (ejemplos de esto: tabla de
p´aginas, vector de interrupciones, etc.). Se activa cada vez que el sistema operativo necesita
intervenir, a trav´es de una interrupci´on por software/hardware, o una excepci´on. En todos
estos casos, se modifica el bit de modo para indicar que el sistema operativo est´a a cargo.
Desventajas de no usar memoria virtual al correr múltiples programas
- Es necesario modificar uno de los programas para poder hacerlo calzar en su nueva ubicaci´on de
memoria.
-No existe protecci´on de la memoria: el programa 1 puede escribir en los datos del programa 2 y
viceversa, lo que claramente no es deseado
-Cada programa est´a limitado solo a ocupar una parte de la memoria y no a todo el espacio direccionable
Problemas que soluciona la memoria virtual
-No es necesario modificar los programas ya que cada programa tiene la impresi´on de estar solo en el
computador.
-Al poder acceder solo a su espacio virtual, un programa no puede escribir en los datos de otro, agregando
protecci´on de memoria.
-Cada programa puede direccionar el espacio completo de memoria, y por tanto no hay problemas de
limitaci´on.
Memory Managment Unit (MMU)
se encarga de traducir
las solicitudes de memoria que vengan desde la CPU, mapeando para el programa actual la direcci´on f´ısica
correspondiente.
Es un componente de
hardware que forma parte de la CPU que realiza la traducci´on de una direcci´on virtual a una direcci´on f´ısica
Para realizar la traducci´on la MMU debe almacenar una tabla que tenga la asociaci´on virtual - f´ısica
Paginacion
corresponde a dividir la memoria en bloques de palabras contiguos conocidos como
p´aginas en el espacio virtual o marcos en el espacio f´ısico. De esta manera, cada programa tendr´a asociada
una cierta cantidad de p´aginas de memoria virtual, las cuales estar´an mapeadas a marcos f´ısicos
direccion en memoria virtual
interpretada como dos
partes: (bits mas significativos) una que indica el n´umero de p´agina, y otra que indica el offset dentro de la p´agina
bit de validez memoria virtual
Para diferenciar las p´aginas que est´an correctamente
mapeadas a un marco f´ısico de las que no, se agrega a la tabla de p´aginas un bit de validez el cual cuando
tiene el valor 1 indica que esa entrada es v´alida, y cuando tiene el valor 0 indica que no lo es.
que soluciona TLB
problema de tener las tablas de p´agina en memoria, es que para cada
acceso a memoria de un programa dado, se requieren dos accesos en la pr´actica: uno para ir a buscar el
mapeo virtual-f´ısico en la tabla de p´agina y otro para realizar el acceso real
TLB table lookaside buffer
cach´e especialmente dedicada a almacenar entradas de tabla de p´agina.
almacenar´a algunas de las entradas de la tabla de p´agina del programa que actualmente est´a en ejecuci´on
tendr´a el mismo funcionamiento que las cach´es tradicionales, bas´andose en los principios de
localidad de referencia espacial y temporal para mejorar el rendimiento de los accesos.
page fault
se produce cuando uno de los programas quiere acceder a otra p´agina y la memoria fisica esta llena (no hay marcos fisicos disponibles).
swap out
proceso de respaldo de memoria a disco cuando hay un page fault. se utiliza el disco duro como almacenamiento de respaldo para los marcos
de memoria. Para lograr esto se reserva un espacio especial en el disco, denominado swap file, el cual
ser´a utilizado para respaldar marcos. De esta forma cuando un programa requiere un marco, pero la memoria
est´a completamente ocupada, se copiar´a un marco de memoria al disco para dejar espacio para la nueva
solicitud.
Se debe agregar un nuevo bit de informaci´on a la tabla de p´aginas, indicando si la p´agina est´a en disco o no
Agregue a la microarquitectura del computador b´asico los elementos
necesarios para soportar multiprogramaci´on, tanto desde el punto de vista de memoria
como de CPU
- Bit de modo
- PCB
- PTBR
4, TLB - MMU
- Soporte de I/O
- Soporte de interrupciones