Selasa, 06 Juni 2017

Praktikum 12: THREAD

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
  • Sebuah 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.c –o thrdcancel1.c –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 karna dengan banyak control thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

Untuk Melihat Video Praktikum 12, Klik Disini

Praktikum 11: Konfigurasi Frame Relay

LAPORAN PRAKTIKUM JARINGAN KOMPUTER
KONFIGURASI FRAME RELAY PADA CISCO PAKET TRACER

 


Disusun Oleh Kelompok I :
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

i. Tujuan Praktikum
Laporan ini dibuat untuk menyelesaikan praktikum sebelas matakuliah Jaringan Komputer. Selain itu, hal ini juga beguna sebagai panduan umum dalam membuktikan percobaan Frame Relay.


ii. Teori Percobaan
Frame Relay adalah protokol WAN yang beroperasi pada layer pertama dan kedua dari model OSI, dan dapat diimplementasikan pada beberapa jenis interface jaringan. Frame relay adalah teknologi komunikasi berkecepatan tinggi yang telah digunakan pada ribuan jaringan di seluruh dunia untuk menghubungkan LAN, SNA, Internet dan bahkan aplikasi suara/voice
Frame relay adalah cara mengirimkan informasi melalui wide area network (WAN) yang membagi informasi menjadi frame atau paket. Masing-masing frame mempunyai alamat yang digunakan oleh jaringan untuk menentukan tujuan. Frame-frame akan melewati switch dalam jaringan frame relay dan dikirimkan melalui “virtual circuit” sampai tujuan.

iii. Langkah-Langkah Percobaan


1. Buatlah topologi seperti berikut ini.
2. Atur Ip Address semua PC dan Gatway
PC
PC 0
192.168.10.5/24
PC1
192.168.10.6/24
PC2
192.168.20.5/24
PC3
192.168.20.6/24
Gatway : 10.0.0.1



3. Pengaturan pada router 
Untuk konfigurasi ip address dan frame relay Router, klik icon router dan masukan perintah berikut pda mode CLI router :
Head Office
Router>enable
Router#configure terminal 
Router(config)#hostname HeadOffice
HeadOffice(config)#interface se2/0 
HeadOffice(config-if)#ip address 10.0.0.1 255.0.0.0 
HeadOffice(config-if)#encapsulation frame-relay 
HeadOffice(config-if)#frame-relay lmi-type ansi 
HeadOffice(config-if)#frame-relay inte 
HeadOffice(config-if)#frame-relay interface-dlci 50 
HeadOffice(config-if)#no shutdown 
HeadOffice(config-if)#exit 
HeadOffice(config)#interface fastEthernet 0/0 
HeadOffice(config-if)#ip address 192.168.10.1 255.255.255.0 
HeadOffice(config-if)#no shutdown 
HeadOffice(config-if)#exit 

Branch Office
Router>enable 
Router#configure terminal 
Router(config)#hostname BranchOffice
BranchOffice(config)#interface serial 2/0 
BranchOffice(config-if)#ip address 10.0.0.2 255.0.0.0 
BranchOffice(config-if)#clock rate 64000 
BranchOffice(config-if)#encapsulation frame-relay 
BranchOffice(config-if)#frame-relay lmi-type ansi 
BranchOffice(config-if)#frame-relay interface-dlci 60 
BranchOffice(config-if)#no shutdown 
BranchOffice(config-if)#exit 
BranchOffice(config)#interface fastEthernet 0/0 
BranchOffice(config-if)#ip address 192.168.20.1 255.255.255.0 
BranchOffice(config-if)#no shutdown 
BranchOffice(config-if)#exit 


4. Pengaturan pada clound
Klik icon Cloud, karena kabel serial dari head office tersambung ke se0 dari Cloud maka kita daftarkan DLCI milik Head Office (50) kedalam interface se0 milik Cloud dan tentukan juga jenis LMI nya.
Dan untuk se1 Cloud yang terhubung dengan kabel serial milik Branch Office, daftarkan DLCI milik Branch Office (60) kedalam interface se1 milik Cloud dan tentukan juga jenis LMI nya.

Klik pada bagian connection, Frame Relay.. seting interfacenya menjadi 
Serial0 | HeadOffice <--> Serial1 | BrachOffice, kemudian klik add.

5. Mengatur konfigurasi Routing Protocol
Klik kembali router dan masukan perintah konfigurasi berikut pada CLI :
Head Office
HeadOffice(config)#router rip 
HeadOffice(config-router)#version 2
HeadOffice(config-router)#network 10.0.0.0
HeadOffice(config-router)#network 192.168.10.0
HeadOffice(config-router)#network 192.168.20.0 
HeadOffice(config-router)#exit 
HeadOffice(config)#exit 
HeadOffice#copy running-config startup-config 
Destination filename [startup-config]? 
Building configuration... 
[OK] 

Branch Office
BranchOffice(config)#router rip
BranchOffice(config-router)#version 2
BranchOffice(config-router)#network 10.0.0.0
BranchOffice(config-router)#network 192.168.20.0 
BranchOffice(config-router)#network 192.168.10.0 
BranchOffice(config-router)#exit 
BranchOffice(config)#exit 
BranchOffice#copy running-config startup-config 
Destination filename [startup-config]?
Building configuration... 
[OK] 
5. Test Koneksi
lakukan test koneksi pada comenpromt pc 0, masukan ping pc 1.

 

Untuk Melihat Video Praktikum 11, Klik Disini

Praktikum 11: Manajemen dan Penjadwalan Proses

LAPORAN ORGANISASI KOMPUTER DAN SISTEM OPERASI
MANAJEMEN DAN PENJADWALAN PROSES

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 LAPORAN
Mempelajari dan mengenal manajemen dan penjadwalan pada system operasi Linux.

TEORI SINGKAT
Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas system atau program aplikasi dari shell, satu lebih proses “child” akan dibuat oleh shell sesuai dengan perintah yang diberikan. Setiap kali instruksi diberikan kepada Linux Shell, maka kernel akan menciptakan sebuah proses-id yang disebut dengan terminology Unix sebagai sebuah job. Ada beberapa tipe proses: Yang pertama adalah foreground yang merupakan proses yang diciptakan oleh pemakai langsung pada terminal (interaktif, dialog), kemudia Batch yang merupakan proses yang dikumpulkan dan dijalankan secara sekuensial, lalu Daemon yang merupakan proses yang menunggu permintaan dari proses lainnya dn menjalankan tugas sesuai perminaan tersebut.

Proses melewati serangkaian keadaan diskrit. Penjadwalan proses merupakan kumpulan kebijakan dan mekanisme di system operasi yang berkaitan dengan urutan kerja yang dilakukan system computer. Penjadwal (scheduler) bertugas untuk memutuskan hal-hal seperti proses yang harus berjalan dan kapan dan berapa lama proses berjalan.

LAB SETUP
Untuk dapat menjalankan praktikum ini maka harus disiapkan peralatan sebagai berikut:
  • Komputer / Laptop dengan OS Linux
  • Program terminal
ELEMEN KOMPETENSI I
Deskripsi : Proses dan manajemen proses
Kompetensi Dasar : 1. Dapat menjalankan proses pada sistem operasi Linux
                                      2. Dapat mengontrol proses lain pada Linux
                                      3. Dapat menggunakan simulator sistem operasi
               
1. Menghentikan dan memulai kembali job
Cara lain meletakkan job pada background dengan memulai job secara normal (pada foreground), stop job dan memulai lagi pada background
$ yes > /dev/null
Hentikan semestara job (suspend), bukan menghentikannya (terminate),tetap menghentikan sementara job sampai direstart.
Untuk menghentikannya sementara job gunakan Ctrl+Z.
Untuk restart job pada foreground, gunakan perintah fg
$ fg
Shell akan menampilkan nama perintah yang diletakkan di foreground. Stop job lagi dengan Ctrl+Z. Kemudian gunakan perinath bg untuk meletakkan job pada background.
$ bg

Job pada background dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan jika mencoba mengerjakanjob lain.



$ yes & 
Untuk menghentikannya tidak dapat menggunakan Ctrl+C. Job harus dipindah ke foreground, baru dihentikan dengan cara tekan fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl+Z untuk menghentikan sementara.

Apabila ingin menjalankan anyak job dalam satu waktu, letakkan job pada foreground atau background dengan memberikan job id.
$ fg %2 atau $ %?
$ bg %2
Tekan fg dan tekan enter. Kemudian dilanjutkan dengan Ctrl+Z untuk menghentikan sementara.
Lihat job dengan perintah ps –fae dan tekan enter. Kemudian hentikan proses dengan perintah kill.

$ ps –fae
$ kill -5 1816
2. Percobaan dengan Penjadwalan Prioritas
Login sebagai root.
Buka tiga terminal, tampilkan pada screen yang sama.
Pada setiap terminal, ketik Sudo su - root.
Karena login sebagai root, maka akan ditampilkan ~: pada setiap terminal. Untuk setiap terminal ketik pwd dan tekan Enter.

Buka terminal lagi (ke empat), atur posisi hingga ke-empat terminal terlihat pada sceen.

Pada terminal keempat, ketika top dan tekan Enter. Maka program top akan muncul. Ketik i. Top akan menampilkan proses yang aktif. Ketik lmt. Top tidak lagi menampilkan informasi pada bagian atas dari screen. Pada percobaan ini, terminal ke empat sebagai jendela Top.
Pada terminal 1, bukalah program executable C++ dengan mengetik yes dan tekan Enter.

Ulangi langkah 7 untuk terminal 2.
Jendela Top akan menampilakn dua program yes sebagai proses yang berjalan. Nilai %CPU sama pada keduanya. Hal ini berarti berdua proses mengkonsumsi waktu proses yang sama dan berjalan cepat. Namun PID dari kedua proses berbeda. Kemudian gunakan terminl 3 dan ketik renice 19<PID terminal> dan diikuti enter.
Tunggu beberapa saat sampai program top berubah dan terlihat pada jendela top.
Pilih jendela top dan tekan r. Program top pada prompt, PID to renice: tekan <PID terminal> dan tekan enter. Program top memberikan prompt Renice PID <PID terminal> to value : tekan -19 dan tekan enter.
Tunggu beberapa saat sampai top berubah dan lihat nilai %CPU pada kedua proses.

Pilih terminal 3 dan ketik nice –n -10 yes dan tekan enter. Tunggu beberapa saat agar program top berubah dan akan terlihat proses primes ketiga.
Jangan menggunakan mouse dan keyboard selama sepuluh detik.
Program top akan menampilkan proses yang aktif selain program yes. Maka akan terlihat proses top terdaftar tetapi %CPU kecil dan konsisten.
Sehingga kursor berubah pada screen dan terlihat apa yang terjadi pada tampilan top. Proses tambahan akan muncul nilai %CPU akan berubah. Pilih jendela top ketik r. PID to renice : muncul prompt. Ketik PID terminal dan tekan enter. Kemudian ketik 0 dan tekan enter.

CHECKLIST
NO.
ELEMEN KOMPETENSI
CEKLIST
1.
Proses dan manajemen proses.
Checklist
2.
Program FORNEXTLOOP pada jendela OS Simulator.
Checklist 

FORM UMPAN BALIK
NO.
ELEMEN KOMPETENSI
TINGKAT KESULITAN
TINGKAT KETERTARIKAN
1.
Proses dan manajemen proses.
 Baik
 Baik
2.
Program FORNEXTLOOP pada jendela OS Simulator.
 Baik
 Baik


Untuk Melihat Video Praktikum 11, Klik Disini