Մասնակից:HripsimeHripsime
{Համակարգչային տեխնիկայի TBN խաղը ցույց է տալիս վիրտուալ հիշողություն}}
computing,վիրտուալ հիշողության մեջ [[հիշողություն կառավարման] տեխնիկան զարգացել է multitasking kernels. Այս տեխնիկան virtualizes համակարգիչ ճարտարապետության տարբեր ձեւերի համակարգչային տվյալների պահպանումն է ինչպես, օրինակ, Պատահական մուտքի հիշողությունը եւ սկավառակի պահպանումը)՝ թույլ տալով [[Application Software ծրագիր է նախագծում, որ կա միայն մեկ տեսակ հիշողության՝ «վիրտուալ» հիշողություն, որը վարվում է, ինչպես ուղղակիորեն հասցեական կարդալու և գրելու հիշողությունը (RAM).
Ամենաժամանակակից Օպերացիոն համակարգերը, որոնք աջակցում են վիրտուալ հիշողությանը նաեւ գործարկում են յուրաքանչյուր գործընթաց իր սեփական հասցեով ՝ թույլ տալով մի ծրագիր մշակել, քանի որ'այն միակ մուտք գորցելն է դեպի վիրտուալ հիշողության մեջ: Այնուամենայնիվ, որոշ հին օպերացիոն համակարգեր (օրինակ, OS/VS1 եւ OS/VS2 SVS) նույնիսկ ժամանակակից են ինչպես, օրինակ, IBM i, կարող են միայն հասցեն մուտքագրել օպերացիոն համակարգի տարածք , որ առաջադրվելու է բոլոր գործընթացների ոչ մի տարածք: Հասցեն բաղկացած է virtualized հիշողությամբ:
Համակարգեր, որոնք կիրառվում են վիրտուալ հիշողության մեջ:
- Օգտագործել ապարատային հիշողության մեջ ավելի արդյունավետ, քան անել առանց համակարգերի վիրտուալ հիշողության մեջ:
- Դարձնել ծրագրավորման դիմումները ավելի հեշտ:
- fragmentation,
- միջուկի բեռի կառավարում կարիք չկա, որ ծրագրի կարգավովի overlays հստակորեն:
- Ու, երբ յուրաքանչյուր գործընթացը վարում է իր սեփական նվիրված հասցեն տարածքում, ըստ անհրաժեշտության տեղափոխվել է կոդը ծրագրի կամ մուտք գործելու հիշողության հետ, հարաբերական ուղղված .
Հիշողության virtualization ընդհանրացման հայեցակարգի վիրտուալ հիշողություն: Գրեթե բոլոր վիրտուալ հիշողություն բաժանում է վիրտուալ տարածության հասցեն բլոկների եւ սահմանակից վիրտուալ հիշողության հասցեների Էջեր, որոնք սովորաբար առնվազն 4 kilobyte - ի չափի, համակարգեր են: Մեծ վիրտուալ հասցեն տատանվում կամ գումարների իրական հիշողության ընդհանուր օգտագործման ավելի մեծ չափսերի էջում է հայտնվում:
Page tables
[խմբագրել | խմբագրել կոդը]Page tables օգտագործվում են թարգմանել վիրտուալ հասցեներ, օգտագործվող սարքերի մշակման ցուցումներ, այնպիսի սարքավորումներ, որոնք հատուկ են բռնակներին: Այս թարգմանությունը հաճախ հայտնի է որպես հիշողության կառավարում միավոր: Յուրաքանչյուր մուտքի այդ էջ աղյուսակում ունի դրոշ՝ նշելով, թե համապատասխան էջը գտնվում է իրական հիշողության մեջ, թե ոչ: Եթե դա է իրական հիշողությունը, սեղանի մուտքի էջը պարունակում է իրական հիշողության հասցեն, որտեղ էջը գտնվում և պահվում է: Երբ հղում է արվում մի աղյուսակի էջ մուտք գործելու համար էջը ցույց է տալիս, որ առայժմ չի գործում իրական հիշողության մեջ, ապա վերահսկիչ բաղադրիչն է օպերացիոն համակարգ:
Համակարգերը կարող են ունենալ մեկ Page tables ամբողջ համակարգի առանձին Page tables համար յուրաքանչյուր դիմումի ու հատվածի, paje tree աղյուսակների համար խոշոր հատվածների կամ որոշակի համակցության: Եթե կա միայն մեկ Page tables-ի , տարբեր ծրագրեր multiprogramming միեւնույն ժամանակ օգտագործման տարբեր մասերում մի շարք վիրտուալ հասցեներ.:Եթե կան մի քանի էջ կամ հատվածի Page tables , կան բազմաթիվ վիրտուալ տարածքների հասցեներ եւ համանման ծրագրեր , առանձին էջի վրա սեղանների վերահղման տարբեր իրական հասցեներ:
Paging controller
[խմբագրել | խմբագրել կոդը]Սա Page tables-ի մի մասն է կազմում՝ օպերացիոն համակարգի ստեղծման եւ ղեկավարման Page tables: Եթե ապարատային բարձրացման էջը բացառություն է, paging controller միջնակարգ պահեստավորման, վերադարձման էջը, որն ունի վիրտուալ հասցե, որ հանգեցրել է այդ էջում թարմացումները Page tables արտացոլում են գտնվելու վայրը վիրտուալ հասցեում եւ պատմում թարգմանությունը մեխանիզմ վերագործարկելու խնդրանքով:
Երբ բոլոր ֆիզիկական հիշողությունները արդեն օգտագործվում են, paging controller պետք է ազատ էջը առաջնային պահպանման անցկացնի swapped - ին էջում: ՀՀ վերահսկիչ մեկը օգտագործում է մի շարք Էջ փոխարինում ալգորիթմ ներ, ինչպիսիք են `[[Էջ փոխարինում ալգորիթմ # առնվազն վերջերս օգտագործվել է էջը անվճար:
Կարեւոր էջեր
[խմբագրել | խմբագրել կոդը]Օպերացիոն համակարգեր հիշողություն տարածքներ են, որոնք կապում են( swapped մինչեւ երկրորդական պահեստավորման). Օրինակ, ընդհատել մեխանիզմների մի զանգված, ցուցիչների իրենց handlers, ինչպիսիք են I / O ավարտից հետո, եւ Էջ մեղքով: Եթե էջերը պարունակող այդ ցուցիչներy կամ այն կոդը, որը նրանք վկայակոչել են pageable, ընդհատել - բեռնաթափման կդառնա շատ ավելի բարդ եւ ժամանակատար սպառwx: Հետեւաբար, որոշ մասը էջի աղյուսակի կառույցների չէ pageable. Որոշ էջեր կարող են կապել կարճ ժամանակահատվածում, մյուսները կարող են կապել երկար ժամանակ, եւ կարող է լինել նաև այլ անհրաժեշտ մշտապես կապում: Օրինակ.
- Paging controller կոդը եւ Driverner-ի համար երկրորդական պահման սարքերի վրա, որի էջերում մշտապես պետք է կապում, քանի որ հակառակ դեպքում paging նույնիսկ չէր աշխատի, քանի որ անհրաժեշտ կոդը չէր լինի մատչելի:
- Ժամկետները, կախված բաղադրիչներից, կարող են խուսափել փոփոխական paging ձգձգումներից:
- Տվյալների բուֆերային ներ, որոնք կօգտվեն անմիջականորեն , ասենք, ծայրամասային սարքեր, որոնք օգտագործում են հիշողության անմիջական մուտք կամ I / O ալիք - ի համար նաեւ պետք է բնակում կարեւոր էջերում, իսկ երբ / Բ գործողությունն է առաջընթաց, ավտոբուս, որոնց կցված են ակնկալում, գտնել տվյալների buffers ֆիզիկական հիշողության հասցեները, անկախ այն հանգամանքից, որ ավտոբուսն ունի հիշողության կառավարման միավորը I / O , փոխանցումները չեն կարող դադարեցվել, եթե էջում սխալ է տեղի ունենում, իսկ հետո վերսկսվել, երբ էջը արդեն մշակված է լինում:
IBM-ի օպերացիոն համակարգեր: System/370 իրավահաջորդ համակարգերի: Այդ «ֆիքսված» ժամկետում էջերը կարող են երկարաժամկետ ֆիքսված լինել, կամ կարող է լինել կարճաժամկետ ֆիքսված: Վերահսկիչ կառույցները հաճախ երկարաժամկետ ֆիքսված (չափվում է պատի Շուրջօրյա ժամանակ, այսինքն, ժամանակը չափվում է վայրկյաններով, այլ ոչ թե ժամանակը չափվում է ավելի քիչ, քան մեկ երկրորդ պարբերականությամբ), մինչդեռ I / O buffers սովորաբար կարճաժամկետ ֆիքսված (սովորաբար չափվում է զգալիորեն պակաս, քան Շուրջօրյա ժամանակ, հնարավոր է մի քանի milliseconds): Իսկապես, OS ունի հատուկ հաստատություն «արագ ամրագրելով« դրանք կարճաժամկետ ֆիքսված տվյալների buffers (ամրագրելով, որը կատարվում է առանց դիմելու ժամանակ `սպառող վերահսկիչ: Բացի այդ, OS - ն եւս մեկ հաստատության համար վերծանել է նրան, որ դիմումը երկարաժամկետ կայուն լինելու համար ամրագրված անորոշ ժամկետով, հնարավոր է օր, ամիս կամ նույնիսկ տարիների (Սակայն, այս հաստատության անվերապահորեն պահանջում է, որ առաջին հերթին պետք է հայտը swapped - դուրս, հնարավոր է նախընտրած - հիշողության, կամ խառնուրդ նախընտրելի եւ ոչ արտոնյալ հիշողություն, եւ երկրորդ լինել swapped - ի ոչ նախընտրելի հիշողության, որտեղ բնակվում է տեւողությունը, սակայն երկար ժամանակ է, որ կարող է, այդ հաստատության ղեկավարի օգտագործում փաստաթղթային Call հրահանգներ ):
Վիրտուալ - իրական գործողություն
[խմբագրել | խմբագրել կոդը]OS/VS1 նմանատիպ OSes, որոշ հատվածներում համակարգերի հիշողության մեջ կառավարվում է վիրտուալ `իրական ռեժիմ, որտեղ յուրաքանչյուր վիրտուալ հասցե համապատասխանում է իրական հասցեին, մասնավորապես, ընդհատել մեխանիզմներին, paging վերահսկող եւ աղյուսակներ է հին համակարգերի , կիրառման ծրագրերը `օգտագործելով ոչ ստանդարտ I / O կառավարման. Օրինակ, IBM-ի Z / OS ունի 3 եղանակները (վիրտուալ-վիրտուալ, վիրտուալ, իրական եւ վիրտուալ-ֆիքսված): <ref name="IBMzOSConcepts"> Կաղապար:Վկայակոչում Web:
=== === Կալսում Երբ paging օգտագործվում է, որպես խնդիր կոչվում է « կալսում» կարող է առաջանալ, որտեղ համակարգչային ծախսում է unsuitable գումար ժամանակ swapping էջեր եւ աջակցության մի խանութ, հետեւաբար դանդաղում է օգտակար աշխատանք: Ավելացնելով իրական հիշողության ամենապարզ պատասխանը, սակայն բարելավման ծրագրի նախագծման, պլանավորման եւ հիշողության օգտագործման կարող է օգնել.
== == Segmented վիրտուալ հիշողություն Որոշ համակարգեր, ինչպիսիք են Burroughs B5500, <ref> Կաղապար:Վկայակոչում ձեռնարկ </ Ref> չեն օգտագործում paging, փոխարենը նրանք օգտագործում segmentation, բաժանարար վիրտուալ հասցե տարածքների մեջ փոփոխական-երկարությունը հատվածների: Վիրտուալ հասցեն այստեղ բաղկացած է մի շարք հատվածի եւ օֆսեթ շրջանակներում հատվածում, որն Intel 80286 աջակցում է նման segmentation սխեման որպես տարբերակ, բայց դա հազվադեպ է օգտագործվում: Segmentation եւ paging միասին կարող են օգտագործվել յուրաքանչյուր հատվածի կողմից բաժանելու մեջ էջերը, համակարգեր, այդ հիշողության կառուցվածքի, ինչպես, օրինակ, Multics եւ IBM System/38, սովորաբար paging - հիմնական, segmentation ապահովում հիշողության պահպանության: <Սայլակ > Կաղապար:Քաղվածել Հյուրատետր </ Ref> <ref> Կաղապար:Վկայակոչում Web </ Սայլակ> < Սայլակ> Կաղապար:Վկայակոչում Web </ Սայլակ>
Intel 80386, IA-32 Պրոցեսորների, տարբեր հատվածների 32-bit գծային, տարածության paged հասցեն: Սեգմենտները կարող է տեղափոխվել, եւ դուրս գալ այդ տարածքներ, այնտեղ կարող են լինել »էջը» եւ հիմնական հիշողության մեջ՝ ապահովելով երկու մակարդակները վիրտուալ հիշողության, քանի որ եթե ցանկացած օպերացիոն համակարգերի փոխարեն օգտագործվում է միայն paging. Վաղ ոչ ապարատային օժանդակությամբ [[x86 virtualization] լուծումներ համակցված paging եւ segmentation, քանի որ x86 paging առաջարկում է միայն երկու պահպանության ոլորտների Քանզի VMM / Հյուրատետր OS / Հյուրատետր դիմումների բուրգ կարիք ունի երեք <ref> org/archives/hc17/1_Sun/HC17.T1P2.pdf ժե Սմիթ, Ռ. Uhlig (օգոստոսի 14, 2005)Վիրտուալ մեքենաներ `ճարտարապետական, Implementations եւ Applications, HOTCHIPS 17, Tutorial 1, մաս 2 </ Սայլակ > Կաղապար:RP միջեւ տարբերությունը paging եւ segmentation համակարգերի ոչ միայն հիշողության բաժանում, segmentation տեսանելի է Օգտվողի գործընթացները, ինչպես նաեւ հիշողության մոդելի իմաստաբանություն. Ուստի, հիշողության փոխարեն, որ կարծես մի մեծ վեկտոր է, կառուցվածքային մեջ բազմաթիվ բացատներով է:
Այս տարբերությունը կարեւոր հետեւանքներ ունի, մի հատվածի էջը փոփոխական երկարության կամ հասարակ ձեւով երկարացնել հասցեի տարածքով:Segmentation, որը կարող է ապահովել մի մակարդակի հիշողության մոդելը, որտեղ չկա տարբերակման միջեւ գործընթաց հիշողությունից: ֆայլի համակարգը բաղկացած է միայն ցուցակի հատվածների (ֆայլերի) mapped գործընթացի մեջ ներուժը հասցեի տարածքում <ref> {{ = Bensoussan
Սա ոչ թե նույն, ինչպես մեխանիզմների նախատեսված կոչն է անում, ինչպիսիք են mmap եւ win32 's MapViewOfFile, քանի որ միջգերատեսչական ֆայլի ցուցիչների չեն աշխատում, երբ քարտեզագրման ֆայլերի մեջ կիսա - կամայական տեղերը ի Multics, ֆայլի (կամ մի հատվածի մի հատվածն բազմամյա ֆայլ) է mapped մեջ մի հատվածի մեջ հասցեի տարածքում, այնպեսի ֆայլերը միշտ mapped է հասարակության մի հատվածի սահմանամերձ Ֆայլի կապ է բաժնում և կարող է պարունակել ցուցիչներ, որը փորձ է բեռնել ցուցիչի մեջ գրանցամատյան կամ անուղղակի հղման միջոցով այն առաջացնում է ծուղակ: Չլուծված ցուցիչ է պարունակում՝ նշելով անունը, հատվածը, որոնց ցուցիչը վերաբերում է եւ օֆսեթ շրջանակներում հատվածը, որի համար handler քարտեզների հատվածում հասցեի տարածքի մեջ է դնում հատվածը, համարը ցուցիչի մեջ փոխվում է հատկորոշիչը դաշտի այն ցուցիչը, որպեսզի այն այլեւս առաջացնում է ծուղակը, եւ վերադառնում է այն կոդը, որտեղ տեղի է ունեցել ծուղակ, կրկին իրականացնելու կարգադրությամբ, որոնք պատճառ են թակարդի: <ref> Կաղապար:Վկայակոչում Web </ Ref> այս վերացնում անհրաժեշտությունը a linker ամբողջովին [1] եւ աշխատում է, երբ տարբեր գործընթացներ քարտեզ նույն ֆայլի մեջ տարբեր վայրերում, իրենց անձնական հասցեն բացատների: <ref> Կաղապար:Քաղվածել Հյուրատետր </ Սայլակ>
See also
[խմբագրել | խմբագրել կոդը]- Computer memory
- Memory address
- CPU design
- Page (computing)
- Segmentation (memory)
- Memory management
- Memory allocation
- Protected mode, an x86 mode that allows for virtual memory.
References
[խմբագրել | խմբագրել կոդը]- ↑ Քաղվածելու սխալ՝ Սխալ
<ref>
պիտակ՝ «denning
» անվանումով ref-երը տեքստ չեն պարունակում:
Further reading
[խմբագրել | խմբագրել կոդը]- Hennessy, John L.; and Patterson, David A.; Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
External links
[խմբագրել | խմբագրել կոդը]- Linux Memory Management
- Linux Kernel Mailing List Discussion
- Pointers to virtual memory visualizations
- The Virtual-Memory Manager in Windows NT
Կաղապար:Memory management navbox hy:Վիրտուալ հիշողություն hy:Virtual Memory