Վիրտուալ հիշողություն

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Վիրտուալ հիշողությունը համատեղում է ակտիվ (օպերատիվ հիշողության սարքում) և ոչ ակտիվ (սկավառակի վրա) հիշողություները, մեկ մեծ հիշողության հասցեների շարունակական տիույթում

Վիրտուալ հիշողություն (անգլ.՝ Virtual memory), ԷՀՄ-ի հիշողության կառավարման տեխնոլոգիա՝ մշակված բազմապրոցեսային օպերացիոն համակարգերի համար։ Վերոհիշյալ տեխնոլոգիայի կիրառման դեպքում յուրաքանչյուր ծրագրի համար օգտագործում են հիշողության հասցեավորման անկախ սխեմաներ, որոնք այս կամ այն կերպով արտացոլվում են ԷՀՄ-ի ֆիզիկական հացեի վրա։ Թույլ է տալիս մեծացնել հիշողության օգտագործման էֆեկտիվությունը միաժամանակ աշխատող ծրագրերի կողմից՝ կազմակերպելով միաժամանակյա անկախ հասցեային պրոցեսներ և ապահովում է հիշողության պաշտպանվածությունը տարբեր ծրագրերի միջև։ Նաև հնարավորություն է տալիս ծրագրավորողին օգտագործել ավելի շատ հիշողություն քան տեղադրված է համակարգչում։ Վերջինս տեղի է ունենում երկրորդային(երկրորդային հիշողություն է համարվում համակարգչի կոշտ սկավառակը) հիշողությունում չօգտագործվող էջերի հաշվին վերբեռնման շնորհիվ։ Վիրտուալ հիշողության օգտագործման դեպքում հեշտանում է ծրագրավորումը, քանի որ ծրագրավորողին այլևս անհրաժեշտ չէ հաշվի առնել համակարգչի հիշողության սահմանափակումները, կամ համաձայնեցնել հիշողության օգտագործումը այլ ակտիվ ծրագրերի հետ։ Ծրագրի համար անընդհատ հասանելի է հասցեային տարածությունը՝ անկախ ԷՀՄ-ում առկա օպերատիվ հիշողության ծավալից։

Վիրտուալ հիշողության մեխանիզմի կիրառումը թույլ է տալիս.

  • հեշտացնել հիշողության հասցեավորումը
  • ռացիոնալ կառավարել համակարգչի/ԷՀՄ-ի օպերատիվ հիշողությունը (պահպանել հիշողության միայն ակտիվ օգտագործվող հատվածները)
  • մեկուսացնել պրոցեսները իրարից (պրոցեսը ենթադրում է որ ամբողջովին տիրապետում է հիշողությանը)

Այժմ այս տեխնոլոգիան ունի սարքավորումային աջակցում, բոլոր ժամանակակից կենցաղային պրոցեսներում։

Պատմություն[խմբագրել | խմբագրել կոդը]

1940-ական և 1950-ական թվականներին, մինչև վիրտուալ հիշողության զարգացումը, բոլոր ծրագրերը ստեղծվում էին հիշողության երկու մակարդակների՝ առաջնային և երկրորդային, առկայությամբ։ Վիրտուալ հիրշողության ստեղծման հիմնական պատճառ հանդիսացավ հիմնական հիշողության ծավալի մեծացման միտումի բացակայությունը, իսկ հիշողության ծավալի մեծացման նմանատիպ մեթոդը շատ ավելի հեշտ էր ծրագրավորողների համար։

Վիրտուալ հիշողության էջային կազմակերպում[խմբագրել | խմբագրել կոդը]

Գրեթե բոլոր ժամանակակից օպերացիոն համակարգերում վիրտուալ հիշողությունը կազմակերպվում է էջային հասցեավորման միջոցով։ Օպերատիվ հիշողությունը բաժանվում է էջերի՝ ֆիքսված երկարությամբ հիշողության հատվածների (օրինակ 4096 բայթ), որոնք հանդիսանում են հիշողության հատկացման մինիմալ մեծություններ (նույնիսկ 1բայթ ծավալով հարցման դեպքում համակարգը կհատկացնի հիշողության 1 էջ)։ Պրոցեսները դիմում են հիշողությանը վիրտուալ հիշողության հասցեի միջոցով, որը իր մեջ պարունակում է էջի համարը և այդ էջի ներսում տեղափոխությունները։ Պրոցեսորը վերափոխում է վիրտուալ էջի համարը համապատասխան ֆիզիկական էջի հասցեին՝ ասոցատիվ հեռարձակման բուֆերի միջոցով։ Եթե չի հաջողվում իրագործել վերը նշված գործողությունը, ապա անհրաժեշտ է դիմել էջերի աղյուսակին (այսպես կոչված Page Walk), որն իրականացվում է կամ անմիջապես պրոցեսորի, կամ օպերացիոն համակարգի կողմից՝ կախված ճարտարապետությունից[1]։ Եթե էջը դուրս է բեռնված օպերատիվ հիշողությունից, ապա օպերացիոն համակարգը վերբեռնում է այն կոշտ սկավառակից։ Հիշողության հատկացման հարցման դեպքում օպերացիոն համակարգը կարող է կոշտ սկավառակի վրա ստեղծել այնպիսի էջ, որին երկար ժամանակ հարցում չի եղել։ Կրիտիկական տվյալները (օրինակ՝ գործարկված և աշխատող ծրագրերի կոդը, համակարգի միջուկի կոդն ու հիշողությունը) սովորաբար գտնվում են օպերատիվ հիշողությունում (բացառություններ կան, սակայն դրանք չեն վերաբերում այն հատվածներին, որոնք պատասխանատու են սարքավորումային դադարների, էջերի աղյուսակի և վերբեռնման ֆայլի աշխատանքի համար)

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. Patterson&Hennessy «Computer organisation and Design. Hardware Software Interface.» 4th edition. Chap 5.4, page 503

Գրականություն[խմբագրել | խմբագրել կոդը]

  • Hennessy, John L.; and Patterson, David A.; Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
  • Вахалия Ю. UNIX изнутри. - СПб.։ Питер, 2003. С.844. ISBN 5-94723-013-5
  • Иртегов Д. Введение в операционные системы. СПб.։ Питер, 2002.
  • Bruce Jacob, Trevor Mudge. Virtual Memory։ Issues of Implementation. - Los Alamitos, CA, USA։ IEEE Computer Society Press, 1998. ISSN։0018-9162

Արտաքին հղումներ[խմբագրել | խմբագրել կոդը]