Konsep Manajemen Proses Di Sistem Operasi
Tuesday, March 22, 2011
A.DEFINISI PROSES
Terdapat beberapa definisi mengenai proses, antara lain :
a. Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen proses adalah masalah utama dalam perancangan sistem operasi
b. Proses adalah program yang sedang dieksekusi.
c. Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.
B.CONTENT PROSES
Proses berisi instruksi, data, program counter, register pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.
C.STATUS PROSES
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:
New: Proses sedang dikerjakan/ dibuat.
Running: Instruksi sedang dikerjakan.
Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/Oatau penerimaan sebuah tanda/ signal).
Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Nama-nama tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi disepanjang sistem operasi. Keadaan yang mereka gambarkan ditemukan pada seluruh sistem. Namun, sistem operasi tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana pun pada waktu kapan pun.
D.PROCESS CONTROL BLOCK(PCB)
Masing-masing proses direpresentasikan oleh Sistem Operasi dengan menggunakan Processs Control Block(PCB).
- Status Proses. New, Ready, running, waiting, terminated, dll.
- Program Counter, Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.
- CPU Registers. Registyer bervariasi tipe dan jumlahnya tergantung arsitektur computer yang bersangkutan. Register-register tersebut terdiri atas:accumulator, index register, stack pointer, dan register serbaguna dan beberpa informasi tentang kode kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt.
Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan bebarpa parameter penjadwalan yang lainnya.
Informasi Manajemen Memori
Informasi tersebut berisi nilai(basis) dan limit register, page table atau segment table tergantung pada system memory yang digunakan oleh SO.
Informasi Accounting
Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.
Informasi Status I/O
Informasi tersebut berisi deretan I/O device(sperti tape driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka, dll.
Scheduling Queue
Proses-proses yang masuk pada suatu proses akan diletakkan ke dalam job queue. Sedangkan proses-proses yang ada di memori utama dan menunggu untuk dieksekusi diletakkan pada suatu list yang disebut dengan ready queue. Queue ini disimpan sebagai linked list dan berisi pointer awal dan akhir PCB. Tiap-tiap PCB memiliki suatu pointer field yang menunjukkan ke proses berikutnya dalam ready queue. Deretan proses yang sedang menunggu peralatan I/O tertentu disebut dengan device queue. Gambar 3.4 menunjukkan contoh ready queue dan device queue.
Schedulers
Ada 2 bentuk scheduler, yaitu:
- The Longterm Scheduler(job scheduler), menyeleksi proses-proses dari suatu pool dan membawanya ke memori utama untuk dieksekusi.
- The Short-term Scheduler(CPU scheduler). Menyeleksi proses-proses yang siap untuk dieksekusi, dan mengalokasikan CPU ke salah satu dari proses-proses tersebut.
E.CONTEXT SWITCH
Context Switch adalah proses penyimpanan status proses dan mengambil status proses yang baru pad asst terjadi switching.
Pembuatan Proses
Ada beberapa aktifitas berkenaan dengan pembuatan proses, antara lain:
- Memberi identitas(nama) pada proses yang dibuat
- Menyisipkan proses pada list proses atau table proses
- Menentukan prioritas awal proses
- Membuat PCB
- Mengalokasikan resource awal bagi proses tersebut
Ada beberapa kejadian yang menyebabkan pembuatan suatu proses baru, antara lain:
- Pada lingkungan batch sebagai tambahan atas pemberian job. Setelah menciptakan proses baru, system operasi melanjutkan untuk membaca job selanjutnya.
- Pada lingkungan interaktif, pada saat user baru saja login
- Sebagai tanggapan attas suatu aplikasi(seperti:mencetak file, system operasi dapat menciptakan proses yang akan mengelola pencetakan itu).
- Proses menciptakan proses lain(child).
Selama eksekusi, suatu proses mungkin akan membuat suatu proses yang baru. Proses tersebut dinamakan parent, sedangkan proses yang dibuat dinamakan child.
Pada UNIX, parenta akan membentuk child dengan menggunakan FORK system call. Setelah pemanggilan FORK, paret kembali berjalan secara parallel dengan child. Demikian pula, child dapat meanggil FORK untuk membentuk child lainnya. Lain halnya dengan DOS, pada MS-DOS, system call akan memanggil binary file tertentu yang ada pada memori dan mengeksekusinya sebagai child. Parent akan running kembali setelah child selesai eksekusi. Dengan demikian parent dan child tidak dapat berjalan secara parallel.
Bentuk eksekusi:
- Parent melanjutkan eksekusi beriringan dengan children
- Parent menunggu hingga beberapa atau seluruh children selesai
Bentuk ruang alamat:
- Child proses adalah duplikat dari parent proses
- Child proses telah memanggil program ke dirinya
Pada akhir proses, child mengembalikan hasil proses pada parent-nya untuk mengantisipasi hal ini, suaut proses hanya boleh memiliki satu parent tapi satu parent boleh memiliki lebih dari satu child.
Penghentian Proses
Suatu proses berhenti jika telah menyelesaikan pernyataan terakhir, dan meminta pada system operasi untuk menghapusnya dengan menggunakan exit system call. Proses mengembailkan semua data (output) ke parent proses. Kemudian proses dihapus dari list atau table system, dilanjtukan dengan menghapus PCB.
Penghapusan proses ini akan menjadi sangat kompleks jika teryata proses yang akan dihentikan tersebut membuat proses-proses yang lain, Pada beberapa system, proses-proses anak akan dihentikan secara otomatis jika proses induknmya dihentikan. Namun, ada beberapa system yang menganggap bahwa proses anak ini tidak iktu dihentikan secara otomatis pada saat proses induk dihentikan.
Ada beberapa alasan yang menyebabkan suatu proses harus dihentikan, antara lain:
- Proses memang sudah selesai mengerjakan tugasnya(selesai secara normal). Dalam hal ini akan mengeksekusi panggilan layanan system operasi untuk menandakan bahwa proses telah berjalan secara lengkap
- Proses berjalan melebihi batas waktu yang telah diberikan padanya
- Memori tidak tersedia. Proses membutuhkan ruang memori yang lebih besar daripada yag disediakan oleh system
- Proses mencoba untuk mengakses kawasam memori yang tidak diijinkan untuk diakses
- Terjadi kesalahan karena pelanggaran proteksi. Proses menggunakan resource yang tidak diijinkan
- Terjadi kesalahan penghitungan, seperti melakukan pembagian dengan nol atau menyimpan angka yang lebih besar dari pada yang dapat diakomodasikan oleh perangkat keras.
- Proses menunggu terlalu lama
- Terjadi kegagalan I/O, seperti tidak mampu menemukan file atau kegagalan membaca atau menulis setelah dilakukan perulangan beberapa kali.
- Proses berusaha mengeksekusi instruksi yang tidak ada. Hal ini sering diakibatkan oleh pencabangan ke daerah data dan berusaha mengeksekusi daerah tersebut
- Proses berusaha menggunakan instruksi yang disimpan untuk system operasi
- Terjadi kesalahan penggunaan data, karena bagian data mempunyai tipe data yang salah atau tidak diinisialisai
- Terjadi campur tangan(intervensi) dari operator atau system operasi, dengan suatu alas an tertentu(misalnya:terjadi deadlock)
- Proses induknya berakhit
- Atas permintaan dari proses induk
0 comments:
Post a Comment