Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

OS na ledjima DOS-a uz pomoc Turbo C++ i cudni problem, resen, ali nejasan

[es] :: Kernel i OS programiranje :: OS na ledjima DOS-a uz pomoc Turbo C++ i cudni problem, resen, ali nejasan

[ Pregleda: 3082 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
82.117.192.*



Profil

icon OS na ledjima DOS-a uz pomoc Turbo C++ i cudni problem, resen, ali nejasan31.08.2007. u 18:29 - pre 150 meseci
Radim na projektu iz predmeta Operativni Sistemi 1, gde treba da napravim mali OS koji podrzava rad sa nitima, interupt-ove i druge stvarcice. Za izradu projekta koristimo Turbo C++ v3.1, i osnovne usluge DOS-a. Posto nam je zabranjeno da koristimo usluge OS-tema da bi resavali date probleme sami moramo da napravimo kod za dispatch, time sharing,...
Veci deo vremena sa proveo na kodu dispatch() funkcije koja nije radila zbog toga sto sam promenljive (S[tack]S[egment] , S[tack]P[ointer]) hvatao preko funkcija i namestao ih pomocu metoda klase PCB. Kada stavim promenljive te klase (ss i sp) kao globalne promenljive i pristupam im, sve radi okej.
Postavio sam u kodu #ifdef STRANGE_BUG, i ide kod koji pravi probleme. A kod #ifndef STRANGE_BUG, onda ide kod koji radi.
Problem se inace manifestuje tako sto mi padne xdosemu, bas pre nego sto treba da izadje iz dispatch funkcije i da se prebaci. Dobija se inace greska da cita nelegalnu instrukcuju OP:ff:ff:ff:ff, tako mi je rekao ortak koji je ovaj kod isprobao na windows-u, i uspeo na kraju da nadje bag.
Interesuje me da li neko zna zbog cega se mozda ovaj problem javlja, ili gde bi mogao da potrazim resenje?
U upload-u se nalazi kod dispatch funkcije. Ovaj kod moze da se iskompajlira nezavisno od ostatka projekta.
Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Kernel i OS programiranje :: OS na ledjima DOS-a uz pomoc Turbo C++ i cudni problem, resen, ali nejasan

[ Pregleda: 3082 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.