Perbedaan antara paging dan segmentasi

Perbedaan antara paging dan segmentasi

Manajemen memori adalah salah satu fungsi dasar dari sistem operasi. Sistem operasi modern memungkinkan setiap proses untuk mendapatkan lebih banyak memori virtual daripada ukuran total memori (fisik) yang sebenarnya pada sistem komputer yang diberikan. Tujuan utama manajemen memori adalah bahwa dengan menggabungkan memori yang besar namun lambat dengan memori berkecepatan kecil tetapi tinggi, untuk mencapai efek memori berkecepatan tinggi yang lebih besar.

Apa itu paging?

Memisahkan antara partisi tetap dan variabel tidak efektif dalam hal pemanfaatan memori, karena partisi tetap menghasilkan internal, sedangkan dinamis dalam fragmentasi eksternal. Solusi yang mungkin untuk masalah fragmentasi adalah untuk memungkinkan proses tidak ditulis ke blok memori yang berkelanjutan. Program ini dapat tersebar secara sewenang -wenang dalam memori. Dalam hal ini, memori kerja dibagi menjadi blok yang lebih kecil dengan ukuran tetap yang disebut bingkai. Ruang alamat logis dari program ini juga dibagi menjadi blok dengan ukuran yang sama, yang disebut halaman. Saat program dimasukkan ke dalam memori, halaman ditulis ke dalam bingkai memori gratis. Untuk kemudahan mentransfer program dari disk ke memori yang berfungsi, disk juga dibagi menjadi bingkai dengan ukuran yang sama dengan bingkai memori. Dengan demikian, satu bingkai dari disk ditulis ke dalam satu bingkai memori kerja. Sistem paging beroperasi dengan cara berikut: Ketika program diterima untuk dieksekusi, ukurannya dihitung, yang dinyatakan dengan jumlah halaman yang diperlukan. Jika jumlah frame yang cukup gratis, prosesnya dicatat di halaman memori per halaman. Pada saat yang sama, jumlah bingkai di mana setiap halaman ditulis dimasukkan dalam tabel bingkai.

Apa itu segmentasi?

Program pengguna dan data terkait dapat dibagi menjadi sejumlah segmen. Segmen dari semua program tidak harus memiliki ukuran yang sama, meskipun ada panjang segmen maksimum. Seperti halnya paging, alamat logis yang menggunakan segmentasi terdiri dari dua bagian, dalam hal ini jumlah segmen dan dislokasi dalam segmen itu. Karena penggunaan segmen dengan ukuran yang berbeda, segmentasi mirip dengan partisi dinamis. Dengan tidak adanya skema overlay atau penggunaan memori virtual, diperlukan bahwa semua segmen program dimuat ke dalam memori untuk dieksekusi. Perbedaannya dibandingkan dengan partisi dinamis adalah bahwa segmentasi dapat memakan lebih dari satu partisi, dan partisi itu tidak harus berdekatan. Segmentasi memecahkan masalah fragmentasi internal, tetapi juga partisi dinamis, masalah fragmentasi eksternal tetap ada. Namun, karena prosesnya dibagi menjadi beberapa bagian yang lebih kecil, fragmentasi eksternal biasanya lebih kecil. Tidak seperti paging yang tidak terlihat oleh programmer, segmentasi biasanya terlihat dan cocok untuk mengatur program dan data. Untuk tujuan pemrograman modular, program atau data dapat dibagi lebih lanjut menjadi beberapa segmen yang lebih kecil. Kelemahan dari teknik ini adalah bahwa programmer harus mengetahui keterbatasan ukuran segmen maksimum. Kenyamanan berikutnya menggunakan segmen dari berbagai ukuran adalah bahwa tidak ada hubungan prospektif antara alamat logis dan fisik. Mirip dengan paging, teknik segmentasi sederhana menggunakan tabel segmen untuk setiap proses dan daftar blok yang tersedia di memori utama.

Perbedaan antara paging dan segmentasi

1. Konsep paging dan segmentasi

Paging memberikan ruang alamat virtual dan fisik, dan ruang memori sekunder pada blok (halaman) dengan panjang yang sama. Hal ini memungkinkan ruang alamat virtual yang berkelanjutan dialokasikan untuk proses dispersi (tidak harus terus didistribusikan) dalam ruang alamat nyata dan memori sekunder. Bahkan halaman, sebagai istilah, mengacu pada memori daripada objek logis yang terlihat di tingkat program. Segmentasi memberikan ruang alamat virtual pada blok (segmen) yang secara langsung sesuai dengan objek di tingkat program. Karena itu, segmen tidak memiliki panjang tetap, sehingga bahkan ukuran segmen dapat diubah selama eksekusi program. Perlindungan dan pembagian, oleh karena itu, dimungkinkan pada tingkat objek, dan ada proses yang terlihat di mana segmentasi dilakukan.

2. Karakteristik paging dan segmentasi

Pengembang aplikasi tidak mengetahui paging. Dia menulis program seolah -olah memori linier, dan sistem operasi dan prosesor prihatin dengan partisi dan konversi ke alamat virtual. Programmer tentang sistem segmentasi, bagaimanapun, mencantumkan dua bagian dari alamat, segmen, dan halaman dalam program mereka. Semua halaman memiliki ukuran yang sama saat segmen berbeda. Segmentasi memiliki beberapa ruang alamat linier, dan paging hanya satu. Segmen memungkinkan partisi logis dan perlindungan komponen aplikasi, dan halaman tidak.

3. Keuntungan dari paging dan segmentasi

Paging, yang transparan terhadap programmer, menghilangkan fragmentasi eksternal dan dengan demikian memastikan penggunaan memori utama yang efisien. Potongan -potongan yang bergerak masuk dan keluar dari memori utama diperbaiki dan ukuran yang sama, sehingga dimungkinkan untuk mengembangkan algoritma manajemen memori yang canggih yang mengeksploitasi perilaku program. Segmentasi terlihat oleh pengembang dan memiliki kemampuan untuk mengelola pertumbuhan struktur data, modularitas, dan dukungan untuk pertukaran dan perlindungan.

Paging vs. Segmentasi: Bagan Perbandingan

Paging

Segmentasi

Ukuran halaman tetap Segmen tidak diperbaiki dalam ukuran
tidak terlihat untuk programmer terlihat untuk programmer
Satu ruang alamat linier beberapa ruang alamat linier
tidak mengizinkan partisi logis dan perlindungan komponen aplikasi memungkinkan

Ringkasan paging dan segmentasi

  • Paging didasarkan pada distribusi seluruh ruang alamat pada blok panjang tetap yang dioperasikan sebagai memori kuantisasi. Selanjutnya, perlu untuk menyediakan sarana untuk menandai memori yang tersedia yang dapat dieksekusi dengan adanya "header" dari setiap halaman yang menunjukkan status halaman (daftar tertaut global di mana setiap node menunjuk ke halaman bebas berikutnya) atau oleh menempatkan alamat halaman gratis di array global, yang biasanya merupakan solusi terburuk.
  • Segmentasi berarti membagi ruang alamat menjadi segmen yang secara jelas menandai hak akses ke prosesor MMU. Di dalam segmen, proses mengalokasikan persis memori sebanyak yang mereka butuhkan, tetapi masalah manajemen memori adalah bagaimana memberikan alokasi seperti itu di mana ia dapat mempertahankan memori blok kontinu yang cukup besar yang mungkin membutuhkan waktu.