Tampilkan postingan dengan label terminal. Tampilkan semua postingan
Tampilkan postingan dengan label terminal. Tampilkan semua postingan

Sabtu, 17 Juni 2017

Tugas Mandiri Organisasi Komputer dan Sistem Operasi 2: Komunikasi Antar Thread

LAPORAN TUGAS MANDIRI 
ORGANISASI KOMPUTER DAN SISTEM OPERASI
KOMUNIKASI ANTAR 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 program komunikasi antar thread menggunakan Linux versi Ubuntu 64-bit.

KOMPETENSI DASAR
1. Memahami Komunikasi antar Thread dalam sistem operasi Linux Ubuntu 64-bit.
2. Memahami fungsi Komunikasi antar Thread
3. Memahami bahasa pemrograman pada terminal Linux

TEORI SINGKAT
Thread adalah unit dasar dari utilitas CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.
Dalam sebuah thread pada sebuah proses terdapat :
Thread state
Saved Thread Context saat tidak berjalan (Individual Program Counter)
Execution Stack
Local Variables


Akses ke memory dan resource yang dimiliki oleh prosesnya alamat atau IP address digunakan secara bersama-sama dari proses yang menciptakannya. Memiliki akses langsung ke segmen data dari prosesnya. Dapat saling berkomunikasi dengan thread lain dalam satu proses. Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat mempengaruhi tingkah laku thread lain dalam satu proses. Ciri-ciri Proses:


Memiliki ruang/space sendiri di memori untuk menampung process image
Tidak dapat mengakses ruang lain di memori yang menjadi milik proses lain
Proses mencakup program counter, yaitu sebuah stack untuk menyimpan alamat dari instruksi yang selanjutnya akan di eksekusi dan di registrasi.
Memiliki ruang alamat atau IP address masing-masing
Dari satu proses dengan proses lainnya harus menggunakan komunikasi.


Keuntungan Thread
Waktu pembuatan yang lebih cepat
Waktu pemberhentian yang lebih cepat 

Waktu pergantian antar thread lebih cepat daripada antar proses
Komunikasi antar thread lebih efisien

LAB SETUP
·         1 buah PC.
·         Sistem Operasi Linux (Ubuntu 64-bit).

LANGKAH-LANGKAH

1. Buka LINUX pada VMware. Ketikkan source code mengenai Komunikasi antar Thread lewat Text Editor seperti berikut.







2. Lalu save di Home dengan nama threadd.c. Lalu buka terminal pada LINUX, lalu ketikkan kode berikut: $ gcc threadd.c -o threaddd.c -lpthread, tekan enter.


3. Setelah selesai, masukkan command berikut: $ ./threaddd.c, lalu tekan enter.


4. Maka akan keluar output seperti berikut. Bila keluar seperti yang dibawah ini, maka anda berhasil menjalankan komunikasi antar thread via LINUX Ubuntu 64-bit.




KESIMPULAN
Thread adalah unit dasar dari utilitas CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama. dengan apa yang kita kerjakan diatas, maka anda telah berhasil menjalankan Komunikasi antar Thread.

Untuk melihat video, klik disini.

Sabtu, 03 Juni 2017

Laporan Organisasi Komputer dan Sistem Operasi 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
·         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.
website hosting in karachi

Laporan Organisasi Komputer dan Sistem Operasi 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 1898


2.       Percobaan dengan Penjadwalan Prioritas
Login sebagai root
Buka tiga terminal, tampilkan pada screen yang sama.

Pada setiap terminal, ketik PSI = “\w:” diikuti Enter.


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 video, klik disini.
website hosting in karachi