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. MULTICS (Multiplexed information and computing system), perencanaan awal dalam perkembangan MULTICS yaitu pada tahun 1964. Pada awalnya Multics adalah proyek kerja sama yang dipimpin oleh MIT (dengan Fernando Corbato) bersama dengan General Electric dan Bell Labs. Bell Labs ditarik keluar pada tahun 1969 dan pada tahun 1970 Multcs diambil alih oleh Honeywell. Multics memiliki berbagai fitur yang digunakan untuk menghasilkan ketersediaan tinggi yang mendukung komputasi yang mirip seperti layanan telpon. Multics memiliki sejumlah mekanisme standar untuk memungkinkan para insinyur untuk menganalisis kinerja sistem. STACK (TUMPUKAN) Stack (tumpukan) sebenarnya secara mudah dapat diartikan sebagai list (urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi yang disebut top (puncak) dari stack. Dengan melihat definisi tersebut maka jelas bahwa pada stack berlaku aturan LIFO (Last In First Out), yaitu elemen yang terakhir masuk akan pertama kali diambil atau dilayani. Salah satu analogi yang dapat dikemukakan di sini adalah tumpukan piring atau barang lain. Pada saat kita hendak menumpuk piring-piring tersebut tentulah yang kita lakukan adalah meletakkan piring pertama pada tempatnya, selsnjutnya meletakkan piring kedua di atas piring pertama dan demikian seterusnya. Pada saat kita hendak mengambil satu piring dari tumpukan tersebut, tentu yang diambil adalah piring teratas (yang terakhir kali ditaruh), bukan yang terbawah (yang pertama kali diletakkan). Dua operasi dasar pada stack adalah PUSH (operasi pemasukan elemen ke dalam stack) dan POP (operasi pengambilan satu elemen dari dalam stack). Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi.
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 >Multiprogramming, adalah konsep dimana sebuah program dapat terus berjalan sampai ia melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar. >Pseudoparallelism, adalah konsep eksekusi proses yang dilakukan seolah-oleh berjalan secara paralel. >Multiprocessing, adalah sebuah konsep pemrosesan yang dilakukan secara serentak. Hal ini juga dapat merujuk pada sebuah sistem yang didukung dan bekerja oleh lebih dari satu processor. >Distributed Processing, adalah konsep yang mengerjakan semua proses pengolahan data secara bersamaan antara komputer pusat dengan beberapa sub-komputer melalui jaringan komunikasi.
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. fault tolerant : toleransi kesalahan
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 Ready Running Blocked Submit Dispatch/pengiriman Completion/penyelesaian Timeout Event wait Event occurs
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 : Informasi identifikasi proses Berkaitan dengan identifikasi proses yang unik, Identifikasi proses yang menciptakan identifikasi pemakai Informasi status proses Berisi nilai dari register-register pemroses Informasi kendali proses. Berisi informasi yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif
Operasi-Operasi pada Proses 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. Diberikan satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian per proses. Dialokasikan ruang untuk proses PCB harus diinisalisasi Kaitan antar tabel yang cocok dibuat 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 Ready Running Blocked Submit Dispatch Completion Timeout Event wait Event occurs SuspendedBlocked SuspendedReady Suspend Resume
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 Tabel Proses 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 Tabel-Tabel Peralatan Tabel-Tabel File Proses 0 Proses N Citra proses Tabel-Tabel Proses Proses 1 Proses File I/O Device Memori
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 Kernel P0 P1 P3 Pn
Fungsi-fungsi pengalihan proses 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. Fungsi-fungsi pengalihan proses Fungsi-fungsi Sistem Operasi P0 P1 Pn
lanjut Sistem operasi sebagai kumpulan proses Fungsi kernel utama diorganisaikan sebagai proses yang terpisah Fungsi Pengalihan Proses (Process Switching Function) U0 U1 OS0 OS1 OSn …… Un
Mikrokernel Mikrokernel adalah inti sistem operasi yang menyediakan landasan perluasan sistem operasi Saat ini mendapat banyak perhatian Landasan pendekatanya adalah hanya fungsi- fungsi 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.