From 7cc010b4ae3580ff5962b0032859b65415de9cc2 Mon Sep 17 00:00:00 2001 From: arthur <chenzitong1997@gmail.com> Date: Mon, 30 Apr 2018 13:48:43 -0500 Subject: [PATCH] more comments and modification --- student-distrib/bootimg | Bin 100340 -> 99948 bytes student-distrib/mp3.img | Bin 8388608 -> 8388608 bytes student-distrib/proc.h | 3 --- student-distrib/scheduler.c | 19 +++++++------------ student-distrib/scheduler.h | 13 +++++++++---- student-distrib/syscall.c | 2 +- 6 files changed, 17 insertions(+), 20 deletions(-) diff --git a/student-distrib/bootimg b/student-distrib/bootimg index 4a464ceb3fc8176e22145112ad23995764e3b49c..8fa7600672cf3a1a64abf6bdb9c39c7bb4c19934 100755 GIT binary patch delta 387 zcmey;&-SK=ZGr-mN#;hSKUqv&m6H{+<rrBe+h@x&ZJDq+A$y$=j~pWd0}}&x0Ruxl z=VqxoAx0hsAZP%Kc2#a(U*E*Y$g<g}(U=LOCB1oR5mPniX1;F~>>3=5KP(&==2<x~ zWbiUDh%5r?VdS370yJ-8foNW8MM-=?auNfh&E$1|#TbP)AN_ljQJkR+sFaD}tN;T8 z3*$O228K5-4h##dCOe$d-nx^~o|j|35J=`N_clJp6`btPg+aVa+t-UTM#xXUpv7pr z-PfFviJ!d$=tw38>**gI7)7UNyD@5LF)*+)f!rfGnZqt;!7q-CQye~fPBU|IL@*_Y zaQN&tj6B6*&ml6AW778PZj2_((-XWICAO=0F&<H56q^1rn^BpqtCfMlcm8yt97ZM9 z>ne;4SEpO%Fe<aIv0`MnF+CB;WNPu4-j>6t#`GX~`Z^G;88-bIi0;jp{trao$)2v3 P3#89fZ}-b(TqXqoMMiLz delta 734 zcmYk2Pe>GD7{=fC+Zkte8`nSkFE`46u^l6<uuXJ@j4YF&B)g>J?&|LBX3OrNCZvmp zqKIm<`Ys}CP<Se34tvl;hmx>MryvOFAas$?D2S-Gcii1<VEDf0ndkfFeSRBv%D&wz zyI;qawZ(>C8XFy-u8Zx%t?9N{Et|_2{julO$|D3|uqy!&w;A4vYMh*~0tD4Ws&6o^ z4#8tmsYrBCFUS`p)p${?m`ObuFMRq!Dm<)*lLfig29QvP!hO0r5D&xAk_<(Y;h=ss zc@55!H4+UK13*ujh7lNyjvLLBQ;1u}Qo4zmqi#+;O|pp1;NQojHVgh}4#2EG0FiP4 z=My@F(zHN5G6~mkcuen01P1{91xt7DITnDM^t!ffyV3poHQGHp6$QsSzwAQyq~Khq zAyBkHHUOS~H3e7E7G9FQQ&@19;^_d`&HARU5VnbW{zD;nB&tgHBHdfHMnStt=K-a? zW;$;H51~>@ti%Sz#`7+$X%ZWi!bx~Xzuti*?l1WZ0fI;v7`(3}c=*Ps&!@`e`D#;0 zN^VBMd8@SPFy%(>j2nAvC2u`+Iu44txg*$KA>E}h81!(p1Km7-0uS)dt!U>TPhzFd z1nqn%x5l$SWo=dNT7GM>%Dt@LDR(U$y0j{{%g&6<bLTqnumypCI*Yq=GpF!XJ>KG~ zhK*%-1Hhl<w>4}KkNXhT_#)Y2O$)+T{(-hkInDoQ=o2G72%Wr2LkDk(VI^C<$h%|c XV=j%4m}}??pEcJD*K;c|eCGWNN({sH diff --git a/student-distrib/mp3.img b/student-distrib/mp3.img index 0521e3fd466ab5e2a974b840b1a2c89b0d2a82b1..f9b0e7abb3187b7e61a08ceca85b733bb666c00b 100755 GIT binary patch delta 3606 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 delta 17353 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 S8`B(2b1}`6+h6v7W%@tM(_Nha diff --git a/student-distrib/proc.h b/student-distrib/proc.h index bd6628e..765c57b 100644 --- a/student-distrib/proc.h +++ b/student-distrib/proc.h @@ -7,9 +7,6 @@ #include "terminal.h" #include "filesys.h" -/* Mask to get 8KB page */ -#define PCB_M 0xFFFFE000 - extern int32_t fail(); // Error handling helper function extern void control_initilization(void); extern void exit(void); diff --git a/student-distrib/scheduler.c b/student-distrib/scheduler.c index 23ad1dc..fcedaf3 100644 --- a/student-distrib/scheduler.c +++ b/student-distrib/scheduler.c @@ -1,8 +1,12 @@ #include "scheduler.h" +/* The scheduler function + * + * DISCRIPTION: This function switch running process every 15 ms + * + */ void scheduler(void){ - - //printf("schedule counter = %d\n", ++counter); + // Bookkeeping pcb_t * curr_pcb = terminal[running_terminal].pcb; @@ -10,7 +14,7 @@ void scheduler(void){ { // initialize pcb and set esp and ebp - // scheduler_flag used in execute to override pcb_init ebp and esp + // scheduler_flag used in execute to override pcb_init ebp and esp pcb_t pcb; pcb.scheduler_flag = 1; @@ -24,8 +28,6 @@ void scheduler(void){ terminal[running_terminal].pcb = &pcb; - //printf("[SCHEDULE] ebp = %x , esp = %x\n", pcb.current_ebp, pcb.current_esp); - switch_terminal(running_terminal); printf("terminal = %d\n", running_terminal); @@ -57,19 +59,12 @@ void scheduler(void){ pcb_t* next_pcb = terminal[running_terminal].pcb; - //printf("[SCHEDULE] curr_pcb = %x , next_pcb = %x\n", curr_pcb, next_pcb); - // update current pid, tss and remap paging remap_proc(next_pcb->pid); tss.ss0 = KERNEL_DS; tss.esp0 = _8_MB - _8_KB * (next_pcb->pid); - //printf("[SCHEDULE] esp = %x ebp = %x pid = %d pcb = %x\n", next_pcb->current_esp, next_pcb->current_ebp, next_pcb->pid, next_pcb); - - // cli(); - //while(1); - send_eoi(0); asm volatile( diff --git a/student-distrib/scheduler.h b/student-distrib/scheduler.h index 52a3c62..09b4e95 100644 --- a/student-distrib/scheduler.h +++ b/student-distrib/scheduler.h @@ -1,10 +1,15 @@ #include "lib.h" #include "types.h" #include "x86_desc.h" -#include "terminal.h" -#include "syscall.h" -#include "paging.h" -int32_t remap_proc(int32_t pid); extern void scheduler(void); + +/* function needed from other place */ +int32_t execute (const uint8_t* command); + +int32_t switch_terminal(int32_t term_id); + +int32_t remap_proc(int32_t pid); +void remap2(int32_t term_id); +void remap_vidmem(); diff --git a/student-distrib/syscall.c b/student-distrib/syscall.c index cdc4873..b1e412d 100644 --- a/student-distrib/syscall.c +++ b/student-distrib/syscall.c @@ -103,7 +103,7 @@ int32_t execute(const uint8_t* command) int32_t ret, arg_num; //number that indicated special command int32_t pid = set_pid(); - //if( pid == -1) return -1; // reach max process + //if( pid == -1) return -1; // reach max process ret = parse_cmd(command, parsed_cmd, argv); -- GitLab