Paging at Segmentation
Ang pamamahala ng memorya ay isa sa mga pangunahing pag-andar ng operating system. Pinapayagan ng mga modernong operating system ang bawat proseso upang makakuha ng mas maraming memory kaysa sa kabuuang sukat ng aktwal (pisikal) na memorya sa isang ibinigay na sistema ng computer. Ang pangunahing layunin ng pamamahala ng memorya ay na sa pamamagitan ng pagsasama ng malaki ngunit mabagal na memorya na may maliit ngunit mataas na bilis ng memorya, upang makamit ang epekto ng mas malaking high-speed memory.
Ano ang Paging?
Ang paghihiwalay sa pagitan ng nakapirming at variable na partitioning ay hindi epektibo sa mga tuntunin ng paggamit ng memorya, dahil ang mga nakapirming partisyon ay nagreresulta sa panloob, habang dynamic sa panlabas na pagkapira-piraso. Ang posibleng solusyon sa problema ng pagkapira-piraso ay upang payagan ang proseso na hindi maisulat sa isang patuloy na memory block. Ang programa ay maaaring nakakalat na nagkataon sa memorya. Sa kasong ito, ang memorya ng trabaho ay nahahati sa mas maliit na mga bloke ng nakapirming laki na tinatawag na mga frame. Ang lohikal na puwang ng address ng programa ay hinati rin sa mga bloke ng parehong laki, na tinatawag na mga pahina. Kapag ang isang programa ay ipinasok sa memorya, ang mga pahina ay nakasulat sa mga libreng memory frame. Para sa kadalian ng paglilipat ng mga programa mula sa isang disk sa isang nagtatrabaho memorya, ang disk ay nahahati rin sa mga frame ng parehong sukat gaya ng mga frame ng memorya. Kaya, isang frame mula sa disk ay nakasulat sa isang frame ng nagtatrabaho memorya. Ang paging system ay nagpapatakbo sa mga sumusunod na paraan: kapag ang programa ay tinanggap para sa pagpapatupad, ang laki nito ay kinakalkula, na ipinahayag sa kinakailangang bilang ng mga pahina. Kung ang isang sapat na bilang ng mga frame ay libre, ang proseso ay naitala sa pahina ng memorya sa bawat pahina. Kasabay nito, ang bilang ng mga frame kung saan isinulat ang bawat pahina ay ipinasok sa frame table.
Ano ang Segmentation?
Ang programa ng user at kaugnay na data ay maaaring nahahati sa isang bilang ng mga segment. Ang mga segment ng lahat ng mga programa ay hindi kailangang magkapareho ng laki, bagama't may pinakamataas na haba ng segment. Tulad ng paging, ang lohikal na address na gumagamit ng segmentation ay binubuo ng dalawang bahagi, sa kasong ito ang bilang ng mga segment at dislocations sa loob ng segment na iyon. Dahil sa paggamit ng mga segment ng iba't ibang laki, ang segmentation ay katulad ng dynamic na partitioning. Sa kawalan ng isang scheme ng overlay o paggamit ng virtual na memorya, kinakailangan na ang lahat ng mga segment ng programa ay mai-load sa memorya para sa pagpapatupad. Ang kaibahan kumpara sa dynamic na partitioning ay ang segmentation na maaaring tumagal ng higit sa isang pagkahati, at ang pagkahati ay hindi kailangang maging katabi. Nalulutas ang segmentasyon sa problema ng panloob na pagkapira-piraso, ngunit pati na rin ang dynamic na partisyon, ang problema ng panlabas na fragmentation ay nananatiling. Gayunpaman, dahil ang proseso ay nahahati sa isang bilang ng mga mas maliit na bahagi, ang panlabas na pagkapira-piraso ay karaniwang mas maliit. Hindi tulad ng paging na hindi nakikita ng programmer, ang segmentation ay karaniwang nakikita at angkop para sa pag-oorganisa ng mga programa at data. Para sa layunin ng modular programming, ang programa o data ay maaaring higit na nahahati sa ilang mas maliit na mga segment. Ang downside ng pamamaraan na ito ay na ang programmer ay dapat malaman ang mga limitasyon ng maximum na sukat ng segment. Ang susunod na kaginhawahan ng paggamit ng mga segment ng iba't ibang laki ay walang posibleng koneksyon sa pagitan ng lohikal at pisikal na mga address. Katulad ng paging, ang simpleng pamamaraan ng segmentation ay gumagamit ng mga talahanayan ng segment para sa bawat proseso at isang listahan ng mga magagamit na bloke sa pangunahing memorya.
Pagkakaiba sa pagitan ng Paging at Segmentation
1. Konsepto ng Paging at Segmentation
Ang paging ay naghahatid ng isang virtual at pisikal na espasyo ng address, at isang pangalawang memory space sa mga bloke (mga pahina) ng pantay na haba. Pinapayagan nito ang patuloy na virtual address space na ilaan sa proseso ng pagpapakalat (hindi palaging ipinamamahagi) sa tunay na puwang ng address at pangalawang memorya. Kahit na ang pahina, bilang isang termino, ay tumutukoy sa memorya sa halip na lohikal na mga bagay na nakikita sa antas ng programa. Ang segmentasyon ay naghahatid ng virtual address space sa mga bloke (mga segment) na direktang tumutugma sa mga bagay sa antas ng programa. Dahil dito, ang segment ay walang takdang haba, kaya kahit na ang laki ng segment ay maaaring mabago sa panahon ng pagpapatupad ng programa. Kung gayon, ang proteksyon at dibisyon ay posible sa antas ng bagay, at may mga nakikitang proseso kung saan ginaganap ang segmentation.
2. Mga katangian ng Paging at Segmentation
Ang developer ng application ay walang kamalayan ng paging. Nagsusulat siya ng mga programa bilang kung ang memorya ay linear, at ang operating system at processor ay nababahala tungkol sa partitioning nito at nagko-convert sa mga virtual address. Ang programmer sa mga sistema ng segmentation, gayunpaman, ay naglilista ng dalawang bahagi ng address, segment at pahina sa kanilang mga programa. Ang lahat ng mga pahina ay may parehong laki habang ang mga segment ay iba. Ang segmentasyon ay may maraming linear address space, at isa lamang ang paging. Binibigyang-daan ng mga segment ang lohikal na partisyon at proteksyon ng mga sangkap ng application, at ang mga pahina ay hindi.
3. Mga Bentahe ng Paging at Segmentation
Ang Paging, na kung saan ay transparent sa programmer, ay nag-aalis ng panlabas na pagkapira-piraso at kaya tinitiyak ang mahusay na paggamit ng pangunahing memorya. Ang mga piraso na lumipat sa at sa labas ng pangunahing memorya ay naayos at ang parehong laki, kaya posible upang bumuo ng mga sopistikadong mga algorithm sa pamamahala ng memorya na pagsamantalahan ang pag-uugali ng programa. Ang segmentation ay makikita ng developer at may kakayahang pamahalaan ang paglago ng istraktura ng data, modularity, at suporta para sa palitan at proteksyon.
Paging kumpara sa Segmentasyon: Paghahambing Tsart
Buod ng Paging at Segmentation
- Paging ay batay sa pamamahagi ng buong puwang ng address sa mga nakapirming haba ng mga bloke na pinamamahalaan bilang memory quantizes. Dagdag dito, kinakailangan upang magbigay ng isang paraan para sa pagmamarka ng magagamit na memorya na maaaring isagawa sa pamamagitan ng presensya ng "header" ng bawat pahina na nagpapahiwatig ng katayuan ng pahina (global linked list kung saan ang bawat node ay tumuturo sa susunod na libreng pahina) o sa pamamagitan ng paglalagay ng libreng pahina ng address sa pandaigdigang array, na karaniwan ay ang pinakamasamang solusyon.
- Ang segmentation ay nangangahulugan ng paghati sa puwang ng address sa mga segment na malinaw na minarkahan ng mga karapatan sa pag-access sa processor ng MMU. Sa loob ng segment, ang mga proseso ay inilalaan nang eksakto kung gaano karaming memorya ang kailangan nila, ngunit ang problema ng pamamahala ng memorya ay kung paano magbigay ng naturang paglalaan kung saan maaari itong mapanatili ang malalaking sapat na patuloy na bloke ng memorya na maaaring mangailangan ng ilang oras.