Anda di halaman 1dari 12

Manajemen proses Berikut point-point yang akan anda temukan di postingan ini:

1. Manajemen proses 2. Komunikasi antar proses 3. Mekanisme proses untuk komunikasi dan sinkronisasi aksi 4. Created and destroyed proses 5. Threads 6. Keaadaan proses (status) 7. Penjadwalan proses 8. Interupsi 9. PCB (Process Control Block) 10. Sitem call manajemen proses

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. Komunikasi antar proses

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 : o send(message) pesan berukuran pasti atau variabel o receive(message) o Jika P dan Q melakukan komunikasi, maka keduanya memerlukan : Membangun jalur komunikasi diantara keduanya Melakukan pertukaran pesan melaui send/receive o 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 : o Menamai (memberi identitas) proses. o Menyisipkan proses pada senarai proses atau tabel proses. o Menentukan prioritas awal proses. o Menciptakan PCB. o Mengalokasikan sumber daya awal bagi proses. Penghancuran Proses (Destroyed)
o o o o o

o o o o o o

o o

o o o o

o o o

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.

o o o o o o o o o

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 :
o o

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 :


o o o

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 (status) NEW
o

Status yang dimiliki pada saat proses baru saja dibuat

RUNNING

o o

Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi Proses bisa dieksekusi karena CPU tidak sedang mengerjakan tugas yang lain

WAITING
o

Status yang dimiliki pada saat proses menunggu suatu event, seperti penyelesaian I/O atau menerima signal

READY
o o

Status yang dimiliki pada saat proses siap dieksekusi oleh processor Proses menunggu jatah waktu dari processor

TERMINATED
o

Status yang dimiliki pada saat proses telah selesai dieksekusi

Ada 3 kemungkinan bila sebuah proses memiliki status running :


o o o

Jika program telah selesai dieksekusi status proses berubah menjadi TERMINATED Jika waktu yang disediakan oleh OS untuk proses tersebut habis akan terjadi interrupt dan proses berstatus READY Jika suatu event terjadi pada saat proses dieksekusi (seperti ada request I/O) proses tersebut akan menunggu event tersebut dan proses berstatus WAITING

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) 3) 4) Penjadwalan mengambil proses lain. Penjadwalan mengambil proses ini (baru). Input telah tersedia.

Implementasi Proses :
o o

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 KONSEP PENJADWALAN


o

Konsep dari Multiprogramming :

Suatu proses akan menggunakan CPU sampai proses tersebut dalam status wait (misal : meminta I/O) selesai Pada saat wait CPU akan menganggur, untuk mengatasi hal ini CPU dialihkan ke proses lain yang berstatus ready
o

Tujuan dari Multiprogramming adalah :

Untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU untuk memperkecil waktu idle
o

Untuk Sistem yang bersifat Uniprogramming:

Hanya ada 1 proses yang dapat berjalan setiap waktunya Jika ada proses yang lebih dari satu, maka proses yang lain harus menunggu sampai CPU bebas dan siap untuk dijadwalkan kembali

QUEUE SCHEDULING

Queue Scheduling dapat diklasifikasikan dalam 3 kategori :

Job Queue
o

Antrian berisi semua proses yang masuk dalam sistem

Ready Queue
o

Proses yang berada pada memori utama, siap dan menunggu untuk dieksekusi

Device Queue
o o

Deretan proses yang sedang menunggu peralatan I/O Tiap peralatan I/O memiliki device queue

Setiap antrian disimpan sebagai linked list dan berisi pointer awal dan akhir PCB.

Tiap PCB memiliki suatu pointer menunjuk ke proses selanjutnya pada antrian

Proses baru mula-mula diletakkan di ready queue dan menunggu sampai dipilih untuk dieksekusi (dispatched) CPU Ketika proses dialokasikan CPU dan dieksekusi, terjadi satu dari event berikut : Proses meminta I/O dan kemudian ditempatkan pada I/O queue Proses membuat sub proses baru dan menunggu diterminasi Proses dihapus dari CPU karena diinterrupt dan dikembalikan ke ready queue

SCHEDULER (PENJADWAL)

Sistem operasi harus memilih dan memproses antrian-antrian berdasarkan kategorinya, dimana proses seleksinya dilakukan oleh scheduler yang tepat Ada 3 tipe Scheduler : Long Term Scheduler (Job Scheduler) Short Term Scheduler (CPU Scheduler) Medium Term Scheduler

Long Term Scheduler (Job Scheduler) Menyeleksi proses-proses mana yang harus dimasukkan ke dalam ready queue dan membawanya ke memori untuk dieksekusi Long Term Scheduler mengeksekusi lebih jarang, dibutuhkan beberapa menit untuk pembuatan proses baru dalam sistem Long Term Scheduler mengontrol jumlah proses dalam memori (degree of multiprogramming)

Jika degree of multiprogramming stabil tingkat rata-rata penciptaan proses harus sama dengan tingkat rata-rata proses meninggalkan sistem

Short Term Scheduler (CPU Scheduler) Menentukan proses mana yang selanjutnya akan dieksekusi dan mengalokasikan CPU untuk proses tersebut, dimana pemilihan proses barunya dialokasikan sesering mungkin Sort Term Scheduler lebih sering dipanggil (hanya dalam waktu milisecond) Karena durasi yang pendek antara eksekusi, short Term Scheduler harus sangat cepat

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.

Interupsi Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks (perubahan kegiatan prosesor dari proses ke proses yang terjadi diantara proses sistem / proses aplikasi). 2 cara interupsi pada processor :
1.

Interupsi langsung

Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)
2.

Interupsi Tanya / Polling

Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)
o o

Interupsi dapat di-enable dan disable tergantung pada levelnya. Pembangkit interupsi dapat berasal dari : Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian. Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol. Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.

Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas. Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.

Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara interupsi. Interupsi vector : Berisi alamat prosedur service interupsi Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi yang datang tidak hanya satu sehingga diperlukan prioritas. Tindak lanjut interupsi :
1.

Penata interupsi / interrupt handler

Jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses. Penata interupsi mengidentifikasi jenis dan asal interupsi. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi. 7. Penata keliru / error handler
2. 3. 4. 5. 6.

yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan. 9. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses. 10. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.
8.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :

hardware memasukkan program counter, dll, memasukkan ke dalam stack pencacah program. 12. Hardware memuatkan (load) program counter baru dari vector interrupsi 13. Prosedur bahasa rakitan menyimpan isi register 14. Prosedur bahasa rakitan men-set stack yang baru 15. Prosedur C menandai proses servis siap (ready) 16. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya 17. Prosedur C kembali ke modus bahasa rakitan 18. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.
11.

Process Control Block (PCB)

Setiap proses direpresentasikan pada OS sebagai Process Control Block PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses satu dengan proses yang lainnya PCB berisi informasi dari proses tertentu : Status Proses
o

Status yang mungkin dimiliki oleh setiap proses : new, ready, running, waiting, terminated

Program Counter
o

Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut

CPU Register Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer, meliputi :
o

Accumulator, register index, stack pointer, dan register serbaguna

Bila terjadi interrupt, status informasi disimpan dan proses dilanjutkan Informasi Penjadwalan CPU Berisi prioritas dari proses, pointer ke antrian penjadwalan, parameter penjadwalan lainnya

Informasi Manajemen Memori


o

Berisi nilai dari dasar(basis) dan limit (batas) register, tabel page, atau tabel segmen

Informasi Accounting
o

Berisi jumlah CPU dan real time yang digunakan,batas wakti, jumlah job atau proses dll

Informasi Status I/O


o o

Informasi daftar dari perangkat I/O yang digunakan untuk proses ini Informasi daftar file-file yang sedang diakses

System Calls Manajemen Proses System Call untuk manajemen proses diperlukan untuk mengatur proses-proses yang sedang berjalan. Kita dapat melihat penggunaan system calls untuk manajemen proses pada Sistem Operasi Unix. Contoh yang paling baik untuk melihat bagaimana system call bekerja untuk manajemen proses adalah Fork. Fork adalah satu satunya cara untuk membuat sebuah proses baru pada sistem Unix. Fork membuat duplikasi yang mirip dengan proses aslinya, termasuk file descriptor, register, dan lainnya. Setelah perintah Fork, child akan mengeksekusi kode yang berbeda dengan parentnya. Bayangkan yang terjadi pada shell. Shell akan membaca command dari terminal, melakukan fork pada child, menunggu child untuk mengeksekusi command tersebut, dan membaca command lainnya ketika child terminate. Untuk menunggu child selesai, parent akan mengeksekusi system call waitpid, yang hanya akan menunggu sampai child selesai. Proses child harus mengeksekusi command yang dimasukkan oleh user(pada kasus shell). Proses child melakukannya dengan menggunakan system call exec. Dari ilustrasi tersebut kita dapat mengetahui bagaimana system call dipakai untuk manajemen proses. Kasus lainnya bukan hanya pada Fork, tetapi hampir setiap proses memerlukan system

call untuk melakukan manajement proses.

Anda mungkin juga menyukai