Perancanaan Remastering Ubuntu 12.04 dengan Remastersys

hooaammmmzzz…. lama ga’ posting nihh,,maklum (sok) sibuk..
udah lama ga update, sekalinya update mau bahas sesuatu yg ‘heugghhh’..
yeahh, it’s about remastering.
Walaupun newbie, saya ada tugas remastering nih untuk matkul OS. nah OS linux yang mau saya remaster adalah Linux Ubuntu 12.04, menggunakan cara yang mudah aja, pake Remastersys.
Ok, sebenernya ada beberapa aplikasi untuk remastering, tapi berdasarkan berbagai sumber, remastersys is the easiest, khususnya buat saya yang masih sangat awam dalam dunia per-linux-an.
Langkah pertama ketika anda-anda mau me-remaster sebuah OS, pikirkan dulu tema-nya apa. (Kalo saya sih, sekarang temanya OS untuk menunjang kegiatan perkuliahan di jurusan TI)
Berikutnya, anda perlu menentukan OS apa yang akan di-remaster.. (jelas ya, dari judulnya, saya akan me-remaster Ubuntu 12.04). Terus, instal di PC anda.. abis itu, upgrade yaa…
Lalu, anda harus membuat daftar paket aplikasi yang perlu ditambahkan pada OS yang akan anda modif.. bagian ini adalah bagian yang bisa dibilang extra very important part. Kenapa saya bilang begitu, karena ini yang akan menjadi jiwa-nya (alah lebayy) OS racikan anda. karena saya mengambil tema TI, saya menambahkan beberapa aplikasi untuk pemrograman seperti : geany, gambas, gnu octave, blufish editor. dan jangan lupa tambahkan aplikasi media player : VLC, audacious, GNOMEPlayer, dan lain-lain sesuka anda..
Jika dirasa ada beberapa paket aplikasi yang perlu dihapus, maka hapus saja sesuka anda (hal ini juga sekalian untuk memperkecil size(ukuran) hasil remasteran).
Oh, iya, untuk memperindah tampilan OS hasil racikan anda, silakan download tema, background, icon, cursor dan apapun yang anda sukai dan aplikasikan.
Jangan lupa mengganti nama dan release OS nya.. Lalu, daftar ke repository lokal..
Setelah selesai semua,

Algoritma penanganan DeadLock_2 (Algoritma Banker)

Banker’s algorithm, atau algoritma banker merupakan algoritma penanganan deadlock selain algoritma ostrich. Banker sendiri diambil dari kata bank. Banker disini memang memiliki arti yang demikian (orang-orang bank), karena algoritma ini mengacu pada sistem perbankan dalam menangani jalan buntu. Artinya, algoritma ini digunakan bank untuk memastikan bahwa pihak bank tidak akan kekurangan sumberdaya (resource), yang tentu saja dalam kasus bank resource adalah uang nasabah. Dalam algoritma Banker, dikenal dua keadaan (state), yaitu keadaan aman (safe state) dan keadaan tidak aman (unsafe state). Keadaan aman adalah keadaan dimana bank masih mempunyai cukup uang(ressource) ketika nasabah bank melakukan penarikan uangnya. Keadaan tidak aman (unsafe state) terjadi ketika nasabah bank melakukan penarikan uang yang melebihi resource (uang) yang ada. Penanganannya, yaitu dengan mengijinkan nasabah melakukan penarikan uang jika penarikan tersebut tidak akan membawa bank kepada kondisi yang tidak aman (unsafe state). Jika penarikan uang membawa bank kepada kondisi tidak aman, maka nasabah harus menunggu sampai ada tambahan uang dari nasabah yang lain di dalam kas bank.
Algoritma banker dikembangkan oleh salah satu orang IT ternama dunia, Edsger Dijkstra. Algoritma ini adalah penanganan deadlock dengan metode penghindaran (avoidance) dengan melakukan alokasi resource.
Untuk menguji tingkat keamanan serta kemungkinan untuk terjadi deadlock, algoritma ini melakukan simulasi yang didasarkan pada jumlah terbanyak sumber daya baru kemudian memeriksa kondisi aman terhadap segala kemungkinan keadaan deadlock dari seluruh proses yang sedang berada pada posisi pending, baru kemudian mengalokasikan resource..
banker
Hal penting yang perlu diperhatikan dalam penggunaan algoritma banker adalah tentang apa saja yang harus diketahui ataupun dimiliki sehingga algoritma ini dapat berjalan :
1. Jumlah resource (sumberdaya) dari setiap proses yang mungkin diminta (direquest).–>request
2. Jumlah resource (sumberdaya) dari setiap proses yang sedang dipakai (hold).–>max
3.jumlah sisa resource yang masih dimiliki oleh sistem.–available

Resource hanya boleh/bisa diberikan untuk dipakai pada suatu proses jika:
1. request ≤ max, jumlah permintaan (request) tidak lebih banyak dari jumlah maksimum resource.
2. request ≤ available, jumlah request tidak boleh lebih banyak dari jumlah resource yang tersedia. jika tidak proses harus menunggu hingga resource yang diminta ada.

Algoritma penanganan DeadLock_1 (Algoritma Ostrich)

Dalam penanganan deadlock, dikenal beberapa algoritma. Seperti yang pernah saya ulas beberapa waktu lalu tentang penanganan deadlock, ada beberapa algoritma yang dapat digunakan untuk menangani deadlock.
macet
Algoritma Ostrich
Untuk menangani deadlock, dapat dilakukan dengan cara mengabaikannya. Mengabaikannya? Yes! Terdengar seperti bukan solusi? Tapi ini memang benar-benar salah satu solusi yang dapat dilakukan untuk menangani deadlock. Sebagai user, kita berasumsi bahwa deadlock adalah hal yang sangat jarang terjadi sehingga kita abaikan masalah mengenai deadlock (dalam artian seolah-olah tidak ada masalah). Bagi sebagian orang mungkin ini agak membingungkan, bagaimana mungkin menangani masalah dengan ‘mengabaikannya’. Yeah, begitu pula saya. Dalam algoritma ostrich, user berasumsi bahwa lebih efektif memungkinkan deadlock terjadi daripada upaya untuk mencegah terjadinya deadlock karena membutuhkan biaya yang lebih tinggi. Pusing kan? Intinya sih : mengabaikannya.
Algoritma Ostrich dapat diimplementasikan dengan dua pendekatan trade-offs dan pendekatan Hybrid.
Pendekatan Hybrid menggunakan algoritma Ostrich diimplementasikan dengan menentukan bahwa kasus deadlock sangat jarang atau bahkan tidak terjadi. sedangkan pendekatan Trade-off yang dimaksud di sini adalah bahwa jika kondisi/keadaan berubah atau belum teridentifikasi, masalah yang sangat jarang(langka) dapat kembali terjadi.

Terjadi deadlock??abaikan saja, pura-pura tidak terjadi apa-apa..
:-)

DeadLock pada sistem operasi

Ketika menggunakan komputer, pernah kah terjadi hang, not responding atau bahkan layar monitor hanya berwarna biru saja? Barangkali itu adalah salah satu jenis dari deadlock pada Sistem Operasi kita. Deadlock adalah keadaan dimana dua proses atau lebih saling menunggu meminta sumberdaya untuk waktu yang tidak tertentu(terbatas) lamanya.
deadlock
Deadlock sering dianalogikan dengan keadaan jalan raya yang mogok(macet) ataupun jalan buntu.
Masalah deadlock terjadi karena penggunaan sumberdaya (resources) yang digunakan secara bersama-sama.

Penyebab terjadinya deadlock adalah :
a. mutual exclusion, yaitu suatu keadaan dimana hanya ada satu proses saja yang boleh memakai resource, proses yang lain harus menunggu sampai proses tadi benar-benar selesai. contoh mutual exclusion adalah “buffering” ketika kita menonton video.
b. Hold and Wait,yaitu keadaan dimana suatu proses ‘kelaparan’ sumberdaya. Suatu proses menunggu suatu sumberdaya dalam waktu yang lama hingga sumberdaya tersebut tidak terpakai oleh proses lainnya.
c. No Pre-emption, yaitu keadaan dimana suatu sumberdaya tidak boleh diambil(dipakai) begitu saja/secara paksa oleh proses yang lainnya sehingga suatu proses harus menunggu hingga proses yang sedang memakai sumberdaya benar-benar telah selesai.
d. circular wait, yaitu suatu keadaan dimana proses yang lain membutuhkan sumberdaya yang sedang dipakai oleh suatu proses sehingga timbul antrian melingkar (waiting chain) seperti halnya rantai.
Keempat penyebab timbulnya deadlock hampir sama yaitu penggunaan sumber daya dan waktu tunggu oleh suatu proses atau lebih.

Berikut adalah beberapa cara untuk menangani deadlock :
1. Cara pencegahan (prevention), yaitu mencegah terjadinya deadlock. Dalam hal ini, penyebab deadlock harus diketahui sebelumnya kemudian memastikan bahwa slah satu keadaan yang penting tidak akan meninmbulkan deadlock.
2. Cara penolakan/menghindari (avoidance), yaitu melakukan pendataan terhadap proses-proses yang kira-kira akan menghabiskan sumberdaya.
3. Detection and Recovery, yaitu mendeteksi dan memperbaiki. Mendeteksi sistem apasaja yang terlibat jika terjadi deadlock, setelah mendeteksi, sistem diperbaiki.
4. Mengabaikan deadlock, yaitu membiarkan deadlock seolah tidak terjadi apa-apa dan membiarkan deadlock tersebut mematikan program. Hal ini merupakan algoritma Ostrich untuk menangani deadlock.

Regards..

Penjadwalan CPU

Istilah penjadwalan CPU sebenarnya ada ketika komputer mulai mengenal multi programming/multi tasking.. dimana beberapa pekerjaan dapat dilakukan dalam satu waktu. Oleh karena itu, agar CPU dapat bekerja dan mengeksekusi semua program aktif secara efektif dan efisien, diperlukan penjadwalan pada CPU.
penjadwalan cpu

Ketika CPU dalam keadaan idle(tidak ada yg dieksekusi), maka OS(yang dalam hal ini adalah short term scheduling) akan memilih suatu proses untuk dimasukkan pada antrian (queue) agar berstatus ready(siap eksekusi). Scheduling/penjadwalan akan memilih satu dari beberapa proses yang telah ready (siap eksekusi) , yang kemudian mengalokasikan CPU agar mngeksekusinya.
Penjadwalan CPU akan dijalankan saat proses :
1. Berubah dari running ke waiting state

2. Berubah dari running ke ready state

3. Berubah dari waiting ke ready

4. Terminates

Kriteria dalam penjadwalan CPU :
a. CPU Utilization :menjaga agar CPU tetap sibuk, range 0-100 persen, normalnya adalah 40 s/d 90 persen.
b. Throughput : banyaknya proses yang dieksekusi dalam satuan waktu. Untuk proses yang cepat bisa saja 10 proses per detik, sedangkan untuk proses yang lama, mungkin akan memakan waktu 1proses/jam.
c. Turnaround time : selang waktu(interval) yang dibolehkan dalam menyelesaikan eksekusi suatu proses.
d. Waiting time : waktu tunggu dalam antrian ready.
e. Response time : waktu untuk memulai menanggapi (merespon) , tapi bukan waktu yang digunakan output untuk response tersebut

OS support HyperThreading technology

Banyak sekali Sistem Operasi yang mendukung teknologi Hyper Threading, baik yang closed source seperti Windows maupun yang open source seperti Linux.

Berikut adalah operating system dari kedua jenis OS (Windows dan Linux) yang mendukung HTT (HyperThreading Technology) :

Linux(atau yg berbasis UNIX) :

OS solaris (baik Solaris2 maupun open Solaris) mendukung HTT dengan multithreadingg jenis many to many.

Untuk sistem multithreading jenis One to One, OS yang mendukungnya adalah RedHat Linux, Suse Linux, RedFlag Linux dan COSIX.

Windows :

Hampir semua OS Windows mendukung sistem Multithreading jenis one to one seperti : Windows NT, Windows 2000 semua versi, Windows 98 dan Windows 98 SE serta Windows ME.

pada Multi Threading one to one, setiap user-level thread diletakkan pada kernel thread. Sedangkan pada jenis many to many, membolehkan setiap user-level thread dipetakan ke banyak kernel dan membolehkan OS membuat sejumlah kernel thread. Untuk jenis Many to One, beberapa thread user-level dipetakan kedalam single thread, penggunaannya pada sistem tidak memerlukan dukungan kernel thread.

 

Teknologi Hyper Threading, Dispatching algorithm

Sebelum membahas apa itu hyper threading, kita perlu mengetahui dulu apa yg dimaksud dengan thread itu sendiri. Thread adalah pecahan proses (bagian dari proses). Hyperthreading terdiri dari dua kata : hyper (lebih/banyak) dan threading : thread. Teknologi Hyper Threading sendiri adalah teknologi yang memungkinkan menjalankan banyak thread dengan syarat-syarat kemampuan tertentu.

Teknologi Hyper Threading dikenalkan oleh intel pada quarter pertama 2002, yaitu teknologi pada mikroprosesor dengan arsitektur intel NetBurst dan Core termasuk didalamnya adalah Core 2, pentium D, Xeon dan Pentium 4.

Prosesor jenis ini secara fisik adalah satu prosesor, namun secara logika seperti dua prosesor. Beberapa Sistem Operasi seperti Windows NT , Windows XP Profesional, Windows 2000, Windows Vista dan GNU/Linux adalah sistem operasi yang akan membaca prosesor ini sebagai dua prosesor. Hal tersebut sekaligus membuat kinerja sistem lebih efektif dan efisien karena beberapa thread dapat dieksekusi dengan cepat.  Sistem operasi tersebut bersifat multitasking, namun karena prosesor dibaca sebagai dua prosesor, Sistem operasi akan menjalankan dan mengeksekusi program/thread secara berurutan (sekuensial) dengan algoritma antrian yang dikenal dengan dispatching algorithm.

Dispatching algorithm merupakan suatu algoritma (logika) antrian. Karena terdapat banyak proses maupun thread dalam sebuah sistem komputer, maka harus dilakukan pengaturan(penjadwalan) proses. Proses mana yang akan dijalankan terlebih dahulu, mana yang berikutnya hingga thread2 ataupun proses selesai di eksekusi secara berurutan.