martes, 27 de abril de 2010

CLASE 27-04-2010

TEMA UNO: ADMINISTRACION DE MEMORIA

* requerimientos de memroia MS windows:
(imagen)

*vinculacion de las instrucciones y lso datos a la memoria:

-tiempode compilacion:
se se conoce previamente la ubicacion de memoria, puede generar codigo absoluto, el codigo debe ser recompilado si la direccion de inicio cambia

- tiempo de carga:
si se conocen las direcciones en tiempo de compilacion, debe generarse codigo reubicable

- tiempo de ejecucion:
la vinculacion se retarda hasta el tiempo de corrida si los procesos puedes ser movidos durante su ejecucion de una posiscion de memoria a otra.



* overlay (superposisciones):

-mantiene en memoria solo aquellas instrucciones y datos que se requieren en un momento determiando
-se utilizaba cuando el proceso era mayor que la cantidad de memoria destinada para el
-se implementaba por el usuario, no se requeria un soporte especial del sistema operativo, su p´rogramacion era compleja


*asignacion contigua: (no hubo tiempo de copiar)

-asignacion con multiples particiones: (no hubo tiempo de copiar)


*asignacion con multiples particiones fijas:
particiones configuradas por usuario, predeterminadas, se uso en OS/360/MFT
recolocacion: ael enlazador debe determinar que direcciones recolocarse vs. carga absoluta por partes
proteccion: bloques de 2k con clave o registro base y limite fragmentacion.




* asignacion de memoria con particiones fija:
(imagen)

* asignacion particiones variables:



- asignacion dinamica de las particiones
- compresion
- fragmentacion: huecos despues de ejecucion
- condensacion: fusion de 2 huecos contiguos

* particion variable:

(imagen)

* compresion/compactacion de memoria:



* problemas de la asignacion dinamica de memoria:

- mejor ajuste:
hueco que mejor quepa y menos desperdicio
- primer ajuste:
el primer hueco que le sirva
- peor ajuste:
hueco mas grande
- siguiente ajuste
- estrategia mas sofisticada :
sistemas buddy: - lista de huecos con tamaño potencias de 2

el primer ajuste y el mejro ajuste son mejores que el peor ajuste en terminos de velocidad y utilizacion.

*primer ajuste:
(imagen)

*sistema buddy:
(imagen)

*almacenamiento virtual:
- capacidad de obtener acceso a direcciones en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario del sistema
- SO altas, manchester 19860
- disociacion de las direcciones a las que hace referncia en procesos en ejecucion de las direcciones disponibles en el almacenamiento primario
(no hubo tiempo de copiar)

* intercambio/swap:

- un proceso puede intercambiarse temporalmente de memoria a un almacenamiento de respaldo y luego puede ser hacia la memoria para continuar su ejecucion.
- el almacenamiento de respaldo se hace en el disco, que debe ser rapido y tener....
(no hubo tiempo de copiar)


*vista esquematica del intercambio:
(imagen)

*fundamento de la memoria virtual:

- el procesador utiliza y genera direcciones virutlaes
- parte del mapa de memoria esta en disco y parte en memoria principal
- la MMU
- la MMU produce un fallo de pagina cuando la direccion no esta en la memoria principal
- el SO produce un fallo de pagina,haciendo un transvase entre la memoria principal y el area de intercambio

(imagen MMU)

*almacenamiento vitual:
(imagen)

* distribucion de almacenamiento por procesos:
(imagen)

* paginacion:
- el espacio de direcciones logicas de un procesos no necesariamente es contiguo
- se divide la memoria fisica en bloques de tamaño fijo llamados marcos
- se divide la memoria logica en bloques del mismo tamaño llamados paginas
- se mantiene el rastro de todos los marcos
- para correr un programa de tamaño n paginas, se requeire encontrar n marcos libres y cargar el programa
- se debe poner a punto una tabla para traducir las direcciones fisicas a las logicas
- se puede presentar fragmentacion interna

* division de paginas de los espacios de memoria
(imagen)

jueves, 22 de abril de 2010

¡¡¡ CLASE 22-04-2010 !!!

TEMA UNO: PRIORIDADES

- planificacion multiplesprocesadores-

* la planificacion es mas compleja cuando se tienen varios procesadores
* escenarios: asignacion de procesos a procesadores, uso de la multiprogramacion en cada procesador individual, activacion del proceso, propiamente dicho
* la carga se comparte (una cola por procesador)
* multiprocesamiento simetrico (smp) cada procesador tiene sus propias decisiones

-ASIGNACION DE PROCESOS A PROCESADORES-

* cada procesador tiene una lista de procesos a atender
* un proceso se vincula premanentemente a un procesador
- estrategia de planificacion de grupo o pandilla
- dedica una cola a corto plazo por cada procesador
- menos sobrecarga
- el procesador puede estar ocioso mientras otro procesador tiene trabajo acumulado

* cola global
- procesos planificados sobre cualquier procesador disponible

* arquitectura maestro/esclavo
- las funciones clave del nucleo ejecutan siempre en un procesador concreto
- el maestro es responsable de la planficiacion de trabajos
- el esclavo envia una solicitud al maestro
- desventajas

* arquitectura camarada
- el nucleo puede ejecutarse en cualquier procesador
- cada procesador se auto-planifica
- complica el sistema operativo

-ESCENARIOS DE PLANIFICACION DE PROCESOS DE TIEMPO REAL-

estatica: es aquella que desde el momento en el que el proceso arranca se tiene construida una tempoirzacion de de manejo de ese proceso.
- estatica dirigida por tabla: detemrina en tiempo de ejecucion cuando debe comenzar a ejecutarse cada tarea
- estatica con expropiacion dirigida por prioridad: se utiliza un planificador expropiativo tradicional en prioridades.

dinamica: ajusta la prioridad en respuesta a condiciones cambiantes, ademas se debe asegurar que ella no genere incumplimiento en lso tiempos.
- dinamica basada en un plan: la facibilidad se determina en tiempo de ejecucion
- dinamica basada en el mejor esfuerzo: no se realiza analisis de factibilidad. el sistema trata de cumplir con todos los plazos y abandona cualquier proceso ya iniciado y cuyo plazo no se haya cumplido.


-PLANIFICACION POR PLAZOS-

las aplicaciones de tiempo reeal no se preocupan tanto de la velocidad de ejecucion como de completar sus tareas.
- se utiliza cuando los resultados serian inutiles si no se realiza el proceso a tiempo
- dificil de implementar

informacion utilizada: tiempo de activacion, plazo de inicio, plazo de conclusion, timepo de procesos, recursos requeridos, prioridad, estructura de subtareas.

las prioridades en general se basan en los tiempos limites de los procesos
- el tiempo limite mas temprano primero
- minima laxitud primero

jueves, 15 de abril de 2010

¡¡¡ CLASE 15-04-2010 !!!

TEMA UNO: OBJETIVO HILO DE WINDOWS

-Tipo de objeto
ID hilo
contexto del hilo
prioridad base
afinidad de procesador de hilo
tiempo de ejecucion del hilo
estado
(por temrinar)


TEMA DOS: ESTADOS DE UN HILO DE WINDOWS

(imagen)

TEMA TRES: MODELO DE PROCESOS/HILOS LINUX

(imagen)

TEMA CUATRO: ESTADO DE HILOS EN SOLARIS

(imagen)

TEMA CINCO: PLANEACION DE LA CPU

es aquella parte del sistema que se encarga de como funciona el procesador.
- conceptos basicos
- criterios de planificacion
- algoritmos de planificacion
- planificacion multiple-procesadores
- planificacion en tiempo real
- evaluacion de algoritmos

SUBTEMA CINCO: CONCEPTOS BASICOS

- la maxima utilizacion de la cpu se obtiene con multiprogramacion
- el ciclo de rafagas de cpu-e/s- el proceso de ejecucion consiste en un ciclo de ejecucion de cpu y un ciclo

SUBTEMA CINCO: PLANIFICADOR DE CPU

- selecciona de los procesos en memoria aquellos que estan listos para ejecutar, y le entrega la cpu a uno de ellos
- las decisiones de planificacion de cpu tiene lugar cuando un proceso:
1 conmuta de un estado de corrida a un estado de espera
2 conmuta de un estado de corrida a un estado de listo
3 conmuta de esperando a listo
4 temrina

- la planificacion en 1 y 4 no es expropiativa, en los otros casos es expropiativa

SUBTEMA CINCO: DESPACHADOR

-el modulo despachador le da el control de la cpu (por terminar)

SUBTEMA CINCO: LATENCIA EN EL DESPACHO

(imagen)

es el tiempo que se toma el despachador para parar un proceso e inicar otro


SUBTEMA CINCO: CRITERIOS DE PLANIFICAICON

- utilizacion de cpu
- rendimiento
- tiempo de entrega/retorno
- tiempo de espera
- tiempo de respuesta
- previsibilidad
- ningun proceso se muere por inanicion, todo proceso debe progresar.


SUBTEMA CINCO: CRITERIOS DE OPTIMIZACION

- maxima utilizacion de cpu
- maximo rendimiento
- minimizae el teimpo de entrega
- minimizar el tiempo de espera
- minimizar el teimpo de respuesta
- justicia

TEMA SEIS: ALGORITMO DE PLANIFICACION

son aquellas reglas por las cuales se selecciona el siguiente a atender por el procesador.

- FCFS/PEPS: cortos, justas
- SJF/SPN: el siguiente proceso el mas corto
- SRTN: menor teimporestante,compensa cortos
- ROUND ROBIN: asignacion ciclica/turno, equilibra usando una cola circular con FCFS con prioridad
- por piroridad: siempre se elige el de mayor prioridad
- HRN: tasad e respuesta mas alto, es costosa prioridad
- MLQ, colas multiples: combinar, procesos del sistema
- MLQ, con retroalimentacion: los procesos se pueden reubicar en diferentes colas
- FSS

TEMA SIETE: PLANIFICACION FCFS

(imagen de tiempo)

TEMA OCHO: PLANIFICACION EL TEIMPO MAS CORTO PRIMERO -SJF-

-asocia con cada proceso la longitud de su proxima rafaga de cpu. usa estas longitudes para planificar el proceso con el menor tiempo

- hay dos esquemas:

(por terminar)

*el diagrama de SJF/SPN no expropiado*

*el diagrama de SJF expropiativo -SRTN-*


TEMA NUEVE: PLANIFICACION POR PRIORIDAD

- se asocia un numero a cada proceso
- la cpu es asignada al proceso con mayor prioridad
* expropiativo
* no expropiativo
- SJF es un esquema de planificacion por prioridad, donde la prioridad es el tiempo de rafaga de cpu que se calcula
- problema = la inanicion - los procesos de baja prioridad puede que nunca se ejecuten
- solucion= envejecimietno

TEMA DIEZ: TURNO CIRCULAR (RR)

- CAD PROCESO TOMA UNA PEQUEÑA UNIDAD DE TIEMPO DE CPU POR LO GENERAL DE 10-100 MS. DESPUES DE TRANSCURRIDO ESTE LAPSO DE TIEMPO, EL PROCESO ES EXPROPIATIVO Y UBICADO EN LA COLA DE LISTOS
- si hay n procesos en la cola de listos y el quantum es q, entonces cada proceso toma 1/n de tiempo de cpu en bloques de alo mas q unidades de tiempo a la vez. ningun proceso espera mas que (n-1) q unidades


TEMA ONCE: FAIR SHARE SCHEDULING-PORCION JUSTA

divide la capacidad de recursos del sistema en porciones, que son .... (buscar y temrinar)


TEMA DOCE: PLANIFICAICON COLAS MULTINIVEL

(buscar grafico)

* ejemplos de colas multinivel con retroalimentacion

jueves, 8 de abril de 2010

¡¡¡ CLASE: 08-04-2010 !!!

TEMA UNO: LA CPU CAMBIA DE PROCESO A PROCESO

-Cuando la cpu cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso
- la conmutacion de contexto es trabajar extra, el sistema realiza trabajo util mientras conmuta, depende en gran medida del apoyo del hardware
- cuando un proceso esta ejecuntadose su estado reside en los registros del computador

TEMA DOS: PLANIFICADORES

- el planificador de corto plazo de cpu selecciona que proceso debe ser ejecutado enseguida y se le asigna la cpu. bajo nivel, despachador es solicitado muy frecuentemente.
- planificador del mediano plazo: intermedio
- el planificador de largo plazo: selecciona que proceso debe ser traido a la cola de listos, es solicitado con poca frecuencia.
- el planificador de largo plazo controla el grado de mutiprogramacion
- los procesos pueden ser descritos como:
* procesos limitados por E/S - consumen mas tiempo realizadno operaciones de E/S que calculo, causan mucas rafagas cortas de la cpu
* procesos limitados por cpu - consumen mas tiempo realizando calculos; emplean refagas fuertes a la cpu

Representacion de la planificacion de procesos:



Representacion de la planificacion de procesos a mediano plazo:



TEMA TRES: CREACION DE PROCESOS

- los procesos padres crean procesos hijos, los cuales, a su vez crean otros procesos, conformando un arbol de procesos
- recursos compartidos:
* los procesos padres e hijos comparten los recursos
* los hios comparten un subconjunto de los recursos del padre
* el padre y el hijo no comparten recursos
- ejecucion:
* el padre y el hijo se ejecutan concurrentemente
* el padre espera a que termine el hijo
- espacio de direcciones:
* el hijo duplica el del padre.

TEMA CUATRO: JERARQUI DE PROCESOS

-grupos de procesos dependientes de cada shell
- familia de procesos
* hijo
* padre
* hermano
* abuelo
- vida de un procesos
* crea
* ejecuta
* muere o termina
- ejecucion del proceso
* batch
* interactivo
- grupo de procesos



TEMA CINCO: ARBOL DE PROCESOS DE UN SISTEMA UNIX TIPICO Y SOLARIS

-solaris-


-unix-


TEMA SEIS: PROCESOS COOPERATIVOS

PROVLEMA DE PRODUCTORES Y CONSUMIDORES

- el problema de productores y consumidores es un paradigma de los procesos cooperativos, los productores producen informacion que es consumida por los procesos consumidores
* buffer ilimitado no estavlece un limite practico para el tamaño del buffer


* buffer limitado asume que hay un tamaño fijo de buffer

(imagen)


TEMA SIETE: HILOS

- beneficios
- hilos de ussuarios
- modelos mutihilos
es la capacidad de un so para soportar multiples trayectorias concurrentes de ejecucion dentro de un mismo proceso

- hilos solaris 2
- hilos java
* ms-dos usa un solo hilo por procesos
* unix V soporta mutiples procesos por usuario pero solo soporta un hilo por proceso
* windows nt, 2000, xp, mach, Os2, solaris, linux



TEMA OCHO: HILOS

- en una tarea multihilo, mientras un hilo servidor esta bloqueado y esperando, un segundo hilo en la misma tarea puede estar corriendo
* la cooperacion de multiples hilos en el mismotrabajo le proporciona un alto rendimiento y mejora la eficiencia.
* las aplicaciones que requieren compartir un buffer comun
-los hilos proporcionan un mecanismo que permite a los procesos secuenciales hacer llamadas al sistema bloqueadoras y al mismo tiempo lograr paralelismo
- el nucleo puede apoyar los hilos como en mach y os/2
- los hilos a nivel de usuario; soportando arriba por el kernel, a traves de una serie de llamadas de bibliotecas en el nivel de usuario (como en el proyecto cmu de andrew)
- un enfoque hibrido implementa tanto los hilos a nivel de usuario como hilos apoyados pore l kernel (solaris 2)

(mayor informacion sobre hilos de ejecucion)

TEMA NUEVE: RELACION ENTRE HILOS Y PROCESOS

Si bien los hilos son generados a partir de la creación de un proceso, podemos decir que un proceso es un hilo de ejecución, conocido como Monohilo. Pero las ventajas de los hilos se dan cuando hablamos de Multihilos, que es cuando un proceso tiene múltiples hilos de ejecución los cuales realizan actividades distintas, que pueden o no ser cooperativas entre sí. Los beneficios de los hilos se derivan de las implicaciones de rendimiento.

1. Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en crear un proceso. Algunas investigaciones llevan al resultado que esto es así en un factor de 10.
2. Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un proceso se debe eliminar el BCP del mismo, mientras que un hilo se elimina su contexto y pila.
3. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso
4. Los hilos aumentan la eficiencia de la comunicación entre programas en ejecución. En la mayoría de los sistemas en la comunicación entre procesos debe intervenir el núcleo para ofrecer protección de los recursos y realizar la comunicación misma. En cambio, entre hilos pueden comunicarse entre sí sin la invocación al núcleo. Por lo tanto, si hay una aplicación que debe implementarse como un conjunto de unidades de ejecución relacionadas, es más eficiente hacerlo con una colección de hilos que con una colección de procesos separados.

martes, 6 de abril de 2010

¡¡¡ CLASE 06-04-2010 !!!

TEMA UNO: MODELO SIMPLIFICADO

un proceso puede estar en dos estados
- corriendo
- no corriendo

TEMA DOS: ESTADO DE LOS PROCESOS

en la medida que se ejecuta un proceso su estado se modifica:
- nuevo: el proceso se esta creando
- corriendo: las instrucciones estan ejecutandose
- esperando/bloqueado: el procesos esta a la espera de la ocuerrencia de algun evento
- listo: el proceso esta esperando a ser asignado al procesador
- terminado: el proceso ha terminado la ejecucion

TEMA TRES: DIAGRAMA DE TRANSICION DE ESTADO DE LOS PROCESOS



aumentando los modulos para cuando se necesita agrandar



si el sistema se sobrecarga y el controla sus funciones el se suspende automaticamente hasta organizar y reiniciar, a diferencia del usuario que puede dar la opcion.

siendo en la vidad real de sistemas operativos basado en unix:



TEMA CUATRO: OPERACIONES SOBRE LOS PROCESOS

- crear: nombre, bcp, tabla, recursos, prioridad, jerarquico/no jerarquico
- destruir: eleiminarlo del sistema
- suspender: paraliza (fallo, pausa, congestion)
- retardar
- abortar
- leer atributos
- reanudar
- cambiar prioridad
- bloquear: E/S
- despertar: desbloqueo
- despachar
-temporizar: ejecucion programada

TEMA CINCO: ESTRUCTURA GENERAL DE LAS TABLAS DE CONTROL DEL SO

TEMA SEIS: BLOQUE DE CONTROL PROCESOS (PCB)

descriptor del proceso para so en tabla de procesos, informacion asociada con cada proceso
- identificacion del procesos PID
- identificacion del procesador, afinidad
- estado del proceso FLAGS
- identificacion de usuario, grupo
- contador de programa
- apuntador a proceso padre
- apuntadoresa procesos hijos
- registros visibles de la cpu (cisc 8-32 risc > 100)
- informacion de panificacion de la coy (prioridad)
- informacion de administracion de la memoria (datos, instrucciones)
- informacion contable
- informacion de estado E/S
- localiza, identifica, estado padre, hijos, prioridad , memoria.