Esta es una plantilla de proyecto diseñada para generar un TP de Sistemas Operativos de la UTN FRBA.
Para poder compilar y ejecutar el proyecto, es necesario tener instalada la biblioteca so-commons-library de la cátedra:
git clone https://github.com/sisoputnfrba/so-commons-library
cd so-commons-library
make debug
make install
Para probar los modulos pueden hacer uso del script
( Deben tener tmux )
El script realiza lo siguiente:
- Abrir 4 panes de tmux
- Cambia a una carpeta de un modulo
- Make clean
- Un echo de prueba
- Make
A los paneles se puede acceder con el mouse y moverse dentro de ellos
bash tmux-script.sh
Probar
./tmux-script.sh
Si no funciona o tira error puede ser por los permisos de ejecucion, hay que hacer un paso mas para que quede y poder usar el comando de arriba
chmod u+x tmux-script.sh
Esto lo que hace es al usuario darle permisos de ejecucion al script
Una forma es cerrando la terminal pero si queres mantenerte dentro de la termina y usarla normal sin tmux podes usar el siguiente comando
tmux kill-server
Esto mataria el "server" que se creo de tmux volviendo a la terminal
Recomendacion agregar un alias ( se agrega en .bashrc )
alias tks='tmux kill-server'
En esta forma vamos a usar el comando exit
, n veces, dependiendo cuantos panes tengas
Para correr el modulo hay dos formas:
bash test-modules.sh
La siguiente forma puede ser que falle si no se tiene los permisos adecuados
./test-modules
Cada módulo del proyecto se compila de forma independiente a través de un
archivo makefile
. Para compilar un módulo, es necesario ejecutar el comando
make
desde la carpeta correspondiente.
El ejecutable resultante se guardará en la carpeta bin
del módulo.
Para importar el workspace, debemos abrir el archivo tp.code-workspace
desde
la interfaz o ejecutando el siguiente comando desde la carpeta raíz del
repositorio:
code tp.code-workspace
Para cada checkpoint de control obligatorio, se debe crear un tag en el repositorio con el siguiente formato:
checkpoint-{número}
Donde {número}
es el número del checkpoint.
Para crear un tag y subirlo al repositorio, podemos utilizar los siguientes comandos:
git tag -a checkpoint-{número} -m "Checkpoint {número}"
git push origin checkpoint-{número}
Asegúrense de que el código compila y cumple con los requisitos del checkpoint antes de subir el tag.
Para desplegar el proyecto en una máquina Ubuntu Server, podemos utilizar el script so-deploy de la cátedra:
git clone https://github.com/sisoputnfrba/so-deploy.git
cd so-deploy
./deploy.sh -r=release -p=utils -p=kernel -p=cpu -p=memoria -p=entradasalida "tp-{año}-{cuatri}-{grupo}"
El mismo se encargará de instalar las Commons, clonar el repositorio del grupo y compilar el proyecto en la máquina remota.
Ante cualquier duda, podés consultar la documentación en el repositorio de
so-deploy, o utilizar el comando ./deploy.sh -h
.
antes de compilar es preciso tener instaladas todas las dependencias: commons y readline. Luego será posible compilar
- Memoria
- CPU
- Kernel
- IO (múltiples)
- IO (todas)
- Kernel
- CPU
- Memoria