Մասնակից:HripsimeHripsime

Վիքիպեդիայից՝ ազատ հանրագիտարանից

{Համակարգչային տեխնիկայի TBN խաղը ցույց է տալիս վիրտուալ հիշողություն}}

Պատկեր:Վիրտուալ memory.svg
Վիրտուալ հիշողությունը համատեղում է ակտիվ RAM հիշողության սկավառակի ձեւով և իր մեջ ներառում էմի մեծ շարք սահմանակից հասցեներ.

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[խմբագրել | խմբագրել կոդը]

References[խմբագրել | խմբագրել կոդը]

  1. Քաղվածելու սխալ՝ Սխալ <ref> պիտակ՝ «denning» անվանումով ref-երը տեքստ չեն պարունակում:

Further reading[խմբագրել | խմբագրել կոդը]

  • Hennessy, John L.; and Patterson, David A.; Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)

External links[խմբագրել | խմբագրել կոդը]

Կաղապար:FOLDOC

Կաղապար:Memory management navbox hy:Վիրտուալ հիշողություն hy:Virtual Memory