- Tomar una foto a los pasos 2, 3, 4 y 6 como se muestra en el ejemplo
- Ponerlas en formato pdf
- Enviarlas al correo electronico: sistemas.operativos.fime@gmail.com
- Ausnto: Tarea 3 - Matricula - Nombre
- Entregarla antes del miercoles 11 de mayo
cd /nachos/nachos/code/test
Pasos para crear y ejecutar el programa:
1.- Creamos el archivo holamundo, tecleando en la terminal
sudo gedit holamundo.c
2.- Escribimos el codigo del programa
Se deberá ver como la siguiente imagen#include "syscall.h" // Ejemplo de Holamundo int main () { Write("Hola Mundo! \n :B ",12,10); Halt(); }
3.- Modificar el archivo Makefile
Guardamos el archivo y tecleamos en la terminal:
sudo gedit Makefile
Buscamos la linea que dice "all:" y agregamos nuestro programa
all: halt shell matmult sort holamundo
Abajo en el mismo archivo agregamos las siguientes lineas:
holamundo.o: holamundo.c $(CC) $(CFLAGS) -c holamundo.c holamundo: holamundo.o start.o $(LD) $(LDFLAGS) start.o holamundo.o -o holamundo.coff ../bin/coff2noff holamundo.coff holamundo
NOTA: Asegurate que las lienas esten completamente iguales que en la imagen. Para ajustarlas usa la tecla TAB.
Que quede en color VERDE y alineado de la manera correcta para que no ocurran errores al compilar
Quedando como se muestra en la imagen:
Que quede en color VERDE y alineado de la manera correcta para que no ocurran errores al compilar
Quedando como se muestra en la imagen:
4.- Modificar el archivo exception.cc
Guardamos y tecleamos en la terminal:
cd ../userprog
y una vez en la carpeta tecleamos
sudo gedit exception.cc
Dentro del archivo agregamos la siguiente función (antes de la funcion ExceptionHandler)
void printVirtualCharArray(int va, int size) { int tmp,i; for (i=0;i<size-1; i++){ if(!machine->ReadMem(va+i,1,&tmp)) { printf("%s trouble getting valut at %d \n",currentThread->getName(),va+1); return; } printf("%c",tmp); } }
y despues modificamos la funcion de ExceptionHandler, agregando lo siguiente despues del else y no se te olvide borrar el { que esta despues del else.. si tienes dudas debe quedar igual que la foto.
if ((which==SyscallException)&&(type==SC_Write)){ DEBUG('e', "%s WRITTING...", currentThread->getName()); int fd=machine->ReadRegister(6); ASSERT(true); int size = machine ->ReadRegister(5); int vaddr=machine ->ReadRegister(4); printVirtualCharArray(vaddr,size); machine->WriteRegister(PCReg,machine->ReadRegister(NextPCReg)); machine->Run();
y comentamos las 2 lineas que estan debajo, agregando // , como se ve en la imagen
Guardamos y tecleamos en la terminal :
cd ..
con esto deberan estar en la carpeta code y teclean
make
6.- Correr el programa
tecleamos en la terminal:
cd userprog/
y una vez en la carpeta, tecleamos:
./nachos -x ../test/holamundo
Imagen de http://9gag.com/gag/3908392 |
No comments:
Post a Comment