Վիրտուալ հիշողություն
Վիրտուալ հիշողություն (անգլ.՝ Virtual memory), ԷՀՄ-ի հիշողության կառավարման տեխնոլոգիա՝ մշակված բազմապրոցեսային օպերացիոն համակարգերի համար։ Վերոհիշյալ տեխնոլոգիայի կիրառման դեպքում յուրաքանչյուր ծրագրի համար օգտագործում են հիշողության հասցեավորման անկախ սխեմաներ, որոնք այս կամ այն կերպով արտացոլվում են ԷՀՄ-ի ֆիզիկական հացեի վրա։ Թույլ է տալիս մեծացնել հիշողության օգտագործման էֆեկտիվությունը միաժամանակ աշխատող ծրագրերի կողմից՝ կազմակերպելով միաժամանակյա անկախ հասցեային պրոցեսներ և ապահովում է հիշողության պաշտպանվածությունը տարբեր ծրագրերի միջև։ Նաև հնարավորություն է տալիս ծրագրավորողին օգտագործել ավելի շատ հիշողություն քան տեղադրված է համակարգչում։ Վերջինս տեղի է ունենում երկրորդային(երկրորդային հիշողություն է համարվում համակարգչի կոշտ սկավառակը) հիշողությունում չօգտագործվող էջերի հաշվին վերբեռնման շնորհիվ։ Վիրտուալ հիշողության օգտագործման դեպքում հեշտանում է ծրագրավորումը, քանի որ ծրագրավորողին այլևս անհրաժեշտ չէ հաշվի առնել համակարգչի հիշողության սահմանափակումները, կամ համաձայնեցնել հիշողության օգտագործումը այլ ակտիվ ծրագրերի հետ։ Ծրագրի համար անընդհատ հասանելի է հասցեային տարածությունը՝ անկախ ԷՀՄ-ում առկա օպերատիվ հիշողության ծավալից։
Վիրտուալ հիշողության մեխանիզմի կիրառումը թույլ է տալիս.
- հեշտացնել հիշողության հասցեավորումը
- ռացիոնալ կառավարել համակարգչի/ԷՀՄ-ի օպերատիվ հիշողությունը (պահպանել հիշողության միայն ակտիվ օգտագործվող հատվածները)
- մեկուսացնել պրոցեսները իրարից (պրոցեսը ենթադրում է որ ամբողջովին տիրապետում է հիշողությանը)
Այժմ այս տեխնոլոգիան ունի սարքավորումային աջակցում, բոլոր ժամանակակից կենցաղային պրոցեսներում։
Պատմություն
[խմբագրել | խմբագրել կոդը]1940-ական և 1950-ական թվականներին, մինչև վիրտուալ հիշողության զարգացումը, բոլոր ծրագրերը ստեղծվում էին հիշողության երկու մակարդակների՝ առաջնային և երկրորդային, առկայությամբ։ Վիրտուալ հիրշողության ստեղծման հիմնական պատճառ հանդիսացավ հիմնական հիշողության ծավալի մեծացման միտումի բացակայությունը, իսկ հիշողության ծավալի մեծացման նմանատիպ մեթոդը շատ ավելի հեշտ էր ծրագրավորողների համար։
Վիրտուալ հիշողության էջային կազմակերպում
[խմբագրել | խմբագրել կոդը]Գրեթե բոլոր ժամանակակից օպերացիոն համակարգերում վիրտուալ հիշողությունը կազմակերպվում է էջային հասցեավորման միջոցով։ Օպերատիվ հիշողությունը բաժանվում է էջերի՝ ֆիքսված երկարությամբ հիշողության հատվածների (օրինակ 4096 բայթ), որոնք հանդիսանում են հիշողության հատկացման մինիմալ մեծություններ (նույնիսկ 1բայթ ծավալով հարցման դեպքում համակարգը կհատկացնի հիշողության 1 էջ)։ Պրոցեսները դիմում են հիշողությանը վիրտուալ հիշողության հասցեի միջոցով, որը իր մեջ պարունակում է էջի համարը և այդ էջի ներսում տեղափոխությունները։ Պրոցեսորը վերափոխում է վիրտուալ էջի համարը համապատասխան ֆիզիկական էջի հասցեին՝ ասոցատիվ հեռարձակման բուֆերի միջոցով։ Եթե չի հաջողվում իրագործել վերը նշված գործողությունը, ապա անհրաժեշտ է դիմել էջերի աղյուսակին (այսպես կոչված Page Walk), որն իրականացվում է կամ անմիջապես պրոցեսորի, կամ օպերացիոն համակարգի կողմից՝ կախված ճարտարապետությունից[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
Արտաքին հղումներ
[խմբագրել | խմբագրել կոդը]- 621004 Virtual Memory: Issues of Implementation(չաշխատող հղում) (անգլ.)
- Драйвер виртуальной памяти, использующий Linux swap раздел (անգլ.)
- Увеличение файла подкачки в Microsoft Windows XP/Vista/7 Արխիվացված 2011-11-22 Wayback Machine (ռուս.)
- FAQ по файлу подкачки на WinBlog.ru (ռուս.)
- Linux Memory Management
- 161&Itemid= 32 Linux Kernel Mailing List Discussion Արխիվացված 2016-03-04 Wayback Machine
- Pointers to virtual memory visualizations Արխիվացված 2006-08-29 Wayback Machine
- The Virtual-Memory Manager in Windows NT