diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-16 14:39:24 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-16 14:39:24 +0200 |
| commit | 98d524bc8acb7b19afb693afea3ac77629d6f4bf (patch) | |
| tree | 86a883c01bbf521ef40e914d16939b44c08e7f01 /src/bringelle.c | |
| parent | 58b706d40f8ad0d71b667ca81d91b96ca537cb8e (diff) | |
Multitasking works!
Diffstat (limited to 'src/bringelle.c')
| -rw-r--r-- | src/bringelle.c | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/src/bringelle.c b/src/bringelle.c index cb8c5e4..38c066e 100644 --- a/src/bringelle.c +++ b/src/bringelle.c @@ -9,14 +9,26 @@ extern void interrupt_enable(); void utask(){ char *msg=(char*)4206592+10; - msg[0]='T'; - msg[1]='a'; - msg[2]='s'; - msg[3]='k'; - msg[4]='1'; - msg[5]='\0'; - asm("mov $0x1, %%eax;int $0x30"::"b"(msg)); - while(1); + msg[0]='A'; + msg[1]='\0'; + while(1){ + asm("mov $0x1, %%eax;int $0x30"::"b"(msg)); + for(int i=0;i<10000;i++){ + + } + } +} + +void utask2(){ + char *msg=(char*)4206592+10; + msg[0]='B'; + msg[1]='\0'; + while(1){ + asm("mov $0x1, %%eax;int $0x30"::"b"(msg)); + for(int i=0;i<10000;i++){ + + } + } } void bringelle(){ @@ -34,10 +46,15 @@ void bringelle(){ show_tics=1; // Utask - print("Launch user task \n"); + print("Launch user tasks \n"); + int* page_dir=paging_allocate(2); - run_task(page_dir, utask,100); + task_create(page_dir, utask,100); + + int* page_dir2=paging_allocate(2); + task_create(page_dir2, utask2,100); + scheduler_start(); while(1); } |
