Kamis, 01 November 2012

Tugas SO Praktikum 5 (2011-83-026)

1. Apa yang dimaksud dengan Proses?

Proses merupakan konsep pokok pada sistem operasi, karena salah satu tugas utama sistem operasi adalah
bagaimana mengatur proses – proses yang berjalan di sistem. Sebenarnya apakah Proses itu?
Berikut beberapa definisi proses pada sistem operasi adalah :
1. Program yang sedang dalam keadaan dieksekusi.
2. Unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem
operasi.
Sistem operasi mengolah seluruh proses yang ada di sistem dan bertugas mengalokasikan sumber daya –
sumber daya ke proses yang membutuhkan sesuai dengan kebijaksanaan tertentu. Sumber daya yang
dibutuhkan proses diantaranya CPU, memori, file serta I/O device.



Keadaan Proses
Proses – proses yang dikelola oleh sistem operasi akan melalui serangkaian keadaan yang merupakan
bagian dari aktivitasnya. Keadaan proses ini disebut sebagai status proses yang terdiri dari:

Status New yaitu status dimana proses sedang dibuat.

Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU belum tersedia karena sedang
mengerjakan proses lain.

Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian tertentu. Misalnya sedang
menunggu operasi I/O selesai, menunggu signal dari proses lain, tersedianya memori, dsb.

Status Running yaitu status dimana proses dieksekusi. Pada status ini CPU sedang mengeksekusi
instruksi – instruksi pada proses.

Status Terminated yaitu status dimana proses diakhiri.

Kelima status proses tersebut dapat digambarkan pada diagram berikut:



- Sebuah proses menjadi Waiting karena proses tersebut menunggu suatu kejadian tertentu seperti
selesainya operasi I/O, misalnya perekaman data ke disk karena pada saat perekaman dilakukan
proses sedang tidak menggunakan CPU maka scheduler segera mengalokasikan CPU ke proses
lain yang telah Ready. Apabila kejadian yang ditunggu telah selesai maka proses dipindahkan
kembali ke antrian Ready dan siap dijadwalkan.

- Sebuah proses dari keadaan Running dapat menjadi Ready kembali karena diinterupsi oleh proses
lain. Interupsi dapat disebabkan karena jatah waktu yang diberikan CPU ke proses tersebut telah
habis sementara proses masih memerlukan sejumlah waktu untuk selesai. Jatah waktu yang
diberikan sering disebut sebagai quantum time (time slice) yang dapat berkisar antara 1 hingga
100 milidetik. Interupsi suatu proses terkait erat dengan strategi penjadwalan proses yang
digunakan sistem operasi yaitu strategi preemptive dimana suatu proses dapat saja disela oleh
proses lain pada saat Running.

- Sebuah proses menjadi Terminated disebabkan oleh beberapa hal diantaranya:
1. Proses memang sudah sele sai mengerjakan tugasnya, sehingga diakhiri secara normal
2. Melewati batas waktu yang telah diberikan
3. Terjadi kesalahan perhitungan misalnya mengerjakan instruksi pembagian dengan nol
(division by zero) , atau menyimpan angka yang lebih besar daripada yang dapat diakomodasi
oleh perangkat keras.
4. Terjadi kegagalan I/O seperti kegagalan pembacaan dan penulisan file.
5. Proses induknya berakhir, pada kasus ini suatu proses dibuat oleh proses lain, proses pembuat
disebut sebagai parent, sedangkan proses yang dibuat disebut sebagai child . Sistem dirancang
untuk mengakhiri secara otomatis proses – proses childnya bila proses parent berakhir.
6. Proses child diakhiri atas permintaan proses parentnya. Pada kasus ini parent mengirim signal
tertentu untuk mengakhiri childnya misalnya mengirim signal SIGQUIT, SIGKILL atau
SIGTERM.

Konsep Pembuatan Proses
Konsep pembuatan proses pada sistem operasi linux :
  • Setiap proses diberi nomor khusus sebagai identifikasi yang disebut process identification atau PID berupa angka integer unik.
  • Jika proses selesai (Terminated) maka semua sumber daya yang digunakan termasuk PID dibebaskan kembali.
  • Proses dibuat menggunakan system call fork() yang sering disebut forking proses
  • System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu :
         1. Proses pemanggil disebut PARENT
         2. Proses hasil kopian disebut CHILD
  • Proses CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang berbeda.
  • Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara normal di masing-masing proses pada baris setelah pemanggilan system call fork().
  • Proses pemanggil (PARENT) dapat melakukan forking proses lebih dari satu kali sehingga memungkinkan terdapat banyak proses CHILD yang dieksekusi.
  • Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat terbentuk struktur pohon proses.

2. Apa yang dimaksud perintah unutk menampilkan status proses: ps, pstree.


Ps digunakan untuk melihat suatu informasi status proses sistem seperti proses apa saja yang sedang aktif yang berjalan pada sistem, siapa pemilik proses tersebut, berapa lama proses itu berjalan dan sampai dengan memberikan informasi pengenal pada setiap proses yang dijalankan.


Pstree
Sama halnya dengan perintah ps. Pstree juga mempunyai fungsi yang sama untuk melihat status proses yang berjalan pada sistem. Tetapi informasinya di perlihat dengan bentuk tree (pohon).

3. Sebutkan opsi yang dapat diberikan pada perintah ps!

http://zulkifli19.files.wordpress.com/2012/02/2012-02-27_193945.png

http://zulkifli19.files.wordpress.com/2012/02/2012-02-27_194223.png 

4. Apa yang dimaksud dengan sinyal? Apa perintah untuk mengirim sinyal!

Sinyal adalah suatu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang berjalan bahwa ada sesuatu yang harus dikendalikan. Berdasarkan sinyal yang dikirim ini maka proses dapat bereaksi dan  administrator/programmer dapat menentukan reaksitersebut. Kill merupakan perintah yang berfungsi untuk mengirimkan sinyal ke proses atau menghentikan proses. Biasanya untuk menghentikan proses signal kita bisa menggunakan kill SIGNAL PID dimana PID sudah diketahui. Mengirim sinyal menggunakan instruksi :
kill [-nomor sinyal] PID

5. Apa yang dimaksud proses foreground dan background pada job control?

Job bekerja pada foreground atau background. Pada foreground hanya diperuntukkan untuk satu job pada satu waktu. Job pada foreground akan mengontrol shell menerima input dari keyboard dan mengirim output ke layar. Job pada background tidak menerima input dari terminal, biasanya berjalan tanpa memerlukan interaksi. Job pada foreground kemungkinan dihentikan sementara (suspend), dengan menekan [Ctrl-Z]. Job yang dihentikan sementara dapat dijalankan kembali pada foreground atau background sesuai keperluan dengan menekan ”fg ” atau ”bg ”. Sebagai catatan, menghentikan job seme ntara sangat berbeda dengan melakuakan interrupt job (biasanya menggunakan [Ctrl-C]), dimana job yang diinterrup akan dimatikan secara permanen dan tidak dapat dijalankan lagi.

6. Apa yang dimaksud perintah-perintah penjadwalan prioritas : top, nice, renice. 
  • Top
Perintah top digunakan untuk menampilkan proses pada CPU.Perintah ini untuk menampilkan proses yang sedang berjalan secara realtime (kontinue) dan bisa digunakan untuk menampilkan proses dan penggunaan resource yang paling aktif.
  • Nice
Dengan perintah nice kita bisa mengubah prioritas pengerjaan sebuah proses, Secara default prioritas nice diset pada nilai 10. Range nilai Nice dari +19 (very nice) hingga −20 (not very nice). Misalkan kita ingin mengcopy dari CD-ROM sebuah CD
instalasi Kubuntu.7.10,
$ dd if=/dev/cdrom of=~/mdk1.iso
Karena data yang dicopy dari CD-ROM ke hardisk besar, maka memerlukan banyak resource dan waktu yang lama. gunakan opsi -n dan prioritas maksimal yaitu 19.
$ nice -n 19 dd if=/dev/cdrom of=~/mdk1.isorenice.
  • Renice
Operasi renice kebalikan dari nice, Renice digunkana untuk menurunkan prioritas pengerjaan sebuah proses. Misalkan kita memiliki proses yang dijalankan dengan PID 785, yang mengerjakan perhitungan matematika yang panjang, sedangkan pada saat yang sama kita ingin melakukan operasi lain misalkan bermain game yang membutuhkan free system resources. anda dapat mengetikkan :
$ renice +15 785

1 komentar: