Terusuri blog

Senin, 13 Mei 2019

Makalah Sistem Oprasi

MAKALAH SISTEM OPERASI
“MANAJEMEN MEMORI”
VIRTUAL MEMORY
SINKRONISASI PROSES


Makalah Sistem Oprasi
UNPI CIANJUR









Disusun oleh :
UJANG MARPUDIN



UNIVERSTASPUTRAINDONESIA


KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat dan hidayah kepada penulis, sehingga penulis dapat menyelesaikanmakalah mengenai sistem berlapis. Makalah ini dibuat untuk melaksanakan tugas mata kuliah Sistem Operasi.
Besar harapan penulis jika karya makalah ini dapat bermanfaat bagi semuanya agar bisa menambah pengetahuan dan wawasan pembaca di bidang teknologi, informasi dan komunikasi.
            Kami sadar bahwa makalah ini masih jauh dari kata sempurna, oleh karena itu kritik dan saran yang membangun sangat diperlukan untuk membuat makalah ini menjadi lebih baik lagi.



PENULIS




















BAB I
PEMBAHASAN
MANAJEMEN MIMORY
1.      Definisi memori
Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu.
Memori sebagai tempat penyimpanan instruksi/data dari program, untuk dapat dieksekusi program harus dibawa ke memori dan menjadi suatu proses. Memori harus digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu.
2.      Definisi Manajemen Memori
manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.
3.      Fungsi manajemen memori :
Manajemen memori sangat penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer. Berikut ini kami sebutkan fungsi manajemen memori diantaranya
1.      Meningkatkan kinerja atau Utilitas CPU.
2. meningkatkan kecepatan akses CPU terhadap data dan instruksi Data dan instruksi dapat diakses dengan cepat oleh CPU.
3. meningkatkan efisensi pemakaian memori yang terbatas.
4. Meningkatkan efisiensi transfer atau perpindahan data dari atau ke memori utama dan dari atau ke CPU.
5. Mengelola informasi yang dipakai dan tidak dipakai.
6. Mengalokasikan memori ke proses yang memerlukan.
7. Mendealokasikan memori dari proses telah selesai.
8. Mengelola swapping atau paging antara memori utama dan disk.



1.      Manajemen Memori
Wulandari Tampongangoy (NIM. 10 311 177)
A.    Berdasarkan keberadaan swapping :

1.      Manajemen tanpa swapping.
Manajemen memori tanpa pemindahan citra proses antara memori utama dan disk selama ekseskusi.
2.      Manajemen dengan swapping.
Manajemen memori dengan pemindahan citra proses antara memori utama dan disk selama ekseskusi.

B.     Manajemen Memori Berdasarkan Alokasi Memori
Terdapat dua cara menempatkan informasi ke dalam memori kerja yaitu :

1.                  Alokasi Memori Berurutan (Contiguous Allocation)
Pada alokasi memori berurutan, setiap proses menempati satu blok tunggal lokasi memori yang berurutan.
·         Kelebihan : sederhana, tidak ada rongga memory bersebaran, proses berurutan dapat dieksekusi secara cepat.
·         Kekurangan : memori boros, tidak dapat disisip apabila tidak ada satu blok memori yang mencukupi
2.                   Alokasi Memori Tak Berurutan (Non Contiguous Allocation)
Program/proses ditempatkan pada beberapa segmen berserakan, tidak perlu saling berdekatan atau berurutan. Biasanya digunakan untuk lokasi memori maya sebagai lokasi page-page.
·         Kelebihan : sistem dapat memanfaatkan _ memori utama secara lebih efesien, dan sistem opersi masih dapat menyisip proses bila jumlah lubang-lubang memori cukup untuk memuat proses yang akan dieksekusi.
·         Kekurangan : memerlukan pengendalian yang lebih rumit dan memori jadi banyak yang berserakan tidak terpaka
. 10 311 177)
2.      MANAJEMEN MEMORI PEMARTISIAN STATIS
·         Kondisi tanpa swapping ada 2 macam :
a.      Monoprogramming
Monoprogramming merupakan manajemen memori paling sederhana, sistem komputer hanya mengijinkan satu program/pemakai berjalan pada satu waktu. Semua sumber daya sepenuhnya dikuasi proses yang sedang berjalan.
Dalam monoprogramming :
1.      Hanya terdapat satu proses pada satu saat, sehingga proses baru akan menimpa proses lama yang sudah selesai eksekusi.
2.      Hanya satu proses mengunakan semua memori.
3.      Pemakai memusatkan program keseluruh memori dari disk atau tape.
4.      Program mengambil kendali seluruh mesin.

Monoprogramming masih dipakai untuk sistem kecil yaitu sistem tempelan (embedded system) yang menempel atau terdapat di sistem lain. Sistem-sistem tempelan menggunakan mikroprosesor kecil, seperti Intel 8051, dan sebagainya. Sistem ini biasanya untuk mengendalikan satu alat sehingga menjadi bersifat intelejen (intelegent devices) dalam menyediakan satu fungsi spesifik. Karena hanya satu fungsi spesifik, dapat diprogram di mikroprosesor dengan memori kecil (1-64 Kb).

Masalah Proteksi Di Monoprogramming
Merupakan cara memproteksi rutin sistem operasi dari penghancuran program pemakai. Program pemakai dapat tersesat sehingga memanipulasi atau menempati ruang memori rutin sistem operasi. Aktivitas program pemakai ini dapat merusak sistem operasi. Untuk mengatasinya Sistem operasi harus diproteksi dari modifikasi program pemakai.
Proteksi ini diimplementasikan menggunakan satu register batas (boundary register) di pemroses. Setiap kali program pemakai mengacu alamat memori dibandingkan register batas untuk memastikan proses pemakai tidak merusak sistem operasi, yaitu tidak melewati nilai register batas.

b.      Multiprogramming dengan pemartisian statis
Multiprogramming dapat dilakukan dengan pemartisian statis, yaitu memori dibagi menjadi beberapa sejumlah partisi tetap. Pada partisi-partisi tersebut proses-proses ditempatkan.

Ciri-ciri dari partisi statis sebagai berikut:
1.      Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap.
2.      Satu proses hanya memakai satu partisi. Jika proses sudah selesai, partisi tersebut dapat digunakan proses yang lain.



Manajemen Memori Multiprogramming
Melibatkan banyak pemakai secara simultan sehingga di memori akan terdapat lebih dari satu proses bersamaan. Oleh karena itu dibutuhkan sistem operasi yang mampu mendukung dua kebutuhan tersebut.

Melakukan dua aktivitas :
1.      Proteksi memori dengan isolasi ruang-ruang alamat secara disjoint (terpisah).
2.      Pemakaian bersama memori.
Memungkinkan proses-proses bekerja sama mengakses daerah memori bersama. Ketika konsep multiprogramming digunakan, pemakaian CPU dapat ditingkatkan.

Multiprogramming Pemartisian Statis,
Terdapat beberapa alasan :
         Mempermudah pemogram
Pemrogram dapat memecah program menjadi dua proses atau lebih.
         Agar dapat memberi layanan interaktif ke beberapa orang secara simultan
Untuk itu diperlukan kemampuan mempunyai lebih dari satu proses di memori agar memperoleh kinerja yang baik.
         Efisiensi penggunaan sumber daya
Bila pada multiprogramming maka proses tersebut diblocked (hanya DMA yang bekerja) dan proses lain mendapat jatah waktu pemroses, maka DMA dapat meningkatkan efisiensi sistem.
         Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil
         Dapat mengerjakan sejumlah job secara simultan

3.      STRATEGI PENEMPATAN PROGRAM KE PEMARTISIAN STATIS

1.      Strategi Pemartisian menjadi partisi berukuran sama (ukuran semua partisi memori sama), yaitu:
Beberapa proses yang ukurannya kurang atau sama dengan ukuran partisi dimasukkan ke sembarang partisi yang tersedia.
Kelemahan :
-          Bila program berukuran lebih besar dibanding partisi yang tersedia, maka tidak dapat dimuatkan, tidak dapat dijalankan. Pemogram harus mempersiapkan overlay sehingga hanya bagian program yang benar-benar dieksekusi yang dimasukkan ke memori utama dan saling bergantian. Untuk overlay diperlukan sistem operasi yang mendukung swapping.
-          Untuk program yang sangat kecil dibanding ukuran partisi yang ditetapkan, maka banyak ruang yang tak dipakai yang diboroskan,  disebut fragmentasi internal. Kelemahan ini dapat dikurangi dengan partisi-partisi tetap berukuran berbeda.

2.      Strategi Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah berbeda
Strategi penempatan program ke partisi ada 2 jenis strategi
DESKRIPSI :
a)      Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran sama. Penempatan proses ke memori dilakukan secara mudah karena dapat dipilih sembarang partisi yang kosong.
b)      Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran berbeda.

1.      Satu antrian untuk tiap partisi (banyak antrian untuk seluruh partisi).
Proses ditempatkan ke partisi paling kecil yang dapat memuatnya.
Keuntungan :
-          teknik ini adalah meminimalkan pemborosan memori.
Kelemahan :
-          dapat terjadi antrian panjang disuatu partisi sementara antrian partisi-partisi lain kosong.

2.      Satu antrian untuk seluruh partisi.
Proses-proses diantrikan di satu antrian tunggal untuk semua partisi. Proses segera ditempatkan di partisi bebas paling kecil yang dapat memuat.
Keunggulan :
-          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.
Kelemahan ini dapat diatasi dengan prosedur pemindahan. Pemindahan dilakukan
bila proses besar akan masuk memori tetapi hanya tersedia partisi kecil
sementara proses kecil menempati partisi besar. Proses kecil di swap ke
partisi kecil yang sedang bebas kemudian proses besar di antrian menempati
partisi besar yang ditinggal proses kecil.
 

4.      PEMARTISIAN MEMORI MENJADI PARTISI-PARTISI SECARA STATIS MEMPUNYAI DUA MASALAH, YAITU :

A.    . Relokasi.
               Adalah masalah penempatan proses sesuai alamat fisik sehubungan alamat
partisi memori dimana proses ditempatkan. Proses dapat ditempatkan pada
partisi-partisi berbeda menurut keadaan sistem saat itu. Pengalamatan
fisik secara absolut untuk proses tidak dapat dilakukan.
 
Solusi  :
               Sistem operasi menambahkan alamat awal partisi dimana proses ditempatkan
ke setiap alamat yang diacu proses. Pada saat proses kompilasi, linker
harus memasukkan satu daftar atau bit map biner pada program memberitahu
word program yang alamat-alamatnya direlokasi. Linker harus mencatat
opcode, konstanta, dan item-item yang tak perlu direlokasi.
B.      Proteksi.
               Masalah proteksi pada banyak partisi dengan banyak proses di satu sistem
secara bersamaan dikhawatirkan proses menggunakan atau memodifikasi daerah
yang dikuasai proses lain (yang bukan haknya). Bila kejadian ini terjadi,
maka proses lain dapat terganggu dan hasil yang diperolehnya dapat menjadi
kacau.
Solusi menggunakan base register dan limit register :
Solusi menggunakan dua register yaitu base register dan limit
register. Base register diisi alamat awal partisi dan limit register diisi
panjang partisi. Setiap alamat yang dihasilkan secara otomatis ditambah
dengan nilai base register. Instruksi yang mengacu pada alamat yang
melebihi limit register akan menimbulkan trap yang memberitahu sistem
operasi bahwa telah terjadi pelanggaran pengaksesan memori.
Teknik ini lebih unggul dibanding teknik pada IBM 360 karena sangat lebih
efisien. Teknik ini tidak perlu menempatkan 4 bit proteksi di tiap blok
memori. Teknik inipun lebih fleksibel.
Keuntungan :
               a. Alamat tidak perlu dimodifikasi.
               b. Setiap instruksi dapat diperiksa agar tidak meloncati batas limit
               register.
               c. Program dapat dipindah walau sedang dieksekusi.
               Pemindahan dilakukan hanya dengan mengganti nilai base register.
BAB II
PEMBAHASAN
   VITUAL MEMORY
1.       Pengertian Virtual Memory
Virtual Memori adalah sebuah sistem yang digunakan oleh sistem operasi untuk menggunakan sebagian dari Memori Sekunder yaitu Harddisk seolah-olah ia menggunakannya sebagai memori internal/utama (RAM) fisik yang terpasang di dalam sebuah sistem komputer. Sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan page file.
Memori virtual adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.
Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis. Konsep memori virtual dikemukakan pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic storage allocation pada sistem komputer atlas di Universitas Manchester. Sedangkan istilah memori virtual dipopulerkan oleh Peter J. Denning yang mengambil istilah 'virtual' dari dunia optik.
            Memori virtual melakukan pemisahan dengan menaruh memori logis ke disk sekunder dan hanya membawa halaman yang diperlukan ke memori utama. Teknik ini menjadikan seolah-olah ukuran memori fisik yang dimiliki lebih besar dari yang sebenarnya dengan menempatkan keseluruhan program di disk sekunder dan membawa halaman halaman yang diperlukan ke memori fisik.
            `Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari di disk. Ide ini seperti menjadikan memori sebagai cache untuk disk.
Beberapa keuntungan penggunaan memori virtual adalah sebagai berikut:
1. Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
2. Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.
3. Meningkatnya respon, karena menurunnya beban I/O dan memori.
4. Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.
Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 Kbyte dan bagian-bagian proses swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien. Prinsip dari memori virtual yang perlu diingat adalah bahwa "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem yang tidak menggunakan memori virtual".
Memori virtual biasanya diimplementasikan menggunakan demand paging atau demand segmentation juga digunakan. Tetapi algoritma segment-replacement lebih kompleks daripada algoritma page-replacement karena segmen mempunyai ukuran yang bervariasi.

2.       Demand  Paging
Demand paging adalah sistem paging dengan swapping. Page diletakkan di memori hanya jika diperlukan. Hal ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah, respon lebih cepat dan lebih banyak user yang menggunakan.
Proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, maka dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping bila page tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke memori kecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika acuan invalid maka dilakukan penghentian. Page yang sedang tidak berada di memori tersebut akan dibawa ke memori dari backing store.
Untuk membedakan antara page pada memori dengan page pada disk digunakan valid-invalid bit. Tabel page untuk page yang berada di memori diset “valid’, sedangkan tabel page untuk page yang tidak sedang di memori (ada pada disk) diset “invalid”.
Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan trap ke sistem operasi. Karena status (register, kode kondisi, counter instruksi) dari proses ter-interrupt disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status yang sama, kecuali page yang cocok sedang di memori dan sedang diakses. Prosedur untuk menangani page fault seperti Gambar 8-4 sebagaiberikut :
1. Sistem operasi melihat tabel untuk menentukan jika acuan invalid maka proses dihentikan dan page sedang tidak berada di memori.
2. Jika acuan invalid dilakukan trap ke sistem operasi.
3. Sistem mencari frame kosong.
4. Sistem melakukan proses swapping ke frame bebas.
5. Tabel page di-reset, bit valid-invalid diset 1 atau valid
6. instruksi di-restart.

Apabila tidak ditemukan frame bebas maka dilakukan page replacement yaitu mencari beberapa page di memori yang tidak digunakan kemudian dilakukan swap out ke backing store. Terdapat beberapa algoritma page replacement dimana performansi algoritma diharapkan menghasilkan jumlah page fault minimum. Beberapa page kemungkinan dibawa ke memori beberapa kali.
Perangkat keras yang dibutuhkan untuk mendukung demand paging sama dengan perangkat keras untuk sistem paging dengan swapping yaitu :
1) Tabel page : tabel mempunyai kemampuan untuk memberi entry bit valid-invalid atau nilai khusus untuk bit proteksi
2) Memori sekunder : digunakan untuk membawa page yang tidak di memori danbiasanya adalah disk kecepatan tinggi yang disebut swap device.

3.       Page Replacement
Page replacement diperlukan pada situasi dimana proses dieksekusi perlu frame bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang sedang tidak digunakan dan membebaskannya. Untuk membebaskan frame dengan cara menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang menunjukkan page tidak lagi di memori.
Langkah-langkah untuk page fault yang memerlukan page replacement seperti Gambar 8-6 adalah sebagai berikut :
1. Carilah lokasi page yang diharapkan pada disk.
2. Carilah frame kosong dg cara :
a) Bila ada frame kosong, gunakan.
b) Bila tidak ada, gunakan algoritma page replacement untuk menyeleksi frameyang akan menjadi korban.
c) Simpan page korban ke disk, ubah tabel page.
3. Baca page yang diinginkan ke frame kosong yang baru, ubah tabel page.
4. Mulai kembali proses user.




4.       Algoritma Page Replacement
Terdapat beberapa algoritma page replacement, setiap sistem operasi mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan yang mempunyai rata-rata page fault terendah. Algoritma dievaluasi dengan menjalankannya pada string tertentu dari memory reference dan menghitung jumlah page fault. String yang mengacu ke memori disebut reference string (string acuan).String acuan dibangkitkan secara random atau dengan menelusuri sistem danmenyimpan alamat dari memori acuan. Misalnya jika ditelusuri proses tertentu, disimpan alamat berikut :
0100, 0432, 0101, 0612, 0102, 0103, 0104,
0101, 0611, 0102, 0103, 0104, 0101, 0610,
0102, 0103, 0104, 0101, 0609, 0102, 0105
dimana 100 byte per page direduksi ke string acuan :
1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1
Untuk menentukan jumlah page fault untuk string acuan dan algoritma pagereplacement tertentu, harus diketahui jumlah page frame tersedia juga harus diketahui. Semakin tinggi jumlah frame lebih tinggi, semakin rendah jumlah page fault.
Terdapat beberapa algoritma page replacement antara lain algoritma first in first our (FIFO), optimal dan least recently use (LRU). Pada sub bab berikut akan diilustrasikan algoritma page replacement tersebut dengan menggunakan string acuan
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
1.       Algoritma FIFO
Algoritma FIFO merupakan algoritma paling sederhana. Algoritma FIFO diasosiasikan dengan sebuah page bila page tersebut dibawa ke memori. Bila ada suatu page yang akan ditempatkan, maka posisi page yang paling lama yang akan digantikan. Algoritma ini tidak perlu menyimpan waktu pada saat sebuah page dibawa ke memori.
Meskipun algoritma FIFO mudah dipahami dan diimplementasikan, performansitidak selalu bagus karena algoritma FIFO menyebabkan Belady’s anomaly. Belady’s anomaly mematahkan fakta bahwa untuk beberapa algoritma page replacement, bila rata-rata page fault meningkat, akan meningkatkan jumlah alokasi frame. Sebagai contoh, jika menggunakan string acuan :
1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5
dengan algoritma FIFO terjadi Belady’s anomaly.
1.      Algoritma Optimal
Algoritma optimal merupakan hasil penemuan dari Belady’s anomaly. Algoritma ini mempunyai rata-rata page fault terendah. Algoritma optimal akan mengganti page yang tidak akan digunakan untuk periode waktu terlama. Algoritma ini menjamin rata-rata page fault terendah untuk jumlah frame tetap tetapi sulit implementasinya.
2.       Algoritma Least Recently Use (LRU)
Algoritma LRU merupakan perpaduan dari algoritma FIFO dan optimal. Prinsip dari algoritma LRU adalah mengganti page yang sudah tidak digunakan untuk periode waktu terlama.
Untuk mengimplementasikan algoritma LRU, digunakan dua model yaitu :
1. Counter : setiap entry tabel pagee diasosiasikan dengan sebuah “time-of-use” dan sebuah clock logika atau counter ditambahkan ke CPU. Clock ini dinaikkan untuk setiap acuan ke memori. Jika sebuah acuan ke page dibuat, isi clock register dicopy ke time-of-use pada tabel page untuk page tersebut.
2. Stack : stack dari nomor page diatur. Jika sebuah page digunakan acuan, maka page dihapus dari stack dan meletakkan pada top of stack. Dengan cara ini, stack selalu digunakan page dan bagian bawah untuk page LRU. Implementasi stack untuk algoritma LRU.
  4.   Alokasi Frame
Alokasi frame berhubungan dengan mekanisme alokasi sejumlah memori bebas yang tetap diantara beberapa proses. Meskipun terdapat beberapa variasi pengalokasian frame bebas ke beberapa proses, tetapi strategi dasar jelas yaitu : proses user dialokasikan untuk sembarang frame bebas.
Jumlah minimum frame per proses ditentukan oleh arsitektur dimana jumlah maksimum tergantung jumlah memori fisik yang tersedia. Jumlah minimim frameditentukan oleh arsitektur instruction-set. Bila terjadi page fault sebelum eksekusi instruksi selesai, instruksi harus di-restart. Sehingga tersedia frame yang cukup untukmembawa semua page yang berbeda dimana sembarang instruksi dapat mengacu. Misalnya mikrokomputer menggunakan memori 128K yang dikomposisikan dengan page ukuran 1K, maka terbentuk 128 frame. Jika sistem operasi menggunakan 35K, maka 93 frame sisa digunakan program user. Bila suatu program menyebabkan page fault sebanyak 93 kali, maka menempati 93 frame bebas tersebut. Jika terjadi page faultke 94, dari 93 frame yang terisi harus dipilih salah satu untuk diganti yang baru. Bila program selesai, 93 frame tersebut dibebaskan kembali.
Terdapat 2 bentuk algoritma alokasi yaitu equal allocation dan proportional allocation. Pada equal allocation, jika terdapat m frame dan n proses, maka setiap proses dialokasikan sejumlah frame yang sama (m/n frame). Pada proportionalallocation setiap proses dialokasikan secara proporsional berdasarkan ukurannya. Jika ukuran virtual memori untuk proses pi adalah si dan total jumlah frame yang tersedia m,maka frame ke ai dapat dialokasikan ke proses pi sama dengan :
Dimana S = Σsi. Contohnya :
Selain itu terdapat algoritma alokasi berprioritas yang menggunakan skema proporsional dengan lebih melihat prioritas proses daripada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dari frame-frame dari proses yang mempunyai nomor prioritas terendah.
3.       Alokasi Global dan Alokasi Lokal
Page replacement adalah faktor terpenting lain yang harus dipertimbangkan dalam alokasi frame. Pada multiple process yang berkompentisi mendapatkan frame, algoritma page replacement dikelompokkan dalam 2 kategori yaitu global replacement dan local replacement.
Global replacement mengijinkan suatu proses untuk menyeleksi suatu frameyang akan dipindah dari sejumlah frame, meskipun frame tersebut sedang dialokasikan ke proses yang lain. Pada local replacement, jumlah frame yang dialokasikan untuk proses tidak berubah. Setiap proses dapat memilih dari frame-frame yang dialokasikan untuknya.
Permasalahan pada global replacement adalah proses tidak dapat mengontrolrata-rata page fault. Sejumlah page pada memori untuk sebuah proses tidak hanya tergantung pada perilaku paging untuk proses tersebut, tetapi juga perilaku paging untuk proses yang lain. Bagaimanapun, karena algoritma global replacement menghasilkan throughput yang lebih besar, metode ini sering digunakan.
4.       Thrashing
Misalnya sembarang proses tidak mempunyai frame yang cukup. Meskipun secara teknis dapat mengurangi jumlah frame yang dialokasikan sampai minimum, terdapat sejumlah page yang sedang aktif digunakan. Jika suatu proses tidak memiliki jumlah frame yang cukup, maka sering terjadi page fault. Sehingga harus mengganti beberapa page. Tetapi karena semua page sedang digunakan, harus mengganti page yang tidak digunakan lagi kemudian. Konsekuensinya, sering terjadi page fault lagi dan lagi. Proses berlanjut page fault, mengganti page untuk page fault dan seterusnya.
Kegiatan aktifitas paging yang tinggi disebut thrashing. Sebuah proses mengalami thrashing jika menghabiskan lebih banyak waktu untuk paging daripada eksekusi. Efek thrashing dapat dibatasi dengan menggunakan algoritma local (priority) replacement. Grafik terjadinya proses thrashing pada sistem multiprogramming.








BAB III
PEMBAHASAN
SINKRONISASI PROSES
1.      Pengertian Sinkronisasi
 Sinkronisasi merupakan suatu proses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang diharapkan. Disini sinkronisasi diperlukan agar data tersebut tetap konsisten.
            Shared memory merupakan solusi ke masalah bounded-butter yang mengijinkan paling banyak n-1 materi dalam buffer pada waktu yang sama. Suatu solusi, jika semua N buffer digunakan tidaklah sederhana. Dimisalkan kita memodifikasi producer-consumer code dengan menambahkan suatu variable counter, dimulai dari 0 dan masing-masing waktu tambahan dari suatu item baru diberikan kepada buffer.
Sinkronisasi merupakan “issue” penting dalam rancangan/implementasi OS (shared resources, data, dan multitasking).

2.  Tujuan sinkronisasi
            Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan.

3. Masalah dalam sinkronisasi beserta solusinya
 1. Race Condition
 Race Condition adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Untuk mencegah race condition, proses-proses yang berjalan besamaan harus di disinkronisasi.
            Dalam beberapa sistem operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write). Penyimpanan bersama (shared storage) mungkin berada di memori utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak merubah kealamian dari komunikasi atau masalah yang muncul. Untuk mengetahui bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus. Proses yang lain, printer daemon, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.
 2. Critical Section
 Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama. Dengan kata lain kita memutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya.
 Masalah menghindari race conditions dapat juga diformulasikan secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk melakukan perhitungan internal dan hal lain yang tidak menggiring ke kondisi race conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared berkas atau melakukan sesuatu yang kritis akan menggiring kepada race conditions. Bagian dari program dimana shaed memory diakses disebut Critical Section atau Critical Region.
Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik:
• Tidak ada dua proses secara bersamaan masuk ke dalam citical section.
• Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
• Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
• Tidak ada proses yang menunggu selamamya untuk masuk critical section.
Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses. Terdiri dari:
Entry Section: kode yang digunakan untuk masuk ke dalam critical section
Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu
Exit Section: akhir dari critical section, mengizinkan proses lain
Remainder Section: kode istirahat setelah masuk ke critical section.
 3. Solusi ke Masalah Critical-Section
Ada bebrapa Solusi untuk mengatasi masalah Critical Section, yaitu:
• Mutual exclution
Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.
• Progress
Jika tidak ada proses yang sedang dieksekusi dalam critical section  dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bias ditunda.
• Bounded Waiting
Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum  permintaan itu diterima.
a. Asumsikan bahwa tiap proses mengeksekusi pada nonzero speed.
b. Tidak ada asumsi mengenai kecepatan relative dan n proses.
Cara-cara memecahkan masalah
• Hanya dua proses, Po dan P1
• Struktur umum dari proses adalah Pi (proses lain Pj)

 4. Bakery Algorithm
Critical section untuk n proses:
a. Sebelum memasuki critical Section-nya, proses menerima nomor pemilik nomor terkecil memasuki critical section.
b. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j, maka Pi dilayani duluan, lainnya Pj dilayani duluan (if i< j, then Pi is served first; else Pj is served first).
c. Skema penomoran selalu menghasilkan angka –angka yang disebutkan satu per satu, yaitu 1,2,3,3,3,3,4,5….

 5. Semaphore
Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut semaphore.
Semaphore mempunyai dua sifat, yaitu:
a. Semaphore dapat diinisialisasi dengan nilai non-negatif.
b. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.
• Operasi Down
Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked. Operasi Down adalah atomic, tidak dapat diinterupsi sebelum diselesaikan. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal. Sejak dimulai, tidak ada proses lain yang dapat mengakses semaphore sampai operasi selesai atau diblocked.
• Operasi Up
Operasi Up menaikkan nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tidak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak ditentukan oleh Djikstra, dapat dipilih secara acak. Adanya semaphore mempermudah persoalan mutual exclusion. Skema penyelesaian mutual exclusion mempunyai bagian sebagai berikut:
Sebelum masuk critical section, proses melakukan Down. Bila berhasil maka proses masuk ke critical section. Bila tidak berhasil maka proses di-blocked atas semaphore itu. Proses yang diblocked akan dapat melanjutkan kembali bila proses yang ada di critical section keluar dan melakukan opersai up sehingga menjadikan proses yang diblocked ready dan melanjutkan sehingga opersi Down-nya berhasil.
 6. Problem Klasik pada Sinkronisasi
Ada tiga hal yang selalu menjadi masalah pada proses sinkronisasi:
a. Problem Bounded buffer.
b. Problem Reades and Writer.
c. Problem Dining Philosophers.

 7. Monitors
            Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tidak dapat mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal.
Properti-properti monitor adalah sebagai berikut:
a. Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dalam monitor dan tidak oleh prosedur di luar monitor.
b. Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus mengimplementasi ini(mutual exclusion).
c. Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan Signal.
d. Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk monitor.
e. Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada variabel kondisi yang sedang ditunggu partnernya.
f. Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda proses lain.
g. Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar dari monitor.
Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor, monitor menyediakan fasilitas mutual exclusion. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses pada satu saat. Struktur data bersama dapat dilindungi dengan menempatkannya dalam monitor. Jika data pada monitor merepresentasikan sumber daya, maka monitor menyediakan fasilitas mutual exclusion dalam mengakses sumber daya itu.












BAB IV
PENUTUP
ü  Kesimpulan Manajemen Memori
Manajemen Memori pada System Operasi yaitu meningkatkan utilitas CPU yang sebesar-besarnya, data dan instruksi dapat di akses dengan cepat oleh CPU, memori utama memiliki kapasitas yang sangat terbatas, sehingga pemakaiannya harus seefisien mungkin dan transfer data dari memori

ü  Vitual memory
Memori virtual adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.

ü  Sinkronisasi proses
Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Tujuan utama sinkronisasi adalah menghindari terjadinya inkonsistensi data karena pengaksesan oleh beberapa proses yang berbeda (mutual exclusion) serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar dan terhindar dari deadlock atau starvation.












MAKALAH TEKNIK RISET OPERASIONAL

  MAKALAH TEKNIK RISET OPERASIONAL                         ...