Tuesday, March 22, 2011

Manajemen Proses di Sistem Operasi

Proses adalah program yang sedang di eksekusi, sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Proses berisi instruksi dan data. program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal. Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem.

Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.

Komunikasi antar proses

(Inter Process Communinication / IPC) :

  • Beberapa proses biasanya berkomunikasi dengan proses lainnya.
  • Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.
  • Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files).

Mekanisme proses untuk komunikasi dan sinkronisasi aksi

  • Sistem Pesan – komunikasi proses satu dengan yang lain dapat dilakukan tanpa perlu pembagian data.
  • IPC menyediakan dua operasi :
  • send(message) – pesan berukuran pasti atau variabel
  • receive(message)
  • Jika P dan Q melakukan komunikasi, maka keduanya memerlukan :
  • Membangun jalur komunikasi diantara keduanya
  • Melakukan pertukaran pesan melaui send/receive
  • Implementasi jalur komunikasi
  • physical (shared memory, hardware bus)
  • logical (logical properties)

Create and Destroyed Process

Pembuatan Proses (Create)

Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.

  • Penciptaan proses melibatkan banyak aktivitas, yaitu :
  • Menamai (memberi identitas) proses.
  • Menyisipkan proses pada senarai proses atau tabel proses.
  • Menentukan prioritas awal proses.
  • Menciptakan PCB.
  • Mengalokasikan sumber daya awal bagi proses.

Penghancuran Proses (Destroyed)

Penghancuran proses terjadi karena :

  • Selesainya proses secara normal.
  • Proses mengeksekusi panggilan layanan So untuk menandakan bahwa proses telah berjalan secara lengkap.
  • Batas waktu telah terlewati.
  • Proses telah berjalan melebihi batas waktu total yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali memberi masukan (pada proses interaktif) .
  • Memori tidak tersedia.
  • Proses memerlukan memori lebih banyak daripada yang dapat disediakan oleh sistem.
  • Pelanggaran terhadap batas memori.
  • Proses memcoba mengakses lokasi memori yang tidak diijinkan untuk diakses.
  • Terjadi kesalahan karena pelanggaran proteksi.
  • Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only.
  • Terjadi kesalahan aritmatika.
  • Proses mencoba perhitungan terlarang, seperti pembagian dengan nol, atau mencoba menyimpan angka yang lebih besar daripada yang ddapat diakomodasi oleh H/W.
  • Waktu telah kadaluwarsa.
  • Proses telah menunggu lebih lama daripada maksimum yang telah ditentukan untuk terjadinya suatu kejadian spesfiik.
  • Terjadi kegagalan masukan/keluaran.
  • Kesalahan muncul pada masukan atau keluaran, seprti ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan pada tape,atau operasi tidak valid seperti membaca dari line printer).
  • Intruksi yang tidak benar.
  • Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagi akibat pencabangan ke daerah data dan berusaha mengeksekusi data tersebut).
  • Terjadi usaha memakai instruksi yang tidak diijinkan.
  • Proses berusaha mengeksekusi instruksi yang disimpan untuk SO.
  • Kesalahan penggunaan data.
  • Bagian data adalah tipe yang salah atau tidak diinisialisasi.
  • Diintervensi oleh SO atau operator.
  • Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misalnya terjadi deadlock).
  • Berakhirnya proses induk.
  • Ketika parent berakhir. So mungkin dirancannng secara otomatis mengakhiri semua anak proses dari parent itu.
  • Atas permintaan proses induk.
  • Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses.

Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :

  • Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis.
  • Beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.
  • Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
  • Sumber daya-sumber daya yang dipakai dikembalikan.
  • Proses dihancurkan dari senarai atau tabel sistem.
  • PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).

Threads

Sebagai contoh, jika sebuah proses menjalankan sebuah program Word Processor, ada sebuah thread tunggal dari instruksi-instruksi yang sedang dilaksanakan.

Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

Keadaan Proses

  1. Running, yaitu suatu kondisi pemroses sedang mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
  2. Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses belum siap atau sibuk.
  3. Blocked, yaitu suatu proses menunggu kejadian untuk melengkapi tugasnya. Bentuk kegiatan menunggu proses yaitu : selesainya kerja dari perangkat I/Otersedianya memori yang cukup.

Transisi Status

  1. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.
  2. Penjadwalan mengambil proses lain.
  3. Penjadwalan mengambil proses ini (baru).
  4. Input telah tersedia.

Implementasi Proses :

  • Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses.
  • Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap.

Penjadwalan Proses

Kriteria untuk mengukur dan optimasi kinerja penjadwalan :

a) Adil (fairness)

Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.

b) Efisiensi (eficiency)

Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.

c) Waktu tanggap (response time)

Waktu tanggap berbeda untuk :

1) Sistem interaktif

Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari . perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time.

2) Sistem waktu nyata

Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.

d) Turn around time

Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.

e) Throughput

Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu

Program Control Block (PCB)

PCB berisi informasi mengenai proses yang diperlukan sistem operasi. PCB dibaca dan /atau dimodifikasi rutin sistem operasi seperti penjadwalan, alokasi sumber daya, pemrosesan interupsi, monitoring dan analisis kinerja. Kumpulan PCB mendefinisikan state sistem operasi.

Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB.

Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini berada di PCB.

Sistem berbeda akan mengorganisasikan secara berbeda. Informasi dalam PCB :

1. Informasi identifikasi proses

Informasi ini berkaitan dengan identitas proses yang berkaitan dengan tabel lainnya.

Informasi tersebut meliputi :

a. Identifier proses

b. Identifier proses yang menciptakan

c. Identifier pemakai

2. Informasi status pemroses

Informasi tentang isi register-register pemroses. Saat proses berstatus running, informasi tersebut berada diregister-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali. Jumlah dan jenis register yang terlibat tergantung arsitektur komputer.

Informasi status terdiri dari :

a. Register-register yang terlihat pemakai

Adalah register-register yang dapat ditunjuk instruksi bahasa assembly untuk diprosespemroses.

b. Register-register kendali dan status

Adalah register-register yang digunakan untuk mengendalikan operasi pemroses.

c. Pointer stack

Tiap proses mempunyai satu atau lebih stack, yang digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjukkan posisi paling atas dari stack.

3. Informasi kendali proses

Adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.

Informasi kendali terdiri dari :

a. Informasi penjadwalan dan status

Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan antara lain :

a.1 Status proses

Mendefinisikan keadaan/status proses (running, ready, blocked)

a.2 Prioritas

Menjelaskan prioritas proses.

a.3 Informasi berkaitan dengan penjadwalan

Berkaitan dengan informasi penjadwalan, seperti lama menunggu, lama proses terakhir dieksekusi.

a.4 Kejadian

Identitas kejadian yang ditunggu proses.

b. Penstrukturan data

Satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.

c. Komuikasi antar proses

Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah.

d. Manajemen memori

Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan memori maya (virtual memori) proses.

e. Kepemilikan dan utilisasi sumber daya

Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :

e.1 Berkas yang dibuka

e.2 Pemakain pemroses

e.3 Pemakaian sumber daya lainnya

Informasi ini diperlukan oleh penjadwal.

Struktur citra proses digambarkan berurutan di satu ruang alamat. Implementasi penempatan citra proses yang sesungguhnya bergantung skema manajemen memori yang digunakan dan organisasi struktur kendali sistem operasi.

Kedudukan Sistem operasi

Sistem operasi pada dasarnya adalah sepert perangkat lunak lain, yaitu program yang perlu dieksekusi pemroses.

Kedudukan sistem operasi dibanding proses-proses lain, adalah :

a. Sistem operasi sebagai kernel tersendiri yang berbeda dengan proses-proses lain (kernel sebagai non-proses).

b. Fungsi-fungsi sistem operasi dieksekusi dalam proses pemakai.

c. Sistem operasi juga sebagai kumpulan proses (process based operating

systems).


source : http://rizkyindrawan.wordpress.com/2010/10/21/manajamen-proses-pada-sistem-operasi/ ;

http://ariefzuhud.blog.upi.edu ; http://kuliah.dinus.ac.id

No comments: