Saturday - May 10, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 7 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Stored Procedure SQL Server Untuk Mengirim E-mail Dengan Komponen JMail (3010)

»

Tips Security: Tanda-tanda Komputer Anda Sudah Terinfeksi Virus Komputer (4497)

»

Komputer: Sejarah, Perkembangan dan Penerapannya - Bagian II (26433)

»

Konfigurasi Jaringan Mandrake 10 dan Windows XP untuk File Sharing (6829)

»

Cara Koneksi dari PHP ke Database MySQL (5571)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Eksplorasi Proses pada Windows 9x/Me - Bagian I

Author: Ario Sutomo
Published: June 30, 2005
Visits: 4276 - Category: Microsoft Windows
 
     
 

Ekplorasi didasarkan pada literatur-literatur dan aplikasi Help mengenai sistem operasi Windows dan aplikasi-aplikasi lainnya yang dinilai dapat membantu, serta penelitian dengan cara mencoba langsung pada program menggunakan Borland Delphi 5 dalam lingkungan Windows 98SE. Semua istilah “proses” dan “thread” yang ada dalam tulisan ini mengacu pada “proses” dan “thread” yang ada pada sistem operasi Windows 9x/ME, sedangkan fungsi-fungsi yang disebutkan mengacu kepada fungsi Win32 API. Namun sebelum masuk ke dalam proses & hasil eksplorasi, ada baiknya jika dibahas dulu mengenai teorinya.

Apa itu Proses & Thread?
Proses merupakan konsep pokok dalam sistem operasi. Konsep ini pertama kali dipakai pada sistem operasi Multics pada tahun 60-an. Banyak sekali definisi tentang proses, diantaranya adalah seperti yang dituliskan berikut ini.

Pada Microsoft® Win32® Programmer’s Reference dijelaskan:

“A process, in the simplest terms, is an executing program. One or more threads run in the context of the process. A thread is the basic unit to which the operating system allocates processor time. A thread can execute any part of the process code, including parts currently being executed by another thread.”

(Index: Processes and Threads)

Ben Ezzel dan Jim Blaney mengemukakan bahwa:

“Threads are closely related to processes. A process is a program loaded into memory, complete with all the resources assigned to the program, but a process is static and does nothing by itself.

A thread executes program commands, following a path through the code. Every process possesses one initial thread. Optionally, the initial thread (also called the primary thread) may create other threads. All the threads belonging to one process share the assets of that process. They all follow instructions from the same code image, refer to the same global variables, write to the same private address space, and have access to the same objects. Think of a process as being house that is inhabited by threads.”

(Chapter Fourteen: Multiple Threading Applications)

Menurut Stallings:

“To distinguish the two characteristics, the unit of dispatching is usually referred to as a thread, or lightweight process, whereas the unit of resource ownership is usually still referred to as a process, or task.”

(Stallings, 1995:135)

Secara singkat Gary J. Nutt juga mengemukakan bahwa:

“A process is a sequential program in execution.”

(Nutt, 2000: 30)

dan

“A thread is an entity that executes using the program and other resources of its associated process.”

(Nutt, 2000: 38)

Dari definisi-definisi di atas bisa disimpulkan bahwa thread sangat erat kaitannya dengan proses, dan setiap satu proses pasti memiliki minimal satu thread yang disebut dengan primary thread. Yang membedakan dari keduanya adalah sisi karakteristiknya, yaitu proses merupakan suatu entitas kepemilikan sumber daya dan thread merupakan entitas penjadwalan / pengeksekusian.

Nutt juga menggambarkan tentang komponen-komponen proses sebagai berikut:

  • Code atau objek program merupakan sesuatu (thread) yang akan dieksekusi.
  • Data merupakan tempat yang diatasnya akan dieksekusi program.
  • Resources merupakan sumber daya yang diperlukan program.
  • Process Status merupakan status dari proses.

Sedangkan thread-thread yang terdapat di dalam proses digambarkan sebagai berikut:

Status Proses
Berdasarkan diagram state dasar (three state), suatu proses bisa memiliki salah satu dari tiga status berikut:

  • Running: Pemroses sedang mengeksekusi instruksi pada proses itu.
  • Ready: Proses siap (ready) dieksekusi, tapi pemroses tidak tersedia untuk eksekusi proses ini.
  • Blocked: Proses menunggu kejadian/event untuk melengkapi tugasnya. Misalnya proses menunggu: selesainya operasi I/O device, tersedianya memori, tibanya pesan jawaban, dsb.

Hubungan ketiga state dasar digambarkan dengan diagram state berikut.

Gambar tersebut menunjukkan transisi di antara state-state selama siklus hidup proses.

  • Proses yang baru diciptakan akan segera mempunyai state ready.
  • Proses berstatus running menjadi blocked, karena sumber daya yang diminta belum tersedia atau meminta layanan I/O devices, sehingga menunggu event muncul. Proses menunggu event alokasi sumber daya atau selesainya layanan I/O devices (event wait).
  • Proses berstatus running menjadi ready, karena penjadwal memutuskan eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis (timeout).
  • Proses berstatus blocked menjadi ready saat sumber daya yang diminta/diperlukan tersedia atau layanan I/O devices selesai (event occurs).
  • Proses berstatus ready menjadi running, karena penjadwal memutuskan penggunaan pemroses untuk proses itu karena proses yang saat itu running berubah state¬-nya atau telah selesai sehingga disingkirkan dari sistem.

Sebenarnya, ada juga diagram state lanjut (five state) yang terdiri dari dua state tambahan: suspended-ready dan suspended-blocked. Tapi itu tidak akan di bahas di tulisan ini. Silahkan baca-baca di buku sistem operasi karangan Stallings dan/atau Tanenbaum.

Strategi Penjadwalan
Terdapat dua strategi penjadwalan, yaitu:

  1. Penjadwalan nonpreemptive (run-to-completion)
    Begitu proses diberi jatah waktu pemroses, maka pemroses tidak dapat diambil alih oleh proses lain selama proses yang sedang dieksekusi itu belum selesai.
  2. Penjadwalan preemptive
    Saat proses diberi jatah waktu pemroses, maka pemroses dapat diambil alih oleh proses lain (istilahnya di-preempt), sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu.

Algoritma Penjadwalan
Terdapat banyak algoritma penjadwalan seperti First-In First-Out (FIFO), Shortest Job First (SJF), Highest Ratio Next (HRN), Multiple-Feedback Queues (MFQ), Round-Robin (RR), Shortest Remaining First (SRF), Priority Scheduling (PS), dan Guaranteed Scheduling (GS), baik nonpreemptive maupun preemptive. Yang akan di bahas kali ini adalah penjadwalan FIFO, RR, PS dan MFQ, karena hanya keempat algoritma itulah yang penulis kira berhubungan dengan sistem operasi Windows 9x sehingga yang lainnya tidak akan dibahas.

1. Penjadwalan FIFO (First-in, First-out)
Penjadwalan ini merupakan non-preemptive dan tidak berprioritas. Algoritma penjadwalan ini merupakan yang paling sederhana, yaitu:

  • Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
  • Begitu proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.

FIFO jarang digunakan secara mandiri tapi dikombinasikan dengan skema lain.

2. Penjadwalan Round-Robin (RR)
Penjadwalan ini merupakan preemptive, tapi bukan di-preempt oleh proses lain melainkan oleh penjadwal berdasarkan lama waktu berjalannya proses (preempt-by-time). Sejumlah proses dianggap penting dan diberi sejumlah waktu pemroses yang disebut kwanta (quantum) atau time-slice dimana proses itu berjalan.

Ketentuan algoritma round robin adalah sebagai berikut:

  • Jika kwanta habis dan proses belum selesai, maka status pemroses menjadi runnable dan pemroses dialihkan ke proses lain.
  • Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
  • Jika kwanta belum habis tapi proses telah selesai, maka proses diakhiri dan pemroses langsung dialihkan ke proses lain tanpa menunggu kwanta habis dulu.

Algoritma penjadwalan ini dapat diimplementasikan sebagai berikut:

  • Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.
  • Ambil proses yang berada di ujung depan antrian menjadi running.
  • Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready.
  • Jika kwanta habis dan proses belum selesai maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depan antrian proses ready.

3. Penjadwalan Berprioritas/Priority Scheduling (PS)
Ide dari penjadwalan ini adalah tiap proses diberi prioritas dan proses berprioritas tertinggi (running) mendapat jatah waktu pemroses. Prioritas dapat diberikan secara statis (static priorities) maupun dinamis (dynamic priorities).

Prioritas statis berarti prioritas tak berubah. Keunggulannya mudah diimplementasikan dan mempunyai overhead relatif kecil. Kelemahannya, penjadwalan tak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas. Sedangkan prioritas dinamis merupakan mekanisme menanggapi perubahan lingkungan sistem operasi. Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan. Kelemahannya, implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar. Overhead ini diimbangi dengan peningkatan daya tanggap sistem.

4. Multiple-Feedback Queues (MFQ)
Multiple-feedback queues merupakan pengembangan dari priority scheduling yang mana semua proses yang memiliki prioritas sama disimpan di satu antrian, sehingga jumlah antrian sama dengan jumlah dari prioritas. Penjadwal mulai mengeksekusi thread-thread yang ada di antrian berprioritas tertinggi dulu, kemudian dilanjutkan ke antrian berprioritas satu tingkat lebih rendah dari sebelumnya dan seterusnya.

Dapat disimpulkan bahwa ketika memilih antrian dengan prioritas tertinggi dulu, berlaku algoritma priority scheduling. Sedangkan ketika mengeksekusi satu antrian berlaku algoritma lainnya (tergantung sistem operasi). Keseluruhan dari sifat-sifat tersebut itulah disebut algoritma Multiple-feedback queues.

Referensi

  • Haryanto, B. Ir. (1999), Buku Teks Ilmu Komputer: Sistem Operasi, Edisi Kedua. Bandung, Informatika.
  • Nutt, J. G. (2000), Operating Systems: A Modern Perspective, Second Edition, United States: Addison Wesley Longman Inc.
  • Stallings, W. (1995), Operating Systems, 2nd ed. Englewood Cliffs, New Jersey: Prentice Hall.
  • Tanenbaum, S. A. (1992), Modern Operating System, Englewood Cliffs, New Jersey: Prentice-Hall Inc.

Sampai sekian dulu tulisan bagian satu ini, lanjutan dari tulisan ini bisa Anda baca melalui tulisan yang berjudul "Eksplorasi Proses pada Windows 9x/Me - Bagian II".

Demikian tulisan mengenai eksplorasi proses pada Windows 9x/Me (bagian pertama). Semoga bermanfaat bagi Anda semuanya. Jika ada saran atau komentar bisa dilayangkan ke arioss@softhome.net. Untuk membaca tulisan menarik lainnya silakan menuju ke situs Sony AK Knowledge Center dengan alamat di www.sony-ak.com.

Terimakasih.




 Recommended articles
 

»

Mengatasi Crash Pada Windows Akibat DLL (4318)

»

Memahami Internet Firewall (5660)

»

Mencari Durasi Antar Dua Tanggal dengan PHP (2986)

»

Pengantar Google PageRank (1211)

»

Diagram Pemasangan Kabel TP pada RJ 45 (8582)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com