Sistemas Operativos. Memoria - UDC

1y ago
11 Views
2 Downloads
2.99 MB
77 Pages
Last View : 21d ago
Last Download : 3m ago
Upload by : Giovanna Wyche
Transcription

Sistemas operativos.Memoria()Sistemas operativos. Memoria1 / 77

Contenidos IAdministración de Memoria. ́nEsquemas simplesSistemas no multiprogramadosSistemas MultiprogramadosSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria2 / 77

Administración de Memoria. IntroducciónAdministración de Memoria. ́nEsquemas simplesSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria3 / 77

Administración de Memoria. IntroducciónMemoriaILa memoria se puede definir como los circuitos que permitenalmacenar y recuperar la informaciónILa unidad de almacenamiento es el bit (binary element)aunquenormalmente la consideramos estructurada en bytes (8 bits)Aunque el byte es la unidad de direccionamiento, solemos hablar depalabras. palabra se refiere a la longitud de los registros delmicroprocesador.IIIAsi hablamos de microprocesadores de 16 bits, de 32 bits . . .Por razones históricas a veces se denomina palabra a 16 bits (2 bytes)y doble palabra a 32 bits()Sistemas operativos. Memoria4 / 77

Administración de Memoria. IntroducciónAcceso a la memoriaISegun la manera de acceder a las las celdas de información de lamemoria las podemos clasificar deIImemorias asociativas Direccionables por contenidos: cuando se lepide la informacin almacenada en una dirección, la memoria asociativaest organizada de forma tal que puede encontrarla sencillamenteinspeccionando los bits de la direccin y con una búsqueda asociativa(muy similar a una búsqueda en una tabla hash). Utilizadaprincipalmente en las cachesmemorias convencionales Cada celda es direccionable por un númeroal que llamaremos dirección()Sistemas operativos. Memoria5 / 77

Administración de Memoria. Introducción Figure: From R.E. Bryant et al. Computer Systems: A Programmer’s Perspective (2nd edition), Pearson 2014()Sistemas operativos. Memoria6 / 77

Administración de Memoria. Introducción Figure:From R.E. Bryant et al. Computer Systems: A Programmer’s Perspective (2nd edition), Pearson 2014()Sistemas operativos. Memoria7 / 77

Administración de Memoria. IntroducciónJerarquı́a de la MemoriaIEl tiempo de acceso es el tiempo necesario para realizar unaoperación de lectura/escritura, es decir, el tiempo que transcurredesde el instante en que se pone la dirección en el bus de direccioneshasta que el dato ha sido almacenado en memoria o puesto adisposición de la CPU.IInteresa que el acceso sea lo mas rápido posible, pero ademas interesatener la mayor capacidad sin incurrir en un costo excesivo. Por tantose usan las memorias más rápidas y caras para donde los accesos sonmás frecuentesSurge ası́ lo que se llama jerarquı́a de la memoria y que se estableceen base a los tiempo de acceso y capacidad disponibleI1.2.3.4.5.Registros del microprocesadorMemoria cacheMemoria principalUnidades de discoUnidades de cinta u opticas()Sistemas operativos. Memoria8 / 77

Administración de Memoria. IntroducciónJerarquı́a de la Memoria()Sistemas operativos. Memoria9 / 77

Administración de Memoria. Introducción Figure:From R.E. Bryant et al. Computer Systems: A Programmer’s Perspective (2nd edition), Pearson 2014()Sistemas operativos. Memoria10 / 77

Administración de Memoria. IntroducciónIEl sistema operativo es un asignador de recursos lo que implica quepara cada recursoIIIIEl S.O. debeEl S.O. debeEl S.O. debeEl S.O. debenecesotan()llevar contabilidad del recursotener una polı́tica de asignación del recursoasignar el recurso a los procesos que lo necesitenrecuperar el recurso cunado los procesos ya no loSistemas operativos. Memoria11 / 77

Administración de Memoria. IntroducciónAdministración de memoriaIEn un sistema el S.O. debe llevar contabilidad de la memoriaIIEl S.O. tiene que llevar contabilidad de la memoria disponible en elsistema: la memoria no contabilizada por el S.O. no está disponiblepara los procesosEl S.O. también tiene que llevar una contabilidad por procesoIEl S.O. asigna memoria a los procesos cuando se inicia su ejecución ycuando la solicitanICuando el proceso termina el S.O. RECUPERA la memoria que tenı́aasignadaISi el sistema tiene memoria virtual es el S.O. quien se encarga degestionarla()Sistemas operativos. Memoria12 / 77

Administración de Memoria. IntroducciónSegmentos del espacio de direcciones virtuales de unprocesoICódigo (text).IStatic Data. Para variables globales inicializadas y static C vars. Paravariables globales no inicializadas (BSS).IHeap. Asignación dinámica (malloc).IStack. Stack frames de las llamadas a función: argumentos yvariables locales (automatic C vars), direcciones de retorno.()Sistemas operativos. Memoria13 / 77

Administración de Memoria. Introducciónbrk() System callIEstablece el final del data segment, que es el final del heap.Ibrk() establece la dirección (argumento) y devuelve 0 si tiene éxito.Isbrk() función C. Añade un desplazamiento (argumento) (puede sercero) y actuliza el espacio disponible (el valor puede ser negativoimplicando un decremento del espacio disponible)()Sistemas operativos. Memoria14 / 77

Administración de Memoria. Introducciónmalloc() C library functionISi tiene éxito devuelve un puntero a un bloque disponible de size(argumento) bytes libres del heap, devuelve NULL si error. malloc()hace uso de las llamadas brk() y sbrk() para gestionar el heap.Ifree(ptr) libera la memoria obtenida con mallocIver calloc() y realloc()INormalmente una llamada brk() se invoca para satisfacer variosmalloc cuando es necesarioImalloc() también puede hacer uso de la llamada mmap() para obtenerbloques muy grandes de memoria()Sistemas operativos. Memoria15 / 77

Administración de Memoria. IntroducciónAdministración de memoria: ejemploICompilar y probar el siguiente programa de ejemplo/* this example comes matique/INF583/ */#include stdlib.h #include stdio.h double t[0x02000000];void segments(){static int s 42;void *p d)\t%010p\ntext\t%010p\n",&p, sbrk(0), p, t, &s, segments);}int main(int argc, char *argv[]){segments();exit(0);}()Sistemas operativos. Memoria16 / 77

Administración de Memoria. IntroducciónAdministración de memoria: ejemploIOutputstack 0x7fff12f59468brk 0x116ed000heap 0x116cc010static(BSS) 0x00601060static(initialized) 0x00601038text 0x004005d4()Sistemas operativos. Memoria17 / 77

Administración de Memoria. IntroducciónAdministración de memoria: ejemploICompilar y probar el siguiente programa de ejemplo#include#include#include#include stdlib.h unistd.h stdio.h limits.h #define TROZO#define PUNTO100*1024*1024(10*1024*1024)void accede (char * p, unsigned long long tam){unsigned long long i;for (i 0; i tam; i ){p[i] ’a’;if ((i%PUNTO) 0)write (1,".",1); /*imprime un punto cada 10 Mbytes accedidos*/}}()Sistemas operativos. Memoria18 / 77

Administración de Memoria. IntroducciónAdministración de memoria: ejemplomain (int argc,char*argv[]){char *p;unsigned long long total 0, cantidad TROZO;unsigned long long maximo ULLONG MAX;if (argv[1]! NULL){maximo strtoull(argv[1],NULL,10);if (argv[2]! NULL)cantidad strtoull(argv[2],NULL,10);}while (total maximo && (p malloc(cantidad))! NULL){total cantidad;printf ("asignados %llu (total:%llu) bytes en %p\n", cantidad,total,p);accede (p,cantidad);getchar();}printf ("Total asignacion: %llu\n",total);sleep(10);}()Sistemas operativos. Memoria19 / 77

Administración de Memoria. IntroducciónOutputIsalida del comando pmap PID3742:./a.out00000000004000004K r-x-00000000006000004K r---00000000006010004K rw--00007ff7b22c9000 307212K rw--00007ff7c4ecc0001588K r-x-00007ff7c50590002048K ----00007ff7c525900016K r---00007ff7c525d0004K rw--00007ff7c525e00024K rw--00007ff7c5264000132K r-x-00007ff7c545f00012K rw--00007ff7c548000016K rw--00007ff7c54840004K r---00007ff7c54850008K rw--00007fff4562e000132K rw--00007fff456e60004K r-x-ffffffffff6000004K -so/examples C/home/barreiro/teaching/teaching-so/examples C/home/barreiro/teaching/teaching-so/examples C[ anon ]/lib/x86 64-linux-gnu/libc-2.13.so/lib/x86 64-linux-gnu/libc-2.13.so/lib/x86 64-linux-gnu/libc-2.13.so/lib/x86 64-linux-gnu/libc-2.13.so[ anon ]/lib/x86 64-linux-gnu/ld-2.13.so[ anon ][ anon ]/lib/x86 64-linux-gnu/ld-2.13.so/lib/x86 64-linux-gnu/ld-2.13.so[ stack ][ anon ][ anon ]Sistemas operativos. Memoria20 / 77

Administración de Memoria. IntroducciónOutputIdespués de otra asignación3742:./a.out00000000004000004K r-x-00000000006000004K r---00000000006010004K rw--00007ff7abec8000 409616K rw--00007ff7c4ecc0001588K r-x-00007ff7c50590002048K ----00007ff7c525900016K r---00007ff7c525d0004K rw--00007ff7c525e00024K rw--00007ff7c5264000132K r-x-00007ff7c545f00012K rw--00007ff7c548000016K rw--00007ff7c54840004K r---00007ff7c54850008K rw--00007fff4562e000132K rw--00007fff456e60004K r-x-ffffffffff6000004K -so/examples C/home/barreiro/teaching/teaching-so/examples C/home/barreiro/teaching/teaching-so/examples C[ anon ]/lib/x86 64-linux-gnu/libc-2.13.so/lib/x86 64-linux-gnu/libc-2.13.so/lib/x86 64-linux-gnu/libc-2.13.so/lib/x86 64-linux-gnu/libc-2.13.so[ anon ]/lib/x86 64-linux-gnu/ld-2.13.so[ anon ][ anon ]/lib/x86 64-linux-gnu/ld-2.13.so/lib/x86 64-linux-gnu/ld-2.13.so[ stack ][ anon ][ anon ]Sistemas operativos. Memoria21 / 77

Administración de Memoria. IntroducciónFragmentación de la memoriaIAl igual que ocurre con los sistemas de ficheros, la memoria puedepresentar fragmentación inter y externaIIfragmentación interna Memoria que se despedicia por ser lasunidades de asignación de tamaño fijo y no ser los requerimientos delos procesos múltiplos exactos de la unidad de asignaciónfragmentación externa Memoria que no se puede asignar por no estarcontigua, tı́pica de los sistemas que utilizan segmentación()Sistemas operativos. Memoria22 / 77

IntercambioAdministración de Memoria. ́nEsquemas simplesSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria23 / 77

IntercambioIntercambioIISe denomina intercambio (swap) a una zona de disco que se utilizacomo memoria auxiliarTodo proceso para ejecutarse debe estar en memoria. Utilizando unazona de disco como intercambio puede aumentarse el grado demultiprogramación.IISi el planificador seleción un proceso que está en el intercambio, esnecesario traerlo a memoria principal, lo que aumenta el tiempo delcambio de contextoPara poder intercambiar procesos que están pendientes de unaoperación de e/s, todas las operaciones de e/s se hacen sobre losbuffers del sistema()Sistemas operativos. Memoria24 / 77

IntercambioIntercambioIEn sistemas antiguos se intercambiaban procesos enteros paraaumentar el grado de multiprogramacónIIEs lo que se denomina swappingEn sistemas modernos, con memoria virtual, lo que se intercambiason las páginas poco referenciadas de los procesosIEs lo que se denomina paging()Sistemas operativos. Memoria25 / 77

IntercambioIntercambioILa zona de intercambio puede ser una partición dedicada o un ficherode discoIUtilizar un archivo de intercambio es mas flexible, puede cambiarsefacilmente su ubicación y/o su tamañoIUn archivo de intercambio es menos eficiente, puesto que utiliza lasindirecciones del sistema de archivosILos sistemas windows utilizan archivo de intercambio, y en lossistemas UNIX es más usual utilizar partición de intercambio, aunquepuede utilizarse tambien archivo de intercambio()Sistemas operativos. Memoria26 / 77

IntercambioArchivo Intercambio Windows()Sistemas operativos. Memoria27 / 77

RelocalizaciónAdministración de Memoria. ́nEsquemas simplesSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria28 / 77

RelocalizaciónAdministración de memoria: relocalizaciónIPartimos de código fuente (compilación) código objetoIVarios archivos código objeto (enlazado) fichero ejecutableIFichero ejecutable (carga y ejecución) proceso en memoriaICódigo fuente fichero ejecutable proceso en memoriaIEn el fichero fuente tenemos variables, funciones, procedimientos . . .IEn el proceso en memoria tenemos contenidos de direcciones dememoria, saltos a direcciones donde hay códigoI¿Dónde y cuándo se hace esa transformación?()Sistemas operativos. Memoria29 / 77

RelocalizaciónAdministración de memoria: relocalizaciónISi dichas direcciones se generan en tiempo de compilación (y/oenlazado) decimos que se trata de código absoluto (ej: ficheros.COM de MS-DOS)IIIHabrı́a que conocer en que dirección de memoria donde se va aejecutar el programa en el momento de compilación/enlazadoEl ejecutable no serı́a muy portableSi las direcciones se generan en el momento de carga (el ficheroejecutable tiene unas referencias relativas), se trata de relocalizaciónestática (ej: ficheros EXE de MS.DOS)IIUna vez cargado no puede moverse a otro sitio de la memoriaSolo puede haber intercambio si los procesos vuelven al mismo sitio dela memoria (particiones fijas)()Sistemas operativos. Memoria30 / 77

RelocalizaciónRelocalización Estática()Sistemas operativos. Memoria31 / 77

RelocalizaciónAdministración de memoria: relocalizaciónISi las direcciones se generan en tiempo de ejecución (el proceso alejecutarse maneja unas referencias que no son las direcciones dememoria reales a las que accede), se trata de relocalizacióndinámica (ej: ficheros EXE windows XP)IIINo va a haber ningún problema con el intercambio, los procesospueden salir de memoria y volver a ella en cuanquier sitioAparece una distinción entre el espacio virtual o lógico de direcciones yel espacio fı́sico de direcciones al que realmente se accedeEs NECESARIO que el hardware haga dicha traslaciónITodos los sistemas actuales usan relocalización dinámicaIEn el caso de relocalización dinámica el enlazado puede posponersehasta el momento de ejecución, es lo que se conoce como enlacedinámico (p.e. las DLL de windows, lib*.so de linux)()Sistemas operativos. Memoria32 / 77

RelocalizaciónRelocalización Dinámica()Sistemas operativos. Memoria33 / 77

ProtecciónAdministración de Memoria. ́nEsquemas simplesSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria34 / 77

ProtecciónProtecciónILa memoria debe estar protegida de manera queIIIUn proceso no pueda acceder directamente a la memoria del S.O.Un proceso no pueda acceder a la memoria de otros procesosLas maneras más elementales de implementar la protecciónIICon dos registros lı́miteCon un registro base y un registro lı́mite()Sistemas operativos. Memoria35 / 77

ProtecciónProtecciónICon dos registros lı́miteIIIICada ve que un proceso genera una dirección se comprueba si es mayorque el registro lı́mite inferior y menor que el superior. De no ser ası́ segenera una excepciónEl hardware ha de proporcionar dichos registros lı́miteEl cambio de contexto actualizará el valor de dichos registros lı́miteEl cambio de valores de los registros lı́mite ha de ser una instrucciónprivilegiada()Sistemas operativos. Memoria36 / 77

ProtecciónProtecciónICon registro base y registro lı́miteIIIIICada ve que un proceso genera una dirección se comprueba si es menorque el registro lı́mite. En caso de serlo, la dirección fı́sica se obtienesumando el valor del registro base. De no ser ası́ se genera unaexcepción.El hardware ha de proporcionar dichos registrosEl cambio de contexto actualizará el valor de dichos registrosEl cambio de valores de los registros lı́mite ha de ser una instrucciónprivilegiadaEste esquema proporciona además una manera de relocalizacióndinámica()Sistemas operativos. Memoria37 / 77

ProtecciónRegistros base y mı́mite()Sistemas operativos. Memoria38 / 77

ProtecciónProtecciónIEn sistemas actuales la protección la proporciona el sistema dedireccionamientoITanto la segmentación como la paginación proporcionan unaprotección eficaz de la memoriaISigue siendo necesario, obviamente, que haya al menos dos modos deejecución, modo usuario y modo sistema (kernel, supervisor . . . )()Sistemas operativos. Memoria39 / 77

Esquemas simplesAdministración de Memoria. ́nEsquemas simplesSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria40 / 77

Esquemas simplesSistemas no multiprogramadosEsquemas simplesSistemas no multiprogramadosSistemas Multiprogramados()Sistemas operativos. Memoria41 / 77

Esquemas simplesSistemas no multiprogramadosSistemas simples: sistemas no multiprogramadosIEl sistema mas simple de administración de memoria es carecer de él:válido en sistemas dedicadosIEn un sistema operativo no multiprogramado solo dos zonas dememoria: el S.O y el proceso de usuarioITipicamenmte el S.O en las posiciones bajas de memoria y el restopara el proceso de usuario: concepto de monitor simple (IBSYS praIBM 7094)IPrimeros ordenadores personales: S.O. en direcciones altas de lamemoria (en ROM) y resto para procesos de usuarioIS.O. en direcciones bajas de la memoria y partes de S.O. endirecciones altas de memoria: Primeras versiones MS-DOS()Sistemas operativos. Memoria42 / 77

Esquemas simplesSistemas MultiprogramadosEsquemas simplesSistemas no multiprogramadosSistemas Multiprogramados()Sistemas operativos. Memoria43 / 77

Esquemas simplesSistemas MultiprogramadosAdministración de memoria: Esquemas simplesIEn el caso de sistemas operativos multiprogramados, el método massimple es dividir la memoria en varias zonasIUn proceso en cada zonaDos enfoquesIIIzonas de tamaño fijo: El número de procesos en memoria tambien esfijozonas de tamaño variable: El número y el tamaño de las zonas puedevariar()Sistemas operativos. Memoria44 / 77

Esquemas simplesSistemas MultiprogramadosAdministración de memoria: Esquemas simplesIZonas de tamaño fijoIIIPresentaba fragmentación externa e internaUsado en IBM OS/360 MFT (Multiprogramming Fixed number ofTasks)Zonas de tamaño variableIIIfragmentación interna despreciable. Si presentaba fragmentaciónexternaRequiere compactacionesUsado en IBM OS/360 MVT (Multiprogramming Variable number ofTasks)()Sistemas operativos. Memoria45 / 77

SegmentaciónAdministración de Memoria. ́nEsquemas simplesSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria46 / 77

SegmentaciónAdministración de memoria: SegmentaciónIEl proceso considera su espacio de direcciones compuesto deentidades de tamaño variable llamadas segmentosILa dirección lógica se compone de segmento y desplazamientoCon el número de segmento se obtiene una entrada en una tabla desegmentos, en donde hay una dirección base y un lı́mite.IIISi el desplazamiento es mayor que el lı́mite se produce un error dedireccionamiento.La dirección de memoria fı́sica a la que se accede se obtiene sumandoel desplazamiento a la base()Sistemas operativos. Memoria47 / 77

SegmentaciónAdministración de memoria: Segmentación()Sistemas operativos. Memoria48 / 77

SegmentaciónSegmentación: ejemploIConsideremos un sistema con segmentación con las siguientescaracterı́sticasIIIlas direcciones son de 16 bits (4 bits para el número de segmento y 12bits para el desplazamiento)cada entrada en la tabla de segmentos tine 28 bits, los 12 massignificativos para el lı́mite y los 16 menos significativos para la baseUn proceso tiene dos segmentos y las dos primeras entradas de su tablade segmentos en memoria valen 0x2EE0400 y ccióndireccióndirecciónSistemas operativos. Memoria0x12F0?0x0342?0x0x021F?0x190A?49 / 77

SegmentaciónSegmentación: ejemploIUna referencia del proceso a la dirección de memoria 0x12F0 accede ala dirección de memoria fı́sica 0x2310IUna referencia a la dirección de memoria 0x0342 produce un error dedireccionamientoIUna referencia a la dirección de memoria 0x0x021F accede a ladirección de memoria fı́sica 0x061FIuna referencia a la dirección de memoria 0x190A produce un error dedireccionamiento()Sistemas operativos. Memoria50 / 77

SegmentaciónAdministración de memoria: Segmentación()Sistemas operativos. Memoria51 / 77

SegmentaciónFragmentación en los sistemas con segmentaciónITiene fragmentación externa.IIDado que los segmentos son de distinto tamaño, a medida que seasignan y desasignan segmentos van quedando huecos: es posible queun segmento no pueda colocarse en memoria pues los huecos no estáncontiguos. Se soluciona mediante una compactaciónTiene algo defragmentación interna.IEl tamaño de segmento suele ser múltiplo de alguna cantidad dememoria. Por ejemplo si el tamaño de segmento es múltiplo de 16bytes hay algo de fragmentación interna()Sistemas operativos. Memoria52 / 77

SegmentaciónSegmentación: estrategias de asignaciónIIEl S.O. tiene que llevar contabilidad de la memoria asignada, lo quecon la segmentación supone llevar una lista de zonas ocupadas yhuecos.A la hora de asignar un segmento en memoria puede haber varioshuecos disponibles donde dicho segmento puede colocarse. VariasestrategiasIIIIIfirst fit Primer hueco. El primer hueco que encuentra. Muy rápido,tiende a dejar huecos pequeños en las zonas bajas de la memoria ygrandes en las altas (suponiendo que la búsqueda comienza por laszonas bajas)next fit Siguiente hueco. El primer hueco que encuentra, comenzandola búsqueda a partir de donde asignó el últimobest fit El hueco que mejor se ajusta. Mas lento. Tiende a generarhuecos pequeñosworst fit El hueco que pero se ajusta. La idea es que dejará huecosmas grandesSimulaciones muestran que en general worst fit produce peoresresultados()Sistemas operativos. Memoria53 / 77

SegmentaciónSegmentación: desperdicio de memoriaIEn un sistema con segmentación, donde s es el tamaño promedio delsegmento y k la relación entre el tamaño promedio del hueco y eltamaño promedio del segmento, la memoria desperdiciada en huecoseskk 2IDado que dos segmentos contiguos son dos segmentos y dos huecoscontiguos son un hueco mas grande, se estima que en general haydoble número de segmentos que de huecosIsi hay n segmentos ocuparán ns, mientras que los huecos ocuparánn2 ksIcon lo que el procentaje de memoria desperdiciada en huecos esmemoria en huecosmemoria total() nks2nks ns2Sistemas operativos. Memoria kk 254 / 77

SegmentaciónAdministración de memoria: SegmentaciónIREQUIERE soporte del hardwareIEs una manera de relocalización dinámicaIImplementa la protección de la memoriaIPermite la compartición de código (o datos) a nivel de segmentoIel intel 80286 proporcionaba segmentación. Windows 3.1 y 3.11 (enmı́do estndar) e IBM OS/2 hasta la versión 1.3 usaban dichasegmentación()Sistemas operativos. Memoria55 / 77

PaginaciónAdministración de Memoria. ́nEsquemas simplesSegmentaciónPaginaciónSistemas mixtos()Sistemas operativos. Memoria56 / 77

PaginaciónAdministración de memoria: PaginaciónIEs una manera de relocalización dinámicaIEl espacio de direcciones fı́sicas está dividido en zonas de tamaño fijollamadas marcos de páginaIEl espacio de direcciones lógico o virtual está formado por zonas detamaño fijo denominadas páginasILa dirección lógica se compone de número de página ydesplazamiento dentro de la páginaICon el número de página se obtiene una entrada en una tabla depáginas, en donde hay una dirección base de marco de páginaILa dirección de memoria fı́sica a la que se accede se obtiene sumandoel desplazamiento a la dirección base del marco de página()Sistemas operativos. Memoria57 / 77

PaginaciónAdministración de memoria: Paginación()Sistemas operativos. Memoria58 / 77

PaginaciónPaginación: EjemploISupongamos un sistema con direcciones de 16 bits donde 7 bitscorresponden al número de página y 9 al desplazamiento dentro de lapáginaIEl tamanño de página serı́a de 512 bytesIUn proceso referencia la dirección 0x095f (0000 1001 0101 1111)IEsta referencia es a la página 4 desplazamiento 0x15f()Sistemas operativos. Memoria59 / 77

PaginaciónPaginación: EjemploIEn la entrada correspondiente a la página 4 de la tabla de páginas delproceso nos dirá la dirección de memoria fisica donde está dichapáginaISupongamos que en dicha entrada nos indica que la dirección delmarco de memoria fiśica es 0xAE00 (1010 1110 0000 0000)IEntonces la dirección de memorı́a fı́sica a donde realmente se accedees 0xAF5F (1010 11111 0101 1111)()Sistemas operativos. Memoria60 / 77

PaginaciónPaginaciónIICon paginación la memoria de un proceso no es contiguaEl tamaño de página lo define el hardware:IIIla arquitectuta x86 de 32 bits tinene un tamaño de 4 Kbytesla arquitectura SPARC de 8 KbytesLa paginación no tiene fragmentación externa, pero sı́ interna.IIA mayor tamaño de página mayor fragmentación internaA menor tamaño de página mayor gasto adicional en, p.e., tablas depáginas()Sistemas operativos. Memoria61 / 77

PaginaciónPaginaciónIEl sistema operativo ha de llevar ahora contabilidad deIIIIlos marcos de memoria fı́sicalas páginas asignadas a cada procesoEl S.O. se encargará ademas de gestionar las tablas de páginas decada proceso en el cambio de contextoLa paginación permite compartir memoria entre distintos procesos:Ibasta que las entradas correspondientes de sus tablas de páginasapunten a los mismos marcos de memoria fı́sica()Sistemas operativos. Memoria62 / 77

PaginaciónAdministración de memoria: Paginación()Sistemas operativos. Memoria63 / 77

PaginaciónPaginaciónICon páginación la memoria está protegidaIIun proceso solo accede a donde indica su tabla de páginasdicha tabla de páginas solo puede ser modificada por el S.O.IRequiere el soporte de HARDWARE (p.e un intel 286 no tenı́apaginación, un i386 sı́)IAdemás de la dirección del marco de memoria fı́sica, en cada entradade la tabla de páginas hay más información: página de solo lectura,modificada, nivel de privilegio . . .()Sistemas operativos. Memoria64 / 77

PaginaciónPaginación: Implementación de la tabla de páginasIHay dos maneras de implementar la tabla de páginasIRegistros dedicados: El microporcesador tiene unos registros dondealmacena la tabla de páginas del proceso en ejecución. En el cambio decontexto se salva la tabla de páginas del proceso que abandona la CPUy se carga la del que entra en CPUIIIIRápidoMuy costoso (hacen falta muchos registros: impracticable)Cambio de contexto lentoEn memoria: La tabla de páginas de un proceso se almacena enmemoria. El microprocesador tiene un registro que indica en quedirección está la tabla de páginas del proceso en CPU. En el cambio decontexto solo hay que cambiar el valor de ese registroI()Lento: Cada vez que el proceso accede a memoria son necesarios dosaccesos: uno para acceder a la tabla de páginas para determinar a quédirección hay que acceder y otro para acceder a dicha direcciónSistemas operativos. Memoria65 / 77

PaginaciónPaginaciónILa implementación actual de las tablas de páginas (al igual que las desegmentos) es en memoria (implementarlas en registros dedicadosserı́a muy costoso)ILa tabla de páginas está en memoria y un registro apunta a ellaISe enlentece el acceso ya que son necesarios dos accesos, uno paraobtener la entrada de la tabla de páginas y otro para accederSe usan unas pequeñas memorias asociativas con las entradas de latabla de página mas recientemente usadas. TLB (translationLookaside Buffers)IIIpor ejemplo, si el tiempo de acceso a memoria fuese de 100 ns y el deacceso al TLB 20, con una probabilidad del 90% de acierto en el TLB,el tiempo de acceso efectivo a memoria serı́a0.9x120 0.1x220 130nsEl algunos sistemas hay dos niveles de TLB (un core i7 tiene un TLB1de 64 entradas y un TLB2 de 512 entradas)()Sistemas operativos. Memoria66 / 77

PaginaciónAdministración de memoria: Paginación con TLB()Sistemas operativos. Memoria67 / 77

PaginaciónTablas de páginas invertidasIEn los sistemas con memoria virtual, muchas páginas de un procesono están en memoria: sin embar

operaci on de lectura/escritura, es decir, el tiempo que transcurre desde el instante en que se pone la direcci on en el bus de direcciones hasta que el dato ha sido almacenado en memoria o puesto a disposici on de la CPU. I Interesa que el acceso sea lo mas r apido posible, pero ademas interesa tener la mayor capacidad sin incurrir en un costo .

Related Documents:

UDC 2300 UDC 3000 UDC 3300 UDC 5000 UDC 6000 UDC 6300 Universal Digital Controllers RS422/485 ASC

1.4.6 Sistemas operativos integrados 35 1.4.7 Sistemas operativos de nodos sensores 36 1.4.8 Sistemas operativos en tiempo real 36 1.4.9 Sistemas operativos de tarjetas inteligentes 37 1.5 CONCEPTOS DE LOS SISTEMAS OPERATIVOS 37 1.5.1 Procesos 38 1.5.2 Espacios de direcciones 40

control y gestión eficiente del software y el hardware de cada equipo, no se contemplaba su interconexión. Sistemas operativos para equipos conectados a una red. Sistemas que se han desarrollado a partir de las posibilidades de comunicación entre máquinas y que se pueden subdividir en: o Sistemas operativos para equipos servidores.

Tema 1.- 'INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS' Página 3/13 Esquema 1Visión del usuario USUARIO INTERPRETE DE COMANDOS SO PROGRAMA. CURSO: 2003-2004 SISTEMAS OPERATIVOS TEMA 1 2.- HISTORIA Y EVOLUCIÓN DE LOS SO Vamos a ver como ha ido evolucionando el hardware.

UDC 3300 51-52-25-70 UDC 3300 Controller Specification Sheet 51-52-03-23 UDC 3000 Modbus 485RTU Communications Option 51-52-25-38 How to Apply Digital Instrumentation in Severe Electrical Noise Environments 51-52-05-01 Contacts World Wide Web The following lists Honeywell’s World Wid

Invertir on acto: Principios Operativos para la Gestión del Impacto PROPÓSITO Los Principios Operativos para la Gestión del Impacto han sido elaborados por un grupo de inversionistas y gestores de activos para describir las características principales de la gestión de inversiones en empresas u

laboratorio de redes y sistemas operativos tema: “kalibrowser” alumnos: patricio otel, ripoli fernando, lÓpez susana mariel.

Leo Aronson. My hope is that your wonderful capacity for empathy and compassion will help make the world a better place. —E.A. To my family, Deirdre Smith, Christopher Wilson, and Leigh Wilson —T.D.W. To my children, Genevieve and Everett —B.F. To my mentor, colleague, and friend, Dane Archer —R.M.A.