Selasa, 10 November 2009

MANAJEMEN PROSES, DIAGRAM KEADAAN DAN PENJADWALAN PROSES PADA SISTEM OPERASI


A. Manajemen Proses

a. Mengapa proses perlu dikelola?

Karena system operasi mengemban tugas dan fungsi-fungsi yang kompleks dalam mengelola seluruh sumber daya yang dibutuhkan untuk kepentingan user (manusia) yang berupa proses-proses, oleh karena itu maka system operasi memerlukan pengelolaan proses supaya proses bisa berjalan seperti yang diharapkan dan diperintahkan oleh user.

b. Proses yang bagaimana yang perlu dikelola?

Seluruh proses pada dasarnya perlu dikelola namun yang paling membutuhkan pengelolaan adalah multitasking atau menjalankan sejumlah program secara bersama-sama. Karena multitasking akan membutuhkan pengalokasian sumber daya yang baik dan sumber daya tersebut harus dikembalikan supaya bias dipakai oleh proses yang lain.

c. Contoh proses.

Misal ada sebuah file yang dihapus, maka prosesnya yaitu inputan meneruskan instruksi dari user ke prosesor lalu prosesor mengambil informasi file pada disk melalui memory dan prosesor menghapus file beserta informasinya tersebut.

d. Bagaimana proses-proses saling berkomunikasi?

Pertama, setiap proses harus mempunyai namanya sendiri yang unik beserta alamatnya. Yang kedua, ditentukan siap pengirim pesan dan siapa penerima. Maka setelah keduanya ada antara satu proses dengan proses yang lain bisa berkomunikasi.

· Send (P, message) – mengirim sebuah pesan ke proses P.

· Receive (Q, message) – menerima sebuah pesan dari proses Q.

e. Apa yang dimaksud “create process” dan “destroyed proses” dan kapan terjadinya?

Create dan destroyed process adalah operasi-operasi dasar dari system operasi yang dimana :

1. Create process (penciptaan proses) mengikutsertakan banyak aktifitas, seperti :

Ø Menamai proses / member identitas proses

Ø Menyisipkan proses pada senarai proses atau table proses

Ø Menentukan prioritas awal proses

Ø Menciptakan PCB

Ø Mengalokasikan sumber daya awal bagi proses

Create process akan terjadi bila system operasi akan melakukan hal-hal berikut :

Ø Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)

Ø Pada lingkungan interaktif, ketika pemakai baru berusaha logon

Ø Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu

Ø Proses menciptakan proses lain (proses anak). Proses yang menciptakan proses disebut proses induk (parent process). Proses anak-pun kembali dapat menciptakan proses-proses anak. Proses-proses dapat membentuk pohon hirarki proses

2. Destroyed process (penghancuran proses) menyebabkan beberapa keadaan, seperti :

Ø Sumber daya-sumber daya yang dipakai dikembalikan .

Ø Proses dihancurkan dari senarai atau tabel sistem

Ø PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas )

Destroyed process akan terjadi pada beberapa kejadian seperti berikut :

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

f. Jelaskan proses dan thread

Proses :

Proses merupakan sebuah program yang mengeksekusi thread tunggal. Kendali 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 mengeksekusi multi-threads. Umpamanya, secara bersamaan mengetik dan
menjalankan pemeriksaan ejaan didalam proses yang sama.

Thread :

Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaannya ialah proses dengan thread yang banyak – mengerjakan lebih dari satu tugas pada satu satuan waktu.

B. Diagram keadaan proses

1. Apa yang dimaksud dengan state atau state process :

a. Running

Proses pada saat menggunakan CPU pada suatu waktu atau pada saat instruksi-instruksi dari sebuah proses dieksekusi.

b. Blocked

Proses tidak dijalankan sampai ada event dari luar, yang berhubungan dengan proses tersebut terjadi atau dengan kata lain status menunggu event dari luar.

c. Ready

Status yang dimilki pada saat proses siap untuk dieksekusi oleh prosesor.

2. Jelaskan bagaimana proses ini terjadi :

a. Dari ready ke running

Ketika proses dalam keadaan siap untuk dieksekusi oleh prosesor lalu ada instruksi untuk menjalankan proses maka status menjadi running dan proses belum selesai.

b. Dari running ke blocked

Pada saat proses menggunakan CPU pada suatu waktu atau pada saat instruksi-instruksi dari sebuah proses dieksekusi lalu proses tersebut terhambat oleh sesuatu kebutuhan yang diperlukan oleh proses tersebut (misal kekurangan disk storage) maka proses tersebut terhenti sampai ada event dari luar lagi untuk melanjutkan proses tersebut.

c. Dari running ke ready

Pada saat proses menggunakan CPU pada suatu waktu atau pada saat instruksi-instruksi dari sebuah proses dieksekusi hingga proses tersebut siap untuk melaksanakan instruksi yang lain.

d. Dari blocked ke ready

Ketika proses tidak dijalankan sampai ada event dari luar, yang berhubungan dengan proses tersebut terjadi atau dengan kata lain status menunggu event dari luar hingga proses tersebut mendapat event dari luar dan siap untuk melanjutkan proses.

e. Dari running ke finish

Pada saat proses menggunakan CPU pada suatu waktu atau pada saat instruksi-instruksi dari sebuah proses dieksekusi hingga proses tersebut selesai dilaksanakan.

C. Penjadwalan proses

1. Jelaskan kriteria-kriteria penjadwalan

Ada tujuh criteria penjadwalan proses pada system operasi, yaitu sebagai berikut :

a. CPU Utilization . Kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range dari 0 sampai 100 persen. Di sistem yang sebenarnya ia mempunyai range dari 40 sampai 100 persen.

b. Throughput . Salah satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan waktu. Jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma penjadwalan yang berbeda, throughput bisa menjadi salah satu kriteria penilaian, dimana algoritma yang menyelesaikan proses terbanyak mungkin yang terbaik.

c. Turnaround Time . Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai, namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang dipakai untuk menyelesaikan sebuah proses. Misal kita memiliki sistem komputer yang identik dan proses-proses yang identik pula, namun kita memakai algoritma yang berbeda, algoritma yang mampu menyelesaikan proses yang sama dengan waktu yang lebih singkat mungkin lebih baik dari algoritma yang lain. Interval waktu yang diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah proses disebut turnaround time. Turnaround time adalah jumlah periode untuk menunggu untuk dapat ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi M/K.

d. Waiting Time . Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan proses tersebut atau M/K, itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian ready. Waiting time adalah jumlah waktu yang dibutuhkan proses di antrian ready.

e. Response Time . Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria. Sering sebuah proses dapat memproduksi output di awal, dan dapat meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke pengguna. Ukuran lain adalah waktu dari pengiriman permintaan sampai respon yang pertama diberikan. Ini disebut response time, yaitu waktu untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untuk respon tersebut.

f. Fairness . Suatu algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses (menghindari terjadinya starvation CPU time).

g. Efisiensi. Rendahnya overhead dalam context switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau tidak.

2. Berikan contoh penjadwalan pre emtive dan non pre emtive

Ø Contoh Penjadwalan Preemptive

Penjadwalan CPU yang dijalankan ketika proses dalam keadaan:

· Berubah dari running ke waiting state.

· Berubah dari running ke ready state.

· Berubah dari waiting ke ready state.

Ø Contoh Penjadwalan Non-Preemptive

Penjadwalan Non Preemptive terjadi ketika proses hanya:

· Berjalan dari running state sampai waiting state.

· Dihentikan.

3. Tuliskan algoritmanya masing-masing

Algoritma ini dapat dibagi menjadi dua bagian yaitu :

a. Preemptive

Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di ready queue tersebut. Preemptive SJF sering disebut juga Shortest-Remaining- Time-First scheduling.

b. Non-Preemptive

Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt. CPU tidak memperbolehkan proses yang ada di ready queue untuk menggeser proses yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai burst time yang lebih kecil.

4. Bandingkan kelebihan dan kekurangan masing-masing algoritmanya!

Ada beberapa kelebihan dari algoritma diatas yaitu:

a. Berikut adalah kelebihan algoritma preemptive

Ø Penyelesaian proses akan lebih efektif, mengingat proses yang perlu diselesaikan terlebih dahulu akan selesai dahulu

b. Berikut adalah kelebihan algoritma non-preemptive

Ø Akan lebih cepat menyelesaikan suatu proses, soalnya memory tidak terganggu oleh proses yang lain

Ada beberapa kekurangan dari algoritma diatas yaitu:

c. Berikut adalah kekurangan algoritma preemptive

Ø Susahnya untuk memprediksi burst time (lama eksekusi) proses yang akan dieksekusi selanjutnya.

Ø Proses yang mempunyai burst time yang besar akan memiliki waiting time yang besar pula karena yang dieksekusi terlebih dahulu adalah proses dengan burst time yang lebih kecil.

d. Berikut adalah kekurangan algoritma non-preemptive

Ø Tidak bisa mendahulukan proses lain yang lebih penting didahulukan

5. Bagaimana prosesor menjadwalkan proses yang ditunda tanpa mengulang dari awal.

Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di ready queue tersebut. Pemilihan burst time ini sendiri dilakukan oleh modul Dispatcher yang memberikan kntrol pada CPU terhadap proses yang dipilih dengan short-term scheduling.

Daftar Pustaka

http://iwansantosa.files.wordpress.com/2009/04/presentasi-manajemen-proses.ppt

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch05s03.html

http://langitcool.blogspot.com/2008/11/manajemen-proses-sistem-operasi.html

http://id.wikipedia.org/wiki/Sistem_operasi

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/bahan/index.html

http://e-learning.politekniklp3i.com/course/info.php?id=5

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch13s06.html

http://it-society.blogspot.com/2009/01/preemptive-scheduling-for-distributed.html

Tidak ada komentar:

Posting Komentar

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.