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