Sunteți pe pagina 1din 4

Elizabeth Hernndez Morales 27 de agosto de 2012 Sistemas Operativos Quinto semestre B

Qu es el contador de programa? Es un registro que contiene la direccin de la siguiente instruccin a hacer. Explica por qu una pila se utiliza para almacenar las variables locales. Porque se crean y destruyen normalmente dentro de la propia subrutina, esto sirve para ahorrar memoria debido a que todo se hace dentro de la pila sea invocado el dato desde donde sea. Algunos microprocesadores (68000/Intel 386 hacia adelante) aceptan la multitarea internamente. Una pila separada es necesaria para cada proceso. Cmo se puede hacer esto? Al depositar simplemente la direccin de la siguiente instruccin a ejecutar (despus de que la subrutina anterior) en la parte superior de la pila. Cuando la subrutina est terminado, la CPU jala la primera direccin que se encuentra fuera de la parte superior de la pila y salta a la localidad. Escriba un programa para crear una pila (LIFO), que puede almacenar cualquier nmero de variables locales para cada subprograma.

#include"stdio.h" #include"conio.h" int pila[5],ap_pila=0; void main(){ int op; clrscr(); do{ printf("\n\nMENU\n 1 Insertar\n 2 Sacar \n 3 Mostrar pila\n 4 terminar programa \n teclea tu opcion:"); scanf("%d",&op); switch (op){ case 1: clrscr(); if(ap_pila<5){ printf("\nvalor:"); scanf("%d",&pila[ap_pila]); ap_pila++; }else printf("\nla pila esta llena"); break;

case 2: clrscr(); if (ap_pila>0){ printf("extrayendo %d=%d",ap_pila,pila[ap_pila-1]); ap_pila--; }else printf("\nla pila esta vacia"); break; case 3: clrscr(); int x,y; printf("\contenido de la pila:"); for(x=0;xprintf("\n%d",pila[x]); for(y=x;y<5;y++) printf("\nNULL"); break; case 4: printf("\nfin del programa"); }} while(op!=4); getch(); } Escriba un programa para implementar un buffer (FIFO). #include"stdio.h" #include"conio.h" int col[5],c_cola=0,x; main (){ int opcion; clrscr(); do{ printf("MENU\n 1 Insertar \n 2 Sacar \n 3Mostrar cola\n 4 Terminar programa\nEscribe el numero correspondiente a la operacin : "); scanf("%d",&opcion); switch (op){ case 1: clrscr(); if(contador_cola<5){ printf("\nvalor: "); scanf("%d",&col[contador_cola]); contador_cola++;

} else printf("\nla cola esta llena "); break; case 2: clrscr(); if(col>0){ if(c_cola==0){ printf("La cola esta vacia"); } for(x=0; x<5; x++){ col[x]=col[x+1]; } contador_cola--; } else printf("\cola sin datos"); break; case 3: clrscr(); int x,y; printf("\ncontenido de la cola : "); for(x=0;x printf("\n%d",col[x]); for(y=x;y<5;y++) printf("\nNULL"); break; case 4: printf("\n salir"); }} while(op!=4); getch(); } Cuando un equipo se enciende por primera vez, se ejecuta un programa que se llama un programa de arranque. cmo se lleva a cabo. Al cargar un programa en un ordenador se utiliza un programa inicial mucho menor para cargar en el programa deseado (que suele ser un sistema operativo). En general, bootstrapping es el aprovechamiento de un pequeo esfuerzo inicial para hacer algo ms grande. Es decir, para aprovechar el xito de un pequeo comienzo.Y lo hace buscando en todas las memorias el programa a ejercutar.

Qu es un stack-frame? Es una estrategia de gestin de memoria utilizada para crear y destruir variables temporales en algunos lenguajes de programacin. Qu es la memoria mapeada de E / S? Son registros de dispositivo (solo unos pocos bytes) que son alambrados en el mapa de memoria principal, de manera que la escritura en el dispositivo es el mismo que escribir para el resto de la memoria.

S-ar putea să vă placă și