«« ( Date ) »» // «« ( Thread ) »» // mips-nastava - 2004

ponovo OS? za asistenta

by aca.mil@galeb
ponedeljak, 16. avgust 2004 - 00:26.



Ponovicu mejl, posto mi niko nije odgovorio.

> I
> Da li se simulator moze pisati u C ili C++u ?
>
> II
> Da li bi ovo dole trebalo da bude minimalni OS koji se trazi u tacki 3
prvog
> zadatka? Zanima me da li je potrebno napraviti OS koji se moze koristi i
za
> neke druge aplikacije, ili koji je opet vezan za ovaj konkretan glavni
> program (to je program drugog ispita )?
>
> Zanima me da li je poput primera za OS/51, potrebno uraditi prevezivanja
> PCBova kroz razne liste ili je sve to dovoljno uraditi sa flagovima (dole
> pomenutim)? Pa prioriteti, semafori itd. To se verovatno odbacuje u ovoj
> minimalnoj varijanti, zar ne?
>
> Uputstvo koje je u mejlu dole mi je prilicno jasno i opravdano, ali me
> zanima da li glavni program koji se vrti u petlji (tacka 3 objasnjenja)
nije
> dispecer, koji bi trebao da bude takodje unutar prekidne rutine koju
pokrece
> tajmer posle svake 1ms? Jedino moze da smeta, ako je onda prekidna rutina
> preopterecena, ali svejedno, onda prekidna rutina mora da pozove dispecera
> samo kada treba da se oduzme procesor nekom procesu i dodeli drugom. I ne
> svidja mi se sto prekidna rutina odredjuje sledeci proces koji ce se
> izvrsavati. Komentar?
>
>
> U domacem za jun i septembar ne vidim neki veliki razlog da se kreiraju
> procesi na osnovu istih programa. To je imalo smisla kod ABSa jer se vrti
4
> tocka i oni moraju biti konkurentno nadgledani. Da li je mozda potrebno da
> se u sadasnjem domacem kreiraju procesi za svaku traku posebno?
>
> Sale
>
> ----- Original Message -----
> From: "Gvozden Marinkovic" <mgvozden@eunet.yu>
> To: <mips-nastava@titan.etf.bg.ac.yu>
> Sent: Wednesday, March 17, 2004 4:38 PM
> Subject: [mips-nastava] resenje zadatka
>
>
> > I ako sam na ispitu rekao kako treba da se uradi zadatak
> > gotovo niko nije uradio kako treba.
> >
> > Za buduce rokove (I DOMACE ZADATKE):
> >
> > Potrebni podaci:
> > niz flegova - SCHEDULE, takav da svakoj proceduri
> > odgovara po 1
> > niz flegova - ACTIVE, takav da svakoj proceduri
> > odgovara po 1
> >
> > 1. Prekidna rutina koja meri 1ms:
> >
> > - uvecava jednu globalnu prmenljivu koja se recimo zove
> > TEK_VREME, a koja nam je neophodna za merenje raznih
> > intervala vremena
> >
> > - aktivira SCHEDULE fleg za sledecu proceduru. Ukoliko je
> > ACTIVE za tekucu jos uvek postavljen, moze prolongirati
> > aktiviranje za jednu iteraciju (1ms)
> >
> > 2. Svaka procedura kada pocne izvrsavanje postavlja svoj
> > ACTIVE flag na jedinicu.
> >
> > - kada zapocne izvrsavanje postavlja svoj ACTIVE fleg na 1
> >
> > - ukoliko treba da proveri koliko je proteklo vremena od
> > prethodnog izvrsavanja oduzima od TEK_VREME vrednost
> > promenjive, recimo MARKICA_VREME.
> >
> > - MARKICA_VREME se nakon toga azurira MARKICA_VREME <- TEK_VREME
> >
> > - u zavisnosti od proteklog vremena i dodatnih flegova
> > procedura zavrsava svoj posao.
> >
> > - ukoliko procedura ne odmah da zavrsi posao (recimo mora
> > nesto da ceka) moze da sacuva svoje stanje u nekoj
> > promenljivoj i to kasnije da upotrebi
> >
> > - na kraju brise SCHEDULE i ACTIVE fleg.
> >
> > npr. procedura za startovaranje:
> >
> > - proverava da li ima nesto u prihvatnom baferu sa
> > serijskog porta
> > - ukoliko ima da li je u pitanju komanda za startovanje
> > - ako nije zavrsava posao
> > - ako jeste vrsi inicijalizaciju
> >
> > 3. Glavni program se vrti u petlji. proverava SCHEDULE flegove
> > i u zavisnosti od potrebe aktivira proceduru odgovarajucu
> > proceduru.
> >
> > 4. Prijem podataka sa seriskog porta obavlja se u prekidnoj
> > rutini, tako da glavni program ne treba o tome da vodi racuna.
> > Prekidna rutina prima bajt po bajt. Kada se detektuje kraj
> > prijema postavlja jedan fleg koji kaze da ima nesto u prijemnom
> > baferu i eventualno duzinu poruke.
> >
> > 5. Slanje se obavlja tako sto funkcija koja treba nesto da
> > salje proveri fleg koji kaze da je bafer za slanje prazan.
> > Zatim upise poruku u za bafer slanje i postavi FLAG da ima
> > nesto u baferu i eventualno duzinu poruke.
> >
> > Ovo je jednostavna realizacija. Procedure su atomske, tj.
> > kada jednom zapocne izvrsavanje TIME SCHEDULER ne moze da je
> > prekine. Time su izbegnuti problemi sinhronizacije i cuvanja
> > konteksta.
> >
> > Pozdrav
> >
> > Gvozden
>
>
>