Search Engine

TRANSLATOR

Friday, January 15, 2010

SISTEM TRANSPORTASI DI INDONESIA

Indonesia memiliki wilayah yang luas dari Sabang hingga Merauke, serta memiliki banyak pulau dan laut yang luas. Untuk pergi ke suatu tempat di Indonesia, selalu diperlukan informasi mengenai alat transportasi yang bisa digunakan untuk menuju suatu daerah tersebut. Bahkan untuk menuju daerah yang terpencil, kita tidak bisa menuju ke sana dengan hanya menggunakan satu jenis alat transportasi, misalnya dari Jakarta ke Yahukimo, yang harus menaiki pesawat terlebih dahulu ke Jayapura, sebelum naik bus menuju Yahukimo.

Setelah mengetahui alat transportasi yang perlu digunakan untuk menuju suatu tempat, kita perlu mengetahui berapa besar biaya yang diperlukan, kapan bisa berangkat ke sana, lama waktu yang diperlukan untuk pergi ke sana, serta informasi lain yang berkaitan dengan perjalanan dan alat transport. Maka dari itu, diperlukan adanya suatu sistem basis data yang memberikan informasi lengkap mengenai sistem transportasi kaitannya dengan perjalanan untuk mempermudah dan memperjelas pengaturan sistem transportasi di Indonesia.

Alat transportasi umum yang utama di Indonesia adalah kereta api, bus, kapal, dan juga pesawat. Pembuatan database mengenai perjalanan alat transportasi tersebut juga diperlukan, sehingga bisa memudahkan pengguna dalam mencari informasi mengenai alat transportasi yang akan mereka gunakan.

Tantangan penataan sistem transportasi tidak hanya pada masalah teknologi, tetapi juga pada aspek-aspek perencanaan, manajemen, dan pengoperasian.  Perlu juga disadari bahwa perkembangan ilmu dan teknologi di bidang transport pada beberapa tahun ke depan akan berkembang sangat pesat  Perkembangannya tidak hanya pada aspek teknologi mekanik dan elektrik, tetapi juga ditunjang oleh perkembangan teknologi informasi dan telekomunikasi yang sangat cepat.

Faktor utama untuk menjawab tantangan ini adalah kesiapan sumberdaya manusia dari masing-masing stakeholder, baik dari sisi regulator(pemerintah), operator(pelaku bisnis transportasi), maupun perencana. Dengan demikian diperlukan banyak tenaga ahli yang berbobot untuk menangani berbagai tantangan dan permasalahan tersebut. Meningkatnya tantangan-tantangan sektor transportasi sebegitu jauh belum diimbangi dengan peningkatan jumlah tenaga ahli yang berbobot untuk menangani masalah tersebut baik di lingkungan lembaga pemerintah, asosiasi, pendidikan maupun konsultan yang bekerja di bidang ini.

Tuesday, January 5, 2010

Virtual Memory

1. Latar belakang virtual memory

Sebagian besar algoritma manajemen memori memerlukan satu kebutuhan dasar yaitu instruksi yang akan dieksekusi harus berada di memori fisik. Pada beberapa kasus, keseluruhan program tidak diperlukan. Misalnya :

• Program mempunyai kode untuk menangani kondisi error yang tidak biasa. Karena error-error ini jarang terjadi, kode ini hampir tidak pernah dieksekusi.

• Array, list dan tabel dialokasikan lebih dari kapasitas memori yang diperlukan

• Pilihan dan gambaran program jarang digunakan

2. Konsep 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.

3. Kinerja demand paging

Demand paging memberikan efek yang signifikan dalam kinerja sistem computer. Diasumsikan ma adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai : EAT = (1-p) x ma + p x page_fault-time

Untuk menghitung effective access time, harus diketahui berapa waktu yang diperlukan untuk melayani page fault

4. Konsep page replacement dan algoritma page replacement FIFO optimal dan LRU

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.

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.

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

Algoritma LRU merupakan perpaduan dari algoritma FIFO dan optimal. Prinsip dari algoritma LRU adalah mengganti page yang sudah tidak digunakan untuk periode waktu terlama

5. 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

Managemen Memory

1. Latar belakang manajemen memory

Address Binding, Dynamic loading, Dynamic linking, Overlay

2. Konsep dinamic linking, dinamik loading, overlay, swapping

Dinamic Linking

· Menghubungkan semua rutin yang ada scr dinamis.

· Tidak membuang-buang tempat di disk dan memori (Kumpulan data yang ada dapat digunakan bersama-sama).

· Membutuhkan bantuan sistem operasi (Operating system dibutuhkan untuk memeriksa apakah routine itu ada dalam processes’ memory address).

· Linking dilaksanakan pada execution time.

· Sekumpulan kode kecil yg disebut stub, digunakan untuk mencari memory-resident library routine yang tepat (Stub akan mengganti dirinya sendiri dengan address dari routine, dan kemudian mengeksekusi routine).

· Dynamic linking digunakan untuk file libraries (System also known as shared libraries).

· Kelebihan: ukuran file kecil, irit, dipakai bersama

Kekurangan: jika dll hilang, perbedaaan versi

Dinamic loading

· Memanggil routine yang diperlukan saja pada memory (Routine yang tidak diperlukan, tidak akan dipanggil).

· Tidak memerlukan bantuan sistem operasi.

· Better memory-space utilization(Because unused routine is never loaded).

· Sangat berguna jika menangani banyak kode yg jarang diakses.

· Ketika pemanggilan terjadi rutin pemanggil akan memeriksa di memory, apakah rutin yg dibutuhkan itu sudah ada atau belum, jika belum dipanggil dan dialokasi ke memory

Overlay

Untuk memasukkan suatu proses yang membutuhkan memori lebih besar dari yang tersedia.

• Caranya:

– Data dan instruksi yang diperlukan dimasukkan langsung ke memori utama.

– Routine-nya dimasukkan ke memori secara bergantian. (dibagi-bagi / dipecah2).

– Bagian pendukung lain dimasukkan ke memory sekunder

– Memerlukan algoritma tambahan untuk melakukan overlays.

• Tidak memerlukan bantuan dari sistem operasi. Sulit untuk dilakukan.

Swapping

Sebuah proses harus berada di dalam memori untuk dapat dijalankan.

• Sebuah proses dapat di-swap sementara keluar memori ke sebuah penyimpanan cadangan (backing store) untuk kemudian dikembalikan lagi ke memori.

• Roll out, roll in adalah penjadualan swapping berbasis pada prioritas

proses berprioritas rendah di-swap keluar memori agar proses berprioritas tinggi dapat masuk dan dijalankan dimemori

• Backing store – fast disk large enough to accommodate copies of all memory images for all users

harus dapat direct access ke memory images

3. Konsep alokasi memory(single dan multiple partition allocation)

Single partition: alamat pertama memory yang dialokasikan untuk suatu proses adalah alamat setelah alamat yang dialokasikan untuk proses sebelumnya.

Partisi banyak: adalah dimana Sistem Operasi menyimpan informasi tentang semua bagian memori yang tersedia untuk digunakan (disebut hole).

4. Konsep MFT dan MVT dan akibatnya serta solusi dari akibat tersebut

5. Algoritma pada pengalokasian memory pada partisi dinamis.

• First fit : Mengalokasikan hole pertama yang besarnya mencukupi. Pencarian dimulai dari awal.

• Best fit : Mengalokasikan hole terkecil yang besarnya mencukupi (tepat).

• Next fit : Mengalokasikan hole pertama yang besarnya mencukupi.

– Pencarian dimulai dari akhir pencarian sebelumnya.

• Worst fit : Mengalokasikan hole terbesar yang tersedia.

• First-fit and best-fit better than worst-fit in terms of speed and storage utilization

Deadlock

1. Pengertian deadlock dan latar belakang terjadinya deadlock(penyebab deadlock)!

jika proses 1 sedang menggunakan sumber daya 1 dan menunggu sumber daya 2 yang ia butuhkan, sedangkan proses 2 sedang menggunakan sumber daya 2 dan menunggu sumber daya 1 Atau dengan kata lain saat proses masuk dalam status menunggu, ia tidak akan pernah selesai menunggu sebab sumber daya yang dibutuhkan sedang digunakan oleh proses lain yang sedang menunggu pula

Penyebab Deadllock:

Mutual Exclusion: satu proses satu sumber daya

Hold and Wait : proses yang memegang sumber daya masih bisa meminta sumber daya lain

No Preemption : sumber daya yang sedang digunakan oleh suatu proses tidak bisa sembarangan diambil dari proses tersebut, melainkan harus dilepaskan dengan sendirinya oleh proses.

Circular Wait : setiap proses menunggu sumber daya dari proses berikutnya yg sedang dipakai oleh proses lain.

2. Langkah-langkah pencegahan

• Mencegah Mutual Exclusion

Mutual exclusion benar-benar tak dapat dihindari. Hal ini dikarenakan tidak ada sumber daya yang dapat digunakan bersama-sama, jadi sistem harus membawa sumber daya yang tidak dapat digunakan bersama-sama.

• Mencegah Hold and Wait

Untuk mencegah hold and wait, sistem harus menjamin bila suatu proses meminta sumber daya, maka proses tersebut tidak sedang memegang sumber daya yang lain. Proses harus meminta dan dialokasikan semua sumber daya yang diperlukan sebelum proses memulai eksekusi atau mengijinkan proses meminta sumber daya hanya jika proses tidak membawa sumber daya lain

• Mencegah Non Preemption

Peniadaan non preemption mencegah proses-proses lain harus menunggu. Seluruh proses menjadi preemption, sehingga tidak ada tunggu menunggu.

• Mencegah Kondisi Menunggu Sirkular

Sistem mempunyai total permintaan global untuk semua tipe sumber daya. Proses dapat meminta proses kapanpun menginginkan, tapi permintaan harus dibuat terurut secara numerik. Setiap proses yang membutuhkan sumber daya dan memintanya maka nomor urut akan dinaikkan

3. Cara kerja algo2 utk menghindari deadlock (algo banker, safety, resource-request)

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.

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 Resouce Request

Requesti adalah vector permintaan untuk proses Pi. Jika Requesti[j] = k, maka proses Pi menginginkan k anggota tipe sumber daya Rj. Jika permintaan untuk sumber daya dilakukan oleh proses Pi berikut ini algoritmanya. Request = request vector for process Pi. If Requesti [j] = k then process Pi wants k instances of resource type Rj.

1. Jika Requesti = Needi ke langkah 2. Selain itu, terjadi kondisi error karena proses melebihi maksimum klaim.

2. Jika Requesti = Available, ke langkah 3. Selain itu Pi harus menunggu karena sumber daya tidak tersedia.

3. Alokasikan sumber daya untuk Pi dengan modifikasi state berikut :

Available = Available - Requesti;

Allocationi = Allocationi + Requesti;

Needi = Needi – Requesti;

Jika hasil state alokasi sumber daya adalah selamat, maka sumber daya dialokasikan ke Pi , sebaliknya jika tidak selamat, Pi harus menunggu dan state alokasi sumber daya yang lama disimpan kembali.

4. Perbaikan dari kondisi deadlock

Solusi pertama adalah dengan menghentikan satu atau beberapa proses untuk membebaskan kondisi menunggu sirkular. Pilihan kedua adalah menunda beberapa sumber daya dari satu atau lebih proses yang deadlock.

Terminasi Proses

Untuk memperbaiki deadlock dengan terminasi proses, dapat diguankan salah satu dari dua metode di bawah ini :

• Menghentikan (abort) semua proses yang deadlock

• Menghentikan satu proses setiap waktu sampai siklus deadlock hilang.

Menunda Sumber Daya

Untuk menghilangkan deadlock dengan menunda sumber daya, sumber daya dari proses harus ditunda dan memberikan sumber daya tersebut ke proses lain sampai siklus deadlock hilang.

Sinkronisasi Proses

1. Manfaat utama adanya sinkronisasi proses!

Sinkronisasi diperlukan untuk menghindari terjadinya ketidakkonsistenan data akibat adanya akses data secara konkuren. Diperlukan adanya suatu mekanisme untuk memastikan urutan / giliran pengaksesan suatu data yang saling bekerjasama sehingga terjadi sinkronisasi

2. Pengertian tentang crirical section, dan persyaratan yang harus dipenuhi dalam penyelesaian masalah critical section!

Lebih dari satu proses berlomba-lomba pada saat yang sama untuk menggunakan data yang sama. Setiap proses memiliki segmen kode yang digunakan untuk mengakses data yang digunakan secara bersama-sama. Segmen kode tersebut disebut critical section.

Mutual Exclusion : Tidak ada dua proses yang berada di critical section pada saat yang bersamaan.

Terjadi kemajuan (Progress) :Jika tidak ada proses yang sedang berada di critical section, maka proses lain yang ingin menjalankan critical section dapat masuk ke dalam critical section tersebut.

Ada batas waktu tunggu (Bounded Waiting): Tidak ada proses yang menunggu selama-lamanya untuk masuk ke dalam critical section, Assume that each process executes at a non zero speed, Tidak ada asumsi lain mengenai kecepatan relative setiap proses ataupun jumlah CPU.

3. Cara kerja algo 1,2,3 peterson, dan bakery. Apakah masing2 algo memenuhi persyaratan penyelesaian masalah crirical section!

Algoritma 1

Pemecahan ini menjamin hanya satu proses pada satu waktu yang dapat berada di critical section. Tetapi hal ini tidak memuaskan kebutuhan progress, karena hal ini membutuhkan proses lain yang tepat pada eksekusi dari critical section. Sebagai contoh, apabila turn=0 dan P1 siap untuk memasuki critical section, P1 tidak dapat melakukannya, meskipun P0 mungkin di dalam remainder section – nya.

Algoritma 2

Kelemahan dengan algoritma 1 adalah tidak adanya informasi yang cukup tentang state dari masing-masing proses. Untuk mengatasi masalah ini dilakukan penggantian variabel turn dengan array. Pemecahan ini menjamin mutual exclusion, tetapi masih belum memenuhi progress .

Algoritma 3

Algoritma ini merupakan kombinasi algoritma 1 dan algoritma 2. Harapannya akan didapatkan solusi yang benar untuk masalah critical-section, dimana proses ini menggunakan dua variabel Algoritma ketiga ini memenuhi ketiga kebutuhan diatas yaitu mutual exclusion, progress dan bounded waiting dan memecahkan permasalahan critical section untuk dua proses.

Algoritma bakery

Algoritma Bakery adalah algoritma yang digunakan untuk pemecahan permasalahan critical section pada n proses. Sebelum memasuki critical section, proses menerima nomo. Proses yang mempunyai nomor terkecil dapat memasuki critical section. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j maka Pi dilayani lebih dahulu, sebaliknya Pj akan dilayani lebih dahulu. Skema pemberian nomor selalu membangkitkan nomor dengan menaikkan nilai urut misalnya 1, 2, 3, 3, 3, 3, 4, 5, …..

4. Diskripsi konsep semaphore untuk sinkronisasi

Semaphore S – integer variable untuk menghitung berapa banyak proses yang aktif atau pasif. Semaphore digunakan untuk memberi sinyal. Jika proses menunggu sinyal, maka dia akan ditunda sampai sinyal yg ditunggu tersebut terkirim. Operasi: wait dan signal. Wait dan signal operations tidak dapat diinterupt. Queue digunakan untuk menahan proses proses yang sedang menunggu semaphore