SISTEM INFORMASI - BAB 2 PROSES DAN THREAD

2.10. Kesimpulan


2.10.1. Proses

Sebuah proses adalah sebuah peristiwa adanya sebuah proses yang dapat dieksekusi. Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas proses tertentu tersebut. Setiap proses mungkin menjadi satu dari beberapa state berikut, antara lain: new, ready, running, waiting, atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan proses-control-block (PCB)-nya. Sebuah proses, ketika sedang tidak dieksekusi, ditempatkan pada antrian yang sama. Disini ada 2 kelas besar dari antrian dalam sebuah sistem operasi: permintaan antrian I/O dan ready queue. Ready queue memuat semua proses yang siap untuk dieksekusi dan yang sedang menunggu untuk dijalankan pada CPU. Setiap proses direpresentasikan oleh sebuah PCB, dan PCB tersebut dapat digabungkan secara bersamaan untuk mencatat sebuah ready queue. Penjadualan Long-term adalah pilihan dari proses-proses untuk diberi izin menjalankan CPU. Normalnya, penjadualan long-term memiliki pengaruh yang sangat besar bagi penempatan sumber, terutama managemen memori. Penjadualan Short-term adalah pilihan dari satu proses dari ready queue. Proses-proses pada sistem dapat dieksekusi secara berkelanjutan. Disini ada beberapa alasan mengapa proses tersebut dapat dieksekusi secara berkelanjutan: pembagian informasi, penambahan kecepatan komputasi, modularitas, dan kenyamanan atau kemudahan. Eksekusi secara berkelanjutan menyediakan sebuah mekanisme bagi proses pembuatan dan penghapusan. Pengeksekusian proses-proses pada operating system mungkin dapat digolongkan menjadi proses independent dan kooperasi. Proses kooperasi harus memiliki beberapa alat untuk mendukung komunikasi antara satu dengan yang lainnya. Prinsipnya adalah ada dua rencana komplementer komunikasi :

pembagian memori dan sistem pesan. Metode pembagian memori menyediakan proses komunikasi untuk berbagi beberapa variabel. Proses-proses tersebut diharapkan dapat saling melakukan tukar-menukar informasi seputar pengguna variabel yang terbagi ini. Pada sistem pembagian memori, tanggung jawab bagi penyedia komunikasi terjadi dengan programmer aplikasi; sistem operasi harus menyediakan hanya pembagian memori saja. Metode sistem pesan mengizinkan proses-proses untuk tukar-menukar pesan. Tanggung jawab bagi penyedia komunikasi ini terjadi dengan sistem operasi tersebut.


2.10.2. Thread

Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.

Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.

Model one to one: memetakan setiap user thread ke dalam satu kernel thread. berakhir.

Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin,

konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu. Java adalah unik karena telah mendukung thread didalam tingkatan bahasanya. Semua program Java

sedikitnya terdiri dari kontrol sebuah thread tunggal dan mempermudah membuat kontrol untuk multiple thread dengan program yang sama. JAVA juga menyediakan library berupa API untuk membuat thread, termasuk method untuk suspend dan resume suatu thread, agar thread tidur untuk jangka waktu tertentu dan menghentikan thread yang berjalan. Sebuah java thread juga mempunyai empat kemungkinan keadaan, diantaranya: New, Runnable, Blocked dan Dead. Perbedaan API untuk mengelola thread seringkali mengganti keadaan thread itu sendiri.


2.10.3. Penjadualan CPU

Penjadualan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Algoritma yang digunakan dalam penjadulan CPU ada bermacam-macam. Diantaranya adalah First Come First Serve (FCFS), merupakan algoritma sederhana dimana proses yang datang duluan maka dia yang dieksekusi pertama kalinya. Algoritma lainnya adalah Sorthest Job First (SJF), yaitu penjadualan CPU dimana proses yang paling pendek dieksekusi terlebih dahulu. Kelemahan algoritma SJF adalah tidak dapat menghindari starvation. Untuk itu diciptakan algoritma

Round Robin (RR). Penjadulan CPU dengan Round Robin adalah membagi proses berdasarkan waktu tertentu yaitu waktu quantum q. Setelah proses menjalankan eksekusi selama q satuan waktu maka akan digantikan oleh proses yang lain. Permasalahannya adalah bila waktu quantumnya besar sedang proses hanya membutuhkan waktu sedikit maka akan membuang waktu. Sedang bila waktu quantum kecil maka akan memakan waktu saat alih konteks. Penjadualan FCFS adalah non-preemptive yaitu tidak dapat diinterupsi sebelum proses dieksekusi seluruhnya. Penjadualan RR adalah preemtive yaitu dapat dieksekusi saat prosesnya masih dieksekusi. Sedangkan penjadualan SJF dapat berupa nonpreemptive dan preemptive.


2.11. Soal-soal Latihan


2.11.1. Proses

1. Sebutkan lima aktivitas sistem operasi yang merupakan contoh dari suatu managemen proses.

2. Definisikan perbedaan antara penjadualan short term, medium term dan long term.

3. Jelaskan tindakan yang diambil oleh sebuah kernel ketika alih konteks antar proses.

4. Informasi apa saja yang disimpan pada tabel proses saat alih konteks dari satu proses ke proses lain.

5. Di sistem UNIX terdapat banyak status proses yang dapat timbul (transisi) akibat event (eksternal) OS dan proses tersebut itu sendiri. Transisi state apa sajakah yang dapat ditimbulkan oleh proses itu sendiri. Sebutkan!

6. Apa keuntungan dan kekurangan dari :

Komunikasi Simetrik dan asimetrik

Automatic dan explicit buffering

Send by copy dan send by reference

Fixed-size dan variable sized messages

7. Jelaskan perbedaan short-term, medium-term dan long-term?

8. Jelaskan apa yang akan dilakukan oleh kernel kepada alih konteks ketika proses sedang berlangsung?

9. Beberapa single-user mikrokomputer sistem operasi seperti MS-DOS menyediakan sedikit atau tidak sama sekali arti dari pemrosesan yang konkuren. Diskusikan dampak yang paling mungkin ketika pemrosesan yang konkuren dimasukkan ke dalam suatu sistem operasi ?

10. Perlihatkan semua kemungkinan keadaan dimana suatu proses dapat sedang berjalan, dan gambarkan diagram transisi keadaan yang menjelaskan bagaimana proses bergerak diantara state.

11. Apakah suatu proses memberikan ’issue’ ke suatu disk I/O ketika, proses tersebut dalam ’ready’ state, jelaskan?

12. Kernel menjaga suatu rekaman untuk setiap proses, disebut Proses Control Blocks (PCB). Ketika suatu proses sedang tidak berjalan, PCB berisi informasi tentang perlunya melakukan restart suatu proses dalam CPU. Jelaskan dua informasi yang harus dipunyai PCB.


2.11.2. Thread

1. Tunjukkan dua contoh pemrograman dari multithreading yang dapat meningkatkan sebuah solusi thread tunggal.

2. Tunjukkan dua contoh pemrograman dari multithreading yang tidak dapat meningkatkan sebuah solusi thread tunggal.

3. Sebutkan dua perbedaan antara user level thread dan kernel thread. Saat kondisi bagaimana salah satu dari thread tersebut lebih baik

4. Jelaskan tindakan yang diambil oleh sebuah kernel saat alih konteks antara kernel level thread.

5. Sumber daya apa sajakah yang digunakan ketika sebuah thread dibuat? Apa yang membedakannya dengan pembentukan sebuah proses.

6. Tunjukkan tindakan yang diambil oleh sebuah thread library saat alih konteks antara user level thread.


2.11.3. Penjadualan CPU

1. Definisikan perbedaan antara penjadualan secara preemptive dan nonpreemptive!

2. Jelaskan mengapa penjadualan strict nonpreemptive tidak seperti yang digunakan di sebuah komputer pusat.

3. Apakah keuntungan menggunakan time quantum size di level yang berbeda dari sebuah antrian sistem multilevel?

Pertanyaan nomor 4 sampai dengan 5 dibawah menggunakan soal berikut :

Misal diberikan beberapa proses dibawah ini dengan panjang CPU burst ( dalam milidetik) Semua proses diasumsikan datang pada saat t=0

4. Gambarkan 4 diagram Chart yang mengilustrasikan eksekusi dari proses-proses tersebut menggunakan FCFS, SJF, prioritas nonpreemptive dan round robin.

5. Hitung waktu tunggu dari setiap proses untuk setiap algoritma penjadualan.

6. Jelaskan perbedaan algoritma penjadualan berikut :

FCFS

Round Robin

Antrian Multilevel feedback

7. Penjadualan CPU mendefinisikan suatu urutan eksekusi dari proses terjadual. Diberikan n buah proses yang akan dijadualkan dalam satu prosesor, berapa banyak kemungkinan penjadualan yang berbeda? berikan formula dari n.

8. Tentukan perbedaan antara penjadualan preemptive dan nonpreemptive (cooperative). Nyatakan kenapa nonpreemptive scheduling tidak dapat digunakan pada suatu komputer center. Di system komputer nonpreemptive, penjadualan yang lebih baik digunakan.


2.12. Rujukan

CATATAN: Situs (URL) rujukan ini pernah diakses pada pertengahan tahun 2003 yang lalu. Terdapat kemungkinan, bahwa situs tersebut sekaranga ini telah berubah, atau telah dihapus.

1. Avi Silberschatz, Peter Galvin, dan Greg Gagne, 2002, Applied Operationg System Concepts, 1st Ed., John Wiley & Sons, Inc.

2. William Stallings, 2001, Operating Systems -- Fourth Edition, Prentice Hall.

3. R.M. Samik-Ibrahim, 2001, Soal Mid Test 2001, Fakultas Ilmu Komputer, Universitas Indonesia.

4. http://www.cs.ui.ac.id/kuliah/IKI20230/materi/week4/Proses.PDF

(http://www.cs.ui.ac.id/kuliah/IKI20230/materi/week4/Proses.PDF)

5. http://www.cs.ui.ac.id/kuliah/IKI20230/materi/week4/CPU-Scheduler.PDF

(http://www.cs.ui.ac.id/kuliah/IKI20230/materi/week4/CPU-Scheduler.PDF)

6. http://www.cs.nyu.edu/courses/spring02/v22.0202-002/lecture-03.html

(http://www.cs.nyu.edu/courses/spring02/v22.0202-002/lecture-03.html)

7. http://www.risc.uni-linz.ac.at/people/schreine/papers/idimt97/multithread.gif

(http://www.risc.uni-linz.ac.at/people/schreine/papers/idimt97/multithread.gif)

8. http://www.unet.univie.ac.at/aix/aixprggd/genprogc/figures/genpr68.jpg

(http://www.unet.univie.ac.at/aix/aixprggd/genprogc/figures/genpr68.jpg)

9. http://www.unet.univie.ac.at/aix/aixprggd/genprogc/understanding_threads.htm

10. http://www.etnus.com/Support/docs/rel5/html/cli_guide/images/procs_n_threads8a.gif

(http://www.etnus.com/Support/docs/rel5/html/cli_guide/images/procs_n_threads8a.gif)

11. http://www.etnus.com/Support/docs/rel5/html/cli_guide/procs_n_threads5.html

(http://www.etnus.com/Support/docs/rel5/html/cli_guide/procs_n_threads5.html)

12. http://www.crackinguniversity2000.it/boooks/1575211025/ch6.htm

(http://www.crackinguniversity2000.it/boooks/1575211025/ch6.htm)

13. http://lass.cs.umass.edu/~shenoy/courses/fall01/labs/talab2.html

(http://lass.cs.umass.edu/~shenoy/courses/fall01/labs/talab2.html)

14. http://www.isbiel.ch/~myf/opsys1/Exercises/Chap4/Problems1.html

(http://www.isbiel.ch/~myf/opsys1/Exercises/Chap4/Problems1.html)

15. http://www.cee.hw.ac.uk/courses/5nm1/Exercises/2.htm

(http://www.cee.hw.ac.uk/courses/5nm1/Exercises/2.htm )

16. http://www.cs.wisc.edu/~cao/cs537/midterm-answers1.txt

(http://www.cs.wisc.edu/~cao/cs537/midterm-answers1.txt)

5 komentar:
IZAL_CLASSER

THANKSSSSSSS BROOO


uy jawaban"e ra ono je...


Jadi beda proses dan thead apa?


terima kasih artikelnya :D
blogs.unpas.ac.id/anisamaulina/2012/11/24/jurusan-teknik-informatika/


Posting Komentar


TIME's

Followers