You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
riscv-pke/user/app_yield.c

33 lines
652 B

/*
* The application of lab3_2.
* parent and child processes intermittently give up their processors.
*/
#include "user/user_lib.h"
#include "util/types.h"
int main(void) {
uint64 pid = fork();
uint64 rounds = 0xffff;
if (pid == 0) {
printu("Child: Hello world! \n");
for (uint64 i = 0; i < rounds; ++i) {
if (i % 10000 == 0) {
printu("Child running %ld \n", i);
yield();
}
}
} else {
printu("Parent: Hello world! \n");
for (uint64 i = 0; i < rounds; ++i) {
if (i % 10000 == 0) {
printu("Parent running %ld \n", i);
yield();
}
}
}
exit(0);
return 0;
}