Pengantar Dalam kegiatannya sehari-hari, sistem operasi memiliki sebuah mekanisme proteksi untuk memastikan dirinya, semua program yang berjalan, dan data-data penggunanya berjalan dengan baik. Untuk melakukan hal tersebut, sistem operasi memiliki dua jenis (mode) operasi yang saling terpisah. Dua operasi tersebut, yaitu user mode, eksekusi program dikendalikan oleh pengguna, dan kernel mode, eksekusi program dikendaikan oleh sistem operasi, dinamakan dual-mode operation. Dilihat dari segi sistem operasi, inti pada sistem operasi adalah kernel, kernel ini berisi komponen-komponen mendasar dari sistem operasi, kernel mengelola penjadwalan, alokasi memori dan sebagainya. Manajemen Proses Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat M/K. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya. Perhatikan gambar di bawah ini: Modul 5 “ Manajemen Proses ” Asisten : M Tirta M, Rahman, Dicky R.A Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti: Membuat dan menghapus proses pengguna dan sistem proses. Menunda atau melanjutkan proses. Menyediakan mekanisme untuk proses sinkronisasi. Menyediakan mekanisme untuk proses komunikasi. Menyediakan mekanisme untuk penanganan deadlock. Setiap proses diberi nilai yang unik pada saat pertama kali diciptakan, yang diberi nama PID(Process ID). Setiap proses dapat berkomunikasi dengan proses yang lainnya melalui System Call. Perhatikan sebuah proses berikut dalam sistem operasi berbasis UNIX: Modul 5 “ Manajemen Proses ” Asisten : M Tirta M, Rahman, Dicky R.A Coba anda amati alur prosesnya, pahami. Dan kemudian coba anda bandingkan dengan proses yang sesungguhnya pada saat anda menjalankan sistem operasi Linux pertama kali dijalankan. Dapat kita amati disini bahwa, sistem operasi menjalankan kernel pada saat pertama kali dijalankan, kernel juga termasuk sebuah proses dan karena ia yang pertama kali dijalankan, maka kernel diberi nilai PID 0. Untuk mengijinkan user login(masuk) ke sistem UNIX, kernel pertama kali membuat suatu proses yang mengawasi pembuatan semua proses lain dalam urutan login, yang disebut INIT process. Proses ini mendapat no PID 1. Program INIT akan berjalan sesuai dengan konfigurasi yang terdapat pada file inittab. File inittab memberitahukan INIT untuk membuat sebuah proses yang mencetak pesan login, untuk melakukan ini, INIT menggunakan sistem call fork() dan exec() yang menjalankan program getty. Hasil dari proses getty ini adalah kondisi hubungan ke terminal(shell), sehingga terminal(shell) tersebut dapat berkomunikasi dengan komputer, dan kemudian mencetak pesan login. Praktik1!!!!!!!!!!!!!!!!!!! Amati Setiap proses yang dijalankan hingga masuk pada login Prompt. Coba anda masukan nama user pada prompt login ‘root’ dan passwordnya ‘jarkomlab’, setelah berhasil, maka anda akan masuk pada shell. Setelah diamati coba lihat gambar di bawah ini: Pada bagian akhir terdapat Login SHELL (proses), pengertian SHELL itu sendiri adalah nama yang diberikan untuk suatu program yang berfungsi agar anda sebagai pemakai dapat berinteraksi dengan sistem operasi UNIX (pada sistem operasi DOS atau windows sama dengan Command.com). untuk selanjutnya, dengan Shell inilah kita akan berinteraksi dengan sistem operasi, untuk memberikan input(perintah). Modul 5 “ Manajemen Proses ” Asisten : M Tirta M, Rahman, Dicky R.A Pada sistem UNIX, sebuah proses merupakan entitas yang dibuat oleh system call fork(). Proses yang memanggil system call fork disebut parent process , dan proses baru yang dibuat disebut child proses. Setiap proses dapat memiliki beberapa child, tetapi sebuah proses hanya memiliki 1 parent process Praktik2!!!!!!!!!!!!!!!!!!! Untuk dapat mengetahui proses-proses apa saja yang berjalan, anda dapat ketikkan di shell perintah ps –Al, dimana akan ditampilkan seluruh proses yang aktif pada saat itu, perhatikan pula no PID yang terdapat pada masing-masing program yang sedang berjalan. Disitu terdapat pula informasi mengenai PPID(parent process ID) yaitu no proses parent-nya, yang berarti proses tersebut adalah hasil eksekusi dari proses yang lain. Bila ingin lebih jelas, silahkan gunakan perintah pstree –p perintah ini akan menampilkan susunan proses secara struktur hirarki. Sedangkan bila ingin melihat proses yang sedang berjalan secara Real time gunakan perintah top. Perintah ps –al Perintah pstree –al Modul 5 “ Manajemen Proses ” Asisten : M Tirta M, Rahman, Dicky R.A Perintah top Praktik3!!!!!!!!!!!!!!!!!!! Sekarang kita akan mencoba membuat sebuah program yang menginformasikan no PID dan PPID program tersebut, coba anda ketikan syntax berikut pada editor vi atau yang lainnya, ikuti petunjuk berikut: Membuat programPID.c dengan mengetik: vi programPID.c setelah masuk editor kemudian ketik: #include <stdio.h> #include <unistd.h> int main (void) { printf("ini adalah proses yg diberi no PID %ld\n" (long)getpid()); printf("PID parent(PPID) adalah %ld\n", (long)getppid()); return 0; } Modul 5 “ Manajemen Proses ” Asisten : M Tirta M, Rahman, Dicky R.A Setelah selesai mengetik, perhatikan perintah getpid() dan getppid(), ini merupakan sebuah sistem call yang digunakan untuk mendapatkan no PID dan PPID. Setelah itu simpan hasil kerja dan langsung keluar dari editor. Selanjutnya, kita akan compile file tersebut menggunakan program GCC(GNU C Compiler), yaitu salah satu kompiler bahasa C yang berjalan di linux, seperti halnya Turbo C. Compile dengan mengetikan: gcc programPID.c –o hasil Kemudian jalankan dengan mengetikan: ./hasil Coba anda amati apa yg ditampilkan di layar, sekarang coba lihat no PPID proses tersebut, coba anda cari siapakah parent dari proses tersebut?? Modul 5 “ Manajemen Proses ” Asisten : M Tirta M, Rahman, Dicky R.A