Manajemen Proses

BAB I

Pendahuluan

 

Proses adalah suatu waktu ketika system melakukan sesuatu yang diminta oleh user dan mengembalikan dalam bentuk hasil tertentu yang digunakan oleh user lagi atau tidak, proses adalah sebuah program yang sedang dieksekusi. Keterkaitan hubungan antara proses dengan sistem operasi terlihat dari cara sistem operasi menjalankan/mengeksekusi proses. Sistem operasi mengeksekusi proses dengan dua cara yaitu batch dan time-shared system, Sistem operasi mengeksekusi berbagai jenis program. Pada sistem batch program tersebut biasanya disebut dengan job, sedangkan pada sistem time sharing, program disebut dengan program user atau task. Dalam suatu proses terdapat program counter, stack dan data. Bahkan pada sistem seperti Microsoft Windows dan Mac OS, seorang pengguna mampu menjalankan beberapa program pada saat yang sama, seperti Spread Sheet, Web Browser, dan Web Email. Bahkan jika pengguna hanya menggunakan satu program saja pada satu waktu, sistem operasi perlu mendukung program internalnya sendiri, seperti manajemen memori. Dengan kata lain, semua aktivitas tersebut adalah identik sehingga kita menyebutnya ”proses”.

Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mendapatkan kembali semua sumber daya yang bisa digunakan kembali.

BAB II

PEMBAHASAN

 

Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:

  • Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.
  • Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apabila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
  • Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar.
  • Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.
  • Menyediakan mekanisme untuk penanganan deadlock. Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock (kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.
  1.  Process Control Block

manaj proses

Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) – juga disebut sebuah control block. Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga mengubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya). PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:

    1. Status Proses. Status new, ready, running, waiting, halted, dan juga banyak lagi.
    2. Program Counter. Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
    3. CPU register. Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/ bekerja dengan benar setelahnya.
    4. Informasimanajemen memori. Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi
    5. Informasipencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
    6. Informasi status I/O. Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.

PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

           2.    Status Proses

status proses

Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses mencerminkan aktivitas atau keadaan dari proses itu sendiri. Berikut ini adalah status-status yang mungkin dimiliki sebuah proses :

  1. 1.      Tiga status utama yaitu:
  • Running : status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi.
  • Waiting : status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses I/O).
  • Ready : status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
  1. 2.      Dua status tambahan, yaitu saat pembentukan dan terminasi:
  • New : status yang dimiliki pada saat proses baru saja dibuat.
  • Terminated : status yang dimiliki pada saat proses telah selesai dieksekusi.

        3.     Pembuatan Proses

Suatu proses dapat membuat beberapa proses baru, melalui sistem pemanggilan pembuatan proses, selama jalur eksekusi. Pembuatan proses dinamakan induk proses, jika dibuat proses dari proses induk disebut anak dari proses tersbut. Tiap proses baru tersebut dapat membuat proses lainnya, membentuk suatu pohon proses.

Secara umum, suatu proses akan memerlukan sumber tertentu (waktu CPU, memori, berkas, perangkat I/O) untuk menyelesaikan tugasnya. Ketika suatu proses membuat sebuah subproses, sehingga subproses mampu untuk memperoleh sumbernya secara langsung dari sistem operasi. Induk mungkin harus membatasi sumber diantara anaknya, atau induk dapat berbagi sebagian sumber (seperti memori berkas) diantara beberapa dari anaknya. Membatasi suatu anak proses menjadi subset sumber daya induknya mencegah proses apapun dari pengisian sistem yang telalu banyak dengan menciptakan terlalu banyak subproses. Sistem Operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi tersebut adalah :

  1. Penciptaan proses
  2. Penghancuran/terminasi proses
  3. Penundaan proses
  4. Pelanjutan kembali proses
  5. Pengubahan prioritas proses
  6. Memblok proses
  7. Membangunkan proses
  8. Menjadwalkan proses
  9. Memungkinkan proses berkomunikasi dengan proses lain

Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk mengelola dan mengalokasikan ruang alamat proses. Pembuatan Proses Melibatkan banyak aktivitas, yaitu :

  1. Memberi identitas proses
  2. Menyisipkan proses pada tabel proses
  3. Menentukan prioritas awal proses
  4. Menciptakan PCB
  5. Mengalokasikan sumber daya awal bagi proses

4.    Terminasi Proses

Sebuah proses berakhir ketika proses tersebut selesai mengeksekusi pernyataan akhirnya dan meminta sistem operasi untuk menghapusnya dengan menggunakan sistem pemanggilan exit. Pada titik itu, proses tersebut dapat mengembalikan data (keluaran) pada induk prosesnya (melalui sistem pemanggilan wait). Seluruh sumber- sumber dari proses-termasuk memori fisik dan virtual, membuka berkas, dan penyimpanan I/O di tempatkan kembali oleh sistem operasi.

Ada situasi tambahan tertentu ketika terminasi terjadi. Sebuah proses dapat menyebabkan terminasi dari proses lain melalui sistem pemanggilan yang tepat (contoh abort). Biasanya proses induk melakukan terminasi sengaja pada turunannya. Alasan terminasi tersebut seperti:

  1. Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.
  2. Task yang ditugaskan kepada turunan tidak lagi diperlukan.
  3. Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap berjalan. Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination.
  4. Proses memerlukan memori lebih banyak daripada yang dapat disediakan sistem.
  5. Proses berusaha menggunakan sumber data atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only.
  6. Proses memcoba perhitungan terlarang, seperti pembagian dengan nol,atau mencoba menyimpan angka yang lebih besar daripada yang dapat diakomodasi oleh perangkat keras
  7. Kesalahan muncul pada masukan/keluaran, seperti ketidakmampuan menemukan file, kegagalan membaca atau menulis setelah sejumlah maksimum percobaan yang ditentukan.

Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :

  1. Sumber daya-sumber daya yang dipakai dikembalikan.
  2. Proses dihancurkan dari tabel sistem.
  3. PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).

  5.    Komunikasi dan Hubungan Antar Proses

5.1  Sistem Berbagi Memori

Berbagi Memori atau yang disebut juga sebagai Shared Memory System merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.

5.2  Sistem Berkirim Pesan

Suatu proses dikatakan independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan pada sistem. Berarti, semua proses yang tidak membagi data apa pun (baik sementara/tetap) dengan proses lain adalah independent. Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain. Ada empat alasan untuk penyediaan sebuah lingkungan yang memperbolehkan terjadinya proses kooperatif :

  1. Pembagian informasi: apabila beberapa pengguna dapat tertarik pada bagian informasi yang sama (sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuah lingkungan yang mengizinkan akses secara terus menerus ke tipe dari sumber-sumber tersebut.
  2. Kecepatan penghitungan/ komputasi: jika kita menginginkan sebuah tugas khusus untuk menjalankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask, setiap bagian dari subtask akan dijalankan secara parallel dengan yang lainnya. Peningkatan kecepatan dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti CPU atau jalur I/O).
  3. Modularitas: kita mungkin ingin untuk membangun sebuah sistem pada sebuah model modular-modular, membagi fungsi sistem menjadi beberapa proses atau threads.
  4. Kenyamanan: bahkan seorang pengguna individu mungkin memiliki banyak tugas untuk dikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang pengguna dapat mengedit, memcetak, dan meng-compile secara paralel.

Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian itu dapat saling bertukar pesan melalui link komunikasi tersebut. Terdapat dua macam cara berkomunikasi, yaitu:

  1. Komunikasi langsung. Dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus mengetahui secara jelas dengan siapa mereka berkirim pesan. Hal ini dapat mencegah pesan salah terkirim ke proses yang lain. Karakteristiknya antara lain:
    1. Link dapat otomatis dibuat
    2. Sebuah link berhubungan dengan tepat satu proses komunikasi berpasangan
    3. Diantara pasangan itu terdapat tepat satu link
    4. Link tersebut biasanya merupakan link komunikasi dua arah
  2. Komunikasi tidak langsung. Berbeda dengan komunikasi langsung, jenis komunikasi ini menggunakan sejenis kotak surat atau port yang mempunyai ID unik untuk menerima pesan. Proses dapat berhubungan satu sama lain jika mereka membagi port mereka. Karakteristik komunikasi ini antara lain:
    1. Link hanya terbentuk jika beberapa proses membagi kotak surat mereka
    2. Sebuah link dapat terhubung dengan banyak proses
    3. Setiap pasang proses dapat membagi beberapa link komunikasi
    4. Link yang ada dapat merupakan link terarah ataupun link yang tidak terarah.

5.3  Komunikasi Proses Dalam Sistem

Sistem operasi menyediakan alat-alat proses kooperatif untuk berkomunikasi dengan yang lain lewat sebuah komunikasi dalam proses (IPC = Inter-Process Communication). IPC menyediakan sebuah mekanisme untuk mengizinkan prosesproses untuk berkomunikasi dan menyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama. IPC adalah khusus digunakan dalam sebuah lingkungan yang terdistribusi dimana proses komunikasi tersebut mungkin saja tetap ada dalam komputer-komputer yang berbeda yang tersambung dalam sebuah jaringan. IPC adalah penyedia layanan terbaik dengan menggnakan sebuah sistem penyampaian pesan, dan system – sistem pesan dapat diberikan dalam banyak cara.

6.     Sinkronisasi

Komunikasi antara proses membutuhkan subroutine untuk mengirim dan menerima data primitif. Terdapat desain yang berbeda-beda dalam implementasi setiap primitif. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau asinkron.

Ketika dalam keadaan sinkron, terjadi dua kejadian :

  1. Blocking send . Pemblokiran pengirim sampai pesan sebelumnya diterima.
  2. Blocking receive . Pemblokiran penerima sampai terdapat pesan yang akan dikirim.

Sedangkan untuk keadaan asinkron, yang terjadi adalah:

  1. Non-blocking send . Pengirim dapat terus mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak.
  2. Non-blocking receive . Penerima menerima semua pesan baik berupa pesan yang valid atau pesan yang salah (null).

7.      Penundaan

Penundaan (suspend) adalah operasi penting dan telah diterapkan dengan beragam cara. Penundaan biasanya berlangsung singkat. Penundaan sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak.

Proses yang ditunda (suspended blocked) tidak berlanjut sampai proses lain meresume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan. Keputusan membebaskan sumber daya-sumber daya bergantung sifat masing-masing sumber daya. Memori utama seharusnya segera dibebaskan begitu proses tertunda agar dapat dimanfaatkan proses lain. Resuming (pengaktifan kembali) proses, yaitu menjalankan proses dari titik (instruksi) dimana proses ditunda. Operasi suspend dan resume penting, sebab :

  • Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses dapat disuspend agar diresume setelah masalah diselesaikan. Contoh : Pada proses , bila tiba-tiba kerta habis maka proses disuspend. Setelah kertas dimasukkan kembali, proses pun dapat diresume.
  • Pemakai yang ragu/khawatir mengenai hasil prose dapat mensuspend proses (bukan membuang (abort) proses). Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat disuspend) proses yang disuspend.
  • Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapat disuspend dan diresume saat beban kembali ke tingkat normal.

8.       Buffering

Dalam setiap jenis komunikasi, baik langsung atau tidak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat tiga cara untuk mengimplementasikan antrian tersebut:

  1. 1.      Kapasitas Nol. Antrian mempunyai panjang maksimum nol, sehingga tidak ada penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
  2. 2.      Kapasitas Terbatas. Antrian mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
  3. 3.      Kapasitas Tak Terbatas. Antrian mempunyai panjang yang tak terhingga, sehingga semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.

9.        Manajemen Proses Sistem Operasi Windows

Pada sistem Operasi Windows, proses adalah unit eksekusi kode yang dapat dijadwalkan oleh kernel dispatcher dan dimuat dari sebuah aplikasi atau thread. Jadi, proses bisa mengandung satu atau lebih thread. Sebuah proses dibuat ketika thread di dalam beberapa proses lain dipanggil oleh API CreateProcess(). Fungsi ini  memuat setiap DLL (Dynamic Link Library) yang digunakan oleh proses untuk menciptakan thread awal dalam proses. Thread tambahan dapat dibuat oleh fungsi CreateThread(). Setiap thread dibuat dalam stack sendiri, yang defaultnya adalah 1 MB kecuali ada argumen lain untuk pemanggilan fungsi CreateThread().

manaj proses 3

Tool Manajemen Proses

Ciri khas dari sistem operasi windows adalah GUI. Dimana semua interaksi antar user dengan sistem kebanyakan menggunakan interface grafis, sehingga disatu sisi ini sangat memudahkan user, disisi lain user tidak mempunyai pengalaman yang cukup dalam menggunakan CLI dari sistem operasi windows. Beberapa tool yang bisa digunakan untuk memonitor proses pada sistem operasi windows adalah:

Contoh : Aplikasi tasklist, aplikasi yang digunakan untuk memonitor proses pada sistem operasi windows.

manaj proses 4

Contoh aplikasi lain pada Sistem Operasi Unix adalah Ps, top, kill atau pada Sistem Operasi Mac menggunakan Activity Monitor

BAB III

PENUTUP

Kesimpulan

Sebuah proses adalah suatu program yang sedang dieksekusi. Proses lebih dari sebuah kode program tetapi juga mencakup program counter, stack, dan sebuah data section. Dalam pengeksekusiannya sebuah proses juga memiliki status yang mencerminkan keadaan dari proses tersebut. Status tersebut mungkin menjadi satu dari lima status berikut: new, ready, running, waiting, atau terminated. Proses direpresentasikan dengan PCB yang menyimpan segala informasi yang berkaitan denganproses tersebut.

Daftar Pustaka

 

______, images,[online], (http://www.google.com/images, Februari  2012) by kelompok 4 PSSI.

Masyarakat Digital Gotong Royong (MDGR), 2008, Pengantar Sistem Operasi Komputer: Jilid Kedua, ________ : MDGR.

wikipedia, Sistem Operasi,[online], (http://id.wikipedia.org/wiki/Sistem_operasi, Februari  2012)

yoga, Tools Manajemen Proses Pada Sistem Operasi [online], (http://3rr0r.wordpress.com /2011/10/21/tool-manajemen-proses-pada-sistem-operasi/, Februari  2012 )

Leave a comment

Leave a comment