• Tidak ada hasil yang ditemukan

PEMARTISIAN MEMORI

Dalam dokumen Sistem Operasi recent site activity (8) (Halaman 92-106)

Prinsip manajemen memori adalah bagaimana menyimpan banyak program dalam memori utama. Hampir semua sistem multiprogramming modern menggunakan teknik virtual memory. Namun sebelum membahasnya, perlu diketahui teknik yang lebih sederhana : fixed partitioning dan dynamic partitioning.

6.3.1 Fixed Partitioning

Pada fixed partitioning, memori utama (selain yang digunakan untuk sistem operasi) dibagi dalam ukuran yang sudah disediakan, mungkin sama, mungkin berbeda. Untuk memori utama berukuran 64 M, ukuran partisi mungkin sama: 8 x 8M, 1 bagian untuk sistem operasi, 7 bagian yang lain untuk program pengguna. Ukuran partisi mungkin bervariasi : 8 M untuk sistem operasi, dan 2 M, 4 M, 6 M, 8 M, 12 M dan 16 M untuk program pengguna. Program pengguna harus lebih kecil atau sama dengan ukuran partisi itu.

Bagaimana jika ukuran program lebih besar daripada ukuran memori yang disediakan? Program harus dipecah-pecah ke dalam modul berukuran tidak lebih besar dari ukuran partisi. Modul yang dibutuhkan akan dibawa ke partisi terkait dan menghapus (overlay) apapun yang ada di partisi itu.

Bagaimana jika ukuran program terlalu kecil? Ya, itulah lemahnya. Borosnya ruang partisi yang tak terpakai akibat ukuran program terlalu kecil ini disebut internal fragmentation. Dan masalah ini diselesaikan dengan membuat ukuran partisi yang bervariasi.

Bagaimana menempatkan program dalam partisi fix yang ukurannya bervariasi? Pilihlah ukuran partisi terkecil yang sanggup menampung program. Untuk antrian programnya ada pilihan: dibuatkan antrian sebanyak partisi, atau antrian tunggal untuk semua partisi.

6.3.2 Dynamic Partitioning

Dalam dynamic partitioning, jumlah partisi dan ukurannya bervariasi. Program diberi ruang memori utama sebanyak yang ia butuhkan. Misalkan ukuran memori utama 64 M, dengan 8 M dipakai untuk sistem operasi. Tiga program P1, P2, P3 masing-masing berukuran 20 M, 14 M dan 18 M. Kemudian P2 habis jatah waktunya, dan masuk P4 dengan ukuran 8 M. Kemudian P1 selesai, dan P2 harus dijalankan lagi. Bagaimana perjalanan keadaan memori ditunjukkan pada Gambar 6.1

Awal-awalnya bagus, namun makin lama akan makin banyak lubang kecil dalam memori. Jika kasus lubang pada fix partition disebut internal fragmentation, pada dynamic partition disebut external fragmentation, fragmentasi terjadi karena pengaruh luar.

Bagaimana mengatasi masalah banyaknya lubang ini? Salah satu cara adalah compaction, program-program di bawah lubang digeser ke atas agar berhimpitan dengan program sebelumnya, sedemikian hingga hanya ada satu lubang, di lokasi paling bawah.

Apakah tidak butuh waktu untuk menggeser program- program di bawah lubang? Ya, butuh waktu. Cara lain diusulkan agar penempatan program dapat dilakukan dengan cepat : biarkan lubang apa adanya, buatlah daftar lubang, alamat dan ukurannya. Jika ada program baru masuk, ada pilihan :

- carilah lubang dengan ukuran terkecil terdekat dengan ukuran program baru, cara ini disebut best fit.

- carilah lubang pertama di antrian (pencarian dari awal antrian) yang mampu menampung program baru, cara ini disebut first fit.

- carilah lubang pertama di antrian (pencarian dari posisi cursor saat ini) yang mampu menampung program baru, cara ini disebut next fit.

Operating System (8 M) Free : 56 M Operating System (8 M) Process P1 (20 M) Process P2 (14 M) Process P3 (18 M) Free : 4 M Operating System (8 M) Process P1 (20 M) Free : 14 M Process P3 (18 M) Free : 4 M Operating System (8 M) Process P1 (20 M) Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M Operating System (8 M) Free : 20 M Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M Operating System (8 M) Process P2 (14M) Free : 6 M Process P4 (8 M) Free : 6 M Process P3 (18 M)

Gambar 6-12 Pengaruh Partisi Dinamis

Contoh kasus, ada daftar lubang memori seperti pada Gambar 6-2. Ada program baru masuk berukuran 23 M. Di mana ditempatkan? Ya, di L5. Jika ada program baru berukuran 16 M masuk, dimana ditempatkan?

setelah Program 23 M masuk

Gambar 6-13 Contoh alokasi memori pada partisi dinamis

Buddy System

Mirip partisi dinamis, ukuran partisi tidak mengikuti ukuran program, pada sistem ini ukuran partisi merupakan bilangan power of 2 terdekat dengan ukuran program. Lihat contoh kasus pada Gambar 6.3.

Semula ukuran memori 1Mbyte. Process A meminta 100Kb. Ukuran power of 2 terdekat dengan 100K adalah 128K. Memori 1Mb akan dipecah menjadi 512K + 512K, 512K pertama dipecah menjadi 256K + 256K, 256K pertama dipecah menjadi 128K + 128K. Process A diberi memori berukuran 128K pertama. Process B berukuran 240K diberi memori berukuran 256K. Ketika sebuah process sudah melepaskan memori, akan diperiksa apakah memori yang dibebaskan berdekatan dengan tetangganya untuk digabung, untuk mendapatkan ukuran yang lebih besar lagi.

L1 : 8M L2 : 12M L3 : 22M L4 : 18M L5 : 24M L6 : 6M L7 : 14M L8 : 36M L1 : 8M L2 : 12M L3 : 22M L4 : 18M L5 : 1M L6 : 6M L7 : 14M L8 : 36M Program 16 M dimana? First Fit : L3; Best Fit : L4;

6.4 Relokasi

Di depan disebutkan ada kebutuhan kesanggupan relokasi program di memori utama, program tidak harus menempati lokasi yang sama dengan lokasi ketika ia dikeluarkan dari memori utama. Pada fix partition berukuran sama, pada antrian tunggal partisi berukuran tidak sama, hal itu dimungkinkan terjadi. Pada dynamic partitioning juga dimungkinkan terjadi, lihat Gambar 6.1, process P2 dapat menempati lokasi yang berbeda untuk kedua kalinya. Pada metoda compaction juga, program dapat direlokasi.

1 Mbyte block A request 100K B request 240K C request 64K D request 256K Release B Release A 1M A 128K 256K 512K A 128K B 512K A C 64K B 512K A C 64K B D 256K A C 64K 256K D 256K 128K C 64K 256K D 256K

E request 75K Release C Release E Release D

Gambar 6-14 Contoh Buddy System

Bagaimana agar relokasi program mudah dilakukan? Setiap lokasi di memori utama memiliki physical address, alamat fisik. Sebuah program biasanya terdiri dari data-data yang ia olah dan kode program untuk menjalankannya. Data-data dan kode program itu diberi logical address, alamat lojik yang masih harus diterjemahkan ke dalam alamat fisik ketika akan di-load ke memori. Data dan kode program mungkin ditandai dengan relative address, alamat relatif masing-masing terhadap alamat awal.

Dukungan hardware untuk relokasi ditunjukkan pada Gambar 6.4 Relative address Absolute address Interupsi ke S.O. E 128K 256K D 256K 512K D 256K 1M Process control block Program Data Stack Bounds register Comparator Adder Base register

di memori utama

Sebuah program di memori utama

Gambar 6-15 Dukungan hardware untuk relokasi

6.5 Paging

Untuk mengatasi fragmentasi internal atau fragmentasi eksternal ada usaha memori utama dipartisi ke dalam sejumlah besar potongan berukuran kecil yang sama, program juga dipotong-potong dalam ukuran yang sama, disebut pages. Page-page ini kemudian di-load ke potongan memori utama tadi, yang disebut frame. Disini, fragmentasi hanya akan terjadi pada frame terakhir.

Terapan konsep ini ditunjukkan pada Gambar 6.5. Program A terdiri dari 4 page masuk, program B 3 page masuk, program C 4 page masuk. Program B kemudian keluar, meninggalkan 3 page bebas. Ada sisa 4 page di bawah. Jika program D 5 page akan masuk, apakah akan ditahan dulu? Tidak. Sistem mendaftar frame-frame yang bebas. Sistem juga mengelola page table, tabel frame-frame yang dipakai page program, lihat contoh di Gambar 6.6 Jika jumlah frame bebas cukup untuk menampung page program baru, maka akan diberikan. Program D disimpan di frame 4,5,6,11 dan 12.

Agar paging berjalan nyaman, ukuran page dan frame sebaiknya menggunakan bilangan power of 2. Dengan menggunakan bilangan ini relative address dan logical address akan sama. Sebuah lokasi di memori fisik akan ditunjukkan dengan dua nomor : nomor frame dan nomor offset. Misal alamat relatif 1502 menggunakan 16 bit : 0000010111011110, ukuran page 1K = 1024 byte. Untuk page 1024 butuh 10 bit untuk alamat offset, ada sisa 6 bit (dari 16 bit) untuk nomor page. (Suatu program diharapkan

punya page tidak lebih dari 26 = 64 page). Jadi, alamat relatif 0000010111011110, nomor page-nya 000001 (decimal 1), nomor offsetnya 0111011110 (decimal 478).

Kemudian misalnya page ini akan ditempatkan di memori fisik di alamat frame 6 (000110), maka konversi cukup dilakukan pada nomor page ke nomor frame, nomor offset keduanya sama.

Menggunakan ukuran page sebagai bilangan power of 2 punya dua keuntungan. Pertama, skema alamat lojik jelas bagi programmer, assembler dan linker. Alamat lojik setara identik dengan alamat relatif. Kedua, relatif masalah mudah untuk mengimplementasikan fungsi penterjemahan alamat dinamis ke dalam hardware.

No

Frame Memori Memori Memori

0 A.0 A.0 1 A.1 A.1 2 A.2 A.2 3 A.3 A.3 4 B.0 5 B.1 6 B.2 7 8 9 10 11 12 13 14 A masuk B masuk

No Frame

Memori Memori Memori

0 A.0 A.0 A.0

1 A.1 A.1 A.1

2 A.2 A.2 A.2

3 A.3 A.3 A.3

4 B.0 D.0 5 B.1 D.1 6 B.2 D.2 7 C.0 C.0 C.0 8 C.1 C.1 C.1 9 C.2 C.2 C.2 10 C.3 C.3 C.3 11 D.3 12 D.4 13 14

C masuk B keluar D masuk

Gambar 6-16 Pengisian page process ke frame memori

0 0 0 - 0 7 0 4 1 1 1 - 1 8 1 5 2 2 2 - 2 9 2 6 3 3 3 10 3 11 4 12 Table Page Proses A Table Page Proses B Table Page Proses C Table Page Proses D 0 0 1 1 2 2 3 3 Daftar frame bebas

6.6 Segmentasi

Selain dengan paging, program dapat dipecah ke dalam sejumlah segment, dengan ukuran tidak harus sama. Hanya memang ada panjang segment maksimum. Sebuah lokasi akan diidentifikasi dengan dua nomor : nomor segment dan nomor offset.

Konsep segmentasi ini mirip dengan dynamic partitioning. Bedanya, di segmentasi ini sebuah program boleh menempati lebih dari satu partisi, dan tidak harus berdampingan. Fragmentasi internal tidak ada, namun fragmentasi eksternal mungkin terjadi.

Programmer biasanya tahu segment untuk program atau segment untuk data yang disediakan sistem. Program dan data sendiri dapat dipecah ke dalam beberapa segment. Hanya, programmer tidak dapat menggunakan lokasi melebihi batas maksimum ukuran segment.

Sistem akan mengelola segment table untuk setiap process dan daftar lokasi bebas di memori utama. Setiap isian tabel ini akan berisi alamat awal dan panjang segment untuk memproteksi lokasi memori dari pengguna lain. Saat akan dieksekusi, alamat di tabel segment ini akan di-load ke register khusus.

Soal Latihan

1. Kebutuhan apa saja yang harus dipenuhi pada manajemen memori?

2. Mengapa dua atau lebih program diijinkan untuk berbagi memori bersama?

3. Apa keuntungan partisi yang ukurannya tidak sama dalam fix partition?

4. Apa perbedaan fragmentasi internal dan fragmentasi eksternal?

5. Apa perbedaaan alamat logik, alamat relatif dan alamat fisik?

6. Apa perbedaan page dan frame? 7. Apa perbedaan page dan segment?

8. Cara lain algoritma penempatan program dalam partisi dinamis adalah worst-fit, pilih lokasi memori terbesar untuk program baru. Apa kelebihan cara ini dibanding cara best-fit, first-fit dan next-fit.

9. Diketahui daftar lokasi bebas di memori untuk partisi dinamis sebagai berikut : 20M, 60M, 10M, 40M, 30M, 40M. Tiga program baru masing-masing berukuran 40M, 20M, dan 10M akan masuk. Dimana program baru ini akan ditempatkan jika menggunakan algoritma penempatan:

a. First-fit b. Best-fit

c. Next-fit (pointer ada di awal memori) d. Worst-fit

10. Memori 1Mb dipakai untuk buddy system. Berturut-turut ada permintaan berikut : A 70Kb, B 35Kb, C 80Kb, A bebas, D 60Kb, B bebas, D bebas, C bebas.

7 Manajemen Perangkat I/O

Overview

Segala hal tentang overview.

Tujuan

3. Tujuan 1 4. Tujuan 2

7.1 Pendahuluan

Menurut Silberschatz et. al. [Silberschatz2002], salah satu tujuan utama dari suatu sistem operasi ialah mengatur semua perangkat M/K (Masukan/Keluaran) atau I/O (Input/Output) komputer. Sistem operasi harus dapat memberikan perintah ke perangkat-perangkat itu, menangkap dan menangani interupsi, dan menangani error yang terjadi. Sistem operasi juga harus menyediakan antarmuka antara sistem operasi itu sendiri dengan keseluruhan sistem itu yang sederhana dan mudah digunakan. Antarmuka itu harus sama untuk semua perangkat (device independent), agar dapat dikembangkan. Secara umum, terdapat beberapa jenis perangkat M/K, seperti perangkat penyimpanan (disk, tape), perangkat transmisi (network card, modem), dan perangkat antarmuka dengan pengguna (screen, keyboard, mouse). Perangkat tersebut dikendalikan oleh instruksi M/K. Alamat-alamat yang dimiliki oleh perangkat akan digunakan oleh direct I/O instruction dan memory-mapped I/O.

Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/shared direct access), dan pengendali (host adapter). Port ialah koneksi yang digunakan oleh perangkat untuk berkomunikasi dengan mesin. Bus ialah koneksi yang menghubungkan beberapa perangkat menggunakan kabel- kabel. Pengendali ialah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan perangkat.

Langkah yang ditentukan untuk perangkat ialah command- ready, busy, dan error. Host mengeset command-ready ketika perintah telah siap untuk dieksekusi oleh pengendali. Pengendali mengeset busy ketika sedang mengerjakan

sesuatu, dan men-clear busy ketika telah siap untuk menerima perintah selanjutnya. Error diset ketika terjadi kesalahan.

Menurut William Stalling, Perangkat eksternal (I/O) yang dapat berhubungan dengan sistem komputer, dapat dikategorikan sebagai berikut:

1. Human Readable, peralatan yang sesuai untuk komunikasi dengan user computer seperti monitor, keyboard, mouse, & printer

2. Machine Readable, peralatan yang sesuai untuk komunikasi dengan peralatan elektronik seperti sensor, dan kontroller

3. Communication, peralatan yang sesuai untuk komunikasi dengan peralatan jarak jauh (remote device) seperti remote control, & modem

Antar perangkat I/O saling mempunyai perbedaan berdasar pada:

1. Data rate, terdapat perbedaan urutan pokok antar perhitungan transfer data masing-masing peralatan 2. Application, penggunaan sebuah peralatan

mempengaruhi penggunaan perangkat lunak dan aturan dalam system operasi dan penggunaan utilitas lainnya

3. Kompleksitas pengendali, kompleksitas modul I/O dalam mengontrol peralatan, membuat perbedaan system operasi dalam menanganinya

4. Kuantitas pengiriman data (satuan), Data dapat ditransfer sebagai aliran byte atau karakter atau dalam bentuk blok yang lebih besar.

5. Representasi data, Perbedaan Skema Encoding data membuat perbedaan peralatan yang digunakan

Penanganan error, kesalahan, cara melaporkan kesalahan dan segala konsekuensinya membedakan respon dari peralatan satu dengan yang lain.

Dalam dokumen Sistem Operasi recent site activity (8) (Halaman 92-106)

Dokumen terkait