Anda di halaman 1dari 11

MODUL PRAKTIKUM SISTEM OPERASI

PRAKTIKUM II
MUTLITHREADING
A. Tujuan

a) Mensimulasikan sebuah multi thread program


b) Menulis kode sumber yang membuat thread
c) Menampilkan daftar proses/ thread dan pohon proses yang
menggambarkan hubungan antar proses induk/anak.
d) Memodifikasi kode sumber untuk membuat versi tanpa thread dan
membandingkannya dengan versi yang menggunakan thread
e) Memahami alasan penggunaan thread.

B. Dasar Teori
Threading adalah sebuah lightweight process (proses sederhana) yang
mempunyai thread tunggal yang berfungsi sebagai pengendali/ controller.
Multi-Threading adalah proses dengan thread yang banyak dan
mengerjakan lebih dari satu tugas dalam satu waktu. Konsep proses
mengandung dua karakteristik:

1. Unit kepemilikan sumber daya


2. Unit pengiriman (dispatching)

Untuk membedakan kedua karakteristik itu, unit dispatching biasanya


disebut sebagai thread, atau lightweight process, sedangkan unit
kepemilikan sumber daya biasanya masih disebut sebagai proses atau task
(Stallings, 2003).
Dengan begitu pada tiap thread terdapat ID thread, program counter,
register, dan stack (terkait unit dispatching). Namun saling berbagi dengan
thread yang lain (dalam satu proses) terhadap kepemilikan sumber daya
yang sama.
C. Langkah-Langkah

Percobaan 1 :

1. Untuk program pertama kita akan menjalankan instruksi berikut,


sebelummya save terlebih dahulu di Notepad dengan nama
Thread_EX1.txt :
program ThreadTest1
sub thread1 as thread
for i = 1 to 10
writeln("In thread1: ",i)
next
end sub
sub thread2 as thread
for i = 11 to 20
writeln("In thread2: ",i)
next
end sub

Call thread1
Call thread2
Writeln(“in main”)
do
loop
end

2.
Bukalah aplikasi CPU-SIMULATOR yang telah diinstal pada
pertemuan sebelumnya. Untuk membuat percobaan kali ini kita akan
menggunakan COMPAILER. Lalu klik COMPAILER.
3. Setelah itu klik LOAD pada SOURCE dan cari file yang telah kita
buat sebelumnya.

4. Setelah tampil seperti gambar dibawah, kemudian klik Compile pada


tab Compile. Kemudian save dengan nama Thread_EX1.bin.
Selanjutnya hilangkan centang pada base address dan gantilah Base
address dengan 100 kemudian klik tombol load in memory.
5. Setelah itu akan kembali tampilan CPU-SIMULATOR seperti diawal
kemudian klik COMPAILER lalu klik SHOW OS seperti tampilan
dibawah ini.

6. Kemudian create new process, lalu pilih Round Robin pada


scheduler dan mengganti round robin time slice menjadi 3 dan
mengganti kecepatannya menjadi medium seperti gambar dibawah ini.
7. Setelah itu kembali ke CPU-SIMULATOR dan klik tombol Input
Output lalu kembali ke OS-SIMULATOR dan mengklik START
pada OS Control.

Latihan :

1. Berapa banyak proses yang terbuat? Lalu Identifikasi, yang mana


Proses dan yang mana thread.

2. Klik Views > Process List> Precess tree, identifikasi yang mana
parents dan childs.

Tuliskan kesimpulan anda!:


…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………
Percobaan 2 :

1. Untuk program kali ini kita akan menjalankan instruksi berikut,


sebelummya save terlebih dahulu di Notepad dengan nama
Thread_EX2.txt :

program ThreadTestver2
var s1 string(6)
var s2 string(6)
sub thread1 as thread
s1="hello1"
end sub

sub thread2 as thread


call thread1
s2="hello2"
end sub
call thread2

writeln("In main")
wait
writeln(s1)
writeln(s2)
end

2. Bukalah aplikasi CPU-SIMULATOR yang telah diinstal pada


pertemuan sebelumnya. Untuk membuat percobaan kali ini kita akan
menggunakan COMPAILER. Lalu klik COMPAILER.
3. Setelah itu klik LOAD pada SOURCE dan cari file yang telah kita
buat sebelumnya.

4. Setelah tampil seperti gambar dibawah, kemudian klik Compile pada


tab Compile. Kemudian save dengan nama Thread_EX2.bin.
Selanjutnya hilangkan centang pada base address dan gantilah Base
address dengan 100 kemudian klik tombol load in memory.
5. Setelah itu akan kembali tampilan CPU-SIMULATOR seperti diawal
kemudian klik COMPAILER lalu klik SHOW OS seperti tampilan
dibawah ini.

6. Kemudian create new process, lalu pilih Round Robin pada


scheduler dan mengganti round robin time slice menjadi 3 dan
mengganti kecepatannya menjadi medium seperti gambar dibawah ini.
7. Setelah itu kembali ke CPU-SIMULATOR dan klik tombol Input
Output lalu kembali ke OS-SIMULATOR dan mengklik START
pada OS Control.

Latihan :
1. Identifikasi,apa perbedaan Thread 1 Dan Thread 2?

Tuliskan kesimpulan anda!:


…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………
D. EVALUASI
1. Buatlah multi thread berikut yang thread pertama berisikan string A
yang kemudian thread tersebut dipanggil pada thread kedua yang
memiliki nilai masukan 11 to 15 berupa perulangan, buatlah
outputnya setiap masukan dari thread ke dua menjadi = A
(Ex : 35 = A)
2. Tunjukkan hasil program anda!

Tuliskan kesimpulan anda!:


…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………

Anda mungkin juga menyukai