Стратегияи Copy-on-write дар сатҳи кори дохилии системаро чӣ гуна амалӣ мекунанд?
sobes.tech AI
Ҷавоб аз AI
Стратегияи Copy-on-write (COW) дар сатҳи система ё китобхона амалӣ мешавад, ки ҳангоми нусхабардории объект ё маълумот, дар асл танҳо истинод ба ҳамон блоки хотира эҷод мешавад. Нусхабардории физикии маълумот танҳо вақте рӯй медиҳад, ки яке аз нусхаҳо кӯшиш мекунад, ки мундариҷаро тағир диҳад.
Масалан, дар iOS, бисёре аз сохторҳои маълумот (NSString, NSArray, NSDictionary) COW-ро истифода мебаранд. Ҳангоми нусхабардории объект, истинод ба ҳамон маълумотҳо эҷод мешавад ва ҳисобкунаки истинодҳо зиёд мешавад. Вақте ки кӯшиш мекунанд, ки маълумотро тағир диҳанд, системаи ҳисобкунаки истинодҳоро месанҷад: агар он аз 1 зиёд бошад, нусхаи воқеии маълумотҳо (нусхабардории ҳангоми навиштани) эҷод мешавад ва тағирот дар ин нусха анҷом дода мешавад. Агар ҳисобкунак 1 бошад, тағирот мустақиман анҷом дода мешавад.
Ин имкон медиҳад, ки хотира самаранок истифода шавад ва иҷрои беҳтар гардад, бо пешгирии нусхаҳои беназорат.
Масалан (осоншуда):
- Объекти A бо маълумотҳо эҷод мешавад.
- Нусхаи B, ки ба ҳамон маълумотҳо ишора мекунад, эҷод мешавад.
- Вақте ки B тағир дода мешавад, нусхаи воқеии маълумотҳо эҷод мешавад, то A-ро таъсир нарасонад.