Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: DOSin ohjelmista

moptim [16.02.2007 19:06:06]

#

Kun DOSissa suorittaa ohjelman, ohjelma siirtyy tietystikin muistiin suoritettavasti. Kun ohjelma lopetetaan, vanha ohjelma on myös muistissa. Onko tämä tehty niin, että kone lataa uuden ohjelman jonnekin päin muistia, jos saatavilla on vain ohjelman vaatima määrä muistia, jonka jälkeen ohjelmalaskuriin tuikataan uusi osoite? Vai onko siinä jokin muu jippo?

Metabolix [18.02.2007 11:37:12]

#

Ensin ohjelma ladataan muistiin, sitten hypätään suorittamaan sen koodia, mutta ei kai se mitenkään varsinaisesti muistissa pysy enää loppumisensa jälkeen. Kun muisti vapautetaan, sen sisältöä ei maksa vaivaa sotkea, sehän olisi aivan turhaa tehonkulutusta. Ohjelma siis "näkyy" vielä muistissa, vaikka kyseinen muistialue on vapautettu ja siihen voi milloin tahansa ilmestyä jotakin muuta. Näin ainakin olettaisin, en sitten tiedä, mitä kummajaisia joku on käyttöjärjestelmäänsä tehnyt.

tesmu [18.02.2007 12:34:53]

#

No siis kaikista järkevintähän se olisi vain vapauttaa eikä kirjaimellisesti tyhjentää vaikkakin tehonkulutus olisi hitusen pienempi jos jokainen paikka nollattais mutta taas se veisi suoritinaikaa enemmän kun laki sallii jos jokaisen ohjelman sammutuksen jälkeen ohjelman käyttämien muistipaikkojen arvot nollattaisiin...

E.K.Virtanen [18.02.2007 16:13:17]

#

Jos nyt oikein muistan niin DOS ei itse mitenkään tyhjennä muistia jonka jokin ohjelma on varannut ellei sitä erikseen ohjelmallisesti tehdä.
Eli siis toimii hieman samoin kuin tyhjentäessä levyltä tiedostoja.
Tiedostoja ei varsinaisesti poisteta vaan ne merkitään ylikirjoitettaviksi osioiksi.

jpa [18.02.2007 16:35:45]

#

DOS:ssahan ei itsessään moniajoa ole, ohjelmat vain ladataan johonkin kohtaan muistia aina. Sitten nämä erikoisemmat "taustalle jäävät" ohjelmat lataavat itsensä muualle - mikään dossissa ei estä kirjoittamasta mihin tahansa kohtaan muistia - ja lisäävät itsensä johonkin keskeytykseen.

feenix [19.02.2007 13:50:29]

#

jpa kirjoitti:

DOS:ssahan ei itsessään moniajoa ole, ohjelmat vain ladataan johonkin kohtaan muistia aina. Sitten nämä erikoisemmat "taustalle jäävät" ohjelmat lataavat itsensä muualle - mikään dossissa ei estä kirjoittamasta mihin tahansa kohtaan muistia - ja lisäävät itsensä johonkin keskeytykseen.

Mutta ei se kohta aina sama ole välttämättä, kyllä siellä ihan muistinhallinta on olemassa jolla hoidellaan tällaiset asiat.

DOSissa tosiaan muistille ei mitään tehdä, sen sijaan järeämmät järjestelmät saattavat tyhjennellä. Tietyt tietoturvatasot määrittelevät tyhjennyksiä, esimerkiksi NT:ssä jos varaat klöntin levyä, se nollataan automaattisesti niin ei pääse lukemaan mitä siinä sektorissa ennemmin oli jne. Muistillekin taisi saada moisen päälle ellei vakiona jo ollut.

moptim [25.02.2007 07:11:09]

#

> Metabolix

Niin arvelinkin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta