Você está na página 1de 29

UNIVERSIDAD ANDINA DEL CUSCO

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

GESTION DE MEMORIA EN
WINDOWS PHONE

DOCENTE
ESTUDIANTE

: ING. PALOMINO OLIVERA EMILIO


: MUIZ VELSQUEZ JORGE
PALOMINO MENDOZA JOSEPH
PEA PALOMINO OLGER

ASIGNATURA

: SISTEMAS OPERATIVOS
CUSCO PER
2016

Pgina 0

INDICE

Contenido
INTRODUCCIN

PROCEDIMIENTO

OBJETIVOS GENERALES

OBJETIVOS ESPECFICOS

1.

Gestin de Memoria

1.1 Definicin:

Objetivos De La Gestin De Memoria

1.2

Regin De Memoria:

2.

OPERACIONES SOBRE REGIONES DE UN PROCESO

2.1

Asignar una regin

2.2

Asociar una regin a un proceso

2.3

Cambio de Tamao de una Regin

2.4

Cargar una regin

2.5

Liberar una regin

2.6

Desligar regin y proceso

2.7

Duplicar una regin

10

3.1

ALGORITMO FIFO

11

Ejemplo 1:.....................................................................................12
Ejemplo 2:.....................................................................................12
Ejemplo 3: (con tiempos de llegada)......................................................13
14

3.2 ALGORITMO LIFO

3.3 ALGORITMO INSERTAR ELEMENTOS (PUSH):.....................................15


3.4 ALGORITMO ELIMINAR ELEMENTOS (POP):.......................................15
Ejemplo 1:.....................................................................................16
Ejemplo 2:.....................................................................................16
16

3.5 REEMPLAZO DE PGINAS

3.6 ALGORITMO DE REEMPLAZO DE PGINAS SEGN EL USO NO TAN


RECIENTE.....................................................................................18
3.7 ALGORITMOS DE REEMPLAZO DE PGINAS:.....................................19
3.8 ALGORITMOS DE APROXIMACIN AL LRU........................................20
3.8.1 Algoritmos con bits de referencia adicionales:..................................20
Pgina 1

3.9 ALGORITMO DE SEGUNDA OPORTUNIDAD


4.

26

LLAMADAS AL SISTEMA POR ALGORITMO Y EQUIVALENCIAS...............28

5. WINDOWS PHONE

29

5.1

Interfaz

29

5.3

Manejo de Procesos

31

5.4

Procesos Concurrentes

31

5.5

Manejo de Memoria

32

5.6

Manejo de Archivos

33

5.7

Manejo de Dispositivo

34

5.8

Accesibilidad de Red

34

CONCLUSIONES

35

RECOMENDACIONES

35

Bibliografa

36

Pgina 2

Primero agradecer a Dios por


darnos la vida y la salud ya que
gracias a esto podemos realizar
el presente trabajo .Dedicamos
este proyecto a nuestros padres,
hermanos y personas cercanas,
quienes siempre estn con
INTRODUCCIN
nosotros
apoyndonos
e
impulsndonos en el transcurso
de nuestra carrera.
La memoria es uno de los principales recursos de la computadora, la cual
debe de administrarse con mucho cuidado. Aunque actualmente la mayora
de los sistemas de cmputo cuentan con una alta capacidad de memoria, de
igual manera las aplicaciones actuales tienen tambin altos requerimientos
de memoria, lo que sigue generando escasez de memoria en los sistemas
multitarea y/o multiusuario.
La
parte
del sistema
operativo que
administra la
memoria se
llama administrador de memoria, su labor consiste en llevar un registro de
las partes de memoria que se estn utilizando y aquellas que no, con el fin
de asignar espacio en memoria a los procesos cuando stos la necesiten y
liberndola cuando terminen, as como administrar el intercambio entre la
memoria principal y el disco en los casos en los que la memoria principal no
le pueda dar capacidad a todos los procesos que tienen necesidad de ella.
Esto se hace de diversas formas, pero todas controlan las regiones de
memoria mediante una serie de algoritmos y operaciones que se realizan
mediante llamadas al sistema, cuyo funcionamiento explicaremos a continuacin.
Uno de los elementos principales que caracterizan un proceso es la memoria
que utiliza. sta est lgicamente separada de la de cualquier otro proceso
del sistema (excepto los threads de un mismo proceso que comparten
normalmente la mayor parte de la memoria que tienen asignada). Un proceso
no puede acceder, al espacio de memoria asignado a otro proceso, lo cual es
imprescindible para la seguridad y estabilidad del sistema. El
direccionamiento es una parte importante de la gestin de memoria, puesto
que influye mucho en la visin del mismo por parte de un proceso, como en
el aprovechamiento del hardware y el rendimiento del sistema.

Pgina 3

PROCEDIMIENTO
Recurrimos a la web donde pudimos contar con PDFs, libros, artculos, etc.
Luego pasamos a la lectura de los textos repartindonos temas para al final
concluir con nuestro informe.
Para la elaboracin del informe se utiliz la metodologa Desarrollo rpido
de aplicaciones (RAD) ya que primero se procedi a la elaboracin de
informes que sufri cambios durante el proceso de pruebas y as mejorar el
informe, seguido de la implementacin de algoritmos.

DEFINICIN PROBLEMA
La gestin de memoria se encarga del reparto adecuado de regiones de
memoria segn lo requiera cada proceso, realizando distintas operaciones
sobre las mismas tales como creacin, duplicacin, cambio de tamao y
eliminacin, entre otras.
Dichas operaciones cuentan con sus algoritmos, pero la pregunta es: en
qu instante, funcin la llamada al sistema y como se les invocan? Y Cmo
funcionan estos algoritmos en Windows Phone?
OBJETIVOS GENERALES

Simular el comportamiento de los algoritmos empleados para las


polticas de reemplazo, los cuales sern implementados en Windows
phone.
Estos algoritmos tambin nos ayudaran a entender y explicar las
polticas de remplazo de memoria principal.

OBJETIVOS ESPECFICOS

Sealar como se hace el reparto de memoria para cada proceso.


Explicar los algoritmos de operaciones sobre regiones.
Explicar que llamadas al sistema usan los algoritmos.
Explicar su funcionamiento en Windows Phone.

Pgina 4

JUSTIFICACION
El presente trabajo se realiz con la intencin de mostrar cuales son los
algoritmos que usan las llamadas al sistema que ya todos conocemos en
Linux (fork(),exec(),shmdt(),shmget(),sbrk() y exit()) y sus equivalentes en
Windows
(createProcess(),createFile(),heapAlloc(),UnmapViewOfFile()
y
exitProcess()) que generalmente son ms de uno por llamada al sistema.

MARCO TEORICO
1. Gestin de Memoria
1.1 Definicin:
La gestin de memoria representa un vnculo delicado entre el
rendimiento (tiempo de acceso) y la cantidad (espacio disponible).
Siempre se busca obtener el mayor espacio disponible en la memoria,
pero pocas veces existe la predisposicin para comprometer el
rendimiento.

Objetivos De La Gestin De Memoria


En un sistema con multiprogramacin, el sistema operativo debe
encargarse de realizar un reparto transparente, eficiente y seguro de
los distintos recursos de la mquina entre los diversos procesos, de
forma que cada uno de ellos crea que tiene una mquina para l
solo. Esto es, el sistema operativo debe permitir que los
programadores desarrollen sus aplicaciones sin verse afectados por la
posible coexistencia de su programa con otros durante su ejecucin.
Sea cual sea la poltica de gestin de memoria empleada en un
determinado sistema, se pueden destacar las siguientes
caractersticas como objetivos deseables del sistema de gestin de
memoria:

Ofrecer a cada proceso un espacio lgico propio.


Proporcionar proteccin entre los procesos.
Permitir que los procesos compartan memoria.
Dar soporte a las distintas regiones del proceso.

Pgina 5

1.2 Regin De Memoria:


Un proceso est compuesto por mltiples regiones. Una regin es una
zona contigua del espacio de direcciones de un proceso con las
mismas propiedades. Existen tipos de regiones bsicos tales como

Texto o cdigo
Datos
Pila

Cada regin de memoria se caracteriza por varios atributos:

Sus direcciones de inicio y fin


Los derechos que tiene asociada
El objeto asociado (por ejemplo, un archivo ejecutable que
contiene el cdigo ejecutable del proceso)

La informacin necesaria para describir una regin esta almacenada


en la tabla de regiones. Los campos ms importantes que esta
almacena son:

Puntero al indo del archivo, cuyo contenido est cargado


inicialmente en la regin
Tipo de la regin (texto (cdigo), memoria compartida, datos
privados o pila)
Tamao de la regin
Localizacin de la regin en memoria fsica
Estado de la regin: es una combinacin de:
o Bloqueada
o En demanda
o En proceso a ser cargada a memoria (cargndose)
o Valida (cargada en memoria)
Cuenta de referencia: nmero de procesos que la referencian

2. OPERACIONES SOBRE REGIONES DE UN PROCESO


Durante la vida de un proceso, su mapa de memoria va evolucionando y
con l las regiones incluidas en el mismo. Existen ciertas operaciones
que se pueden realizar sobre una regin dentro del mapa del proceso
tales como:
2.1

Asignar una regin

El Kernel asigna una regin (allocreg) en las llamadas al sistema fork,


exec y shmget (sharedmemory). Con pocas excepciones cada proceso
Pgina 6

est asociado como resultado de una exec, entonces la regin se asocia


al i-nodo (con ello se identificara una regin que se desee compartir y se
encuentre cargada). El contador de la i-nodo se incrementa para evitar
que por ejemplo el ejecutable sea borrado mientras va a ser utilizado.
Algoritmo allocreg (i-nodo, tipo)
{
Retirar primera regin de libres;
Asignar tipo de regin
If (i-nodo)
Incrementar contador de referencias en indo;
Insertar la regin en lista de activas;
Return regin bloqueada;
}

2.2

Asociar una regin a un proceso

En las llamadas al sistema fork, exec y shmget el kernel asocia el espacio


de direcciones de un proceso con una regin va este algoritmo
(attachreg). La regin puede ser nueva o ya existir (shared). La regin a
ser asociada al proceso lo ser en una direccin virtual para el proceso,
por lo que ser necesario controlar la legalidad (tamao final del espacio
de direcciones del proceso)
Algoritmo attachreg (regin, proceso, dir_Virtual, tipo)
{
Asignar una tabla de pregion para el proceso;
Inicializar tabla de pregion;
Puntero a la regin;
Tipo de regin;
Direccin virtual de la regin para el proceso;
Controlar legalidad de dir_Virtual, tamao de regin;
Incrementar contador de referencias a la regin;
Incrementar tamao del proceso de acuerdo a la regin asociada;
Inicializar registros hardware para el proceso (tripleta)
Return (tabla pregion);
}
2.3

Cambio de Tamao de una Regin

Pgina 7

Un proceso puede expandir o contraer su espacio virtual con la llamada


al sistema sbrk, aunque la pila del proceso lo hace automticamente de
acuerdo a la profundidad en que se pueden anidar llamadas al sistema.
Internamente la funcin sbrk llama al algoritmo growreg para cambiar el
tamao. Cuando una regin se expande el kernel debe asegurar que no
se solapen regiones o que no se superen los lmites impuestos a los
procesos. Las regiones compartidas no pueden ser expandidas sin
causar efectos laterales en los otros procesos, por esta razn el kernel
usa growreg en las regiones privadas (datos y automticamente en la
pila). Se asignan tablas de pginas (dependiente del modelo usado,
programa entero, demanda de pginas, etc.). Debe asegurarse que existe
memoria antes de hacer la llamada.

Algoritmo growreg (pregion, incremento)


{
If (incremento es positivo)
{
Controlar legalidad del nuevo tamao;
Asignar tablas de pginas;
If (modelo de programa entero)
{
Asignar memoria fsica;
Inicializacin de tablas necesarias;
}
}
Else
{
Liberar memoria fsica;
Liberar tablas;
}
Otras inicializaciones;
Cambiar tamao de proceso en la Tabla de procesos;
}
2.4

Cargar una regin

Si el sistema soporta paginacin por demanda, el sistema puede mapear


el espacio de direcciones del ejecutable durante la exec de tal forma que
solo cuando sea necesario leer las paginas a memoria. Si el modelo es
de programa entero se debe copiar el ejecutable cargando las regiones en
las direcciones virtuales que se especifique en el archivo (posibles
paginas vacas). Para cargar el archivo en la regin debe expandirla de
Pgina 8

acuerdo a la memoria que necesite. Marca la regin en el estado


Cargndose y usa una variacin de la llamada al sistema read para leer el
ejecutable (porque puede ganarse velocidad y porque en un modelo de
paginacin por demanda se podra producir un fallo de pgina durante
una read). El offset que se indica como parmetro indica el
desplazamiento dentro del archivo del inicio de la regin y count el
nmero de datos a leer.
Algoritmoloadreg (pregion, dir_Virtual, i-node, Offset, count)
{
Incrementar tamao (growreg);
Marcar estado Cargndose;
Desbloquear regin (unlock);
Poner parmetros de lectura en u-rea;
Leer ejecutable en la regin (variacin de read);
Bloquear regin;
Marcar estado Valida;
Despertar procesos que esperan por regin cargndose;
}

2.5

Liberar una regin

Algoritmofreereg (region-bloqueada)
{
If (algn proceso est usando la regin)
{
Retirar el bloqueo de la regin;
If (regin tiene un i-nodo asociado)
Retirar el bloqueo de la i-nodo;
Return;
}
If (regin tiene un i-nodo asociado)
Liberar i-nodo (input);
Liberar memoria fsica;
Pgina 9

Liberar tablas de pgina;


Limpiar campos de la regin;
Pasar la regin a la lista de libres;
Retirar el bloque de la regin;
}
2.6

Desligar regin y proceso

Esta accin se realiza en las llamadas al Sistema exec, exit y shmdt. Un


contador de referencias a la regin diferente de cero indica que hay mas
proceso utilizando la regin y por tanto no se debe liberar la regin. Para
algunos procesos de uso muy frecuente resulta de inters mantener su
texto en memoria aun cuando no hay ningn proceso que haga uso del
sticky-bit (es decir, un compilador, editor, etc. que son frecuentemente
utilizados). La llamada al sistema chmod puede permitir activar un stickybit a un archivo de tal forma que cuando se encuentra en memoria sus
pginas no son liberadas aun cuando no queden proceso
referencindolas (esto permitir que cuando se lance un nuevo proceso
que utilice este texto lo encontrara ya en memoria asignada a una regin)

Algoritmo deattachreg (pregion)


{
Invalidar las tablas auxiliares asociadas al proceso (pregion, tripletas, etc);
Disminuir el tamao del proceso;
Disminuir el contador de referencias de la regin;
If (contador llega a 0 y la regin no tiene sticky-bit)
Liberar la regin; //freereg
Else //el contador no es 0 o tiene sticky-bit
{
Retirar el bloqueo del i-nodo, si hay i-nodo asociado a la regin;
Retirar el bloquea a la regin;
}
}
2.7

Duplicar una regin

Este algoritmo es usado por fork. Si la regin es compartida no es


necesario hacer una nueva copia de la regin, bastara incrementar el
Pgina 10

contador de referencias y padre/hijo compartir la regin. Si no es


compartida se debe realizar fsicamente la copia para lo cual se necesita
una nueva entrada en la tabla de regiones, tablas de pginas y memoria
fsica para las pginas.
Algoritmodupreg (Old_region, New_region)
{
If (old_region es compartida)
{
El proceso que llama incrementare el Contador de referencias,
que referencias esa regin;
Return New_region=Old_region;
}
Asignar nueva regin (allocreg);
Preparar tablas iguales a las de Old_Region;
Asignar Memoria fsica para el contenido de New_region;
Copiar el contenido de Old_region en New_region;
Return Puntero a New_region
}

3. POLITICAS DE REEMPLAZO
Las estrategias de reemplazo se puedan clasificar en dos categorias
reemplazo global y reemplazo local. Con una estrategia de reemplazo global,
se puede seleecionar, para satisfacer el fallo de pagina de un proceso, un
marco que actualmente tenga asociada una pagina de otro proceso. Esto es,
un proceso puede quitarle un marco de pagina a otro. La estrategia de
reemplazo local require que para servir el fallo de pagina de un proceso, solo
puedan usarse marcos de pagina libres o marcos ya asociados al proceso.

3. Politicas de Reemplazo
3.1 ALGORITMO FIFO
Tal vez la disciplina ms simple de planificacin sea la de primeras entradas
primeras salidas (PEPS). Los procesos se despachan de acuerdo con su
tiempo de llegada a la cola de procesos listos. Cuando un proceso tiene la
CPU, se ejecuta hasta terminar. Es junto en el sentido formal, pero algo
injusta en cuanto a que los trabajos largos hacen esperar a los cortos y los
trabajos sin importancia hacen esperar a los importantes. FIFO ofrece
variaciones relativamente pequeas en los tiempos de respuesta y por lo
Pgina 11

tanto es ms predecible que los otros esquemas. No es til en la


planificacin para los usuarios interactivos porque no puede garantizar
buenos tiempos de respuesta. El esquema FIFO rara vez se usa como
esquema principal en los sistemas actuales, pero a menudo est
incorporado en otros sistemas.
Por ejemplo, muchos esquemas de planificacin despachan los procesos de
acuerdo con la prioridad, pero los procesos con la misma prioridad se
despachan
de
acuerdo
con
el
esquema
FIFO.
Este es un algoritmo que no usa apropiacin, y que consiste en atender a los
procesos por estricto orden de llegada a la lista de procesos listos. Cada
proceso se ejecuta hasta que termina, o hasta que hace una llamada
bloqueante (de E/S). Se trata de una poltica muy simple y sencilla de llevar a
la prctica, pero muy pobre en cuanto a su comportamiento.
Caractersticas:

No es apropiativa.

Es justa, aunque los procesos largos hacen esperar mucho a los


cortos.

Es una poltica predecible.

El tiempo promedio de servicio es muy variable ya que esta en funcin


del nmero de procesos y la duracin promedio que tenga.

Pgina 12

3.2 ALGORITMO LIFO

Una pila es una coleccin de elementos en la que slo se pueden


insertar y eliminar datos por uno de los extremos de la lista. Al
igual que toda estructura de datos, se consideran algunas
operaciones bsicas como la insercin y el borrado, que se
denominan comnmente como operacin "push" y "pop"
respectivamente. Los elementos de una pila se eliminan en orden
inverso al que fueron insertados. Es decir, el ltimo elemento que
entra a la pila es el primer elemento que se saca. Esta estructura
se le conoce como estructura LIFO (Last-In, First-Out / ltimo en
entrar - primero en salir).
En informtica, el trmino LIFO se utiliza en estructuras de
datos y teora de colas. Guarda analoga con una pila de platos,
en la que los platos van ponindose uno sobre el otro, y si se
quiere sacar uno, se saca primero el ltimo que se ha puesto.
LIFO es el algoritmo utilizado para implementar pilas.

Pgina 13

3.3 ALGORITMO INSERTAR ELEMENTOS (PUSH):


Este algoritmo pone el DATO en PILA. Actualiza el valor de TOPE. MAX es
una variable que indica el mximo de elementos que puede almacenar la pila.

SI (TOPE <MAX )
Inicio
TOPE = TOPE + 1
PILA[TOPE] = DATO
Fin
SI NO

LA PILA ESTA LLENA FIN SI

3.4 ALGORITMO ELIMINAR ELEMENTOS (POP):


Este algoritmo saca el ltimo elemento de la PILA. El elemento lo guarda en la
variable DATO. Actualiza el valor de TOPE.

Pgina 14

SI (TIPE >0 )
inicio
DATO = PILA[TOPE]
TOPE = TOPE 1
fin
SI NO

PILA VACIA

Ejemplo 1:

Ejemplo 2:

3.8 ALGORITMOS DE APROXIMACIN AL LRU

3.8.1 Algoritmos con bits de referencia adicionales:

Las tcnicas basadas en LRU utilizan un bit de referencia


puesto por el hardware.

Pgina 15

El hardware enciende el bit de referencia (lo pone a 1) de


una pgina cada vez que se hace referencia a ella (lectura o
escritura).

Examinando este bit no conocemos el orden de uso, pero s


sabemos cules pginas se usaron y cules no.

Es posible obtener informacin de ordenamiento adicional


si registramos los bits de referencia a intervalos adicionales.

Bytehistrico: Por ej.: 11000100 se us ms recientemente


que 01110111.

LRU: pgina con el nmero ms bajo.


Si el n de bits histricos es cero, es decir, dejamos slo el
bit de referencia Algoritmo de segunda oportunidad.

3.9 ALGORITMO DE SEGUNDA OPORTUNIDAD


Este es un algoritmo que deriva del algoritmo FIFO. El Algoritmo de Segunda
Oportunidad evita deshacerse de una pgina de uso frecuente, hace uso del bit R
inspeccionndolo de tal forma que, si es 0, la pgina es antigua y no utilizada, por
lo que, en caso de fallo de pgina, es reemplazada de manera inmediata. En caso de
que dicho bit sea 1, es cambiado a cero y se cambia al final de la lista de pginas
como si hubiera llegado en ese momento a la memoria. Luego contina la bsqueda
siguiendo lo que avanza en la lista.
En la imagen vemos como se ejecuta el algoritmo, las pginas fueron identificadas,
a modo de este ejemplo, con letras de la Aa la H segn el orden de llegada y
mostradas en una lista enlazada. A es la primera pgina cargada y la que con
menos frecuencia se ocupa mientras que H es la pgina ms reciente cargada.
Pgina 16

Supongamos que ocurre un fallo de pgina. La pgina ms antigua en nuestro


ejemplo es A, si ste tiene el bit R a cero, se saca de la memoria. Por el contrario, si
R vale 1, A se coloca al final de la lista, ponindose a cero el bit R. Dejando como
bsqueda adecuada de pgina con B.
Lo principal de este algoritmo de segunda oportunidad es ir viendo las pginas
antiguas sin referencias, si es que todas tienen ms de una referencia entonces se
aplica normalmente el algoritmo FIFO.

3.10CLOCK
Existe una mejora en el algoritmo de segunda oportunidad que presenta una mejora
en la implementacin. Es el algoritmo del CLOCK, que lo que hace es tener una lista
circular, de forma que al llegar al ltimo elemento de la lista, pasa automticamente
al primero. Los elementos no se mueven al final de la cola cuando son accedidos,
simplemente se cambia el bit de referencia a 1. Esto nos evita tener que hacer
movimientos de punteros en el caso de implementarlo con una lista enlazada. De
Pgina
Pginaaaeliminar
cargarpuede
hecho,
se
implementar
con
un
array
perfectamente,

Marco elegido para intercambio de pgina

Pgina 17

La siguiente figura muestra que las pginas de la A a la H se mantienen en una lista


enlazada, ordenadas segn la hora a la que llegaron a la memoria. Supongamos que
hay un fallo de pgina en el tiempo 20. La pgina ms antigua es A, que lleg en el
tiempo 0, cuando se inici el proceso. Si el bit R de A est apagado (0), se le
desaloja de la memoria, escribindola en disco (si esta modificada) o simplemente
abandonndola si est limpia. Pero si el bit est encendido (1), A se coloca al final
de la lista y su "hora de carga" se cambia al tiempo actual 20. Tambin se apaga el
bit R. La bsqueda de una pgina apropiada contina con B.

Pgina 18

4. LLAMADAS AL SISTEMA POR ALGORITMO Y EQUIVALENCIAS.


Para resumir todo esto podemos estructurar el uso de los algoritmos por
las llamadas al sistema de la siguiente forma
fork()

allocreg

exec()

attachreg

exit()

growreg
loadreg

shmget()

freereg

shmdt()

deattachreg

sbrk()
fork()

dupreg

allocreg

Pero al ser nuestro trabajo sobre Windows Phone debemos hablar sobre
attachreg
dichas
funciones
exec()
en Windows, ya que la ventaja que tenemos es que la ltima versin de
Windows Phone trabaja de igual forma que el Windows para PC, pero esto
growreg
exit()
lo explicaremos ms adelante.
loadreg

createProce
shmget()
Pginashmdt()
19
sbrk()

freereg
deattachreg
dupreg

exitProce

createFil
UnmapViewOfF
HeapAllo

5. WINDOWS PHONE
5.1 Interfaz
Principio GUI:
El usuario puede interactuar con todo lo que visualiza en la pantalla
adems de todos los objetos. (Como controles de usuario por ejemplo)
Componentes del sistema:
No existe el concepto de una pila de navegacin de todo el sistema. Los
datos se comparten entre aplicaciones a travs de contratos. Llamar a un
contrato (por ejemplo, el contrato de bsqueda) muestra la aplicacin de
destino. Cuando se realiza la llamada, el control vuelve a la aplicacin de
llamadas. Dentro de una aplicacin, los usuarios pueden navegar entre
las pginas con las API disponibles de navegacin "(visin general de
programacin de interfaz de usuario (Android a Windows) -Windows el
desarrollo de aplicaciones de 2014)
- La interfaz de aplicacin al sistema (no usuario) es la pgina que
integra la aplicacin al evento controlador del sistema, la cual espera
por eventos.
- El manejo de eventos es similar al sistema operativo de IOS con la
delegacin de patrones de diseo.
- La aplicacin de Windows es una instancia de la clase Panel creada
para cada aplicacin en tiempo de ejecucin.
Componentes de la aplicacin:
Las aplicaciones son construidas usan objetos del Panel, el cual
mantiene todas las instancias incluyendo:
- Objetos de Panel y de marcos.

Pgina 20

Los objetos de pgina son vistas individuales. Esta clase provee


funcionalidad para dibujar objetos en pantalla.
Otros componentes ofrecidos al sistema similares a Android.

Entradas: Incluye Controles, Eventos, Mens, Barras de accin, campos


de textos, checkboxes, toggles y zooms (no inclusivos).
5.2 Procesador:
Requiere mnimamente 1Ghz; 1.7Ghz en promedio a dos ncleos.
Set de instrucciones de 32 o 64 bits.
Planificacin De Tareas:
De preferencia con la poltica de round robin entre hilos. El intervalo de
tiempo depende del procesador del sistema, pero es generalmente
alrededor de 20 milisegundos (Multitasking (Windows), 2014 Microsoft).
Cuando ocurre un switch, el data estate es guardado en el hilo saliente
y el data estate es restaurando por el hilo entrante. Generalmente la
contencin no es un problema gracias a la poltica de round robin.
Planificacin En Modo Usuario (Ums):
UMS es un mecanismo de peso ligero con la API del sistema que las
aplicaciones pueden usar para planificar sus propios hilos. Una
aplicacin puede cambiar entre hilos UMS en modo usuario sin involucrar
el planificador del sistema y mantener el control del procesador si un hilo
UMS bloquea el kernel. Los hilos UMS difieren de las fibras porque cada
hilo UMS tiene su propio contexto de hilo, en lugar de compartir el
contexto de hilo de un solo hilo.
La habilidad de cambiar entre hilos en modo usuario hace de UMS ms
eficiente que los pools de hilos para manejar grandes nmeros de tems
de corta duracin que requieren pocas llamadas al sistema.
Polticas De Interrupciones:
Una aplicacin en estado de ejecucin va a interactuar con los objetos de
eventos. Si se produce una interrupcin, (por ejemplo, una llamada
telefnica), aplicacin inmediatamente se pondr en un estado inactivo
(pero slo en dispositivos compatibles con multitarea); el usuario decide
que aplicacin va a usar. Si no se selecciona la primera aplicacin, se
suspender. Si la memoria es baja, la aplicacin terminar.
Es similar
la de IOS pero con sus propios objetos nativos e
implementaciones de llamadas.
Aplicacin De Reiteracin (Reinstating App):
Pgina 21

applicationWillEnterForeground () el mtodo del objeto de la aplicacin


de interfaz de usuario es llamado y las notificaciones repartidas, las
cuales son todas mtodos del objeto de la aplicacin de interfaz de
usuario. Existen por lo menos 15 mtodos similares que incluyen dicha
funcionalidad como ajuste por cambio de tiempo, orientacin del
dispositivo, nivel de batera y ms.
5.3 Manejo de Procesos
Lenguaje De Programacin A Nivel De Kernel:
C++ y C#
Aplicaciones De Lenguaje De Programacin:
C++ o C# con XAML; JavaScript con HTML/CSS.
Aplicaciones (Apps):
Programacin de interfaces, Win32 para servicios de ncleo como: IPC;
Clases encapsuladas.
Procesos:
Cada proceso provee los recursos requeridos para ejecutar el programa.
Un proceso tiene espacio de direccin virtual, cdigo ejecutable,
manejos abiertos para objetos de sistema, un contexto de seguridad, un
identificador de proceso nico, variables de entorno, prioridad de clases,
mnimos y mximos conjuntos de tamaos de trabajo, y por lo menos un
hilo de ejecucin. Cada proceso es iniciado con un nico hilo,
normalmente llamado Hilo Primario, pero puede crear hilos adicionales
de cada uno de sus hilos.
Hilos:
Un hilo es una entidad dentro de un proceso que puede ser planificada
para ser ejecutada. Todos los hilos de un proceso comparten su espacio
de direccin virtual y recursos del sistema. En adicin a esto, cada hilo
mantiene controladores de excepcin, prioridad de planificacin,
almacenamiento local de hilos, un identificador nico de hilos, y un set
de estructuras que el sistema va a usar para guardar el contexto del hilo
hasta que sea planificado.
5.4 Procesos Concurrentes
Ncleos: 2
Procesamiento paralelo:
Pgina 22

Las computadoras con mltiples procesadores son diseadas


tpicamente para una de 2 arquitecturas: acceso a memoria no uniforme
(NUMA) o multiprocesamiento simtrico (SMP) (MultipleProcessors
(Windows) 2014)
NUMA.- cada procesador es cercano a algunas partes de memoria que a
otras, haciendo el acceso a memoria ms rpido para ciertas partes de
memora que otras partes. Bajo el modelo NUMA, el sistema intenta hacer
un registro de los hilos en procesadores que son los ms cercanos a ser
usados por la memoria.
SMP.- 2 o ms procesadores o ncleos idnticos se conectan a una
memoria compartida. Bajo el modelo SMP, cualquier hilo puede ser
asignado a cualquier procesador. Por consiguiente, planificar hilos en
una computadora SMP es similar a planificarlos en una computadora con
un solo procesador. Sin embargo, el planificador tiene un pozo de
procesadores, de forma que pueda planificar hilos para correr
concurrentemente. Planificacin sigue siendo determinada por la
prioridad del hilo, pero puede ser influenciada colocando la afinidad ideal
hilo-procesador.
5.5 Manejo de Memoria
Manejo de memoria: La memoria virtual es respaldada por memoria
fsica paginada, y el rango de direcciones virtuales puede ser respaldada
por pginas de memoria no contiguas. Los espacios de memoria virtual
de usuario y los espacios de memoria de sistema asignados del bloque
paginado son siempre paginables. Cualquier espacio de cdigo de
usuario o datos puede ser extrados en un almacenamiento secundario
en cualquier momento, incluso cuando el proceso eta en ejecucin.
Asigna miento De Memoria:
Un controlador tiene acceso pleno a los espacios de direcciones
virtuales soportadas por el procesador. En un procesador de 32 bits, los
espacios de direcciones virtuales representan 4 gigabytes. El CPU
traduce las direcciones en los espacios de direccin virtuales en los
espacios de direccin fsicos usando una tabla de paginados. Cada
pgina de entrada de tabla (PTE) mapea una pgina de memoria virtual a
una pgina de memoria fsica, resultando en una operacin de paginado
cuando sea necesario. Y MDL (Lista de descripcin de memoria) provee
un mapeo similar ara un buffer asociado con un controlador para
operaciones DMA
Recoleccin De Basura:

Pgina 23

El lenguaje comn de ejecucin (CommonLanguageRuntime) asigna


memoria para objetos, mientras el espacio de direcciones est
disponible en el montn administrado, el tiempo de ejecucin sigue para
asignar espacio para los nuevos objetos. Finalmente, el recolector de
basura debe realizar una coleccin con el fin de liberar memoria. El
motor de optimizacin de los recolectores de basura determina el mejor
momento para realizar una coleccin, en base a las asignaciones se
realizan. Cuando el recolector de basura realiza una coleccin, se
comprueba si hay objetos en el montn administrado que ya no estn
siendo utilizados por la aplicacin y realiza las operaciones necesarias
para recuperar su memoria.
Memoria Virtual:
Objetos instanciados de la librera de almacenamiento del lenguaje
comn de ejecucin.
5.6 Manejo de Archivos
Sistema De Archivos: Sistema de archivos FAT y exFAT.
Sandbox:
Las aplicaciones de Windows store se ejecutan separadamente una de
otra, un mecanismo conocido como sandboxing, el cual controla
fuertemente el acceso a los recursos del sistema.
Manejo De Archivos:
Los folder de archivos son particionados en tres reas de memoria los
cuales son principalmente de sistema operativo, data de usuario y data
de usuario removible.
-

El SO principal es contenido en un directorio raz. Es dividido en


dos caminos, uno incluye programas como aplicaciones de
desarrollador y tambin construidas en aplicaciones como Office,
que en versiones anteriores, fueron segregadas de aplicaciones de
desarrolladores. El segundo camino del principal SO se conecta a
los controladores de system32 y archivos de configuracin de
system32. El folder de controladores contiene todos los archivos
para las rutinas de controladores de los dispositivos. El folder de
configuracin contiene los archivos de registros.
Los datos de usuario almacena datos y el estado de la aplicacin.
Este folder es equivalente al disco en una computadora de
escritorio. En el arranque, el servicio de booteo crea 5 flderes los
cuales son Programs, Users, SystemData, SharedSata y
Test.
Pgina 24

Los datos removibles de usuario es data de usuario en una


memoria SD removible, la cal es similar al flash drive en una
computadora de escritorio.
Archivos internos: siempre disponibles, los archivos guardados
son accesibles solo por la aplicacin por defecto, cuando el
usuario desinstala la aplicacin, el sistema remueve todos los
archivos de aplicacin de la memoria interna.
Archivos externos: No siempre est disponible, porque el usuario
puede montar la memoria externa como una memoria externa USB
y en algunos casos extraerlos del dispositivo.
Es leble universalmente, por lo cal los archivos guardados aqu
pueden ser ledos fuera de su control.
Cundo el usuario desinstala la aplicacin, el sistema remueve los
archivos de la aplicacin de aqu solo si se guardaron en el
directorio de getExternalFilesDir.

5.7 Manejo de Dispositivo


El sistema de e/s de Windows provee un modelo de controlador de
capas llamado pilas. Tpicamente los IRPs (paquetes de llamadas de
interrupcin) van de un driver a otro en la misma pila para facilitar la
comunicacin. Por ejemplo, un joystick driver necesitara
comunicarse con un hub USB, el cual en turno necesitara
comunicarse con un host de controlador USB, el cual necesitara
comunicase a travs un bus PCI al resto del hardware de la
computadora. El stack consiste en un controlador del joystick, un hub
USB, controlador de host USB, y el bus PCI, Esta comunicacin es
coordinada teniendo cada driver en el stack de envo y recepcin
IRPs.
Disco:
No hay disco, pero una memoria SD permitida para contener datos de
usuario, el cual es cargado o transferido a un dispositivo directo de la
memoria. Datos de usuario almacenados. No usados para paginado.
5.8 Accesibilidad de Red
Manejo De Red:
Windows 8 y Windows 8.1 incluye un nmero de plizas para controla el
manejo de conexin. Esas plizas no son expuestas en el interfaz de
usuario pero pueden ser configuradas usando el WcmSetProperty, API o
Pliza de grupo.
Pgina 25

Windows usa un Access Control Entry (ACE) el cual describe los


derechos de acceso asociado con un particular SID. La entrada de
control de acceso es evaluada por el SO para computar el acceso
permitido a un programa en particular basado en sus credenciales. Una
lista de control de acceso ACL, es una lista de ACEs creada por el SO
para controlar el comportamiento de seguridad asociada con un objeto
protegido de algn tipo.

CONCLUSIONES
En el informe pudimos observar las diferentes maneras y formas de
gestionar memoria en elun sistema operativo de Windows phone, con los
algoritmos de creacin, eliminacin, duplicidad entre otras que nos
ayudaran al adecuado reparto de regiones de memoria.
Los algoritmos nos ayudaran a llevara llevar un registro de las partes de
memoria que se estn utilizando y aquellas que no, con el fin de asignar
espacio en memoria a los procesos cuando stos la necesiten y
liberndola cuando terminen.

RECOMENDACIONES
Utilizar los algoritmos implementados y desarrollados en este informe,
ya que estos ayudaran a entender y ejecutar las polticas de reemplazo
sobre gestin de memoria acerca del sistema operativo de wondws
phone.

Pgina 26

Bibliografa
Ringgaard, M. (2002). Kernel32. Recuperado el 19 de Junio de 2016, de
http://www.jbox.dk/sanos/source/include/os.h.html#:339
Perez, J. C. (2001). Sistemas Operativos Una Vision Aplicada. (C. F. Madrid,
Ed.) Esapa. Recuperado el 19 de Junio de 2016
Mobile Operating Systems Comparison: Windows Phone, Apple ios, and
Google Android.(2014). Recuperado el 19 de Junio de 2016, de
http://docplayer.net/2470658-Mobile-operating-systems-comparisonwindows-phone-apple-ios-and-google-android.html
Marshall, D. (5 de Enero de 1999). IPC:Shared Memory. Recuperado el 19 de
Junio de 2016, de https://www.cs.cf.ac.uk/Dave/C/node27.html
Rubio, C. G. (s.f.). Sistemas operativos de dispositivos moviles. (D. d.
Telematica, Ed.) Recuperado el 19 de Junio de 2016, de
http://ocw.uc3m.es/ingenieria-telematica/aplicacionesmoviles/material-de-clase-2/sistemas-operativos
Bullock, B. (09 de Octubre de 2010). Windows and Unix command line
equivalents.Recuperado
el
19
de
Junio
de
2016,
de
http://www.lemoda.net/windows/windows2unix/windows2unix.html
CISCO. (13 de Julio de 2000). CreateFile.c. Recuperado el 19 de Junio de
2016,
de
http://read.pudn.com/downloads33/sourcecode/hack/firewall/105210/C
DROM/Chapter5/5-1/CreateFile.c__.htm
Ejercicios sobre procesos y seales. (s.f.). Recuperado el 19 de Junio de
2016, de http://www.e-recursos.net/funciones/ejercicios01.html

Pgina 27

Free Software Foundation, Inc. (Agosto de 1995). shmdt.c. Recuperado el 19


de
Junio
de
2016,
de
https://fossies.org/dox/glibc2.22/sysdeps_2unix_2sysv_2linux_2shmdt_8c_source.html
Free Software Foundation.Inc. (11 de Marzo de 2001). malloc.c. Recuperado
el 19 de Junio de 2016, de https://sourceware.org/git/?
p=glibc.git;a=blob;f=malloc/malloc.c;h=d20d5955db4d814b73a5b1829d
1bc7874c94024d;hb=HEAD#l5085

Pgina 28

Você também pode gostar