LAPORAN ORGANISASI KOMPUTER DAN SISTEM OPERASI
THREAD
Disusun Oleh Kelompok G :
Dwiky Semuel |
NIM: 064001600018
| |
Muhammad Iqbal
|
NIM: 064001600005
| |
Niko Putra
|
NIM: 065001600008
| |
Yusuf Alvino Riondi
|
NIM: 064001600014
| |
Teknik Informatika
Fakultas Teknologi Industri
Universitas Trisakti
Jakarta – Indonesia
2017
DESKRIPSI
Membuat thread dengan vi
editor di Linux
KOMPETENSI DASAR
1. Memahami Thread dalam
sistem operasi Linux
2. Memahami fungsi
Call-Clone
3. Memahami Interface
pthread
4. Memahami Mutex di Linux
TEORI SINGKAT
Thread adalah eksekusi
multiple path yang dijalankan secara simultan di dalam memori bersama, sehingga
akses ke sumberdaya proses dapat dilakukan bersamaan, seperti deksripsi
file dan penanganan sinyal. Multithreading
adalah kemampuan sistem operasi untuk mendukung adanya beberapa thread di dalam sebuah proses. Sistem
operasi terdahulu seperti MS DOS tidak mengenal konsep multiproses maupun
multithread sehingga hanya dapat menjalankan satu proses dan setiap proses
adalah sebuah thread.
LAB SETUP
·
1 buah PC
·
Sistem Operasi Linux (Ubuntu)
FUNGSI DASAR PTHREAD
Kami buat file thrdcreat.c menggunakan vi editor dengan mengetikkan:
$ vi thrdcreat.c
Kemudian kami tekan Esc lalu
kami ketikkan :wq untuk menyimpan
codingan tersebut
Lalu kami kompilasi thrdcreat.c dengan menggunakan gcc dengan
mengetik:
$ gcc thrdcreat.c –o thrdcreat1.c –lpthread
Lalu kami eksekusi dengan mengetik:
$ ./thrdcreat1.c
Task1 dan Task2 melaksanakan tugas dimulai dengan hitungan nol secara
bersamaan. Task2 mengerjakan tugas selama 5 hitungan (dimulai dari 0 kemudian 1
hingga 4) jika sudah selesai akan dilanjutkan untuk melaksanakan Task1. Task1
mengerjakan tugas selama 5 hitungan (dimulai dari 0 kemudian 1 hingga 4)
sehingga dalam melaksanakan 2 buah tugas dibutuhkan 10 iterasi.
PEMBATALAN PTHREAD
Kemudian kami membuat thrdcancel.c menggunakan vi editor dengan
mngetikkan:
$ vi thrdcancel.c
Kemudian kami tekan Esc lalu
kami ketikkan :wq untuk menyimpan
codingan tersebut.
Lalu kami kompilasi thrdcancel.h dengan menggunakan gcc dengan
mengetik:
$ gcc thrdcancel.h –o thrdcancel1.h –lpthread
Lalu kami eksekusi dengan mengetik:
$ ./thrdcancel1.h
Task1 dan Task2 melaksanakan tugas dimulai dengan hitungan nol secara
bersamaan. Task2 mengerjakan tugas selama 5 hitungan (dimulai dari 0 kemudian 1
hingga 4) jika sudah selesai akan dilanjutkan untuk melaksanakan Task1. Task1
mengerjakan tugas selama 5 hitungan (dimulai dari 0 kemudian 1 hingga 4)
sehingga dalam melaksanakan 2 buah tugas dibutuhkan 10 iterasi.
PEMAKAIAN MUTEX DASAR
Kemudian kami membuat mutex.c menggunakan vi editor dengan
mengetikkan:
$ vi mutex.c
Kemudian kami tekan Esc lalu
kami ketikkan :wq untuk menyimpan
codingan tersebut.
Lalu kami kompilasi mutex.c dengan menggunakan gcc dengan mengetik:
$ gcc mutex.c –o mutex1.c –lpthread
Lalu kami eksekusi dengan mengetik:
$ ./mutex1.c
Indeks thread melakukan increment pada counter sedangkan monitor
melakukan pengecekan nilai counter. Waktu akhir adalah NULL + 30 detik, 30
detik merupakan panggilan waktu untuk melakukan ticks, sehingga setiap ticks
dilakukan setiap 3 detik. 3 kali 10 iterasi.
Mutex Cepat (Fast Mutex atau
Futex/Simple Mutex):
Sebuah mutex sederhana adalah default, yang paling sederhana (dan
karena itu paling cepat) pelaksanaan mutex. Memiliki karakteristik:
·
Ini dapat dikunci hanya sekali, tapi ini tidak
dicek. Jika suatu thead mencoba untuk mengunci mutex kedua kalinya, itu
deadlock.
·
Ini tidak terdefinisi apa yang terjadi jika
thread mencoba untuk membuka mutex yang dikunci oleh thread lain.
Mutex Rekursive:
Sebuah mutex rekursif adalah mutex yang dapat dikunci beberapa kali,
dan memelihara counter kunci, jumlah yang sama panggilan unlocking harus
digunakan sebelum mutex akan benar-benar dibuka.
Sebuah mutex rekursif tidak harus memeriksa kesalahan, jika thread lain
mencoba untuk membuka mutex yang dikunci oleh thread lain, hasilnya tidak
terdefinisi.
Mutex error-checking:
Mutex error-checking adalah mutex yang memeriksa untuk kondisi error
(yang membuatnya lebih lambat dan lebih kompleks daripada default, mutex
sederhana).
Memiliki karakteristik:
·
Ini dapat dikunci hanya sekali dan aturan ini
dicentang. Jika suatu thread mencoba untuk mengunci beberapa kali, hal itu akan
error (EDEADLK).
·
Ini menjamin bahwa hanya Thread penguncian dapat
membukanya, jika thread lain mencoba untuk membukanya, akan mendapat error (EPERM).
EDEADLK (Deadlock Avoided)
Kode keselahan EDEADLK dihasilkan ketika panggilan sinkronisasi
terkait digunakan dengan cara yang akan menyebabkan deadlock, dan sistem mampu
mendeteksi ini.
EPERM (Operation not permitted)
Kesalahan kode ini dihasilkan pada upaya untuk melakukan operasi yang
perlu izin khusus yang tidak memiliki proses pemanggilan.
DAFTAR CEKLIST
NO.
|
NAMA
|
CEK
|
1.
|
Membuat thread dengan vi editor di Linux
|
Check
|
FORM FEEDBACK
NO.
|
ELEMEN
KOMPETENSI
|
TINGKAT
KETERTARIKAN
|
TINGKAT
KESULITAN
|
1.
|
Membuat thread dengan vi editor di Linux.
|
Baik
|
Baik
|
KESIMPULAN
Dengan
menggunakan Thread dari pada proses kita mendapat beberapa keuntungan antara
lain:
1. membuat thread baru lebih cepat daripada membuat
proses baru.
2. menghentikan thread lebih cepat daripada menghentikan proses.
3. waktu untuk
penghentian thread lebih cepat
dibandingkan pergantian proses.
4. komunikasi antar thread lebih cepat karena berada dalam
satu proses sehingga tidak memerlukan intervensi dari kernel.
Hal ini berguna bagi
sistem operasi karena dengan banyak control thread proses dapat melakukan lebih
dari satu pekerjaan pada waktu yang sama.
Untuk melihat video, klik disini.
Thanks artikelnya mas..
BalasHapusThanks artikelnya mas..
BalasHapusMantab mas. Apik rek!
BalasHapusmantap bener infonya gan
BalasHapus