Minggu, 16 Mei 2021

PENJADWALAN PREEMPTIVE DAN NONPREEMPTIVE

Definisi Penjadwalan Preemptive

Penjadwalan preemptive adalah salah satu yang dapat dilakukan dalam keadaan ketika suatu proses beralih dari menjalankan status ke status siap atau dari status menunggu ke status siap . Di sini, sumber daya (siklus CPU) dialokasikan ke proses untuk jumlah waktu terbatas dan kemudian dihapus, dan proses tersebut ditempatkan kembali dalam antrian siap lagi jika masih ada sisa waktu burst CPU. Proses tetap dalam antrian siap sampai mendapat kesempatan berikutnya untuk dieksekusi.

Jika proses dengan prioritas tinggi tiba di antrian siap, ia tidak harus menunggu proses saat ini untuk menyelesaikan waktu burst-nya. Sebagai gantinya, proses saat ini terputus di tengah pelaksanaan dan ditempatkan dalam antrian siap sampai proses dengan prioritas tinggi memanfaatkan siklus CPU. Dengan cara ini, setiap proses dalam antrian siap mendapatkan waktu untuk menjalankan CPU. Itu membuat penjadwalan preemptive fleksibel tetapi, meningkatkan overhead beralih proses dari menjalankan negara ke status siap dan ayat.

 

Definisi Penjadwalan Non-Preemptive

Penjadwalan First Come First Served (FCFS) dapat diambil sebagai contoh penjadwalan nonpreemptive. Proses yang meminta pertama dialokasikan ke CPU terlebih dahulu. Penjadwalan ini mudah dikelola oleh antrian First In First Out (FIFO). Jika ada proses datang dalam urutan sebagai P1, P2 dan P3, maka kesempatan pertama diberikan kepada P1. Setelah selesai, P2 akan mengeksekusi. Ketika P2 selesai, P3 akan dieksekusi.

 

Perbedaan Kunci antara Penjadwalan Preemptif dan Non-Preemptif

  1. Perbedaan mendasar antara penjadwalan preemptive dan non-preemptive adalah bahwa dalam penjadwalan preemptive CPU dialokasikan ke proses untuk waktu yang terbatas . Sementara dalam penjadwalan Non-preemptive, CPU dialokasikan untuk proses sampai ia berakhir atau beralih ke status menunggu .
  2. Proses eksekusi dalam penjadwalan preemptif terputus di tengah eksekusi sedangkan proses eksekusi dalam penjadwalan non-preemptif tidak terputus di tengah eksekusi.
  3. Penjadwalan Preemptive memiliki overhead untuk mengalihkan proses dari status siap ke status sedang, vis-ayat, dan mempertahankan antrian siap. Di sisi lain, penjadwalan non-preemptive tidak memiliki overhead untuk mengalihkan proses dari menjalankan status ke status siap.
  4. Dalam penjadwalan preemptive, jika suatu proses dengan prioritas tinggi sering tiba dalam antrian siap maka proses dengan prioritas rendah harus menunggu lama, dan mungkin harus kelaparan. Di sisi lain, dalam penjadwalan non-preemptive, jika CPU dialokasikan untuk proses dengan waktu burst lebih besar maka proses dengan waktu burst kecil mungkin harus kelaparan.
  5. Penjadwalan preemptive cukup fleksibel karena proses kritis diperbolehkan untuk mengakses CPU ketika mereka tiba di antrian siap, tidak peduli proses apa yang sedang dieksekusi saat ini. Penjadwalan non-preemptive adalah kaku karena bahkan jika proses kritis memasuki antrian siap proses yang menjalankan CPU tidak terganggu.
  6. Penjadwalan Preemptive adalah asosiatif biaya karena harus menjaga integritas data bersama yang tidak demikian halnya dengan Penjadwalan Non-preemptive.


Kesimpulan:

Bukannya penjadwalan preemptive lebih baik daripada penjadwalan non-preemptive atau vise-ayat. Semua tergantung pada bagaimana penjadwalan meminimalkan waktu tunggu rata-rata dari proses dan memaksimalkan pemanfaatan CPU.

 

Sabtu, 15 Mei 2021

MASALAH KLASIK SINKRONISASI

Masalah klasik sinkronisasi

ada 3 masalah klasik sinkronisasi yaitu :
1. Bounded-Buffer Problem
2. Readers and writers problem
3. Dining-Philosopers Problem

Bounded Buffer Problem

Bounded Buffer Problem adalah suatu struktur data untuk menampung (buffer) suatu nilai dimana kapasitasnya tertentu/terbatas (bounded). Masalah bounded buffer merupakan salah satu masalah yang menerangkan sinkronisasi antara proses-proses yang berjalan secara konkuren untuk mengakses data yang sama. 

Masalah Bounded Buffer :

  • Masalah ini digeneralisasikan dalam istilah masalah Konsumen Produsen , di mana kumpulan buffer terbatas digunakan untuk bertukar pesan antara proses produsen dan konsumen.
  • Solusi untuk masalah ini adalah, membuat dua semaphore penghitungan "penuh" dan "kosong" untuk melacak masing-masing jumlah buffer penuh dan kosong saat ini.
  • Dalam hal ini Produsen terutama menghasilkan produk dan konsumen mengkonsumsi produk tersebut, tetapi keduanya dapat menggunakan salah satu wadah setiap saat.
  • Kompleksitas utama dari masalah ini adalah kita harus menjaga jumlah container kosong dan penuh yang tersedia.

Solusi untuk produsen adalah baik pergi tidur atau membuang data jika buffer penuh. Ketika konsumen menghapus item dari buffer, maka sistem akan memberitahu produser, yang mulai mengisi buffer lagi. Dengan cara yang sama, ketika produsen menempatkan data ke dalam buffer, maka konsumen lebih baik tidur sambail menunggu buffer terisi penuh.

Solusi dapat dicapai dengan sarana komunikasi antar-proses, biasanya menggunakan Semaphore. Sebuah solusi yang tidak memadai bisa mengakibatkan kebuntuan di mana kedua proses sedang menunggu untuk dibangunkan. Masalahnya juga dapat digeneralisasi untu memiliki beberapa produsen dan konsumen. Kita dapat menerapkan konsep semaphore untuk menyelesaikan masalah tersebut. Disini kita menggunakan tiga buah semaphore yaitu mutex, full dan empty.

  • Mutex digunakan untuk menjamin hanya boleh satu proses yang berjalan mengakses buffer pada suatu waktu, awalnya dinisialisasi sebesar satu (1).
  • Full digunakan untuk menghitung jumlah buffer yang berisi, yang pada awalnya diinisialisasi sebesar nol (0).
  • Sedangkan empty digunakan untuk menghitung jumlah buffer yang kosong, yang awalnya dinisialisasi sebesar ukuran buffer.
  • Readers and Writers Problem

    Readers dan writers problem adalah problem yang memodelkan beberapa proses yang mengakses database yang sama dalam satu waktu sehingga dapat menyebabkan korupsi data. Data dapat berupa buffer, objek, atau file dari suatu program. Terdapat thread yang  membaca dan thread yang menulis. Thread yang membaca disebut reader, sedangkan yang menulis disebut writer. Contoh permasalahan readers and writers adalah sebuah reader sedang membaca objek, kemudian sebuah writer menulis ulang objek data tersebut maka reader akan membaca data yang tidak akurat, karena ada kemungkinan data yang terbaca adalah setengah data lama dan setengah data baru. Solusi pada permasalahan ini adalah:

    - Jika terdapat satu proses menulis (mengubah) basis data, proses lain tidak boleh mengakses basis data, baik membaca atau menulis. Pada masalah ini, writers memiliki prioritas yang lebih tinggi dari pada readers. Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang bekerja. Writer akan memblok semua proses reading oleh readers dan melakukan proses writing. Ketika proses writing selesai, maka proses reading dapat dilanjutkan kembali oleh reader.

    - Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Writer akan ditunda pengerjaannya

     

     

    Dining Philosophers Problem

    Dining Philosophers Prolem
    Masalah ini pertama kali ditulis dan diselesaikan oleh Djikstra pada tahun 1965.Masalah ini memodelkan masalah enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf ada sebuah piring berisi mie dan di antara dua piring yang bersebelahan terdapat sebuah sumpit.


    Solusi Dining – Philosophers Problem ada dua, yakni :

    a.Solusi Waiter
    Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai,orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.

    b.Solusi Hierarki Resource
     Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.

     

Selasa, 04 Mei 2021

PROCESS EXPLORER

 Pengertian

Process Explorer adalah sebuah software buatan Mark Russinovich yang memiliki feature cukup menarik. Walaupun hanya sebuah utility kecil, aplikasi ini sangat powerful dan berguna untuk melihat program apa saja yang sedang berjalan. Sebenarnya, Windows telah menyediakan aplikasi untuk melihat proses program yang sedang berjalan. Anda cukup menekan Ctrl+Alt+Del, lalu akan muncul berbagai pilihan termasuk task manager. Sayangnya, task manager yang disediakan Windows bukanlah power tools.

Dengan Process Explorer, Anda dapat melihat penggunaan CPU dan Memory melalui DLL’s. Aplikasi ini merupakan sebuah portable aplikasi yang berkapasitas 1.45 MB. Untuk menjalankan program ini, Anda cukup mengekstraknya kemudian klik “procexp”. Program pun akan berjalan. Interface aplikasi ini tampak sangat sederhana dan mudah untuk digunakan.

Memahami The Tree View

Ketika Anda pertama kali meluncurkan Process Explorer, Anda disajikan dengan banyak data visual langsung - ada tampilan hierarki pohon dari proses yang berjalan di komputer Anda, termasuk penggunaan CPU dan RAM menggunakan nilai numerik untuk setiap proses. Ada beberapa grafik aktivitas mini yang berjalan di bagian atas di bilah alat, menunjukkan kepada Anda penggunaan CPU, yang dapat diklik untuk ditampilkan di jendela terpisah.

Pasti ada banyak hal yang terjadi, dan akan mudah untuk kewalahan oleh semua yang ada di layar.

Tampilan awal memberi Anda serangkaian kolom yang mencakup:

  • Proses - nama file executable bersama dengan ikon jika ada.
  • CPU - persentase waktu CPU di detik terakhir (atau kecepatan pembaruan apa pun diatur ke)
  • Private Bytes - Jumlah memori yang dialokasikan untuk program ini saja.
  • Set Bekerja - Jumlah RAM aktual yang dialokasikan untuk program ini oleh Windows.
  • PID - pengidentifikasi proses.
  • Deskripsi - deskripsi, jika aplikasi memilikinya.
  • Nama Perusahaan - Yang ini lebih berguna daripada yang kamu pikirkan. Jika ada yang tidak beres, mulailah dengan mencari proses yang tidak dilakukan oleh Microsoft.

Anda dapat mengkustomisasi kolom-kolom ini dan menambahkan banyak opsi lain, atau Anda dapat mengklik salah satu kolom untuk mengurutkan berdasarkan bidang itu. Jika Anda pernah menggunakan Task Manager sebelumnya, Anda mungkin telah mengurutkan berdasarkan Memory atau CPU, dan Anda dapat melakukannya di sini juga.

Mengklik Proses akan beralih antara menyortir dengan nama proses, atau kembali ke tampilan pohon default, yang sangat berguna setelah Anda terbiasa.

Tampilan diperbarui sekali per detik, tetapi Anda dapat pergi ke Lihat -> Perbarui Kecepatan dan sesuaikan seberapa sering pembaruan, yang paling rendah 0,5 detik dan tingkat teratas adalah 10 detik. Jika Anda menggunakannya untuk mengatasi masalah, nilai default mungkin baik-baik saja, tetapi jika Anda ingin menggunakannya sebagai monitor CPU yang duduk di baki sistem, 5 atau 10 detik mungkin menggunakan lebih sedikit CPU saat berjalan di latar belakang.

Anda juga dapat menjeda tampilan di bawah sub-menu yang sama, atau hanya dengan menekan bilah Space. Ini akan membekukan tampilan sebagai snapshot dalam waktu, yang dapat berguna jika Anda mencoba mengidentifikasi proses yang dimulai dan cepat mati, atau jika Anda memutuskan untuk mengurutkan berdasarkan penggunaan CPU dan semua baris terus melompat-lompat.

Namun, dalam kasus proses penutupan yang cepat, Anda ingin menambahkan kolom tambahan ke tampilan default untuk apa pun yang mungkin perlu Anda ketahui, karena mengklik proses yang tidak aktif dalam daftar tidak akan banyak ditampilkan dalam tampilan detail jika proses tidak berjalan, bahkan jika Anda menghentikan semuanya.

Feature, Penggunaan, dan Support

Pada saat task manager menawarkan kesederhaanaan dalam menampilkan informasi seputar penggunaan CPU,  memory, atau sebuah program yang sedang berjalan, Process Explorer menawarkan sesuatu yang lebih advance. Bahkan, Process Explorer dapat menggantikan konfigurasi task manager saat Anda menekan tombol ctrl+alt+del.  Baris pertama menu software ini menampilkan penggunaan I/O, Network, harddisk, CPU, dan Memory. Di sini, Anda dapat memonitornya. Ketika Anda mengklik salah satu menu tersebut, akan muncul window yang memberikan dalam bentuk grafik bar.

Selain itu, aplikasi ini juga memberikan informasi dalam bentuk tree explorer. Di sini, Anda bisa melihat aplikasi apa saja yang sedang berjalan. Anda dapat melakukan berbagai aksi untuk mematikan aplikasi tersebut atau membiarkannya terus berjalan.

Selain dapat berjalan melalui Windows, Process Explore juga dapat Anda jalankan melalui command line. Anda dapat membuka aplikasi ini melalui DOS. Berikut beberapa command line yang dapat dipergunakan:

1.       /e – berguna untuk menjalankan Process Explorer dengan User Account Control administrative.

2.       /s – Process Explorer akan otomatis memilih menjalankan proses dengan ID yang Anda masukkan di sini.

3.       /t – menjalakan Process Explorer dengan minimize dan icon tray saja.

4.       /p [r, h, n, or l] perintah ini digunakan untuk menjalankan prioritas dari Process Explore menjadi realtime, high, normal, atau low.

 

Memahami Semua Warna

  • Objek Baru (Hijau Cerah) - Ketika proses baru muncul di Process Explorer, prosesnya akan berwarna hijau terang.
  • Objek yang Dihapus (Merah) - Ketika suatu proses dibunuh atau ditutup, biasanya akan berkedip merah tepat sebelum menghapus.
  • Proses Sendiri (Cahaya Biru) - Proses yang berjalan sebagai akun pengguna yang sama dengan Process Explorer.
  • Layanan (Light Pink) - Proses Windows Service, meskipun perlu dicatat bahwa mereka mungkin memiliki proses turunan yang diluncurkan sebagai pengguna yang berbeda, dan itu mungkin warna yang berbeda.
  • Proses yang Ditangguhkan (Dark Grey) - Saat proses ditangguhkan, tidak bisa berbuat apa-apa. Anda dapat dengan mudah menggunakan Process Explorer untuk menangguhkan aplikasi. Terkadang aplikasi yang macet akan muncul secara singkat saat Windows sedang menangani macet.
  • Proses Immersive (Biru Terang) - Ini hanyalah cara mewah untuk mengatakan bahwa prosesnya adalah aplikasi Windows 8 menggunakan API baru. Dalam screenshot sebelumnya Anda mungkin telah memperhatikan WSHost.exe, yang merupakan proses "Windows Store Host" yang menjalankan aplikasi Metro. Untuk beberapa alasan, Explorer.exe dan Task Manager juga akan tampil sebagai immersive.
  • Gambar yang Dikemas (Ungu) - proses ini mungkin berisi kode terkompresi yang tersembunyi di dalamnya, atau setidaknya Process Explorer berpikir bahwa mereka melakukannya dengan menggunakan heuristik. Jika Anda melihat proses berwarna ungu, pastikan untuk memindai malware!

Karena jelas ada beberapa tumpang tindih antara skenario yang berbeda ini, warna akan diterapkan dalam urutan prioritas. Jika proses adalah layanan dan ditangguhkan, itu akan ditampilkan dalam warna abu-abu gelap karena warna itu lebih penting.

Dari apa yang telah kami pelajari saat meneliti, pesanan Ditangguhkan> Dikemas> Immersif> Layanan -> Proses Sendiri.

 

Menggunakan Process Explorer untuk Mengganti Task Manager

Process Explorer telah lama digunakan sebagai pengganti yang kuat untuk aplikasi Task Manager yang sebelumnya anemik di setiap versi Windows sebelum Windows 8, dan dengan asumsi Anda menginginkan beberapa kekuatan nyata di tangan Anda, ia bekerja dengan sangat baik sebagai pengganti dalam versi itu juga. Untuk membuat Process Explorer mengganti Task Manager, yang harus Anda lakukan hanyalah memilih Options -> Ganti opsi Task Manager dari menu. Setelah Anda selesai melakukannya, menggunakan CTRL + SHIFT + ESC atau mengklik kanan pada Taskbar akan meluncurkan Process Explorer daripada Task Manager.