ій роботі, є перемикання стеків і завантаження/збереження параметрів процесів, так як виклик процедур збереження і завантаження призводить до втрати даних якщо вони були записані в регістри. Для вирішення даної проблеми процедури завантаження та збереження були поміщені перед і після виклику процесу. Однак ці процедури повинні виконуватися безпосередньо в процедурі планувальника. Для того щоб завантаження і збереження виконувалися всередині планувальника можна продублювати параметри в пам'ять. А після виконання процесу оновити ці параметри. Виклик процедур і інші команди не торкнуться параметри.
Список літератури
1.Оліфер В., Оліфер Н. Мережеві операційні системи: підручник для вузів. 2-е вид.- СПб .: Питер, 2009. - 669с.: Ил.
.Гордеев А.В. Операційні системи: підручник для вузів. 2-е вид.- СПб .: Питер, 2006. - 420с.: Ил.
3.Таненбаум Е. Сучасні операційні системи. 3-е видання.- СПб .: Питер, 2010, 1120 с.
Додаток А
100hstartdw 100h dup (?) dw 100h dup (?) dw 100h dup (?) dw 100h dup (?) dw 100h dup (?) dw 100h dup (?) dw? dw? dw? dw? dw? dw? _sp dw? _p dw? dw? db Dlya vihoda nazhmite Ctrl + D , $ db 1,1,1,1,1,1,2,2,2,2 , 2,3,3,3,3,4,4,4,5,5,6_seed dd ?:ax,csds,axax,0es,axax,proc[es:60h*4],ax[es:60h*4+2],csah,00hal,13h10hah,09hDX,str121h[main_sp],spsp,ss1ax,1dx,20cx,3200axdxcx[sp1],spsp,ss2ax,1dx,40cx,3200axdxcx[sp2],spsp,ss3ax,1dx,60cx,3200axdxcx[sp3],spsp,ss4ax,1dx,80cx,3200axdxcx[sp4],spsp,ss5ax,1dx,100cx,3200di,pbl,5[di],blaxdxcx[sp5],spsp,ss6ax,1dx,120cx,3200axdxcx[sp6],spsp,[main_sp]cx,cx:cx60hload_[cs:proc_p]save_cxcxcx,100main1di,masscx,21:al,[di]al,6main2al,1[di],almain3:al[di],al:dimain4:ah,0bh21hal,0mainah,02h16hal,00000100bmainal,60hal,20hmain20h:WRandomInitWIRandomdi,massdi,axdx,[di]dl,1m11dl,2m22dl,3m33dl,4m44dl,5m55dl,6m66m77:dx,proc1[proc_p],dx[p],1hm77:dx,proc2[proc_p],dx[p],2hm77:dx,proc3[proc_p],dx[p],3hm77:dx,proc4[proc_p],dx[p],4hm77:dx,proc5[proc_p],dx[p],5hm77:dx,proc6[proc_p],dx[p],6h:iret:edx ecxeax, [random_seed]edx,edxecx,12773ecxecx,eaxeax,16807edxedx,ecxecx,eaxeax,2836edxecx,eaxedx,edxeax,ecx[random_seed],ecxecx,100000ecxeax,edxecx edx: eax edxeax, edx [random_seed], eaxedx eax: edx ecxecx, 20ecx, 0ecxWRandomedx, edxecxeax, edxeax, 0ecx edx:bl,5_3:ah,0Chbh,1_1:10hcxcx,2000_2:cxcx,0mproc1_2cxcxblbl,0mproc1_3cx,0mproc1_4alcx,3200_4::bl,5_3:ah,0Chbh,1_1:10hcxcx,2000_2:cxcx,0mproc2_2cxcxblbl,0mproc2_3cx,0mproc2_4alcx,3200_4::bl,5_3:ah,0Chbh,1_1:10hcxcx,2000_2:cxcx,0mproc3_2cxcxblbl,0mproc3_3cx,0mproc3_4alcx,3200_4::bl,5_3:ah,0Chbh,1_1:10hcxcx,2000_2:cxcx,0mproc4_2cxcxblbl,0mproc4_3cx,0mproc4_4alcx,3200_4::bl,5_3:ah,0Chbh,1_1:10hcxcx,2000_2:cxcx,0mproc5_2cxcxblbl,0mproc5_3cx,0mproc5_4alcx,3200_4::bl,5_3:ah,0Chbh,1_1:10hcxcx,2000_2:cxcx,0mproc6_2cxcxblbl,0mproc6_3cx,0mproc6_4alcx,3200_4:_:[main_sp],spbx,[p]bx,1hml1bx,2hml2bx,3hml3bx,4hml4bx,5hml5bx,6hml6ml7:sp,[sp1]cxdxaxml7:sp,[sp2]cxdxaxml7:sp,[sp3]cxdxaxml7:sp,[sp4]cxdxaxml7:sp,[sp5]cxdxaxml7:sp,[sp6]cxdxax:mov sp,[main_sp]_:[main_sp],spbx,[p]bx,1hms1bx,2hms2bx,3hms3bx,4hms4bx,5hms5bx,6hms6ms7:sp,ss1axdxcx[sp1],spms7:sp,ss2axdxcx[sp2],spms7:sp,ss3axdxcx[sp3],spms7:sp,ss4axdxcx[sp4],spms7:sp,ss5axdxcx[sp5],spms7:sp,ss6axdxcx[sp6],sp:mov sp, [main_sp]
ret
Додаток Б
Малюнок 1 - пріоритет 1 у процесу 1
Малюнок 2 - пріоритет 1 у процесу 4
Малюнок 3 - зміна пріоритетів процесу. Перший процес має більший пріоритет ніж другий.
Малюнок 4 - результат завершення роботи програми
Додаток В
Блок-схема алгоритму роботи програми
Блок-схема алгоритму планувальника
Блок-схема алгоритму завантаження параметрів
Блок-схема алгоритму завантаження параметрів