Cigarette

Minggu, 19 Mei 2013

Jenis-Jenis Memori (Media Penyimpanan)


Memori merupakan media penyimpanan data pada komputer, yang mana memory ini dibagi menjadi 2 jenis yaitu :
A.    MEMORI INTERNAL
Memori jenis ini dapat diakses secara langsung oleh prosesor. Memori internal memiliki fungsi sebagai pengingat. Dalam hal ini yang disimpan di dalam memori utama dapat berupa data atau program. Secara lebih tinci, fungsi dari memori utama adalah :
Menyimpan data yang berasal dari peranti masukan sampai data dikirim ke ALU (Arithmetic and Logic Unit) untuk diproses
·         Menyimpan daya hasil pemrosesan ALU sebelum dikirimkan ke peranti keluaran.
·         Menampung program/instruksi yang berasal dari peranti masukan atau dari peranti  pengingat sekunder.
Memori biasa dibedakan menjadi dua macam: ROM dan RAM. Selain itu, terdapat pula memori yang disebut Cache Memory.
1.      ROM
ROM adalah kependekan dari Read Only Memory, yaitu perangkat keras pada komputer berupa chip memori semikonduktor yang isinya hanya dapat dibaca Jenis memori ini datanya hanya bisa dibaca dan tidak bisa ditulis secara berulang-ulang. Memori ini berjenis non-volatile, artinya data yang disimpan tidak mudah menguap (hilang) walaupun catu dayanya dimatikan. Karena itu memori ini biasa digunakan untuk menyimpan program utama dari suatu sistem. ROM pada komputer disediakan oleh vendor komputer dan berisi program atau data.Di dalam PC, ROM biasa disebut BIOS (Basic Input/Output System) atau ROM-BIOS. Instruksi dalam BIOS inilah yang akan dijalankan oleh mikroprosesor ketika komputer mulai dihidupkan. Umumnya proses yang terkandung dalam BIOS secara berurutan adalah sebagai berikut:
ü  Memeriksa isi CMOS.
CMOS (Compmentary Meta-Oxyde Semiconductor) adalah jenis cip yang memerlukan daya listrik dari baterai. Cip ini berisi memori 64-byte yang isinya dapat diganti. Pada CMOS inilah berbagai pengaturan dasar komputer dilakukan, misalnya peranti yang digunakan untuk memuat sistem operasi dan termasuk pula tanggal dan jam sistem.
ü  Memuat penanganan interupsi (interupt handlers) dan pengendali peranti (device driver).
Penanganan interupsi adalah program kecil yang menjadi penerjemah antara perangkat keras dan sistem operasi. Sebagai contoh , jika pemakai menekan tombol keyboard maka isyarat ini dikirimkan melalui penaganan interupsi keyboard.Pengendali peranti adalah program yang bertindak sebagai pemberi identitas bagi perangkat keras tertentu (misalnya scanner) sehingga bisa dikenali oleh sistem operasi.
ü  Menginisialisasi register dan manajemen daya listrik
ü  Melakukan pengujian perangkat keras (POST atau the power-on self-test) untuk memastikan bahwa semua perangkat keras dalam keadaan baik
ü  Menampilkan pengaturan-pengaturan pada sistem
ü  Menentukan peranti yang akan digunakan untuk menjalankan program (ex. : hard disk.
ü  Mengambil isi boot sector. Boot sector juga merupakan sebuah program kecil. Oleh BIOS program ini dimuat ke RAM dan kemudian mikroprosesor akan mengeksekusi perintah-erintah yang sudah berada dalam RAM tersebut.
Jenis ROM
Sampai sekarang dikenal beberapa jenis ROM yang pernah beredar dan terpasang pada komputer, antara lain PROM, EPROMdan EEPROM
a.PROM (Progammable Read-Only-Memory)
Jika isi ROM ditentukan oleh vendor, PROM dijual dalam keadaan kosong dan kemudian dapat diisi dengan program oleh pemakai. Setelah diisi dengan program, isi PROM tak bisa dihapus.
b.EPROM (Erasable Programmable Read-Only-Memory)
Berbeda dengan PROM, isi EPROM dapat dihapus setelah diprogram. Penghapusan dilakukan dengan menggunakan sinar ultraviolet.
c.EEPROM (Electrically Erasable Programmable Read-Only0Memory)
EEPROM dapat menyimpan data secara permanen, tetapi isinya masih bisa dihapus secara elektris melalui program. Salah satu jenis EEPROM adalah Flash Memory. Flash Memory biasa digunakan pada kamera digital, konsol video game, dan cip BIOS.
2.      RAM
Ram (Random-Access Memory) adalah jenis memori yang isinya dapat diganti-ganti selama komputer sihidupkan dan sebagai suatu penyimpanan data yang dapat dibaca atau ditulis dan dapat dilakukan secara berulang-ulang dengan data yang berbeda-beda. Jenis memori ini merupakan jenis volatile (mudah menguap), yaitu data yang tersimpan akan hilang jika catu dayanya dimatikan. Karena alasan tersebut, maka program utama tidak pernah disimpan di RAM. Random artinya data yang disimpan pada RAM dapat diakses secara acak. RAM dibagi lagi menjadi dua jenis, yaitu jenis statik dan jenis dinamik. RAM statik menyimpan satu bit informasi dalam sebuah flip-flop. Jenis RAM ini asyncronous dan tidak memerlukan sinyal clock. RAM statik biasanya digunakan untuk aplikasi-aplikasi yang tidak memerlukan kapasitas memori RAM yang besar. RAM dinamik menyimpan satu bit informasi data sebagai muatan. RAM dinamik menggunakan kapasitansi gerbang substrat sebuah transistor MOS sebagai sel memori elementer. Untuk menjaga agar data yang tersimpan RAM dinamik tetap utuh, data tersebut harus disegarkan kembali dengan cara membaca dan menulis ulang data tersebut kememori. RAM dinamik ini digunakan untuk aplikasi yang memerlukan RAM dengan kapasitas besar, misalnya dalam sebuah komputer pribadi (PC).
Jenis RAM
a.DRAM (Dynamic RAM) adalah jenis RAM yang secara berkala harus disegarkan oleh CPU agar data yang terkandung didalamnya tidak hilang.
b.SDRAM (Sychronous Dynamic RAM) adalah jenis RAM yang merupakan kelanjutan dari DRAM namun telah disnkronisasi oleh clock sistem dan memiliki kecepatan lebih tinggi daripada DRAM. Cocok untuk sistem dengan bus yang memiliki kecepatan sampai 100 MHz.
c.RDRAM (Rambus Dynamic RAM) adalah jenis memory yang lebih cepat dan lebih mahal dari pada SDRAM. Memory ini bisa digunakan pada sistem yang menggunakan Pentium 4.
d.SRAM (Static RAM) adalah jenis memori yang tidak memerlukan penyegaran oleh CPU agar data yang terdapat di dalamnya tetap tersimpan dengan baik. RAM jenis ini memiliki kecepatan lebih tinggi daripada DRAM. SDRAM
e.EDO RAM (Extended Data Out RAM) adalah jenis memori yang digunakan pada sistem yang menggunakan Pentium. Cocok untuk yang memiliki bus denagan kecepatan sampai 66 MHz.
B. MEMORI EKSTERNAL
Merupakan memori tambahan yang berfungsi untuk menyimpan data atau program.Contoh: Hardisk, Floppy Disk
Konsep dasar memori eksternal adalah :
- Menyimpan data bersifat tetap (non volatile), baik pada saat komputer aktif atau tidak.
Memori eksternal biasa disebut juga memori eksternal yaitu perangkat keras untuk melakukan operasi penulisan, pembacaan dan penyimpanan data, di luar memori utama.
Memori eksternal mempunyai dua tujuan utama yaitu sebagai penyimpan permanen untuk membantu fungsi RAM dan yang untuk mendapatkan memori murah yang berkapasitas tinggi bagi penggunaan jangka panjang.
BERBAGAI JENIS MEMORY EKSTERNAL
1.      Berdasarkan Jenis Akses Data
Berdasarkan jenis aksesnya memori eksternal dikelompokkan menjadi dua jenis yaitu :
a. DASD (Direct Access Storage Device) di mana ia mempunyai akses langsung terhadap data.

Contoh :
* Magnetik (floppy disk, hard disk).
* Removeable hard disk (Zip disk, Flash disk).
* Optical Disk.
b. SASD (Sequential Access Storage Device) : Akses data secara tidak langsung (berurutan), seperti pita magnetik.
2. Berdasarkan Karakteristik Bahan :
Berdasarkan karakteristik bahan pembuatannya, memori eksternal digolongkan menjadi beberapa kelompok sebagai berikut:
A.    punched Card atau kartu berlubang
Merupakan kartu kecil berisi lubang-lubang yang menggambarkan berbagai instruksi atau data. Kartu ini dibaca melalui puch card reader yang sudah tidak digunakan lagi sejak tahun 1979.

B. Magnetic disk
Magnetic Disk merupakan disk yang terbuat dari bahan yang bersifat magnetik, Contoh : floppy dan harddisk.
B.     Optical Disk
Optical disk terbuat dari bahan-bahan optik, seperti dari resin (polycarbonate) dan dilapisi permukaan yang sangat reflektif seperti alumunium. Contoh : CD dan DVD.
C.     Magnetic Tape
Sedangkan magnetik tape, terbuat dari bahan yang bersifat magnetik tetapi berbentuk pita, seperti halnya pita kaset tape recorder.
Single Contiguous Allocation
OS akan menempati di bagian memori yang paling atas atau yang paling bawah dan program serta data akan menempati sisa memori berikutnya.
Partitioned Allocation
dilakukan dengan cara membagi memori menjadi beberapa partisi dan masing-masing partisi atau sekat dapat berisi sebuah pekerjaan (job).

-single partition allocation :

Pada single partition allocation diasumsikan sistem operasi
ditempatkan dimemori rendah dan proses user dieksekusi di memori tinggi. Kode dan datasistem operasi harus diproteksi dari perubahan tak terduga oleh user proses.Proteksi dapat dilakukan dengan menggunakan register relokasi (relocation register) dan register limit (limit register).
Register relokasi berisi nilai dari alamatfisik terkecil sedangkan register limit berisi jangkauan alamat logika dan alamatlogika
harus lebih kecil dari register limit.
-multiple partition allocation :
Pada multiple partition allocation, mengijinkanmemori user dialokasikan untuk proses yang berbeda yang berada diantrian input (input queue) yang menunggu dibawa ke memori.
Multiple partition allocation dibagi menjadi 2 skema yaitu:
1Partisi tetap
2.Partisi dinamis
-Partisi tetap (fixed partition
dimanamemori dibagi dalam sejumlahpartisi tetap dan setiap partisi berisi tepat satu proses. Jumlahpartisi terbatas pada tingkat
multiprogramming. Digunakan olehIBM OS/360 yang disebut Multiprogramming with a Fixed number of Task (MFT)
-partisi dinamis (variable partition)
 merupakan MFT yang digeneralisasiyang disebut Multiprogramming with a Variable number of Tasks (MVT). Skema ini digunakan terutama pada lingkungan batch.

Relocatable Partitoned Allocation
Bila beberapa lubang-lubang atau pecahan memori yang tidak mencukupi untuk menampung suatu program yang baru, maka memori dapat dirapatkan dengan cara ditempatkan kembali (rellocatable) mulai dari yang paling atas.
Paged Allocation
dilakukan dengan cara membagi memori menjadi beberapa blok yang masing-masing mempunyai panjang yang tertentu dan sama
Demand Paged Allocation
Demand Paging atau permintaan pemberian halaman adalah salah satu implementasi dari memori virtual yang paling umum digunakan. Sistem Demand Paging pada prinsipnya hampir sama dengan sistem permintaan halaman yang menggunakan swapping, hanya saja pada sistem demand paging, halaman tidak akan dibawa ke dalam memori fisik sampai ia benar-benar diperlukan. Oleh sebab itu dibutuhkan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia diperlukan. Daripada melakukan swapping, keseluruhan proses ke dalam memori utama, digunakanlah yang disebut lazy swapper yaitu tidak pernah menukar sebuah halaman ke dalam memori utama kecuali halaman tersebut diperlukan.
Di beberapa sistem komputer, bila program dan data yang aktif tidak dapat tersimpan semua di main memory, maka simpanan luar (misalnya disk atau tape) dapat digunakan untuk menampung bagian sisa yang tidak dapat ditampung di main memory.
Segmented Allocation
Untuk beberapa kasus suatu program akan terlalu besar untuk dapat diletakkan di main memory. Untuk mengatasi hal ini, beberapa sistem komputer menggunakan cara program overlays. Ketika program dijalankan, program utama diletakkan di main program area dan sebuah program overlay, diletakkan di program overlay area.

MEMORI


Memori merupakan bagian dari komputer yang berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya. Sebagian besar komputer memiliki hirarki memori yang terdiri atas tiga level, yaitu:
·         Register di CPU, berada di level teratas. Informasi yang berada di register dapat diakses dalam satu clock cycle CPU.
·         Primary Memory (executable memory), berada di level tengah. Contohnya, RAM. Primary Memory diukur dengan satu byte dalam satu waktu, secara relatif dapat diakses dengan cepat, dan bersifat volatile (informasi bisa hilang ketika komputer dimatikan). CPU mengakses memori ini dengan instruksi single load dan store dalam beberapa clock cycle.
·         Secondary Memory, berada di level bawah. Contohnya, disk atau tape. Secondary Memory diukur sebagai kumpulan dari bytes (block of bytes), waktu aksesnya lambat, dan bersifat non-volatile (informasi tetap tersimpan ketika komputer dimatikan). Memori ini diterapkan di storage device, jadi akses meliputi aksi oleh driver dan physical device.
Gambar Hirarki Memori :
Komputer yang lebih canggih memiliki level yang lebih banyak pada sistem hirarki memorinya, yaitu cache memory dan bentuk lain dari secondary memory seperti rotating magnetic memory, optical memory, dan sequntially access memory. Akan tetapi, masing-masing level ini hanya sebuah penyempurnaan salah satu dari tiga level dasar yang telah dijelaskan sebelumnya.
Bagian dari sistem operasi yang mengatur hirarki memori disebut dengan memory manager. Di era multiprogramming ini, memory manager digunakan untuk mencegah satu proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary memory, mengatur swapping antara memori utama dan disk ketika memori utama terlalu kecil untuk memegang semua proses.
Tujuan dari manajemen ini adalah untuk:
·         Meningkatkan utilitas CPU
·         Data dan instruksi dapat diakses dengan cepat oleh CPU
·         Efisiensi dalam pemakaian memori yang terbatas
·         Transfer dari/ke memori utama ke/dari CPU dapat lebih efisien

Deadlock


Deadlock
merupakan keadaan dimana dua program memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah.
Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut.

Karakteristik Deadlock
Karakteristik-karakteristik ini harus dipenuhi keempatnya untuk terjadi deadlock. Namun, perlu diperhatikan bahwa hubungan kausatif antara empat karakteristik ini dengan terjadinya deadlock adalah implikasi. Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.

Empat kondisi tersebut adalah:
1.Mutual Exclusion . Kondisi yang pertama adalah mutual exclusion yaitu proses memiliki hak milik pribadi terhadap sumber daya yang sedang digunakannya. Jadi, hanya ada satu proses yang menggunakan suatu sumber daya. Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai menggunakannya. Suatu proses hanya dapat menggunakan secara langsung sumber daya yang tersedia secara bebas.
2.Hold and Wait . Kondisi yang kedua adalah hold and wait yaitu beberapa proses saling menunggu sambil menahan sumber daya yang dimilikinya. Suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhadap sumber daya. Akan tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain. Pada saat yang sama, kemungkinan adanya proses lain yang juga mengalami hal serupa dengan proses pertama cukup besar terjadi. Akibatnya, proses-proses tersebut hanya bisa saling menunggu sampai sumber daya yang dimintanya dilepaskan. Sambil menunggu, sumber daya yang telah dimilikinya pun tidak akan dilepas. Semua proses itu pada akhirnya saling menunggu dan menahan sumber daya miliknya.
3.No Preemption . Kondisi yang selanjutnya adalah no preemption yaitu sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya. Proses yang menginginkan sumber daya tersebut harus menunggu sampai sumber daya tersedia, tanpa bisa merebutnya dari proses yang memilikinya.
4.Circular Wait . Kondisi yang terakhir adalah circular wait yaitu kondisi membentuk siklus yang berisi proses-proses yang saling membutuhkan. Proses pertama membutuhkan sumber daya yang dimiliki proses kedua, proses kedua membutuhkan sumber daya milik proses ketiga, dan seterusnya sampai proses ke n-1 yang membutuhkan sumber daya milik proses ke n. Terakhir, proses ke n membutuhkan sumber daya milik proses yang pertama. Yang terjadi adalah proses-proses tersebut akan selamanya menunggu.


Penanganan Deadlock
4 cara untuk menangani keadaan deadlock, yaitu:
1.Pengabaian.
Maksud dari pengabaian di sini adalah sistem mengabaikan terjadinya deadlock dan pura-pura tidak tahu kalau deadlock terjadi. Dalam penanganan dengan cara ini dikenal istilah ostrich algorithm. Pelaksanaan algoritma ini adalah sistem tidak mendeteksi adanya deadlock dan secara otomatis mematikan proses atau program yang mengalami deadlock. Kebanyakan sistem operasi yang ada mengadaptasi cara ini untuk menangani keadaan deadlock. Cara penanganan dengan mengabaikan deadlock banyak dipilih karena kasus deadlock tersebut jarang terjadi dan relatif rumit dan kompleks untuk diselesaikan. Sehingga biasanya hanya diabaikan oleh sistem untuk kemudian diselesaikan masalahnya oleh user dengan cara melakukan terminasi dengan Ctrl+Alt+Del atau melakukan restart terhadap komputer.
2.Pencegahan.
Penanganan ini dengan cara mencegah terjadinya salah satu karakteristik deadlock. Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem. Intinya memastikan agar sistem tidak akan pernah berada pada kondisi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.
3.Penghindaran.
Menghindari keadaan deadlock. Bagian yang perlu diperhatikan oleh pembaca adalah bahwa antara pencegahan dan penghindaran adalah dua hal yang berbeda. Pencegahan lebih kepada mencegah salah satu dari empat karakteristik deadlock terjadi, sehingga deadlock pun tidak terjadi. Sedangkan penghindaran adalah memprediksi apakah tindakan yang diambil sistem, dalam kaitannya dengan permintaan proses akan sumber daya, dapat mengakibatkan terjadi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.
4.Pendeteksian dan Pemulihan.
Pada sistem yang sedang berada pada kondisi deadlock, tindakan yang harus diambil adalah tindakan yang bersifat represif. Tindakan tersebut adalah dengan mendeteksi adanya deadlock, kemudian memulihkan kembali sistem. Proses pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock atau tidak serta proses mana yang mengalami deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.


Pencegahan Deadlock
Pencegahan deadlock dapat dilakukan dengan cara mencegah salah satu dari empat karakteristik terjadinya deadlock. Berikut ini akan dibahas satu per satu cara pencegahan terhadap empat karakteristik tersebut.
1.Mutual Exclusion .Kondisi mutual exclusion pada sumber daya adalah sesuatu yang wajar terjadi, yaitu pada sumber daya yang tidak dapat dibagi (non-sharable). Sedangkan pada sumber daya yang bisa dibagi tidak ada istilah mutual exclusive. Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.
2.Hold and Wait . Untuk kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu.
3.No Preemption . Pencegahan kondisi ini dengan cara membolehkan terjadinya preemption. Maksudnya bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted. Sumber daya yang dimiliki proses tadi akan diberikan pada proses lain yang membutuhkan dan sedang menunggu. Proses akan mengulang kembali eksekusinya setelah mendapatkan semua sumber daya yang dibutuhkannya, termasuk sumber daya yang dimintanya terakhir.
4.Circular Wait . Kondisi 'lingkaran setan' ini dapat 'diputus' dengan jalan menentukan total kebutuhan terhadap semua tipe sumber daya yang ada. Selain itu, digunakan pula mekanisme enumerasi terhadap tipe-tipe sumber daya yang ada. Setiap proses yang akan meminta sumber daya harus meminta sumber daya dengan urutan yang menaik. Misalkan sumber daya printer memiliki nomor 1 sedangkan CD-ROM memiliki nomor 3. Proses boleh melakukan permintaan terhadap printer dan kemudian CD-ROM, namun tidak boleh sebaliknya.
Penghindaran Deadlock
Penghindaran terhadap deadlock adalah cara penanganan yang selanjutnya. Inti dari penghindaran adalah jangan sembarangan membolehkan proses untuk memulai atau meminta lagi. Maksudnya jangan pernah memulai suatu proses apabila nantinya akan menuju ke keadaan deadlock. Kedua, jangan memberikan kesempatan pada proses untuk meminta sumber daya tambahan jika penambahan tersebut akan membawa sistem pada keadaan deadlock. Tidak mungkin akan terjadi deadlock apabila sebelum terjadi sudah kita hindari.
Langkah lain untuk menghindari adalah dengan cara tiap proses memberitahu jumlah kebutuhan maksimum untuk setiap tipe sumber daya yang ada. Selanjutnya terdapat deadlock-avoidance algorithm yang secara rutin memeriksa state dari sistem untuk memastikan tidak adanya kondisi circular wait serta sistem berada pada kondisi safe state. Safe state adalah suatu kondisi dimana semua proses mendapatkan sumber daya yang dimintanya dengan sumber daya yang tersedia. Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu, kemudian mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan terakhir melepas kembali sumber daya tersebut. Terdapat dua jenis algoritma penghindaran yaitu resource-allocation graph untuk single instances resources serta banker's algorithm untuk multiple instances resources.
Dalam banker's algorithm, terdapat beberapa struktur data yang digunakan, yaitu:
Available . Jumlah sumber daya yang tersedia.
Max . Jumlah sumber daya maksimum yang diminta oleh tiap proses.
Allocation . Jumlah sumber daya yang sedang dimiliki oleh tiap proses.
Need . Sisa sumber daya yang masih dibutuhkan oleh proses, didapat dari max- allocation.
Kemudian terdapat safety algorithm untuk menentukan apakah sistem berada pada safe state atau tidak.

Pendeteksian Deadlock
Pada dasarnya kejadian deadlock sangatlah jarang terjadi. Apabila kondisi tersebut terjadi, masing-masing sistem operasi mempunyai mekanisme penanganan yang berbeda. Ada sistem operasi yang ketika terdapat kondisi deadlock dapat langsung mendeteksinya. Namun, ada pula sistem operasi yang bahkan tidak menyadari kalau dirinya sedang mengalami deadlock. Untuk sistem operasi yang dapat mendeteksi deadlock, digunakan algoritma pendeteksi. Secara lebih mendalam, pendeteksian kondisi deadlock adalah cara penanganan deadlock yang dilaksanakan apabila sistem telah berada pada kondisi deadlock. Sistem akan mendeteksi proses mana saja yang terlibat dalam kondisi deadlock. Setelah diketahui proses mana saja yang mengalami kondisi deadlock, maka diadakan mekanisme untuk memulihkan sistem dan menjadikan sistem berjalan kembali dengan normal.
Mekanisme pendeteksian adalah dengan menggunakan detection algorithm yang akan memberitahu sistem mengenai proses mana saja yang terkena deadlock. Setelah diketahui proses mana saja yang terlibat dalam deadlock, selanjutnya adalah dengan menjalankan mekanisme pemulihan sistem yang akan dibahas pada bagian selanjutnya. Berikut ini adalah algoritma pendeteksian deadlock.
Pemulihan Deadlock
Pemulihan kondisi sistem terkait dengan pendeteksian terhadap deadlock. Apabila menurut algoritma pendeteksian deadlock sistem berada pada keadaan deadlock, maka harus segera dilakukan mekanisme pemulihan sistem. Berbahaya apabila sistem tidak segera dipulihkan dari deadlock, karena sistem dapat mengalami penurunan performance dan akhirnya terhenti.
Cara-cara yang ditempuh untuk memulihkan sistem dari deadlock adalah sebagai berikut:

1.Terminasi proses.
Pemulihan sistem dapat dilakukan dengan cara melalukan terminasi terhadap semua proses yang terlibat dalam deadlock. Dapat pula dilakukan terminasi terhadap proses yang terlibat dalam deadlock secara satu per satu sampai 'lingkaran setan' atau circular wait hilang. Seperti diketahui bahwa circular wait adalah salah satu karakteristik terjadinya deadlock dan merupakan kesatuan dengan tiga karakteristik yang lain. Untuk itu, dengan menghilangkan kondisi circular wait dapat memulihkan sistem dari deadlock.Dalam melakukan terminasi terhadap proses yang deadlock, terdapat beberapa faktor yang menentukan proses mana yang akan diterminasi. Faktor pertama adalah prioritas dari proses-proses yang terlibat deadlock. Faktor kedua adalah berapa lama waktu yang dibutuhkan untuk eksekusi dan waktu proses menunggu sumber daya. Faktor ketiga adalah berapa banyak sumber daya yang telah dihabiskan dan yang masih dibutuhkan. Terakhir, faktor utilitas dari proses pun menjadi pertimbangan sistem untuk melakukan terminasi pada suatu proses.
2.Rollback and Restart . Dalam memulihkan keadaan sistem yang deadlock, dapat dilakukan dengan cara sistem melakukan preempt terhadap sebuah proses dan kembali ke state yang aman. Pada keadaan safe state tersebut, proses masih berjalan dengan normal, sehingga sistem dapat memulai proses dari posisi aman tersebut. Untuk menentukan pada saat apa proses akan rollback, tentunya ada faktor yang menentukan. Diusahakan untuk meminimalisasi kerugian yang timbul akibat memilih suatu proses menjadi korban. Harus pula dihindari keadaan dimana proses yang sama selalu menjadi korban, sehingga proses tersebut tidak akan pernah sukses menjalankan eksekusi.

Algoritma Banker
Algoritma resource allocation graph tidak dapat diaplikasikan pada sistem yang mempunyai beberapa anggota pada setiap tipe sumber daya.  Setiap proses sebelum dieksekusi harus menentukan jumlah sumber daya maksimum yang dibutuhkan.  Jika suatu proses meminta sumber daya kemungkinan proses harus menunggu.  Jika suatu proses mendapatkan semua sumber daya maka proses harus mengembalikan semua sumber daya dalam jangka waktu tertentu.

Struktur data yang digunakan untuk mengimplementasikan algoritma Banker akan menentukan state dari sumber daya yang dialokasikan oleh sistem.  Misalnya n = jumlah proses dan m = jumlah tipe resource.  Struktur data yang diperlukan :
Available :  Vektor panjang m. Jika Available[j] = k, terdapat k anggota tipe sumber daya Rj yang tersedia.
Max : matrik n x m.  Jika Max[i, j] = k, maka proses Pi  meminta paling banyak k anggota tipe resource Rj.
Allocation :  matrik n x m.  Jika Allocation[i, j] = k maka Pi sedang dialokasikan  k anggota tipe resource Rj.
•Need : matrik n x m. Jika Need[i, j] = k, maka Pi  membutuhkan  k anggota tipe resource Rj untuk menyelesaikan task.  Need[i, j] = Max[i, j]Allocation[i, j].
Beberapa notasi yang perlu diketahui adalah misalnya X dan Y adalah vektor dengan panjang n.   X ≤ Y jika dan hanya jika X[i] ≤ Y[i] untuksemua i = 1, 2, .., n. Sebagai contoh jika X = (1, 7, 3, 2) dan Y = (0, 3, 2, 1) maka Y ≤ X.

Algoritma Safety
Algoritma ini untuk menentukan apakah sistem berada dalam state selamat atau tidak.

1.   Work  dan Finish  adalah  vector  dengan  panjang  m dan n.   Inisialisasi : Work  = Available dan Finish[i] = false untuk  i = 1,3, …, n.
2.   Cari i yang memenuhi kondisi berikut :
(a) Finish [i] = false
(b) Needi ≤ Work
Jika tidak terdapat i ke langkah 4.
3.   Work = Work + Allocationi
Finish[i] = true
Kembali ke langkah 2.
4.   Jika Finish [i] == true untuk semua i, maka sistem dalam state selamat.

Algoritma Ostrich

Secara sederhana algoritma ini dapat dikatakan abaikan deadlock seakan-akan tidak ada masalah apapun dengannya. Algoritma ini disadur oleh Sistem Operasi Unix,meskipun memerlukan biaya  yang cukup besar untuk mengatasi sebuah deadlock.
Dengan mengasumsikan bahwa lebih efektif untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya. Pendekatan ini dapat digunakan dalam menangani deadlock pada pemrograman concurrent jika deadlock diyakini sangat jarang terjadi, dan jika biaya untuk mendeteksi atau pencegahan lebih tinggi.

Minggu, 11 November 2012

"Slardar - The Slithereen Guard"


"King Leoric - The Skeleton King"

Hellfire Blast (T)
Ignites the target on fire, dealing damage over time. Deals damage and stuns for 2 seconds followed by a 15% slow for 2 seconds.
Level 1 - 50 Impact Damage and 15 dps while slowed.
Level 2 - 100 Impact Damage and 30 dps while slowed.
Level 3 - 150 Impact Damage and 40 dps while slowed.
Level 4 - 200 Impact Damage and 60 dps while slowed.
• Total damage: 80 / 160 / 230 / 300
Mana Cost: 140
Cooldown: 8
 Vampiric Aura (V)
Allied melee units within 900 AoE gain hit points when they hit enemy units.
Level 1 - Gains 15% of attack damage.
Level 2 - Gains 20% of attack damage.
Level 3 - Gains 25% of attack damage.
Level 4 - Gains 30% of attack damage.
Mana Cost: N/A
Cooldown: N/A
 Critical Strike (C)
Gives 15% chance to do more damage on an attack.
Level 1 - 1.25 times normal damage.
Level 2 - 1.75 times normal damage.
Level 3 - 2.25 times normal damage.
Level 4 - 2.75 times normal damage.
Mana Cost: N/A
Cooldown: N/A
 Reincarnation (R)
When killed the Skeleton King will come back to life and slow enemies in a 700 aoe by 30% for 3 seconds.
Level 1 - 3 seconds delay, slows enemies' movement speed around him by 30%. 300 second cooldown.
Level 2 - 3 seconds delay, slows enemies' movement speed around him by 30%. 220 second cooldown.
Level 3 - 3 seconds delay, slows enemies' movement speed around him by 30%. 140 second cooldown.
Mana Cost: 140
Cooldown: 300/ 220/140 seconds
• Will revive even if silenced on death.
• Will not revive if Skeleton King does not have required mana.
• Will not revive if he dies on unpathable terrain.
• If Skeleton King has an Aegis and Reincarnation is cooled down upon death, Reincarnation will trigger first.
• Revives with full HP and full mana.