Վիրտուալ հիշողություն
Վիրտուալ հիշողություն (անգլ.՝ 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