Manajemen Proses Edi Sugiarto, S.Kom Pendahuluan Tema utama perancangan sistem operasi berkaitan dengan manajemen proses Konsep ini digunakan pertama kali pada OS Multics tahun 1960-an. Istilah lain dari proses adalah Task Task berisi instruksi dan data, program counter, nilai register proses, serta stack yang berisi data sementara. Deskripsi Proses Proses adalah program yang sedang dieksekusi. Proses merupakan unit kerja terkecil yang secara individu memiliki sumber daya dan merupakan unit terkecil yang dijadwal sistem operasi Beberapa isitilah penting berkaitan dengan proses: ◦ Multiprogramming (multitasking) ◦ Multiprocessing ◦ Distributed processing Multiprogramming Multiprogramming adalah manajemen banyak proses di satu pemroses. Pada multiprogramming, pemakai memandang terdapat banyak proses dijalankan bersamaan pada satu saat. Proses yang dijalankan pada sistem multiprogramming bersifat : ◦ Saling tidak bergantung Artinya proses tidak saling mempengaruhi satu sama lain. ◦ Satu program pada satu saat lanjut Dalam multiprogramming sistem melakukan interleave (saling melanjutkan) Sehingga seolah-olah proses beroperasi secara bersamaan. Pemroses mengeksekusi satu proses tiap saat dan secara cepat beralih ke proses lain secara bergiliran Karena dilakukan dengan sangat cepat sehingga menimbulkan efek pseudoparallelism pada pemakai Contoh : MS Windows 98/NT/XP, OS/2, MAC System 7 Multiprocessing Multiprocessing adalah manajemen banyak proses pada komputer multiprocessor (banyak pemroses). Awalnya hanya terdapat pada komputer besar mainframe dan minikomputer. Dimaksudkan untuk peningkatan kinerja dan memberikan kemampuan fault tolerant. Contoh : Windows NT, UNIX, Linux. Distributed Processing Distributed processing adalah manajemen banyak proses yang dieksekusi pada banyak sistem komputer yang tersebar di satu jaringan. Kecenderungan masa mendatang adalah menuju komputasi tersebar. Contoh : AMOEBA, MACH. Kebutuhan Utama Pengendalian Proses Menurut Stalling kebutuhan utama pengendalian proses dapat mengacu ke proses. ◦ Interleave (saling melanjutkan) Sistem operasi melakukan interleave eksekusi proses untuk memaksimalkan penggunaan pemroses sambil memberi waktu tanggap yang memadahi. ◦ Mengikuti Kebijakan Tertentu Memperhatikan proses dengan prioritas tertinggi sambil menghindari deadlock ◦ Mendukung Komunikasi antarproses dan Penciptaan Proses State/ Proses Proses melewati serangkaian state. Berbagai kejadian dapat menyebabkan perubahan /perpindahan state proses. Tabel dibawah menjelaskan tiga state dasar Status Deskripsi Running Pemroses sedang mengeksekusi instruksi proses tsb Ready Proses siap dieksekusi tapi pemroses tidak mengeksekusi proses ini Blocked Proses menunggu kejadian tertentu selesai Misal : • Selesainya operasi I/O • Tersedianya memory, dll Diagram State Proses Timeout Submit Ready Dispatch/pe ngiriman Event occurs Running Completion/p enyelesaian Event wait Blocked lanjut Proses yang baru diciptakan segera mempunyai state Ready Proses yang berstatus Running menjadi Blocked karena sumberdaya yang diminta belum tersedia. Proses yang berstatus Running menjadi Ready karena waktu untuk proses tersebut telah habis. Proses yang berstatus Blocked menjadi Ready saat sumberdaya atau layanan yang diminta tersedia. Proses dengan state Ready menjadi Running karena penjadwal memutuskan menggunakan pemroses untuk proses tersebut dikarenakan proses yang saat itu running telah selesai di proses atau berubah state. Process Control Block (PCB) Berfungsi untuk menyimpan informasi mengenai proses. Informasi di PCB dikelompokan menjadi tiga kelompok, yaitu : 1. Informasi identifikasi proses Berkaitan dengan identifikasi proses yang unik, Identifikasi proses yang menciptakan identifikasi pemakai 2. Informasi status proses Berisi nilai dari register-register pemroses 3. Informasi kendali proses. Berisi informasi yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif Operasi-Operasi pada Proses 1. 2. 3. 4. 5. 6. 7. 8. 9. Penciptaan Proses Penghancuran proses Penundaan proses Pelanjutan kembali proses Pengubahan prioritas proses Mem-block proses Membangunkan proses Menjadwal proses Memungkinkan proses berkomunikasi dengan proses lain 1. Penciptaan Proses Aktivitas penciptaan proses antara lain : ◦ ◦ ◦ ◦ ◦ Menamai / identifikasi proses (process id) Menyisipkan proses pada tabel proses Menentukan prioritas awal proses Menciptakan PCB Mengalokasikan sumber daya awal bagi proses. Kejadian yang dapat menyebabkan penciptaan proses ◦ Sebagai tanggapan atas pemberian satu kerja, pada lingkungan batch ◦ Pada lingkungan interaktif, ketika pemakai baru berusaha login ◦ Sebagai tanggapan permintaan aplikasi ◦ Proses yang menciptakan proses lain. Tahap-tahap Penciptaan Proses Penciptaan proses dapat dikarenakan beragam sebab, penciptaan proses tersebut meliputi beberapa tahap menurut Stalling. 1. Diberikan satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian per proses. 2. Dialokasikan ruang untuk proses 3. PCB harus diinisalisasi 4. Kaitan antar tabel yang cocok dibuat 5. Bila diperlukan struktur data lain maka segera dibuat struktur data tersebut. 2. Penghancuran Proses Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu : ◦ ◦ ◦ ◦ Sumber daya yang digunakan akan dikembalikan Proses dihancurkan dari tabel proses PCB dihapus. Proses turunan dari proses induk dihancurkan otomatis saat proses induk dihancurkan. ◦ Namun beberapa sistem menganggap bahwa proses anak benar-benar independen dari proses induk, sehingga proses anak tidak dihancurkan saat proses induk dihancurkan. lanjut Penyebab dihancurkanya proses, yaitu : ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Selesainya proses secara normal Batas waktu telah terlewati Memori tidak tersedia Terjadi kesalahan karena pelanggaran proteksi Terjadi kesalahan aritmatika Waktu telah kadaluwarsa Terjadi kegagalan masukan/keluaran Instruksi tidak benar Berakhirnya proses induk Atas permintaan proses induk 3. Penundaan / Suspension Penundaan (suspension) sering dilakukan sistem untuk memindahkan proses-proses tertentu ke hardisk guna mereduksi beban sistem saat situasi beban puncak. Proses yang ditunda (suspended process) tidak berlanjut sampai proses lain memerintahkan untuk berlanjut (resume). 4. Pelanjutan Kembali Proses Operasi suspend dan resume penting sebab : ◦ Jika sistem berkinerja buruk dan berpeluang gagal maka proses yang kurang penting dapat di suspend agar kinerja meningkat. ◦ Setelah beban sistem menurun proses-proses suspend dapat diresume agar dapat melanjutkan tugasnya. Contoh : pada proses pencetakan. Diagram State Proses Lanjut Timeout Dispatch Submit Completion Ready Running Event occurs Resume Event wait Blocked Suspend Suspend Resume SuspendedReady SuspendedBlocked lanjut Pada sistem monoprocessor, proses Running dapat mensuspend dirinya sendiri. Pada sistem multiprocessor, proses Running dapat disuspend proses Running lain di pemroses yang berbeda, sedangkan proses Ready hanya dapat disuspend oleh proses lain yang Running. Pada proses Blocked terdapat transisi menjadi SuspendedBlocked karena agar sumber daya yang digunakan pada proses Blocked dapat digunakan proses lain. Implementasi Proses Masing–masing proses pada sistem memiliki proses yang perlu diperhatikan sistem operasi. Sistem operasi mencatat state proses dengan beragam tabel atau senarai antara lain : ◦ ◦ ◦ ◦ Tabel informasi manajemen memori Tabel informasi manajemen I/O Tabel informasi sistem file Tabel proses. lanjut Tabel Informasi Manajemen Memori ◦ Berfungsi untuk menjaga keutuhan memori utama dan memori sekunder. ◦ Informasi yang dimuat pada tabel ini : Alokasi memori utama yang digunakan proses Alokasi memori sekunder yang digunakan proses (bila menggunakan manajemen memori swapping) Atribut segmen memori utama dan sekunder Informasi-informasi lain yang digunakan untuk pengelolaan memori lanjut Tabel Informasi I/O ◦ Digunakan untuk mengelola perangkat I/O. ◦ Pada saat tertentu perangkat I/O digunakan proses tertentu ◦ Sehingga proses I/O tsb perlu dijaga agar proses lain tidak memakainya. ◦ Sistem operasi perlu mengetahui status operasi I/O dan lokasi memori utama yang digunakan untuk transfer data. lanjut Tabel Informasi Sistem File ◦ Berisi informasi mengenai: Ekstensi file Lokasi pada memori sekunder Atribut-atribut file lainya. Tabel Proses ◦ Mengelola informasi proses pada SO. ◦ Lokasi tabel proses di memori ◦ Berisi status dan atribut-atribut proses yang lain. Struktur tabel kendali pada SO Tabel-Tabel Memori Memori Tabel-Tabel Peralatan I/O Device File Citra proses Tabel-Tabel File Proses 0 Proses Tabel-Tabel Proses Proses 0 Proses 1 Proses N Citra proses Proses N 5. Pengubahan/Pengalihan Proses Pada suatu saat proses Running diinterupsi dan sistem operasi memberi proses lain state Running sehingga kendali dialihkan ke proses tersebut. Dalam hal tersebut muncul beberapa masalah ◦ Apa kejadian yang memicu pengalihan proses? ◦ Perbedaan antara process switching dan context switching. ◦ Apa yang harus dilakukan sistem operasi terhadap beragam struktur data yang dibawah kendalinya dalam pengalihan proses? Kejadian penyebab pengalihan proses Interupsi System Trap Supervisor Call lanjut Interupsi System ◦ Kejadian eksternal dan tidak bergantung proses yang sedang Running Selesainya opeasi I/O ◦ Tipe – tipe interupsi antaralain Interupsi clock Interupsi I/O/ (I/O interrupt) Page/memory fault lanjut Trap ◦ Interupsi karena terjadi kesalahan atau kondisi pengecualian yang dihasilkan proses Running. Usaha ilegal dalam mengakses file. ◦ Saat terjadi trap, mungkin terjadi pengalihan proses atau mungkin juga me resume terhadap proses. lanjut Supervisor Call ◦ Yaitu panggilan meminta atau mengaktifkan bagian sistem operasi ◦ Contoh : proses Running meminta layanan I/O seperti membuka file, panggilan tsb menyebabkan transfer ke rutin bagian sistem operasi Pengalihan Proses VS Pengalihan Konteks Banyak buku sistem operasi menyamakan antara pengalihan proses dan pengalihan konteks. Yang membedakan pengalihan konteks terjadi tanpa pengalihan state proses yang sedang Running, sedangkan pengalihan proses pasti melibatkan pengalihan konteks. Pengalihan proses terjadi jika proses yang Running beralih menjadi state lain (ready, blocked, dan sebagainya). Langkah pengalihan proses Simpan konteks pemroses, termasuk register PC dan register lain Perbaiki PCB proses yang Running. Pindahkan PCB proses ke senarai yang cocok Pilih satu proses lain untuk dieksekusi Perbaharui PCB proses yang dipilih Perbaharui struktur data memori Kembalikan konteks pemroses dengan konteks simpanan yang menjelaskan konteks proses terakhir saat dialihkan dari state Running. [Stalling-95] Kedudukan Sistem Operasi Sistem operasi juga perangkat lunak, yaitu program yang perlu dieksekusi pemroses. Kedudukan sistem operasi dibanding proses lain ◦ Sebagai kernel tersendiri yang berbeda dengan proses lain kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. ◦ Fungsi sistem operasi dieksekusi dalam proses pemakai ◦ Sistem opeasi juga sebagai kumpulan proses (process-based operating system). lanjut Kernel sebagai Nonproses ◦ Kernel sistem operasi berada diluar proses ◦ Kernel disimpan dalam memori tersendiri P0 P1 P3 Kernel Pn lanjut Dieksekusi dalam proses pemakai ◦ Sebagai alternatif lain eksekusi sistem operasi. ◦ Berdasarkan pandangan bahwa sistem operasi sebagai kumpulan rutin yang dipanggil pemakai untuk melakukan beragam fungsi. P0 P1 Pn Fungsi-fungsi Sistem Operasi Fungsi-fungsi Sistem Operasi Fungsi-fungsi Sistem Operasi Fungsi-fungsi pengalihan proses lanjut Sistem operasi sebagai kumpulan proses ◦ Fungsi kernel utama diorganisaikan sebagai proses yang terpisah U0 U1 …… Un OS0 Fungsi Pengalihan Proses (Process Switching Function) OS1 …… OSn Mikrokernel Mikrokernel adalah inti sistem operasi yang menyediakan landasan perluasan sistem operasi Saat ini mendapat banyak perhatian Landasan pendekatanya adalah hanya fungsifungsi inti yang secara mutlak harus berada pada kernel, layanan yang kurang esensi dibangun diatas mikrokernel tsb. Fungsi mikrokernel sebagai mediator pertukaran pesan, memvalidasi, melewatkan pesan antar komponen, dan memberi hak pengaksesan perangkat keras.