Supervisión del uso de memoria
Transcripción
Supervisión del uso de memoria
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN SISTEMAS OPERATIVOS PRÁCTICA 4. Supervisión del uso de memoria Unidad II, Administrador de Memoria OBJETIVOS PARTICULARES DE LA UNIDAD El alumno explicará las funciones de un administrador de memoria, así como los mecanismos para protección de áreas de memoria. Aplicará las técnicas de partición y asignación de memoria a un proceso. OBJETIVO DE LA PRÁCTICA: El alumno usará las herramientas del sistema operativo Windows y verificará el espacio de memoria que utiliza un proceso (programa) en la memoria de la computadora. Determinará los tipos de compilación de un programa en C que optimicen el uso de memoria y lo comprobará con las herramientas del sistema operativo de Windows: Administrador de tareas y 'tasklist'. 4.1 El siguiente programa en C informa cual es la dirección que ocupa el programa cuando está en ejecución. Modifique para que regrese la dirección final del espacio reservado en memoria y verifique mediante el Administrador de tareas o tasklist si corresponden los espacios reservados. /* Programa que reserva memoria de acuerdo al tipo de dato que se declare, el programa regresa la dirección inicial del espacio de memoria */ #include <stdio.h> int main(void) { char* p; p = (char*) malloc(1000*sizeof(char)); while(p =! NULL) { printf ("p apunta a %d \n", p); p++; } return(0); } 4.2 Programa que reserva memoria, se llena de información, se cambia el tamaño de la memoria reservada y se modifica su contenido. 1 /3 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN Modifique el programa para alojar al menos un megabyte de memoria y verifique las opciones de compilación en las cuales es posible hacerlo. Compruebe con las herramientas Administrador de tareas y/o tasklist de Windows. /* Programa que reserva memoria de acuerdo al tipo de dato que se declare, el programa regresa la dirección inicial del espacio de memoria */ #include< stdio.h > #include< stdlib.h > define NULL 0 main() { char *buffer; /*Alojando memoria*/ if((buffer=(char *) malloc(20))==NULL) { printf(“Fallo reservar memoria con Malloc \n”); exit(1); } printf(“Se creo un espacio de memoria (buffer) de tamaño %d bytes \n,_msize(buffer)); strcpy(buffer,”Practica 4”); printf(“\nEl Buffer contiene:%s\n”,buffer); /*Realojamiento*/ if((buffer=(char *)realloc(buffer,15))==NULL) { printf(“Reubicamiento fallido\n”); exit(1); } printf(“\nSe modifico el Buffer de tamaño.\n”); printf(“\nEl Buffer aun contiene: %s\n”,buffer); strcpy(buffer,”Dinero y Felicidad”); printf(“\nEl Buffer ahora contiene:%s\n”,buffer); /*liberando la memoria*/ free(buffer); } 2 /3 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN Bibliografía: 1. Salas Parrilla, Jesús. “Sistemas Operativos y Compiladores” Mc Graw-Hill Interamericana de España. 1992. España. 2. Milenkovic, Milan Sistemas Operativos, conceptos y Diseño. Mc Graw Hill, 1988, España. 3. Tanenbaum, Andrew S. Sistemas Operativos Modernos Prentice Hall Hispanoamericana 1993, México. 4. Tanenbaum, Andrew S. Sistemas Operativos Distribuidos Prentice Hall Hispanoamericana 1996, México. 5. Flynn, Ida M. y McHoes, Ann McIver, Sistemas Operativos 3a Ed. International Thomson Editores, 2001, México. 6. Silverschatz, Abraham; Gagne, Greg y Galvin, Peter Baer. Operating Systems Concepts 7th Ed. John Wiley & Sons, 2005, U. S. A. 3 /3