- Modified xv6 kernel adding shared memory & semaphores
- shmem.c:
- shared memory implementation
- sem.c:
- semaphores implementation
- proc.c:
- changed fork to copy the addresses under the KERNBASE memory (copyuvm)
- changed exit
- vm.c:
- changed copyuvm to copy high addresses
- changed deallocuvm to not kfree a shared page if it is being used from another proccess
- added some functions for mappages and unmap_addr (via walkpgdir)
- syscall.c:
- changed argptr to accept pointers to high addresses (shared memory)
- sysproc.c:
- added syscalls (shmget, shmrem, sem_init, sem_up, sem_down)
Check the instructions in the original README.
$ cd ./src/xv6
$ make
$ make qemu-nox
// We are inside QEMU running our kernel
$ test
// We are inside QEMU running our kernel
$ test2&;test2&;test2&