Pengantar Dalam kegiatannya sehari-hari, sistem operasi memiliki

advertisement
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
Download