Kopioi kirjoittamalla

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 15. tammikuuta 2016 tarkistetusta versiosta . tarkastukset vaativat 12 muokkausta .

Copy - on-Write -mekanismilla ( englanniksi  Copy-On-Write, COW ) optimoidaan monia käyttöjärjestelmässä tapahtuvia prosesseja , kuten esimerkiksi työskentely RAM -muistin tai levyllä olevien tiedostojen kanssa.

Copy-on-write -lähestymistavan ideana on, että kun data-aluetta luetaan, käytetään jaettua kopiota, ja jos data muuttuu, luodaan uusi kopio.

Esimerkiksi käytettäessä UNIXin fork() -funktiota todellisen kopioinnin sijaan, jolle on varattava muistia, ydin muuttaa emoprosessin muistisivujen kuvauksia , mikä estää kirjoittamisen datasivuille (ohjelman koodisivut ovat jo kielletty kirjoittamiseen; vaikka siinä on joitain hienouksia - mutta ne eivät vaikuta lisäperusteluihin). Sitten luodaan aliprosessi, johon kopioidaan emoprosessin muistisivukuvaukset. Ydin merkitsee sitten nämä sivut jaetuiksi.

Yritys kirjoittaa yhdistetyille sivuille (joko pää- tai aliprosessista) aiheuttaa poikkeuksen , joka siirtää hallinnan ytimelle. Ydin huomaa, että tämä käyttö oli laillista, ja luo kopion muokatusta sivusta. Siten on mahdollista vähentää ohjelmien käyttämän fyysisen muistin määrää. COW-mekanismi on melko monimutkainen toteuttaa varsinkin moniytimisissä järjestelmissä, ja sen virheet voivat johtaa haavoittuvuuksiin, esimerkiksi Dirty COW -haavoittuvuuteen (Linux, 2007-lokakuu 2016)

Mekanismi on yleistynyt uusimpien tiedostojärjestelmien , kuten ZFS ja Btrfs , luomisessa . Hänen ansiostaan ​​tilannekuvien luominen näissä järjestelmissä tapahtuu lähes välittömästi, ilman suuria tallennusvälineresursseja .

Katso myös

Kirjallisuus