Perbezaan antara paging dan segmentasi

Perbezaan antara paging dan segmentasi

Pengurusan memori adalah salah satu fungsi asas sistem operasi. Sistem pengendalian moden membolehkan setiap proses mendapatkan memori maya yang lebih banyak daripada saiz keseluruhan memori sebenar (fizikal) pada sistem komputer yang diberikan. Matlamat utama pengurusan ingatan ialah dengan menggabungkan memori yang besar tetapi perlahan dengan memori kelajuan kecil tetapi tinggi, untuk mencapai kesan memori berkelajuan tinggi yang lebih besar.

Apa itu paging?

Memisahkan antara pembahagian tetap dan berubah -ubah adalah tidak berkesan dari segi penggunaan memori, kerana hasil pembahagian tetap dalam dalaman, sementara dinamik dalam pemecahan luaran. Penyelesaian yang mungkin untuk masalah pemecahan adalah untuk membolehkan proses tidak ditulis ke blok memori yang berterusan. Program ini dapat disebarkan sewenang -wenangnya dalam ingatan. Dalam kes ini, ingatan kerja dibahagikan kepada blok kecil saiz tetap yang disebut bingkai. Ruang alamat logik program juga dibahagikan kepada blok saiz yang sama, yang dipanggil halaman. Apabila program dimasukkan ke dalam ingatan, halaman ditulis ke dalam bingkai memori percuma. Untuk memudahkan pemindahan program dari cakera ke ingatan kerja, cakera juga dibahagikan kepada bingkai dengan saiz yang sama dengan bingkai memori. Oleh itu, satu bingkai dari cakera ditulis ke dalam satu bingkai memori kerja. Sistem paging beroperasi dengan cara berikut: Apabila program diterima untuk pelaksanaan, saiznya dikira, yang dinyatakan dengan bilangan halaman yang diperlukan. Sekiranya bilangan bingkai yang mencukupi adalah percuma, prosesnya direkodkan di halaman memori setiap halaman. Pada masa yang sama, bilangan bingkai di mana setiap halaman ditulis dimasukkan dalam jadual bingkai.

Apa itu segmentasi?

Program pengguna dan data yang berkaitan boleh dibahagikan kepada beberapa segmen. Segmen semua program tidak perlu saiz yang sama, walaupun terdapat panjang segmen maksimum. Seperti paging, alamat logik yang menggunakan segmentasi terdiri daripada dua bahagian, dalam hal ini bilangan segmen dan dislokasi dalam segmen tersebut. Kerana penggunaan segmen saiz yang berbeza, segmentasi adalah serupa dengan pemisahan dinamik. Tanpa ketiadaan skim overlay atau penggunaan memori maya, perlu semua segmen program dimuatkan ke dalam memori untuk pelaksanaan. Perbezaan berbanding dengan pemisahan dinamik ialah segmentasi boleh mengambil lebih daripada satu partition, dan partition itu tidak perlu bersebelahan. Segmentasi menyelesaikan masalah pemecahan dalaman, tetapi juga pembahagian dinamik, masalah pemecahan luaran kekal. Walau bagaimanapun, kerana proses dibahagikan kepada beberapa bahagian yang lebih kecil, pemecahan luaran biasanya lebih kecil. Tidak seperti paging yang tidak dapat dilihat oleh pengaturcara, segmentasi biasanya kelihatan dan sesuai untuk menganjurkan program dan data. Untuk tujuan pengaturcaraan modular, program atau data dapat dibahagikan lagi kepada beberapa segmen yang lebih kecil. Kelemahan teknik ini adalah bahawa pengaturcara mesti mengetahui batasan saiz segmen maksimum. Kemudahan seterusnya menggunakan segmen saiz yang berbeza adalah bahawa tidak ada sambungan prospektif antara alamat logik dan fizikal. Sama dengan paging, teknik segmentasi mudah menggunakan jadual segmen untuk setiap proses dan senarai blok yang ada di ingatan utama.

Perbezaan antara paging dan segmentasi

1. Konsep paging dan segmentasi

Paging menyampaikan ruang alamat maya dan fizikal, dan ruang ingatan sekunder pada blok (halaman) dengan panjang yang sama. Ini membolehkan ruang alamat maya berterusan diperuntukkan kepada proses penyebaran (tidak semestinya diedarkan secara berterusan) di ruang alamat sebenar dan memori sekunder. Malah halaman, sebagai istilah, merujuk kepada ingatan dan bukannya objek logik yang dapat dilihat di peringkat program. Segmentasi menyampaikan ruang alamat maya pada blok (segmen) yang secara langsung sesuai dengan objek di peringkat program. Oleh sebab itu, segmen itu tidak mempunyai panjang tetap, jadi saiz segmen dapat diubah semasa pelaksanaan program. Oleh itu, perlindungan dan pembahagian mungkin di peringkat objek, dan terdapat proses yang dapat dilihat di mana segmentasi dilakukan.

2. Ciri -ciri paging dan segmentasi

Pemaju aplikasi tidak menyedari paging. Beliau menulis program seolah -olah memori adalah linear, dan sistem operasi dan pemproses prihatin terhadap pembahagiannya dan menukar ke alamat maya. Pengaturcara pada Sistem Segmentasi, bagaimanapun, menyenaraikan dua bahagian alamat, segmen dan halaman dalam program mereka. Semua halaman adalah saiz yang sama manakala segmennya berbeza. Segmentasi mempunyai banyak ruang alamat linear, dan hanya satu. Segmen membenarkan pembahagian logik dan perlindungan komponen aplikasi, dan halaman tidak.

3. Kelebihan Paging dan Segmentasi

Paging, yang telus kepada pengaturcara, menghapuskan pemecahan luaran dan dengan itu memastikan penggunaan ingatan utama yang efisien. Potongan -potongan yang bergerak masuk dan keluar dari ingatan utama tetap dan saiz yang sama, jadi mungkin untuk membangunkan algoritma pengurusan memori yang canggih yang mengeksploitasi tingkah laku program. Segmentasi dapat dilihat oleh pemaju dan mempunyai keupayaan untuk menguruskan pertumbuhan struktur data, modulariti, dan sokongan untuk pertukaran dan perlindungan.

Paging vs. Segmentasi: Carta Perbandingan

Paging

Segmentasi

saiz halaman tetap segmen tidak diperbaiki dalam saiz
Tidak dapat dilihat untuk pengaturcara Terlihat untuk pengaturcara
ruang alamat satu linear ruang alamat linear berganda
tidak membenarkan pembahagian logik dan perlindungan komponen aplikasi membolehkan

Ringkasan Paging dan Segmentasi

  • Paging didasarkan pada pengagihan seluruh ruang alamat pada blok panjang tetap yang dikendalikan sebagai memori mengira. Selanjutnya, perlu menyediakan cara untuk menandakan memori yang tersedia yang boleh dilaksanakan dengan kehadiran "header" setiap halaman yang menunjukkan status halaman (senarai berkaitan global di mana setiap nod menunjuk ke halaman percuma seterusnya) atau oleh meletakkan alamat halaman percuma dalam array global, yang biasanya merupakan penyelesaian terburuk.
  • Segmentasi bermaksud membahagikan ruang alamat ke dalam segmen yang telah menandakan hak akses yang jelas kepada pemproses MMU. Di dalam segmen ini, proses memperuntukkan memori yang sama seperti yang mereka perlukan, tetapi masalah pengurusan ingatan adalah bagaimana menyediakan peruntukan sedemikian di mana ia dapat mengekalkan memori blok berterusan yang cukup besar yang mungkin memerlukan sedikit masa.