Rabu, 06 Desember 2017
Minggu, 03 Desember 2017
Metoda Mengatasi Deadlock
Cara mengatasi deadlock :
A. Pencegahan deadlock (deadlock prevention)
1. Meniadakan mutual exclusion
Deadlock disebabkan terdapatnya pengaksesan eksklusif sumber daya. Jika tidak ada sumber daya ekslusif ke satu proses tunggal, maka tidak pernah dijumpai deadlock. Cara yang ditempuh untuk mengganti pengaksesan eksklusif adalah dengan spooling sumber daya yaitu proses pengakesan sumber daya diantrikan di disk.
2. Mencegah hold and wait
Proses me-request seluruh sumber daya pada sekaligus dan proses terblock samapai seluruh permintaan terpenuhi. Proses ini tidak efisien karena :
3. Mencegah no-preemption, dilakukan dengan alternatif:
Jika sebuah proses yang telah menggenggam (hold) sumber daya tidak diperbolehkan meminta (request) lagi sumber daya, proses harus melepaskan (release) sumber daya tersebut dulu jika diperlukan dapat juga meminta kembali sumber daya yang dilepaskan bersamaan dengan sumber daya tambahannya.
Jika proses meminta sumber daya yang sedang digenggam oleh proses lain, sistem operasi dapat menyela (preempt) proses yang menggenggam dengan meminta melepaskan sumber daya tersebut. Alternatif ini dapat dilakukan jika tidak ada dua proses yang memiliki prioritas yang sama. Contoh kasus ini adalah prosesor.
4. Mencegah Circular wait
Dapat dilakukan dengan mendefinisikan urutan linier dari jenis sumber daya. Jika proses telah dialokasikan pada sumber daya berjenis R maka urutan permintaan berikutnya dari proses tersebut adalah hanya yang berjenis R. Misal sumber daya Ri mendahului Rj dengan urutan i < j. Jika terdapat dua proses A dan B deadlock karena A telah memperoleh Ri dan meminta Rj dan B telah memperoleh Rj dan meminta Ri. Kondisi ini tidak akan terjadi karena pada kasus ini i < j dan juga j < I.
B. Pendeteksian dan pemulihan deadlock (deadlock detection and recovery)
Berbeda dengan Deadlock prevention, deadlock detection tidak membatasi akses sumber daya dan memberi larangan pada proses. Permintaan terhadap sumber daya akan diberikan jika memungkinkan
C. Penghindaran deadlock (deadlock avoidance)
Pada metode ini keputusan dibuat dinamik untuk mengetahui apakah suatu permintaan sumber daya jika dipenuhi dapat menyebabkan deadlock atau tidak.
Dua pendekatan penghindaran deadlock:
Untuk mengetahui kondisi mendatang akan menyebabkan deadlock atau tidak digunakan langkah berikut
Process Initiation Denial
Misal terdapat n proses dan m jenis sumber daya. Didefinisikan dalam bentuk vektor dan matriks
A. Pencegahan deadlock (deadlock prevention)
1. Meniadakan mutual exclusion
Deadlock disebabkan terdapatnya pengaksesan eksklusif sumber daya. Jika tidak ada sumber daya ekslusif ke satu proses tunggal, maka tidak pernah dijumpai deadlock. Cara yang ditempuh untuk mengganti pengaksesan eksklusif adalah dengan spooling sumber daya yaitu proses pengakesan sumber daya diantrikan di disk.
2. Mencegah hold and wait
Proses me-request seluruh sumber daya pada sekaligus dan proses terblock samapai seluruh permintaan terpenuhi. Proses ini tidak efisien karena :
- Proses menjadi lama karena menunggu semua sumber daya yang diminta terpenuhi yang sebenarnya dapat dikerjakan hanya dengan beberapa sumber daya.
- Sumber daya yang sudah dialokasikan pada proses ini mungkin saja tidak langsung digunakan tetapi karena sudah dialokasikan tidak dapat dipakai oleh proses lain.
3. Mencegah no-preemption, dilakukan dengan alternatif:
Jika sebuah proses yang telah menggenggam (hold) sumber daya tidak diperbolehkan meminta (request) lagi sumber daya, proses harus melepaskan (release) sumber daya tersebut dulu jika diperlukan dapat juga meminta kembali sumber daya yang dilepaskan bersamaan dengan sumber daya tambahannya.
Jika proses meminta sumber daya yang sedang digenggam oleh proses lain, sistem operasi dapat menyela (preempt) proses yang menggenggam dengan meminta melepaskan sumber daya tersebut. Alternatif ini dapat dilakukan jika tidak ada dua proses yang memiliki prioritas yang sama. Contoh kasus ini adalah prosesor.
4. Mencegah Circular wait
Dapat dilakukan dengan mendefinisikan urutan linier dari jenis sumber daya. Jika proses telah dialokasikan pada sumber daya berjenis R maka urutan permintaan berikutnya dari proses tersebut adalah hanya yang berjenis R. Misal sumber daya Ri mendahului Rj dengan urutan i < j. Jika terdapat dua proses A dan B deadlock karena A telah memperoleh Ri dan meminta Rj dan B telah memperoleh Rj dan meminta Ri. Kondisi ini tidak akan terjadi karena pada kasus ini i < j dan juga j < I.
Berbeda dengan Deadlock prevention, deadlock detection tidak membatasi akses sumber daya dan memberi larangan pada proses. Permintaan terhadap sumber daya akan diberikan jika memungkinkan
Pengecekan deadlock dilakukan setiap kali ada permintaan sumber daya. Pendeteksian deadlock ini menguntungkan karena algoritmanya mudah hanya didasari perubahan state dan tidak mengkonsumsi waktu prosesor yang banyak.
Setelah dideteksi ada deadlock dilakukan beberapa strategi pemulihan berikut :
- Keluarkan seluruh proses yang mengalami deadlock.
- Salin setiap proses yang deadlock ke titik pengecekan yang telah didefinisikan sebelumnya dan mulai kembali dari awal seluruh proses. Resikonya deadlock bisa terjadi lagi tapi karena proses kongkurensi tidak menentu hal ini tidak terjadi.
- Sela (preempt) sumber daya sampai tidak ada deadlock.
Pada metode ini keputusan dibuat dinamik untuk mengetahui apakah suatu permintaan sumber daya jika dipenuhi dapat menyebabkan deadlock atau tidak.
Dua pendekatan penghindaran deadlock:
- Jangan memulai proses jika proses tersebut akan menghasilkan deadlock
- Jangan penuhi permintaan penambahan sumber daya jika alokasi ini dapat menyebabkan proses jadi deadlock
Untuk mengetahui kondisi mendatang akan menyebabkan deadlock atau tidak digunakan langkah berikut
Process Initiation Denial
Misal terdapat n proses dan m jenis sumber daya. Didefinisikan dalam bentuk vektor dan matriks
Yang memiliki hubungan
Jadi suatu proses akan dimulai hanya jika
Resource Allocation Denial
State : sumber daya yang sedang dialokasikan pada suatu proses
Safe state : state yang setidaknya memiliki satu urutan yang dapat menyebabkan seluruh proses selesai tanpa deadlock (Completion without deadlock)
Contoh safe state dengan total sumber daya R1 = 9, R2 = 3 dan R3 =6
Contoh unsafe state
Tidak ada sumber daya yang dapat dialokasikan agar proses selesai karena sumber daya yang available tidak mencukupi
Pengertian dan Kondisi Deadlock
Deadlock terjadi jika proses menunggu suatu kejadian tertentu yang tidak pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses yang ada di kumpulan menunggu suatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu.
Prinsip Deadlock:Deadlock dapat didefinisikan sebagai blocking permanen pada beberapa proses yang saling berkompetisi maupun berkomunikasi untuk memperoleh suatu sumber daya
2. Consumable resource
Prinsip Deadlock:Deadlock dapat didefinisikan sebagai blocking permanen pada beberapa proses yang saling berkompetisi maupun berkomunikasi untuk memperoleh suatu sumber daya
Sumber daya dapat dikatagorikan secara umum menjadi:
1. Reusable resource
Didefinisikan sebagai :Sumber daya yang dapat digunakan dengan aman oleh satu proses pada suatu saat. Terdapat tiga kondisi perlakukan sumber daya oleh proses yaitu : request – hold – release.
Contoh reusable resource :
- Processor
- I/O channel
- Main memory dan secondary memory
- Device
- File
- Database
- Semaphore
Contoh deadlock yang melibatkan reusable resource
Misal terdapat dua proses yang berkompetisi untuk mengakses disk file (D) dan tape drive (T)
Deadlock terjadi jika masing-masing proses memegang (hold) sumber daya dan meminta (request) sumber daya yang lain yang dipegang oleh proses yang lain. Cara mengatasinya dengan memberi batasan pada disain sistem untuk perintah request (Constraint on design system).
Merupakan sumber daya yang dapat dibuat atau dilenyapkan. Kondisi tidak terblock menghasilkan proses-proses yang siap melepaskan sumber daya saat suatu sumber daya diperlukan oleh sebuah proses sumber daya tersebut akan muncul.
Contoh consumable resource :
- interrupt
- sinyal
- message
- informasi dalam I/O buffer
Contoh Deadlock yang melibatkan consumable resource :
Deadlock terjadi jika pesan Recive terblock di salah satu proses.
Beberapa kondisi yang memungkinkan terjadinya deadlock:
- Mutual exclusion :hanya satu proses yang boleh menggunakan sebuah sumber daya pada suatu saat
- Hold and wait :suatu proses dapat mememegang (hold) sumber daya yang sebenarnya ditunggu-tunggu oleh proses lain
- No preemption :Tidak ada sumber daya yang dapat dipaksa lepas dari suatu proses yang memegangnya
- Circular wait :Rantai tertutup yang menyatakan suatu proses memegang sumber daya yang diperlukan oleh proses lain sehingga terjadi saling menunggu
Circular Wait |
Sabtu, 25 November 2017
Penjelasan Kongkurensi
Proses-proses disebut kongkuren jika proses-proses (lebih dari 1 proses) berada pada saat yang sama. Proses-proses kongkuren dapat sepenuhnya tak bergantung dengan lainnya tapi dapat juga saling berinteraksi/kerjasama. Proses-proses yang berinteraksi memerlukan sinkronisasi/koordinasi agar terkendali dengan baik.
Contoh Kasus :
Sambil menunggu selesainya layanan (misalnya transfer data oleh modem) pemakai dapat berinteraksi dengan aplikasi lain seperti aplikasi permainan game atau mengetikkan perintah pada text editor. Proses tersebut harus berjalan konkuren dan tidak terjadi deadlock (hang).
Kegiatan yang berhubungan dengan kongkurensi :
- Alokasi waktu pemroses untuk proses-proses yang aktif
- Pemakaian bersama & persaingan mendapatkan sumber daya
- Komunikasi antar proses
- Sinkronisasi aktivitas banyak proses
Kesulitan dalam Kongkurensi:
- Pemakaian bersama sumber daya global
- Pengelolaan sumber daya agar optimal
- Pencarian kesalahan pemrograman
Penanganan Kongkurensi:
- Mengetahui proses-proses yang aktif
- Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap proses yang aktif
- Proteksi data dan sumber daya fisik proses
- Hasil-hasil proses harus independen
Persaingan dan Kerjasama Antar Proses
Persaingan antar proses terjadi ketika beberapa proses akan menggunakan sumber daya yang sama. Jika ada 2 proses yang akan mengakses ke suatu sumber daya tunggal, kemudian satu proses dialokasikan ke sumber daya tersebut oleh SO → proses yang lainnya akan menunggu.
Pada kasus yang ekstrim, proses yang menunggu tersebut ada kemungkinan tidak akan pernah mendapatkan akses ke sumber daya sehingga tidak akan pernah selesai dengan sempurna. Hal ini juga terjadi akibat antar proses yang saling tidak peduli. Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik.
Meskipun proses-proses tidak bekerja bersama, SO perlu mengatur persaingan diantara proses-proses itu dalam memperoleh sumber daya yang terbatas
Contoh :
- Dua buah aplikasi (word & corel) berusaha mengakses printer yang sama.
- Bila kedua aplikasi mengakses printer yang sama benar-benar secara bersamaan maka kedua proses akan memperoleh hasil yang tidak di kehendaki.
Kondisi dan Masalah
Beberapa kondisi dan masalah yang dapat muncul pada kongkurensi antara lain :
- Mutual exclusion
Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu, sedangkan proses lain dilarang mengerjakan hal yang sama. Contoh : sumberdaya printer hanya bisa diakses 1 proses, tidak bisa bersamaan → sumber daya ini disebut sumber daya kritis
- Deadlock
Adalah banyak proses yang saling menunggu hasil dari proses yang lain untuk dapat melanjutkan atau menyelesaikan tugasnya.
Misal : 2 proses P0 dan P1
2 sumber daya R0 dan R1
P0 meminta sumberdaya R0.
Sumber daya R1 dialokasikan ke P1.
Skenario yang menimbulkan deadlock :
P0 dialokasikan R0
P1 dialokasikan R1
P0 sambil masih menggenggam R0, meminta R1
P1 sambil masih menggenggam R1, meminta R0
Terjadi deadlock karena sama-sama akan saling menunggu
Starvation
Adalah suatu proses akan menunggu suatu kejadian atau hasil suatu proses lain, supaya dapat menyelesaikan tugasnya, tetapi kejadian yang ditunggu tidak pernah terjadi karena selalu diambil lebih dulu oleh proses yang lain.
Contoh :Terdapat tiga proses, yaitu P1, P2 dan P3.
- P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik
- Skenario berikut terjadi :
- P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu sumber daya R.
- Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
- Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
- Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R.
- Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).
Sabtu, 18 November 2017
Penjadwalan Proses
Penjadwalan CPU terjadi pada sistem operasi yang mempergunakan multiprogramming. Penjadwalan berupa kumpulan kebijakan untuk menentukan proses mana yang harus dikerjakan CPU dan berapa lama proses tersebut berjalan.
Tujuan penjadwalan adalah mengusahakan agar CPU tetap sibuk. Pada saat CPU menunggu operasi I/O, scheduler menyeleksi proses di main memory yang memiliki status ready untuk dieksekusi. Penjadwalan tipe ini disebut Short-term scheduller. Scheduler pada short-term ini dikenal dengan nama dispatcher
Tipe-tipe Penjadwalan
Kelemahan Round-Robin
Semakin kecil quantum time maka switching akan sering terjadi
Tujuan penjadwalan adalah mengusahakan agar CPU tetap sibuk. Pada saat CPU menunggu operasi I/O, scheduler menyeleksi proses di main memory yang memiliki status ready untuk dieksekusi. Penjadwalan tipe ini disebut Short-term scheduller. Scheduler pada short-term ini dikenal dengan nama dispatcher
Tipe-tipe Penjadwalan
- Short-term scheduller : ready→ running
- Medium-term scheduller : suspended→ ready
- Long-term scheduller : batch (new)→ ready
Untuk mengukur kinerja scheduler digunakan beberapa kriteria :
- Fairness: Proses-proses diperlakukan sama yaitu setiap proses akan mendapatkan pembagian waktu secara adil
- CPU utilization: CPU dikondisikan agar tetap sibuk, yang dinyatakan dengan rasio waktu sibuk
- Throughput: Ini hanya terjadi pada saat CPU sibuk yaitu banyaknya job yang dikerjakan dalam satu satuan waktu
- Turnaround Time: Banyaknya waktu yang diperlukan untuk mengeksekusi proses sampai selesai, dari mulai menunggu untuk meminta tempat di main memory, menunggu di ready queue (waiting time), dieksekusi dan selesai. Sasaran dari scheduller adalah meminimalkan timearound time.
- Response Time: Waktu yang dibutuhkan oleh suatu proses dari minta dilayanai sampai ditanggapi.
Strategi Penjadwalan
- Penjadwalan nonpreemptive: Begitu diberi jatah waktu pemroses maka prosesor tidak dapat diambil alih oleh proses lain sampai proses itu selesai (run to completion)
- Penjadwalan Preemptive: Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih oleh proses lain sehingga proses disela sebelum selesai dan akan dilanjutkan setelah jatah waktu pemroses kembali padanya.
Algoritma Penjadwalan
A. First Come First Served (FCFS)
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu.
Algoritma ini termasuk non-preemptive
Average Waiting Time (AWT) tinggi. AWT adalah total waktu menunggu dari semua proses dibagi jumlah proses
Misal ada 3 proses : P1, P2 dan P3 yang meminta layanan CPU
Jika urutan kedatangan P1, P2, P3
Gant Chart
Waktu tunggu untuk tiap-tiap proses
AWT = (0+24+27)/3 = 17 ms
B. Short Job First Scheduling (SJF)
Proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu
Misal ada 4 proses : P1, P2, P3 dan P4
Gant Chart
Kelemahan SJF : sulitnya mengetahui CPU burst time berikutnya. Cara mengatasinya dengan memprediksi CPU Burst Time berikutnya menggunakan rata-rata eksponensial dari burst time sebelumnya.
Sebagai contoh α = 0,5
Pada awalnya t1 = 6 dan Ï„1 = 10 sehingga
Ï„2 = 0,5*6 + (1-0,5)*10 = 8
Nilai ini akan digunakan untuk mencari Ï„3
Ï„3=(0.5)*4+ (1-0.5)*8=6
Strategi penjadwalan SJF adalah non-preemptive dan preemptive. Misal ada proses P1 yang datang pada saat P0 sedang berjalan. Pada Preemptive jika CPU burst P1 lebih kecil dari sisa waktu yang dibutuhkan P0 maka P0 akan diberhentikan dulu dan CPU dialokasikan untuk P1.
Penjadwalan SJF secara Preemptive dikenal dengan shortest remaining time first scheduling
Contoh Preemptive penjadwalan SJF:
Misal terdapat 4 proses
Gant chart :
Proses yang lebih tiba dulu akan diproses, setelah itu lihat CPU burst paling kecil.
Waktu tunggu untuk tiap proses
AWT = (9+0+15+2)/4 = 6,5 ms
C. Priority Scheduling
Pada strategi ini CPU akan dialokasikan untuk proses yang memiliki prioritas tertinggi. Jika beberapa proses memiliki prioritas yang sama maka akan digunakan algortima FCFS. Priority scheduling dapat bersifat preemptive maupun non preemptive
Contoh : terdapat 5 proses dengan CPU burst
Gant Chart
Waktu tunggu untuk tiap-tiap proses
AWT = (6+0+16+18+1)/5 = 8,2 ms
Prioritas biasanya menyangkut : waktu, memori yang dibutuhkan, banyaknya file yang boleh dibuka, rasio antara rata-rata I/O burst dan rata-rata CPU/burst
Pada strategi ini CPU akan dialokasikan untuk proses yang memiliki prioritas tertinggi. Jika beberapa proses memiliki prioritas yang sama maka akan digunakan algortima FCFS. Priority scheduling dapat bersifat preemptive maupun non preemptive
Contoh : terdapat 5 proses dengan CPU burst
Gant Chart
Waktu tunggu untuk tiap-tiap proses
AWT = (6+0+16+18+1)/5 = 8,2 ms
Prioritas biasanya menyangkut : waktu, memori yang dibutuhkan, banyaknya file yang boleh dibuka, rasio antara rata-rata I/O burst dan rata-rata CPU/burst
D. Round-Robin Scheduling
Konsep dasar algoritma ini adalah time sharing
Digunakan quantum time untuk membatasi waktu eksekusi
Bersifat preemptive, proses yang burst timenya melebihi quantum time akan mengantri di posisi ekor dari ready queue.
Misal quantum time 4 ms
Gant chart
AWT=(6+4+7)/3= 5.7 ms
Semakin kecil quantum time maka switching akan sering terjadi
Rabu, 15 November 2017
Penjelasan Graph
Graph dalam Bahasa Inggris memiliki arti yang sama dengan grafik. Graph atau Graf adalah suatu diagram yang memuat informasi tertentu jika diinterpretasikan secara tepat.
Dalam kehidupan sehari-hari, graf digunakaan untuk menggambarkan macam-macam struktur yang ada. Tujuannya adalah sebagai visualisasi objek-objek agar lebih mudah dimengeri.
Contoh graf :
- Struktur organisasi,
- Bagan alir pengambilan mata kuliah,
- Peta,
- Rangkaian listrik.
Tiap-tiap diagram memuat sekumpulan objek (kotak, titik dll) beserta garis-garis yang menghubungkan objek-objek tersebut (jarak, berat, dll). Garis bisa berarah ataupun tidak berarah. Garis yang berarah biasanya digunakan untuk menyatakan hubungan yang mementingkan urutan objek. Urutan objek akan mempunyai arti yang lain jika arah dirubah. Sedangkan garis yang tidak berarah digunakan untuk menyatakan hubungan antar objek-objek yang tidak mementingkan urutan.
Suatu Graf G terdiri dari 2 himpunan yang berhingga, yaitu himpunan titik-titik tidak kosong (symbol V(G)) dan himpunan garis-garis (symbol E(G)). Titik atau simpul atau point biasa disebut juga Vertex atau node. Garis atau rusuk atau sisi disebut edge
Istilah-Istilah dalam Graf.
1. Titik Ujung: Titik yang menghubungakan setiap garis.
2. Loop: Garis yang hanya berhubungan dengan satu titik ujung.
3. Garis Paralel: Dua garis berbeda yang menghubungakan titik yang sama
4. Adjacent (berhubungan): Dua titik dikatakan adjacent jika ada garis yang menghubungkan keduanya.
5. Titik Terasing (Isolating Point): Titik yang tidak mempunyai garis yang berhubungan dengannya
6. Graf Kosong: Graf yang tidak mempunyai titik (sehingga tidak mempunyai garis)
7. Graf Berarah (Directed Graph/Digraph): Jika semua garis pada graf tersebut memiliki arah.
8. Graf Tak Berarah (Undirected Graph): Jika dalam graf tersebut semua garisnya tidak berarah.
Selasa, 14 November 2017
Contoh Kasus Best First Seach
Contoh Kasus
Permasalahan mencari jarak terdekat antara kota Arad dengan Bucharest menggunakan metode Best First search.
Solusi
Best First search merupakan metode yang menggunakan nilai heuristic, pada permasalahan ini heuristik yang digunakan adalah jarak kota-kota terhadap kota Bucharest jika ditarik garis lurus yang jaraknya seperti yang tertera di atas dengan asumsi kota terhubung yang letaknya paling dekat dengan kota Bucharest adalah jalan yang paling optimal.
Diagram pohon langkah-langkah penelusuran dengan metode Best First Search adalah sebagai berikut :
Permasalahan mencari jarak terdekat antara kota Arad dengan Bucharest menggunakan metode Best First search.
Solusi
Best First search merupakan metode yang menggunakan nilai heuristic, pada permasalahan ini heuristik yang digunakan adalah jarak kota-kota terhadap kota Bucharest jika ditarik garis lurus yang jaraknya seperti yang tertera di atas dengan asumsi kota terhubung yang letaknya paling dekat dengan kota Bucharest adalah jalan yang paling optimal.
Diagram pohon langkah-langkah penelusuran dengan metode Best First Search adalah sebagai berikut :
Dari Langkah-langkah di atas, didapatkan kota-kota yang harus dilalui untuk mendapatkan jalan yang paling dekat jaraknya dari Arad ke Bucharest dengan metode Best First Search adalah : Arad – Sibiu – Fagaras – Bucharest. Dari peta di atas, panjang jalan yang dilalui adalah 140+99+211 = 450 km.
Referensi:
Russel, S and Novig, P.(2009). Artificial Intelligence: A Modern Approach, 3rd ed. Pp. 92-93
Minggu, 29 Oktober 2017
Istilah-Istilah Didalam Sistem Operasi
- Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi komputer, tugasnya yaitu melayani bermacam-macam program aplikasi untuk mengakses perangkat keras (hardware) komputer secara aman.
- Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua perangkat atau antara perangkat dan aplikasi.
- device dependent adalah perangkat keras komputer yang tidak dapat berdiri sendiri atau tidak dapat terintegrasi kedalam komputer tanpa adanya software pendukung dalam hal ini disebut driver.
- Time-sharing adalah metode dimana banyak pengguna dapat melakukan processing dalam satu komputer.
- Real Time System adalah sistem yang memiliki deadline/jangka waktu penyelesaian tertentu/ditentukan, namun tetap mengutamakan ketepatan dan performa yang tinggi dalam prosesnya.
- Program Residen adalah program yang secara otomatis akan aktif (start) bersamaan dengan di-load nya OS. Program yang berada dalam memory (RAM) dan selalu stand by untuk digunakan sewaktu-waktu.
- Floating-point atau bilangan titik mengambang, adalah sebuah format bilangan yang dapat digunakan untuk merepresentasikan sebuah nilai yang sangat besar atau sangat kecil.
- Fetching merupakan peristiwa pengambilan perintah dan data yang diperlukan. Fetch merupakan proses mengambil atau membawa instruksi dari memori utama ke CPU.
Sabtu, 28 Oktober 2017
Istilah-istilah pada Jaringan Komputer
- Collision Domain adalah segmen jaringan fisik (physical) di mana paket data dapat bertabrakan dengan satu sama lain ketika dikirim pada medium bersama, khususnya, bila menggunakan protokol jaringan Ethernet.
- Bandwidth adalah kapasitas maksimum dari suatu jalur komunikasi yang dipakai untuk mentransfer data dalam hitungan detik. Fungsi bandwidth adalah untuk menghitung transaksi data.
- Router adalah sebuah alat untuk mengirimkan paket data melalui jaringan atau internet untuk dapat menuju tujuannya, proses tersebut dinamakanrouting.
- Switch adalah suatu jenis komponen jaringan komputer yang digunakan untuk menghubungkan beberapa HUB dalam membentuk jaringan komputer yang lebih besar atau menghubungkan komputer-komputer yang memiliki kebutuhan akan bandwidth yang cukup besar.
Sabtu, 21 Oktober 2017
Threads Sistem Operasi
Apa itu threads
- Sebuah alur kontrol dari sebuah proses.
- Cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan.
Process vs threads (perbedaan)
- Proses adalah program yang sedang dalam keadaan eksekusi, sedangkan threads merupakan alur kontrol dari sebuah proses.
- Dibandingkan process threads lebih ekonomis dalam pembuatannya karena Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.
- Proses memiliki IP address masing-masing. sedangkan thread memiliki IP address yang digunakan secara bersama-sama dari proses yang menciptakannya.
Fungsi threads
- Tetap Merespon meskipun sebagian dari suatu program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.
- Membuat sebuah aplikasi dapat mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
- Membagi memori dan sumber daya yang dimilikinya sehingga dapat menghemat sisi ekonomi untuk membuat thread dan context switching
Multithreading
- Cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkam efek seperti menjalakan beberapa task secara bersamaan walaupun otaknya hanya satu.
- Multi-threading mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Contohnya multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
Kesimpulan
Thread adalah sebuah alur kontrol dari sebuah proses. Thread terbagi menjadi 2 macam, salah satunya multi threads yang fungsinya mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Perbedaannya dengan proses salah satunya thread lebih ekonomis dan waktu untuk membuat thread lebih sedikit dibandingkan proses.
Referensi
- Sri Kusumadewi. 2000. Sistem Operasi . Edisi Dua. Graha Ilmu. Yogyakarta.
- Bambang Hariyanto. 1997. Sistem Operasi . Buku Teks Ilmu Komputer . Edisi
Kedua. Informatika. Bandung. - Stallings W. 2012. OPERATING SYSTEMS. Internal and Design Priciples. Seventh Editon. New Jersey.
Sabtu, 14 Oktober 2017
SDLC dan Fase Perancangan Basis Data
A. SDLC (Software Development Life Cycle)
SDLC(Software Development Life Cycle) adalah tahapan-tahapan atau siklus pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun dan mengembangkan suatu sistem perangkat lunak. Berikut ini tahap-tahap SDLC.
1. Analisis sistem, merupakan tahap awal dalam sebuah siklus SDLC, dimana akan dilakukan berbagai macam analisis terhadap sebuah sistem yang sudah ada, dan bagaimana nantinya sebuah sistem akan berjalan oleh seorang analisis sistem. Hal ini termasuk di dalamnya adalah sebagai bentuk kelebihan dan kekurangan sistem, fungsi dari sistem, hingga berbagai macam pembaruan yang bisa saja diterapkan pada sebuah sistem.
Lebih lengkapnya analisa sistem adalah tahap di mana dilakukan beberapa aktivitas berikut:
• Melakukan studi literatur untuk menemukan suatu kasus yang bisa ditangani oleh sistem.
• Brainstorming dalam tim pengembang mengenai kasus mana yang paling tepat dimodelkan dengan sistem.
• Mengklasifikasikan masalah, peluang, dan solusi yang mungkin diterapkan untuk kasus tersebut.
• Analisa kebutuhan pada sistem dan membuat batasan sistem.
• Mendefinisikan kebutuhan sistem.
2. Implementasi, adalah dimana progammer akan menulis kode program.
3. Tesing, suatu perangkat lunak akan dilakukan pengujian untuk menghasilkan produk yang berkuwalitas. Aktivitas pada tahap ini mencari debugger atau kesalahan dalam sistem yang sedang dibangun, memperhitungkan kemudahan dan kenyamanan dalam penggunaan sistem.
4. Pemeliharaan, pemeliharaan dilakukan untuk memastikan bahwa sistem yang digunakan oleh pihak pengguna benar-benar sudah stabil dan terbebas dari error dan bug. Lamanya waktu pemeliharaan sangat bervariasi. Namun pada umumnya sistem informasi yang kompleks membutuhkan masa pemeliharaan dari enam bulan hingga seumur hidup program aplikasi.
5. Pengembangan, pada tahap ini suatu akan dikembangkan fitur-fitur suatu perangkat lunak sehingga menjadi mudah dan nyaman digunakan oleh pengguna dan dapat mengikuti perkembangan zaman sehingga perangkat lunak tersebut tidak usang.
B. Fase Perancangan Basis Data
1.Pengumpulan data dan analisa
Dalam Pengumpulan data dan analisa dilakukan identifikasi dan analisa kebutuhan-kebutuhan data. Untuk menentukan kebutuhan-kebutuhan suatu sistem database, pertama-tama harus menegnal bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem database, termasuk para pemakai yang ada dan para pemakai yang baru serta aplikasi-aplikasinya. Setelah itu kebutuhan-kebutuhan dari para pemakai dan aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalisa. Aktifitas-aktifitas pengumpulan data dan analisa :
Dalam Pengumpulan data dan analisa dilakukan identifikasi dan analisa kebutuhan-kebutuhan data. Untuk menentukan kebutuhan-kebutuhan suatu sistem database, pertama-tama harus menegnal bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem database, termasuk para pemakai yang ada dan para pemakai yang baru serta aplikasi-aplikasinya. Setelah itu kebutuhan-kebutuhan dari para pemakai dan aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalisa. Aktifitas-aktifitas pengumpulan data dan analisa :
- Menentukan kelompok pemakai dan bidang-bidang aplikasinya
- Peninjauan dokumentasi yang ada
- Analisa lingkungan operasi dan pemrosesan data
- Daftar pertanyaan dan wawancara
2. Perancangan basis data secara konseptual
Tujuan pada fase ini adalah menghasilkan konseptual skema untuk database yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data model seperti ER/EER model selama fase ini. Dalam konseptual skema, kita harus merinci aplikasi-aplikasi database yang diketahui dan transaksi-transaksi yang mungkin.
Aktifitas paralel perancangan database secara konseptual :
Tujuan pada fase ini adalah menghasilkan konseptual skema untuk database yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data model seperti ER/EER model selama fase ini. Dalam konseptual skema, kita harus merinci aplikasi-aplikasi database yang diketahui dan transaksi-transaksi yang mungkin.
Aktifitas paralel perancangan database secara konseptual :
- Perancangan skema konseptual : menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari fase 1, dan menghasilkan sebuah conceptual database schema pada DBMS independent model data tingkat tinggi seperti EER (enhanced entity relationship) model.
- Perancangan transaksi : menguji aplikasi-aplikasi database dimana kebutuhan-kebutuhannya telah dianalisa pada fase 1, dan menghasilkan perincian transaksi-transaksi ini.
Pemilihan database ditentukan oleh beberapa faktor, diantaranya:
- Struktur data Jika data yang disimpan dalam database mengikuti struktur hirarki, maka suatu jenis hirarki dari DBMS harus dipikirkan.
- Personal yang telah terbiasa dengan suatu sistem Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar.
- Tersedianya layanan penjual keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu memecahkan beberapa masalah sistem.*
- Teknik Keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational, network, hierarchical, dll), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dll.
Fase selanjutnya dari perancangan database adalah membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada fase 2. Pada fase ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada fase 2 ke dalam model data dari DBMS yang dipilih pada fase 3.
Pemetaan diproses dalam 2 tingkat :
- Pemetaan system-independent : Pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data tersebut.
- Penyesuaian skema ke DBMS yang spesifik : mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang dipilih.
5. Perancangan basis data fisik
Perancangan database secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file database untuk mencapai penampilan yang terbaik pada bermacam-macam aplikasi. Selama fase ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur akses. Petunjuk pemilihan perancangan database secara fisik :
- Response time: Waktu yang telah berlalu dari suatu transaksi database yang diajukan Untuk menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang ditunjuk oleh suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi.
- Space Utility: Jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur-Struktur jalur akses.
- Transaction throughput: Rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem database, dan merupakan parameter kritis dari sistem transaksi (misal, digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentual awal dari struktur penyimpanan dan jalur akses untuk file-file database.
Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan sistem database. Perintah-perintah dalam DDL dan SDL(storage definition language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema database dan file-file database (yang kosong) kemudian database tersebut dimuat (disatukan) dengan datanya. Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke database yang baru. Transaksi-transaksi database sekarang harus dilaksanakan oleh para programmmer aplikasi.
Minggu, 08 Oktober 2017
Struktur Sistem Operasi
1. Struktur sederhana
Sistem operasi yang kecil, sederhana dan terbatas pada hardware, contohnya MSDOS dan UNIX
Terdapat dua fasilitas layanan interrupsi :
b. UNIX
Terdiri dari Kernel dan program sistem. Kernel berisi sistem file, penjadwalan CPU, manajemen memori dan system call. Program sistem memanggil fungsi yang ada pada kernel.
2. Struktur Monolitik
Merupakan struktur sederhana yang dilengkapi dengan dual mode berupa kumpulan prosedur yang dapat dipanggil bila diperlukan dan dieksekusi pada monitor mode. Jika user program melakukan trap pada kernel, intruksi akan berpindah dari user mode ke monitor mode dan mentransfer kontrol ke sistem operasi. Sistem operasi akan mengecek parameter dari pemanggilan tersebut untuk menentukan system call mana yang memanggil, lalu sistem operasi menunjuk ke suatu tabel yang berisi system call yang dimaksud, setelah system call selesai, kontrol dikembalikan ke user program.
Kelemahan sistem monolithic
Sistem operasi dibagi menjadi modul-modul (modular) dan tiap modul memiliki hirarki top-down. Modul yang merupakan lapisan bawah akan melayani lapisan di atasnya.
Contoh : UNIX termodifikasi, THE, Venus dan OS2
Struktur THE :
Awalnya struktur ini melakukan simulasi mesin nyata dan hasil simulasi berupa mesin virtual yang digunakan user, kemudian berkembang menjadi emulator sistem operasi yang memungkinkan sistem operasi diemulasikan pada sistem operasi yang berbeda. Mula-mula digunakan pada IBM S/370 dengan VM370-nya.
Contoh emulasi sistem operasi
Sistem operasi berupa kumpulan proses yang dapat dikategorikan :
Sistem operasi yang kecil, sederhana dan terbatas pada hardware, contohnya MSDOS dan UNIX
a. MSDOS
MSDOS menggunakan single tasking dan single mode (tanpa proteksi hardware).Terdapat dua fasilitas layanan interrupsi :
- Layanan ROM BIOS
- Layanan di MS DOS
b. UNIX
Terdiri dari Kernel dan program sistem. Kernel berisi sistem file, penjadwalan CPU, manajemen memori dan system call. Program sistem memanggil fungsi yang ada pada kernel.
2. Struktur Monolitik
Merupakan struktur sederhana yang dilengkapi dengan dual mode berupa kumpulan prosedur yang dapat dipanggil bila diperlukan dan dieksekusi pada monitor mode. Jika user program melakukan trap pada kernel, intruksi akan berpindah dari user mode ke monitor mode dan mentransfer kontrol ke sistem operasi. Sistem operasi akan mengecek parameter dari pemanggilan tersebut untuk menentukan system call mana yang memanggil, lalu sistem operasi menunjuk ke suatu tabel yang berisi system call yang dimaksud, setelah system call selesai, kontrol dikembalikan ke user program.
Kelemahan sistem monolithic
- Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik karena sangat besar ukurannya sementara sebenarnya tidak memerlukan seluruh layanan yang disedikan kernel
- Pengujian dan penghilangan kesalahan sulit dilokalisasi dan bila ada kesalahan dapat mematikan seluruh sistem
- Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang yang sama
Sistem operasi dibagi menjadi modul-modul (modular) dan tiap modul memiliki hirarki top-down. Modul yang merupakan lapisan bawah akan melayani lapisan di atasnya.
Contoh : UNIX termodifikasi, THE, Venus dan OS2
Struktur THE :
- Lapis-5 : user program
- Lapis-4 : buffering untuk I/O device
- Lapis-3 : operator-console device driver
- Lapis-2 : manajemen memori
- Lapis-1 : penjadwalan CPU
- Lapis-0 : hardware
Keunggulan Struktur Berlapis
- Karena sistem dibagi menjadi beberapa modul, tiap lapisan dapat dirancang dan diuji secara independen
Kelemahan Struktur Berlapis
- Fungsi-fungsi sistem operasi harus diberikan ke setiap lapisan secara hati-hati
Awalnya struktur ini melakukan simulasi mesin nyata dan hasil simulasi berupa mesin virtual yang digunakan user, kemudian berkembang menjadi emulator sistem operasi yang memungkinkan sistem operasi diemulasikan pada sistem operasi yang berbeda. Mula-mula digunakan pada IBM S/370 dengan VM370-nya.
Contoh emulasi sistem operasi
- Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi Win16. Aplikasi tersebut dijalankan sebagai masukan bagi subsistem di MS-Windows NT yang mengemulasikan system calls yang dipanggil aplikasi dengan WIN32 API.
- IBM mengembangkan WABI yang mengemulasikan WIN32 API sehingga diharapkan sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS Windows.
- Pada LINUX ada DOSEMU untuk menjalankan aplikasi DOS pada LINUX, dan WINE untuk menjalankan aplikasi MS Windows pada LINUX.
Sistem operasi berupa kumpulan proses yang dapat dikategorikan :
- Server : proses yang menyediakan layanan
- Client : proses yang meminta layanan
Kelemahan Struktur Client Server
- Layanan dilakukan lambat karena harus melalui pertukaran pesan yang dapat menjadi bottleneck(Dapat juga dikarenakan perangkat keluaran (output) tidak dapat mengimbangi kinerja perangkat pemrosesan sehingga memperlambat kerja system secara keseluruhan).
Keunggulan Struktur Client Server
- Pengembangan dapat dilakukan secara modular
- Kesalahan pada sub sistem tidak akan mematikan seluruh sistem
- Dapat diadaptasikan pada sister terdistribusi
6. Struktur Berorientasi Obyek
Sistem operasi mengerjakan layanan sebagai obyek, tiap obyek berisi (encapsulated) struktur data dan operasi data dan diberi tipe sesuai dengan propertinya (proses, direktori, berkas). Contoh : Window NT, Medusa, X-kernel
Pelayanan Sistem Operasi (pada programmer)
Eksekusi Program
Operasi I/O
Manipulasi sistem file (pembuatan, penghapusan, write, read)
Komunikasi
Pendeteksian kesalahan
Sistem operasi mengerjakan layanan sebagai obyek, tiap obyek berisi (encapsulated) struktur data dan operasi data dan diberi tipe sesuai dengan propertinya (proses, direktori, berkas). Contoh : Window NT, Medusa, X-kernel
Pelayanan Sistem Operasi (pada programmer)
Eksekusi Program
Operasi I/O
Manipulasi sistem file (pembuatan, penghapusan, write, read)
Komunikasi
Pendeteksian kesalahan
Langganan:
Postingan (Atom)
Lihat Juga
Mengenal Keempat Tipe Kecerdasan Buatan (AI)
Kecerdasan Buatan (AI) telah menjadi topik utama dalam banyak diskusi teknologi dan inovasi saat ini. Namun, bagaimana kita mendefinisikan d...