Minggu, 08 Januari 2017

Penerapan Manajemen Memori Pada Sistem Operasi



Penerapan Manajemen Memori Pada Sistem Operasi

Teknik-teknik manajemen memori (1), (2), (3),(4) pada skema dibawah merupakan pengelolaan untuk kapasitas memori sebatas memori fisik yang tersedia. Teknik-teknik ini tidak dapat digunakan untuk membuat program-program yang berukuran besar disbanding kapasitas fisik memori yang tersedia.

Deitel menglasifikasi manajemen memory sesuai dengan skema berikut: 



Gambar 1. Klasifikasi Manajemen Memory

Teknik-teknik manajemen memori (5), (7) dapat untuk mengakali kapasitas memori yang terbatas sehingga dapat dijalankan program yang ukurannya lebih besar disbanding kapasitas memori fisik yang tersedia.

Memory manager :

Salah satu bagian sistem operasi yang mempengaruhi dalam menentukan proses mana yang diletakkan pada antrian.

Jenis Memori

- Memori Kerja
  • ROM/PROM/EPROM/EEPROM
  • RAM
  • Cache memory
- Memori Dukung
  • Floppy, harddisk, CD, dll.

Alamat Memori
  • Alamat memori mutlak (alamat fisik)
  • Alamat memori relatif (alamat logika)
  • Hubungan antara alamat multak dan alamat relatif
  • Jenis memori dan alamat memori

Isi Memori
  • Sistem bahasa penataolahan
  • Sistem Utilitas
  • Inti Sistem Operasi
  • Sistem Operasi
  • Pengendali alat (device drivers)
  • File pemakai

Fungsi manajemen memori :
  • Mengelola informasi yang dipakai dan tidak dipakai.
  • Mengalokasikan memori ke proses yang memerlukan.
  • Mendealokasikan memori dari proses telah selesai.
  • Mengelola swapping atau paging antara memori utama dan disk.

MANAJEMEN MEMORI BERDASARKAN KEBERADAAN SWAPPING ATAU PAGING

Terbagi dua yaitu :
  1. Manajemen tanpa swapping atau paging
  2. Manajemen dengan swapping atau paging


MEMORI TANPA SWAPPING OR PAGING
Yaitu manajemen memori tanpa pemindahan citra proses antara memori utama dan disk selama eksekusi.
Terdiri dari :

Monoprogramming

Ciri-ciri :
  • Hanya satu proses pada satu saat
  • Hanya satu proses menggunakan semua memori
  • Pemakai memuatkan program ke seluruh memori dari disk atau tape
  • Program mengambil kendali seluruh mesin


Gambar 2. Tiga Cara Organisasi Memori Satu Proses Tunggal
Contoh : IBM PC menggunakan cara ketiga di mana device driver ROM ditempatkan pada blok 8K tertinggi dari address space 1M. Program pada ROM disebut BIOS (Basic Input Output System).

Multiprogramming Dengan Pemartisian Statis

Terbagi dua :
  1. Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran semua partisi memori adalah sama
  2. Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah berbeda.
Strategi Penempatan Program Ke Partisi

Satu Antrian Tunggal Untuk Semua Partisi
  • Keuntungan: Lebih fleksibel serta implementasi dan operasi lebih minimal karena hanya mengelola satu antrian.
  • Kelemahan: Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil ditempatkan di partisi sangat besar


Gambar 3. Multiprogrammning dengan PemartisianTetap dengan Satu Antrian

Satu Antrian Untuk Tiap Partisi (banyak antrian Untuk Seluruh Partisi)
  • Keuntungan : Meminimalkan pemborosan memori
  • Kelemahan : Dapat terjadi antrian panjang di suatu partisi sementara antrian partisi - partisi lain kosong

Gambar 4. Multiprogrammning dengan Pemartisian tetap dengan Banyak Antrian
MULTIPROGRAMMING DENGAN SWAPPING

Swapping : pemindahan proses dari memori utama ke disk dan kembali lagi.

1. Multiprogramming dengan Pemartisisan Dinamis
Jumlah , lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis.

Kelemahan:
  • Dapat terjadi lubang-lubang kecil memori di antara partisi- partisi yang dipakai.
  • Merumitkan alokasi dan dealokasi memori
Solusi:
  • Lubang-lubang kecil di antara blok-blok memori yang digunakan dapat diatasi dengan pemadatan memori yaitu menggabungkan semua lubang kecil menjadi satu lubang besar dengan memindahkan semua proses agar saling berdekatan.

 Gambar 5. Lubang-lubang Memori dan Pemadatan Memori


2. Pencatatan Pemakaian memori
  • Pencatatan memakai peta bit (Bit Map)
  • Pencatatan memakai linked list

Pencatatan memakai peta bit
  • Nilai 0 pada peta bit berarti unit masih bebas
  • Nilai satu berarti unit digunakan


Gambar 6. Peta Bit untuk Pengelolaan Pemakaian Memori
 
Pencatatan memakai Linked List
  • P= Proses, H=Hole(lubang)
 
Gambar 7. Pengelolaan Pemakaian dengan Linked List

3. Strategi Alokasi Memori
  • First fit algorithm : memory manager men-scan list untuk menemukan hole yg cukup untuk menampung proses yg baru. Proses akan menempati hole pertama yg ditemuinya yg cukup untuk dirinya.
  • Next fit algorithm : sama dengan first fit, tetapi pencarian hole dimulai dari hole ditemuinya dari scan sebelumnya.
  • Best fit algorithm : dicari hole yang akan menghasilkan sisa paling sedikit setelah dimasuki proses.
  • Worst fit algorithm : kebalikan dari best fit.
  • Quick fit algorithm : mengelompokkan hole-hole dan membuat listnya sendiri. Misalnya, ada list untuk hole 4K, satu list untuk 8K, dst.

Sistem Buddy

Memori di susun dalm senari blok-blok bebas berukuran 1,2,4,8,16 byte dst, sampai kapasitas memori.


 

Gambar 8. Pengelolaan Memori dengan Sistem Buddy
Dari berbagai cara alokasi tsb. Di atas, sebuah hole yg ditempati proses akan terbagi menjadi bagian yang dipakai proses dan memori yang tidak terpakai (fragmen).

Timbulnya memori yang tidak terpakai disebut fragmentasi. Ada dua macam fragmen :
  • Internal : sisa hole yang tidak terpakai setelah terisi proses.
  • Eksternal : hole yang secara utuh terlalu kecil untuk dipakai oleh proses manapun.

Alokasi Ruang Swap pada Disk

(Penempatan proses pada disk setelah di-swap-out dari memori)
  • Ruang disk tempat swap dialokasikan begitu diperlukan
  • Ruang disk tempat swap dialokasikan lebih dahulu.

Algoritma untuk pengaturan ruang swap pada disk sama dengan untuk memori utama. Perbedaannya adalah ruang pada disk harus dialokasikan sebagai kelipatan bilangan bulat dari disk block.

Sumber : http://modulmakalah.blogspot.co.id/2015/11/penerapan-manajemen-memori-pada-sistem.html?m=1

TEKNIK KOMPILASI (MENGENAL TRANSLATOR, COMPILER, INTERPRETER DAN ASSEMBLER)



MENGENAL TRANSLATOR, COMPILER, INTERPRETER
DAN
ASSEMBLER

1. TRANSLATOR
A. Pengertian Translator
  Penterjemah atau translator adalah seseorang atau tim yang bertugas dalam menterjemahkan suatu file, data maupun bahasa kedalam format yang diinginkan klien atau perusahaan dimana dia bekerja. Penerjemah terutama bekerja dengan hal hal bisnis, teknis, hukum dan bahan-bahan tertulis ilmiah termasuk surat-surat, laporan, artikel, buku dll.
Pekerjaan mereka menggabungkan:
  • Membaca & menterjemahkan dokumen
  • Menulis dan mengedit salinan
  • Mempersiapkan ringkasan
  • Konsultasi klien
  • Mengembangkan kontak dan menggunakan program komputer terjemahan

B. Beberapa bisnis yang memerlukan jasa penterjemah / Translator
  • Perusahaan penerjemahan
  • Organisasi komersial dan industri
  • Layanan Sipil
  • Badan-badan internasional

 Banyak penerjemah diri dipekerjakan secara freelance, dibayar per kata sesuai dengan bahasa sehingga pendapatan dapat bergantung pada kecepatan penerjemahan. Perusahaan penerjemahan spesialis dan lembaga biasanya lebih memilih staf yang berpengalaman. Direktori dan daftar anggota yang diterbitkan oleh Institute Ahli Bahasa dan Institut Terjemahan dan Alih dapat memberikan informasi kontak yang berguna untuk jaringan dan aplikasi spekulatif.

C. Kualifikasi dan pelatihan yang dibutuhkan
   Gelar bahasa biasanya persyaratan minimum akademik untuk masuk dalam bidang pekerjaan ini. Untuk lulusan tanpa latar belakang yang relevan, atau untuk lulusan bahasa yang studi tidak termasuk terjemahan, kualifikasi terjemahan pascasarjana diperlukan. Bidang keahlian, seperti pengetahuan ilmiah, teknis atau hukum dapat bermanfaat.

D. Kemampuan yang dibutuhkan translator /penterjemah
  • Kemampuan untuk bekerja dengan tenggat waktu
  • Pengetahuan umum yang baik
  • Fasih dalam bahasa tertentu (khususnya bahasa internasional yaitu bahasa inggris ) baik lisan dan tulisan
  • Kefasihan dalam beberapa bahasa, setidaknya dua bahasa asing
  • Keterampilan IT





2. INTERPRETER  DAN COMPILER
   Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.
    Sedangkan Compiler sendiri adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda.

A. Penjelasan perbedaan antara Compiler dengan Interpreter terperinci sebagai berikut :
1.     Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.
2.     Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses terpisah.
3.     JIka compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.
4.     Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil ). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
5.     Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan.
6.     Interpreter menterjemahkan baris per baris. Sedangkan compiler, menterjemahkan seluruh instruksi sekaligus. Selanjutnya hasil terjemahan (setelah melalui tahapan lain) bisa dijalankan secara langsung, tanpa tergantung lagi oleh program sumber atau compilernya.
7.     Pada interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Sedangkan pada compiler, proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu untuk melakukan proses linking. Program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali.
8.     Pada interpreter, kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih dahulu. Selain itu, saat program dieksekusi, interpreter juga harus selalu berada dalam memori. Jadi memori selalu digunakan baik untuk program maupun interpreter. Sedangkan pada compiler, proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi proses penerjemahan.
9.     Pada interpreter, kode program tidak dapat dirahasiakan. Sedangkan pada compiler, kode program bisa dirahasiakan, sebab yang dieksekusi adalah program yang dalam bentuk kode mesin.
B. Bahasa pemrograman yang menggunakan compiler dan interpreter
1. Bahasa pemrograman yang menggunakan compiler
  • Visual Basic
  • Fortran
  • Cobol
  • Pascal
  • C , dlsb.
2. Bahasa pemrograman yang menggunakan interpreter :
  • PHP
  • ASP
  • Perl
  • Python, dlsb.

Contoh Gambar tahapan Compiler dan Interpreter : 




  3. ASSEMBLER
 1. Element dari Bahasa Pemrograman Assembler
    Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level languange). Ini untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine dependent. Untuk membandingkan bahasa mesin dan bahasa assembly, kita dapat melihatnya dari tiga karakteristik berikut :

A. Mnemonic operation code. Sebagai pengganti numeric operation code (opcodes) yang
digunakan pada bahasa mesin, digunakankanlah mnemonic code pada bahasa assembly. Selain kemudahan dalam penulisannya dibandingkan dari bahasa mesin juga mendukung pelacakan kesalahan seperti kesalahan penulisan operation code.

B. Symbolic operand specification. Penamaan simbol diasosiasikan sebagai suatu data atau instruksi. Operand lebih menunjukkan symbolic reference dibandingkan dengan alamat mesin suatu data atau instruksi. Hal ini akan mempermudah pada saat harus dilakukan modifikasi program.

C. Declaration of data/storage area. Data dapat dinyatakan dalam notasi desimal. Ini dilakukan untuk mencegah konversi secara manual dari konstanta ke dalam representasi internal mesin.