Kamis, 10 Januari 2013

Algoritma - Algoritma Penggantian Page

Postingan kali saya akan memaparkan mengenai macam - macam algoritma penggantian halaman.

  •  Algoritma Penggantian Page Acak
Pada algoritma ini setiap kali terjadi page fault penggantian page nya di pilih dengan cara acak. Dan teknik ini tidak memerlukan informasi apapun untuk menentukan page yang di ganti tersebut. Itu karena semua page di memori utamanya mempunyai bobot yang sama sehingga tidak ada kriteria tertentu untuk di pilih. 
Karena teknik ini mengganti page dengan  cara acak dan bebas, maka bisa saja page yang sedang diacu (page yang seharusya tidak di ganti) pun dapat di pilih, sehingga menimbulkan rate terjadinya page fault yang sangat tinggi. 
  • Algoritma Penggantian Page Optimal
Algoritma ini di sebut juga sebagai Algoritma utopia (ideal tanpa dapat di jadikan kenyataan), mengapa demikian? Sebab algoritma ini tak mungkin di buat prosedur yang dapat mengetahui peluang pemakaian suatu page kembali di masa datang. 
Mekanisme dari algoritma ini adalah dengan mengumpulkan dan memakai informasi untuk menentukan page yang di ganti sehingga mendekati optimal. Dasar dari algoritma ini yakni memilih page yang berpeluang dapat di pakai kembali di masa yang akan datang yang paling kecil. Maksudnya memakai kembali page yang kemungkinan kecil tidak dapat di gunakan lagi, otimalisasi page. 
Algoritma ini penting untuk kajian teoritis sebagai pembanding bagi algoritma-algoritma penggatian page yang lain.
  • Algoritma Penggantian Page NRU (Not-recently Used)
Pada algoritma ini ada pemberian status (2 bit : R dan M) untuk setiap page, berikut keterangannya:
Bit R : referenced (menyatakan page yang sedang diacu)
          Bit R = 0 berarti sedang diacu
          Bit R = 1 berarti tidak sedang diacu
Bit M : modified (menyatakan page telah dimodifikasi)
          Bit M = 1 berarti dimodifikasi
          Bit M = 0 berarti tidak dimodifikasi
Sehingga, page-page dapat dikelompokan menjadi 4 kelas page, yaitu:
    • Kelas 0 (R=0, M=0) : tidak sedang diacu dan belum dimodifikasi
    • Kelas 1 (R=0, M=1) : tidak sedang diacu tapi telah dimodifikasi
    • Kelas 2 (R=1, M=0) : sedang diacu tapi belum dimodifikasi
    • Kelas 3 (R=1, M=1) : sedang diacu dan sudah dimodifikasi
Berdasarkan pembagian kelas tersebut diatas, maka untuk pemilihan page pengganti dilihat dari kelas yang bernomor paling rendah, tapi apabila terdapat page-page di kelas tersebut pemilihan dilakukan secara acak. Dan apabila kelas tersebut kosong maka dipilih page dikelas yang paling tinggi, begitupun seterusnya.
Inti dari algoritma ini adalah mengasumsikan kelas-kelas  bernomor lebih rendah akan baru akan di gunakan kembalil dalamwaktu relatif lama.
  • Algoritma Penggantian Page FIFO (First-In, First-Out)
Cara kerja algoritma ini simple, seperti halnya dengan antrian tak berprioritas. Dimana page yang masuk lebih dulu maka akan keluar lebih dulu juga. Oleh karena algoritma ini menggunakan struktur data stack, yaitu jika tidak ada frame yang kosong pada saat terjadi page fault maka frame yang berada pada stack paling bawah akan dipilih. 
Algoritma ini dapat memindahkan page yang sering digunakan berdasarkan informasi mengenai lamanya berada di memori. Dan bisa saja page itu selalu berada di memori karena selalu digunakan.
  • Algoritma Penggantian Page Modifikasi dari Algoritma FIFO 
Untuk menyempurnakan kelemahan dari algoritma FIFO maka algoritma tersebut dimodifikasi, yakni dengan hanya memindahkan page yang tidak diacu dan dengan menambahkan bit R mencatat apakah page diacu atu tidak. Bila bit R bernilai 1 maka diacu, bila bernilai 0 tidak diacu. 
Ada 2 variasi FIFO, yakni:
    • Algoritma penggantian page kesempatan kedua (second chance page replacement agorithm)
                Merupakan penyempurnaan dari Algoritma FIFO, bedanya jika FIFO menggunakan struktur  data stack, maka second chance ini menggunakan circular queue. Yakni page yang baru digunakan akan di beri nilai 1 pada reference bitnya, jika halaman sudah bernilai 1 pada reference bit-nya maka tidak langsung diganti walaupun dia berada pada tumpukan terbawah (berbeda dengan FIFO).
    • Algoritma penggantian clock page (clock page replacement algorithm)
                Algoritma ini merupakan perbaikan dari kelemahan second chance yang mana tidak efisien karena memindahkan page-page di senarainya. Pada  algoritma ini, semua page merupakan  senarai melingkar membentuk pola jam. Terdapat petunjuk (pointer) ke page tertua.

Kedua algoritma ini adalah sama, hanya berbeda pada implementasinya, jika second chance menggunakan senarai lurus tidak sirkular, sedangkan clock page menggunakan senarai sirkular.

  • Algoritma Penggantian Page LRU (Least Recently Used)
Performance dari algoritma ini mendekati algoritma optimal yang di kenal sangat sulit dalam pengimplementasiannya, hanya saja LRU menjadi lebih mahal sebab algoritma ini harus mengelola informasi seluruh page di memori dengan membuat linked list untuk mendata page mana yang paling lama tidak terpakai, serta harus mengupdate setiap kali ada page yang di akses.

Itulah beberapa point tentang algoritma penggantian page, 
hmm,, mudah-mudahan bermanfaat ya,,,  
Terima Kasih Sudah Membaca,, ^_^

Minggu, 06 Januari 2013

Algoritma Banker, Safty dan Ostrich

Wah wah,, hampir aja lumutan nih blog,, hehehe
lama tak jumpa nih readers,, apa kabar..? ^_^
baiklah kita langsung saja pada topik postingan kali ini mengenai deadlock, dan kali ini saya akan membahas tentang algoritma-algoritma untuk menangani deadlock tersebut.

Pertama kita pahami dulu apa itu deadlock. Deadlock jika di analogikan dalam kehidupan nyata seperti sebuah kemacetan kendaraan yang akan menyebrangi sebuah jembatan yang hanya bisa di lalui oleh satu antrian kendaran. Sehingga akan ada jeda saling menunggu antara kendaraan dari dua seberang jembatan untuk mengosongkan jembatan tersebut dan bisa di lalui oleh kendaraan secara beriringan. Maka di sini bisa di simpulkan bahwa Deadlock adalah keadaan saling menunggu antara dua proses atau lebih untuk dapat menggunakan resource yang sedang di pakai. 

Maka dari itu untuk menghindari hal ini, ada beberapa algoritma-algoritma untuk menangani permasalahan di atas. Mari kita bahas satu persatu:
  • Algoritma Banker
Algoritma banker adalah sebuah algoritma resource allocation dan deadlock avoidance yang di pelopori oleh Edsger W Djikstra untuk menangani terjadinya deadlock pada sistem operasi. Algoritma banker dapat di analogikan seperti sistem perbankan. Dimana ada kegiatan penarikan dan peminjaman uang dari nasabah kepada bank. Disini nasabah dapat di ibaratkan sebagai proses, uang yang di pinjamkan atau yang di setorkan di ibaratkan sebagai resource dan bank secara keseluruhan dapat di ibaratkan sebagai sistem operasi. Intinya disini jika bank tidak boleh sampai kehabisan uang agar para nasabah tetap dapat melakukan peminjaman, oleh karena itu para peminjam di haruskan untuk mengembalikan pinjamannya tepat waktu. 

Begitu pula yang terjadi pada algortima ini. Dimana sistem operasi akan memberikan resource pada proses yang sudah siap di eksekusi asalkan tidak melebihi batas resource sistem. Dan jika proses sudah selesai di eksekusi maka proses harus segera mengembalikan resource yang telah di gunakannya. Sistem operasi juga bisa menolak proses yang dapat membuat sistem berada pada kondisi unsafe state melalui algoritma ini. 
  • Algoritma Safety
Algoritma ini pun juga merupakan algoritma untuk penanganan terjadinya deadlock pada sistem operasi. Cara kerjanya yakni melakukan pengecekan pada sistem apakah sistem berada pada kondisi aman (safe state) atau tidak aman (unsafe state). Sistem operasi akan menanyakan apakah suatu proses telah selesai atau masih berjalan, jika proses tersebut masih berjalan maka proses lain harus menunggu hingga proses awal selesai di eksekusi. Hal ini merupakan inti dari algoritma ini, dengan membandingkan waktu pengeksekusian proses maka dapat di simpulkan apakah sistem dalam keadaan aman atau tidak.
  • Algoritma Ostrich
Agoritma ostrich adalah algoritma penanganan deadlock yang mungkin terjadi atas dasar bahwa deadlock di yakini sangat jarang terjadi dengan kata lain adalah dengan mengabaikan trejadinya deadlock tersebut. Algoritma ini memiliki 2 pendekatan dalam pengimplementasiannya, yaitu pendekatan trade-offs dan pendekatan hybrid.
Pendekatan trade-offs yaitu jika kondisi atau keadaan berubah atau belum teridentifikasi, masalah yang sangat jarang terjadi dapat kembali lagi. Sedangkan pendekatan hybrid yakni menentukan bahwa kasus deadlock sangat jarang atau bahkan tidak pernah terjadi. 

Naahh sekian postingan kali ini, semoga bermanfaat ya,,, ^_^

Sabtu, 17 November 2012

Penggolongan OS Berteknologi Hyperthreading, Berdasarkan Model Multithreading

Multithreading Models

  • Many to one model (memetakan banyak pengguna thread level ke satu kernel thread). OS yang menggunakan model ini adalah:
    • GNU / Linux. 
  • One to One Model (Memetakan setiap satu pengguna thread ke kernel thread). OS yang menggunakan model ini adalah:
    • Windows NT
    • Windows XP
    • Windows 2000
    • Linux
    • Solaris 9
    • OS/2
  • Many to Many Model (multiplexes banyak level pengguna thread ke kernel thread yang jumlahnya sama atau lebih sedikit dari banyaknya level pengguna thraed). OS yang menggunakan model ini adalah:
    • Windows NT
    • Windows 2000
    • IRIX
    • Digital UNIX
    • SOLARIS
  • Multithreading two level model
    • IRIX
    • HP-UX
    • tru64 UNIX
    • Solaris 8

Dispatching Algorithm is....???

Dispatching Algorithm atau algoritma dispatching adalah sebuah algoritma antrean yang menentukan proses - proses mana saja yang akan di lakukan dan di alokasikan pada mesin yang sudah siap menerima pekerjaan secara berurutan. 

Algoritma Dispatching juga mendukung sistem operasi yang bersifat multitasking, maka dari itu pengeksekusian thread menjadi lebih efisien. Dan sistem tersebut dapat melakukan eksekusi terhadap sistem - sistem operasi secara berurutan dengan menggunakan algoritma antrean. 

Apa itu Teknologi Hyperthreading dengan Algoritma Dispatching?

Postingan kali ini akan membahas tentang Teknologi Hyperthreading dengan menggunakan algoritma Dispatching. Sebelumnya mari kita pahami dulu apa itu teknologi Hyperthreading.

Teknologi Hyperthreading adalah teknologi dimana 1 processor bertindak seperti lebih dari 1 processor. Hal ini memungkinkan beberapa bagian dari processor dengan tugas yang berbeda-beda dapat bekerja secara bersamaan, sehingga seolah-olah tampak lebih dari 1 processor atau CPU. Sedangkan algoritma dispatching itu sendiri adalah sebuah algoritma antrean yang bertugas mengeksekusi proses secara berurutan.

Jadi, dari dua kesimpulan di atas dapat kita simpulkan pengertian dari pada Arsitektur Komputer yang menggunakan Teknologi Hyperthreading dengan Algoritma Dispatching adalah sebuah arsitektur komputer dimana CPU nya menggusung teknologi yang seolah-olah seperti lebih dari 1 processor dengan menggunakan algoritma antrean untuk mengeksekusi proses-proses dari CPU secara berurutan. Sehingga kinerja dari processor tersebut menjadi lebih cepat dan effisien.  

Naaahhh segini dulu penjelasannya, see you next post...!! ^_^

Minggu, 11 November 2012

Tugas 4 "Proses" Minggu ke-6

  • Sebutkan lima aktivitas sistem operasi yang merupakan contoh dari suatu managemen proses!
Jawab:
> Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi mengalokasikan sumber daya untuk di gunakan oleh sebuah proses.
> Menunda atau next proses, sistem operasi mengatur prioritas dari proses-proses dan akan mendahulukan proses yang memiliki prioritas paling besar.
> Menyediakan mekanisme untuk proses sinkronisasi. Untuk memperlancar jalannya proses.
> Menyediakan mekanisme untuk proses komunikasi. Komunikasi antar proses untuk berinteraksi agar tidak menyebabkan terganggunya proses yang lainnya.
> Menyediakan mekanisme untuk penanganan deadlock. Sistem operasi harus dapat menghindari dari deadlock, (deadlock yaitu suatu keadaan dimana sistem seperti terhenti) dan memulihkan kondisi sistemnya.
  • Definisikan perbedaan antara penjadwalan short term, medium term dan long term!
Jawab:
> Penjadwalan Short Term bertugas menjadwalkan alokasi pemroses di antara proses-proses ready yang berada di memori utama. Sasaran utamanya adalah memaksimumkan kinerja sistem untuk memenuhi satu kumpulan kriteria yang di harapkan.
> Penjadwalan medium term bertugas menangani proses-proses swapping. (swapping sendiri adalah aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder) Proses-proses yang mempunyai kepentingan kecil saat itu adalah proses yang tertunda. Penjadwalan jangka menengah mengendalikan transmisi dari suspended ke ready (dari state suspend ke ready) dari proses-proses yang mengawali swapping.
> Penjadwalan long term bekerja terhadap antrian batch dan memilih batch berikutnya yang harus di eksekusi sistem. Sasaran utamanya adalah memberi keseimbangan proses-proses campuran.
  •  Jelaskan tindakan yang diambil oleh sebuah kernel ketika alih konteks antar proses!
Jawab:
> Simpan konteks pemroses, termasuk register PC dan register-register lainnya.
> Perbarui PCB proses yang running, termasuk mengubah state proses menjadi salah satu state (ready, blocked, suspendedready dsb) juga memperbaharui field-field yang relevan.
> Pindahkan PCB proses ke senarai yang cocok.
> Pilih satu proses lain untuk di eksekusi sesuai dengan teknik penjadwalan.
> Perbarui PCB proses yang di pilih termasuk perubahan state menjadi running.
> Perbaruistruktur-struktur data manajemen memori.
> Kembalikan konteks pemroses dengan konteks simpanan yang memberitahu konteks proses terakhir saat di alihkan dari proses running. Langkah ini di lakukan dengan memuatkan nilai-nilai register PC dan register-register lain dengan nilai konteks yang tersimpan.
  • Informasi apa saja yang disimpan pada tabel proses saat alih konteks dari satu proses ke proses lain?
Jawab:
> Tabel informasi manajemen memori
> Tabel informasi manajemen masukan / keluaran
> Tabel informasi sistem file
> Tabel proses
  • Di sistem UNIX terdapat banyak status proses yang dapat timbul (transisi) akibat event (eksternal) OS dan proses tersebut itu sendiri. Transisi state apa sajakah yang dapat ditimbulkan oleh proses itu sendiri. Sebutkan!
Jawab:
Pada UNIX, proses baru di ciptakan dengan memanggil system call bernama fork. System call fork menciptakan copyan proses pemanggil (induk) yang identik. Setelah pemanggilan fork, proses induk dapat melanjutkan berjalan bersama proses anak secara paralel. Proses induk dapat kembali melakukan fork untuk menciptakan proses-proses anak yang baru yang lain. Proses-proses anak ini pun dapat mengeksekusi fork. Dengan cara ini UNIX dapat terbentuk pohon hierarki proses. 
Pada Linux/UNIX, sistem operasi menciptakan proses pertama init. Proses init memperoleh id berangka 0. Proses init merupakan moyang pertama dari semua proses yang terdapat di sistem Linux / UNIX. 
  • Apa keuntungan dan kekurangan dari: Komunikasi Simetrik dan asimetrik, Automatic dan explicit buffering, Send by copy dan send by reference, Fixed-size dan variable sized messages?
Jawab:
> Komunikasi simetrik dan asimetrik : Keuntungan utama pada tingkat programer adalah bahwa proses tidak harus memblock pelaksanaannya yang dapat menghasilkan kinerja lebih baik. Kelemahannya adalah komunikasi asimetris lebih sulit untuk program karena programer harus menjamin bahwa pesan tiba di penerima ketika di butuhkan. Pada sistem asimetris lebih rumit karena memerlukan kernel tingkat.
> Automatic dan Explicit Buffering : kelebihannya automatic buffering membuat programer lebih mudah. Kelemahannya sistem akan sulit untuk di bangun.
> Send by Copy dan Send b y Reference :  Kelebihannya jaringan lebih baik dari generalisasi dan masalah sinkronisasi untuk Send by Copy. Dan untuk Send by Reference lebih efisien untuk struktur data yang besar. Kelemahannya sulit kode karena memori implikasi bersamaan.
> Fixed size message dan Variable sized message : kelebihannya fixed sized message lebih mudah untuk di terapkan di kernel tingkat. Variable size message lebih mudah untuk programer. Kelemahannya fixed size message membutuhkan usaha sedikit lebih pada bagian dari programer. Variable sized message agak lebih kompleks untuk kenel.
  • Jelaskan perbedaan short-term, medium-term dan long-term?
Jawab:
> Short term : memilih proses-proses yang siap di eksekusi dan mengalokasikan CPU ke salah satu dari proses-proses tersebut.
> Medium term: memindahkan proses dari memori (dan dari pengisian aktif dari CPU) dan untuk mengurangi derajat dari multiprogramming.
> Long term: digunakan untuk memilih proses dari pool dan menyimpannya ke memori, digunakan hanya jika proses meninggalkan sistem.
  • Jelaskan apa yang akan dilakukan oleh kernel kepada alih konteks ketika proses sedang berlangsung?
Jawab:
> Pemroses menyiapkan konteks program saat itu yang sedang di eksekusi ke stack.
> Pemroses meng-set register PC dengan alamat awal program untuk interrupt handler.
> Selanjutnya pemroses menjalankan instruksi-instruksi berikutnya di interrupt handler yang melayani interupsi. Pelaksanaan interupsi ini belum tentu mengakibatkan pengalihan ke pross lain (yaitu pengalihan PCB proses dari senarai running ke senarai lain (blocked, ready, dsb) dan sebaliknya). kita menyebut pengalihan konteks adalah untuk pengalihan sementar ayang di lakukan dengan singkat misalnya untuk mengeksekusi interrupt handler.
  • Beberapa single-user mikrokomputer sistem operasi seperti MS-DOS menyediakan sedikit atau tidak sama sekali arti dari pemrosesan yang konkuren. Diskusikan dampak yang paling mungkin ketika pemrosesan yang konkuren dimasukkan ke dalam suatu sistem operasi?
Jawab:
Dampaknya sistem akan sering terganggu atau terjadi error atau sistem hank.
  • Perlihatkan semua kemungkinan keadaan dimana suatu proses dapat sedang berjalan, dan gambarkan diagram transisi keadaan yang menjelaskan bagaimana proses bergerak diantara state.
Jawab:
> Running : Pemroses sedang mengeksekusi instruksi proses itu.
> Ready : Proses ready (siap) di eksekusi tapi pemroses tidak  mengeksekusi proses ini.
> Blocked : Proses menunggu kejadian tertentu selesai, seperti selesainya operasi perangkat masukan / keluaran, tersedianya memori, tibanya pesan jawaban, dsb.
> Suspended Ready : proses yang siap di eksekusi namun mengalami penundaan.
> Suspended Blocked
  • Apakah suatu proses memberikan ’issue’ ke suatu disk I/O ketika, proses tersebut dalam ’ready’ state, jelaskan?
Jawab:
Iya, karena akan mempengaruhi proses itu sendiri sebab jika tidak ada issue pada perangkat input/output maka proses akan menunggu kejadian alokasi sumber daya atau selesainya layanan perangkat input/output (mulainya state ready lalu berubah dari state running menjadi blocked). Dan saat sumber daya yang diperlukan telah tersedia maka proses akan berubah kembali menjadi state ready.
  • Kernel menjaga suatu rekaman untuk setiap proses, disebut Proses Control Blocks (PCB). Ketika suatu proses sedang tidak berjalan, PCB berisi informasi tentang perlunya melakukan restart suatu proses dalam CPU. Jelaskan dua informasi yang harus dipunyai PCB!
Jawab:
> Informasi identifikasi proses : informasi-informasi yang berkaitan dengan identitas proses yang unik.
> Informasi status pemroses : berisi informasi-informasi yang esensinya merupakan nilai/isi dari register-register pemroses.
> Informasi kendali proses : informasi-informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.

Selasa, 06 November 2012

File System Mac-OS

Ok,, langsung saja kita ke TKP...!!! :D

Mac-OS menggunakan file sistem HFS dan HFS + yang merupakan singkatan dari Hierarchial File System. Kelebihan dari file sistem ini adalah memiliki fitur hotsfiles yang bisa menyusun dan merapihkan dirinya sendiri tanpa campur tangan dari usernya atau yang biasa kita kenal dengan defragmentation pada sistem Windows yang masih di kerjakan dan diawasi secara manual. 

Fitur lainnya adalah Journaling, maksudnya adalah aktivitas memantau susunan file sistem, dan dapat memulihakan kembali sesuai dengan pantauan terakhir jika terjadi kerusakan pada file (Corrupt), benturan, gangguan elektris atau harddisk mengalami redundansi sebelum kerusakan-kerusakan ini menimpa file. Dan fitur ini juga bisa di non-aktivkan sesuai dengan kebutuhan si pemakai.

Berikut adalah susunan file sistem yang ada pada Mac-OS
+ Volume/Macintosh HD (sebagai root)
+ Applications
+ Library
+ System
+ User
Direktori Home Anda

Dan pada sistem operasi Mac-OS partisinya di kenal dengan nama volume, 
contohnya: Volumes/Macintosh HD
Mac-OS terinstal pada Volume root. dan untuk file yang berekstensi .dmg dan .iso ketika di running akan di anggap sebagai volume pada sistem operasi ini.

Naaahhh akhirnya selesai juga tugas minggu ini, eehh jadi curhat,, hehehe :D
ok deehh terima kasih kunjungannya, semoga bermanfaat ya,, maaf nih klo infonya kurang lengkap atau ada yang salah mohon di koreksi namanya juga belajar.
ok,, see you next time,,, n_n

Postingan Lama

Blogger Template by Blogcrowds