From 31db2c943be241adfe382c5b8e8864be4ca6fd42 Mon Sep 17 00:00:00 2001 From: kieron Date: Thu, 18 May 2017 16:17:22 +0000 Subject: [PATCH] Task Scheduler git-svn-id: https://spexeah.com:8443/svn/Asuro@109 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5083136 -> 5083136 bytes bin/kernel.bin | Bin 0 -> 28900 bytes iso/boot/asuro.bin | Bin 28900 -> 28900 bytes lib/kernel.ppu | Bin 0 -> 2098 bytes lib/libpconsole.a | Bin 64564 -> 64564 bytes lib/libpmultiboot.a | Bin 27222 -> 27222 bytes lib/libpsystem.a | Bin 124006 -> 124006 bytes lib/memorymanager.ppu | Bin 0 -> 2364 bytes lib/scheduler.ppu | Bin 0 -> 2479 bytes src/kernel.pas | 9 +++-- src/scheduler.pas | 80 ++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 86 insertions(+), 3 deletions(-) create mode 100755 bin/kernel.bin create mode 100644 lib/kernel.ppu create mode 100644 lib/memorymanager.ppu create mode 100644 lib/scheduler.ppu create mode 100644 src/scheduler.pas diff --git a/Asuro.iso b/Asuro.iso index ac1edd924f84e4c133800a0566e67f9abc761e42..f4ff1af9a249904b5aae503d02182d70432152f2 100644 GIT binary patch delta 12092 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 MKfRrJQCsx-FSI%a{{R30 literal 0 HcmV?d00001 diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index cd207ccf96b57f8b9a33a503677622947db7451f..f09b59da41293c4f9c545cadb5e93ae81858f51b 100755 GIT binary patch delta 2154 zcmZvddr(w$6vyvgcVU-@Twc4du*<58lwx8&keadeu{kwam=4$&D&~uc98(yi(bhyq z?p$zWewF?g4m#B&3T)wOhO0P{N;8?Mq=uNNzeH1tiX6t<_uRYeSkum&bIY%A`*%x~hO7e#f)Lj_$8F>-umVz!6y$qg$z6OeIWo!7k-%~j4rN`8C)PW_e}bW- z?XVQ@AU{hUjqQ(Tv58sY9w(cYI5BcJ{Cs@|D@}CUIx~jraE%Dn5zi}Z?Bm2naifD3 zBu$L0kbuAHWHm`{+X3e=?lFdNffrg?M^df0F`X481CJxz!D^C$JHogrgh%tjWY&>f z>D&9nBq^wPEDiJwWJB?ik%FMR1>Oj|z4r65XpvA`HdfeGb=N4TyQ|v+vGDM=hpJk= z$fzVs#R)+<-=rkFkwMP4C=N1?7y$K|e_3%5bA*O@XEsInEO}iOCZ4UT zDiUjXsbIZOD++C(k~#<%_LBLv$7smYtPYQfyn6MTN1kQTo?2Tvv|@+|d>4TR*`v`E zmTR3NHb=6ztaA-r>LhFjS8_5#M(914%V!*cCfZE8y#ZJ z#HML%8rVpkO#^EUvoRrd1hMHFn+`TYXVbwZhuPQ=8%3-`V;x}8cRMk+qDhZ(;FIa8!8%EzP^s z^ViTpK8HGb{DG?SGk>aT0EEDMFqFN$0lXvd^V)!K50*y-N+{JdWpDV1U^8U<~Tl^N1P(I5f9J$sMX`R2|Jc(b4Pw2UbxwvmlXXtn z#_F9WUyNKdAeRryn}_6f`O;kZ?{l}G9IEOakZ;S~zpvUa-v}IRq$>q=v{UIu@{O4l=4Ak^U&$`+Q;rOxxKn8Qw15hO`Y%eOzSuJ<}AS+1%249{gvETVb4@35xnZbLP@FnxS<8F_Zx0kE7!=Ve-t4XUdC_n9*;bYx@r zYX9?jFPd6B*#_Uj;tg*;;}V2eY2ku5)~sAnUb=GqQt#Tb^_BGRq5u9rM*F+#bty>9 zsRAiDJf?g4YLOJgHAg=w|37*E<%%lc($&18+%ZkGs9+;f?1GU$XrMv sWHqD$vIDXkvJcV>X@i`FbU|)HezW?QEWZ`)-?z5NP*=Z<8P?tS2dfuLQ~&?~ delta 1754 zcmY+EeN0A=2JwUXytkJ|o4oIR?(_c6 z=RK#hGt%sgbi^*#q@H#zo8*aN?o=xc=3>V9t#wYmQ?=RlmZjIl2mQ)A6%6gE;U zN*$2_wNomsF*9Zw+vGKftx!?5LXC+ksL+(yNJa@6EoSb|Jyp6_B{sMq4nQQ(m!QJI zCDBTb#vWC9wxv|Aa`W|;@-#nuk?Y}Y7O$<%voepO6n!3MVaw+yEkm;1#T%^UX*Lt^ z+b-T~_1bFOD|o=5<4i1C`J}Z^wiob*Jm5Km7x3OZ;I1TY)bUKQXyKE2o%}6ZnY=rd z57{1*qWrF{B6U0q4Uh3MdrAJhbEVy2s@^VF4De?AVPfrIGZU->tRu;$>8z1hhsHX< zW+YfASbLIHbXFzSsj*J5=?S&~tS!l=>uf5q1sYobR!Oifu=z(*E|*wh5;0c%aNSvs3RtVd%#V2ug35UeH1X6tM^v4vd@S2(DIf=l6G zRtN{>dJ2w(w+=^WnlBgHyWXdDG#Ox4kvUH4MN&gh;!rM9H+`B$+VlId+rmpb8ow2f zM^R*=Ghx?WL{F?EBf67%X@MOMib-}s6SE@!PCO1H%)~Zwx`IL&V2MH+ z$w}wC2xm*gB&as(;d|^@@0R&+aK3v<=_taDK}Dv)F4MN2r1i8D_z%>aCsEfX^Ci{a zrTRgtUm?{`>N_aCpDyaCpTO-@K2GJ&li;UG5Cju##QCW@LfjT8>}@!Jn@VPk%zdOL zNUdEdE8@Xq`8iTkR5oelDl}J&0{SbF5fGVF7F4c;O3V>A3RjAb#aS#{DA=Q~&nbMa zxKBQ!o_J%GBoCS+`&XY;c_94BElwj)YM|@(Jw|l~HzVEX&uvzHdp>uCvjYFBnto1ZR&xJiEfjhi-4ly;-COt{{DkkwwKKR2h~e_FhNY{WH@14@fOPA#D{%-(Ese z{=%xGH15qCyr|kM9p}O7vdoL*4BP$VGcs%i^9=lJ!f?4AA$XNB0#zlS{NaK!QGoMF)tbQ|N*~&AUU+#QjSM#fMMH0XNd*n|vs4=Q3&#H9MG+C>+ SBl|y^vB;ylc1T=mzxFQ^nv=Bv diff --git a/lib/kernel.ppu b/lib/kernel.ppu new file mode 100644 index 0000000000000000000000000000000000000000..ce3052d4c847848735cd99982ed403a927d35be4 GIT binary patch literal 2098 zcmdT^-)kII6uxIByUA`gznaE0=vJ+3E2gcqMX@i{)J9md*`&#)ZBSTev(t3Q&Q3D3 zc?gJ5d=)_u>L1{PqM#@~2!et>-iX7l_j_J@0wQd#~mI{70?F4=zFu600} z1Kfw1k=F3hWh+qY*?C0_n#o`-XxQ%JZ&w#ijb0mqcgkI@HJpm)HP(N;oj;iWV?WT2 z)rM31`Bq|ecz@+10On$~@#e?6ii`^w>sAAt2%94{zWt%g;$ zeA~Kn{aN$m=2Po1buHOz70>dkuU@Qt|N4bJzXR-XZP)YHT&r#^+WxuAA8b7Q=@%=o zq=JP@c6GI8`^N^{U%q{7>8$v(pah3P#*TUhs{??NnVM5s4q*$a#2_SC5oe!eN@QAO zRb;ow8RUxwO_s^o`PtI=WNLD*P|Ba4nkscojL)B*8k;#Y!aLCbaS^(>4)8U3LYNqB z>^K|}I8<)}Cf3Agh!U+##KY{3(A2+0aS%DtDMV-==D$b&KSYQw-ys*jPeCFFuFZX> z&$LmVO3^q{JdI{p(Ot!FXGWHA0l3z8V#plhY z@fhom1Eb;Ygti%nCdOxq(c=d(ptmE{6RvoG|9o8Y332Xc+38kXYtdO?@57Pz zzR>$o{xjD}=Nmf!Nj9WyYy%b~p}~;-_*IjH&=#aFvaNIWK@ykz&agP|W zn=l_geT@q{WN}jvAag++#!8cUkjWtqCj}0CMd>&UGBF*0MNzkg2N|F&*hQ10qKr0x zmnjRvi8xYGk2XCdCRF_%s#MggJ&~Se=>1t z;|Nv{^|I8R!DZ7uMJno0+Cke<;vPI?*C8i9PMT7LWT{NkIVIleQ)cw(F1E!fO7S)QL4EV9^up9LZ{ z!A^X$w{R$wXRus+^KS8}aBbq7v!%B}c$+u48Zl0eC={4Hp;2IRL8<6u|0M3odQ8%r zH!8R@K@7W~Cb3yWc?VR(1+^=1mJ;J+ITeA;x3m{Qlx}X&y91R>FuDO{HRvfZZjLkG z1vL%iG-Insh|@Mtu#;g2+X8e5)ZED+=g#+B2+DK&3(&ySB3Y7!7u(Tx>$^+T(w&N`{BtX2c-7n!hiOs+IzCd{f{Lr}F zJp~fCn;%SfX57p_?JOfCxE@RwfLaJLhI{sV6pdS$CZAZq1BpI}Q3oLMn+=xFXWSgP z^fuHOgXL97?moK87vb*7??b#NJM^$@u35hi=5Jukgl?8pfEe7M7qa=-LWT{NkIVIleQ)cw(F1E!fO7S)QL4EV9^up9LZ{ z!A^X$w{R$wXRus+^KS8}aBbq7v!%B}c$+u48Zl0eC={4Hp;2IRL8<6u|0M3odQ8%r zH!8R@K@7W~Cb3yWc?VR(1+^=1mJ;J+ITeA;x3m{Qlx}X&y91R>FuDO{HRvfZZjLkG z1vL%iG-Insh|@Mtu#;g2+X8e5)ZED+=g#+B2+DK&3(&ySB3Y7!7u(Tx>$^+T(w&N`{BtX2c-7n!hiOs+IzCd{f{Lr}F zJp~fCn;%SfX57p_?JOfCxE@RwfLaJLhI{sV6pdS$CZAZq1BpI}Q3oLMn+=xFXWSgP z^fuHOgXL97?moK87vb*7??b#NJM^$@u35hi=5Jukgl?8pfEe7M7qa=-b%7 diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index e215fd8ed7a40bf7749ba1b156a4cbff28fbe580..d9e8355dc02f1b7860490110b74388660c587ba3 100644 GIT binary patch delta 509 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 literal 0 HcmV?d00001 diff --git a/lib/scheduler.ppu b/lib/scheduler.ppu new file mode 100644 index 0000000000000000000000000000000000000000..5e5c79ebf16678fbb84bbd76ef4107fae69d6c6b GIT binary patch literal 2479 zcma)8L2nyH6rQ))wH+MCPHQKD*riR~N|BSIrscxH5Mqm3gv5orJD zVWuSl$)#02+U<=e4;#h8Zy9WeHoBc&cgvpB9@-CP_a1>~w0h2! z`OMrmzd!hL>2+`tZM)rdcH36R+OVA)AAhy?^4H(K4@rtU8S(JIuEv}+xRK;m>&|v4 zv0x?|MJ0_%%2#9#ZX~EFDQ+rg6$70nrjgou%`CrDtZYHr=%!fhiGoig27)?6@X*0+d+F;buo`o}icqKy1(ilti!ZSRHq# zEhz4Zs0-N}OwbUAl#Vd{Z_3c{6zRl@F2ZS|KPF|q$=%${ULY-NPgh1+E18h z9MdV48A@_wJQTdJbTFV_SpF+8GzA0Dv?KyMUk_sInO!*h{|bmy0!$wvO9l8-e!YCb zV~i)tzdZ*22{fGzLVhwZtG>9hY?j|M>$P_)=Hj)Jo7I5E0t&zr?y5b- Root_Task do begin + i:= i+1; + task:= PScheduler_Entry(task^.next); + end; + task^.next:= void(new_task); + new_task^.ThreadID:= i; +end; + +procedure delta(data : void); +begin + Tick:= Tick + 1; + If (Current_Task^.Delta + (Current_Task^.Priority * Quantum)) <= Tick then context_switch(); +end; + +procedure init; +begin + Root_Task:= PScheduler_Entry(kalloc(sizeof(TScheduler_Entry))); + Root_Task^.ThreadID:= 0; + Root_Task^.Priority:= 1; + Root_Task^.Delta:= 0; + Root_Task^.Next:= void(Root_Task); + Current_Task:= Root_Task; + Tick:= 0; + isr32.hook(uint32(@delta)); +end; + +end. \ No newline at end of file