Langsung ke konten utama

Thread dan IPC nyamnyamnyam

Selamat siang teman-teman sekaliaaaaannn :))
Gimana kabarnya? Bentar lagi weekend nih, udah ada rencana liburan? Mungkin temen-temen rantau ada yang mau pulang kandang, atau ada yang sekedar mau wisata, atau ada yang mau nonton film-film yang baru keluar nih di bioskop? Yak, nay denger lagi banyak film yang bagus sih. Oke pokoknya apapun yang bakal kalian lakuin semoga bisa mengisi weekend kalian dengan hal yang bermanfaat yah. Nah di edisi apdetan blog nay kali ini nay bakal menemani weekend kalian dengan sedikit cerita tentang sistem operasi nih. Oke oke. Semoga bisa menambah ilmu teman-temna sekalian.

Oke, lets start it. Pada bahasan hari ini nay akan jelasin tentang Thread dan IPC. Apasih Thread itu? Thread adalah bagian kecil dari suatu proses yang bisa dijadwalkan oleh sistem operasi yang sering juga disebut proses ringan atau lightweight.
Ada beberapa jenis thread, ada single threading dan multi threading. Single threading adalah proses dengan satu thread yang berjalan, biasanya digunakan sebagai pengendali jalannya proses. Multi threading adalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu.

Ada juga beberapa model threading
1. Kernel-level threading; thread ini dibuat oleh pengguna yang berkorespondensi 1-1 dengan entitas-entitas yang terjadwalkan yang berada di kernel. Ini merupakan implementasi (penerapaan) paling sederhana dari threading.
- Thread kernel didukung langsung oleh sistem operasi.
- Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space.
- Pengaturan thread dilakukan oleh sistem operasi, sehingga pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread.
2. User-level threading; sebuah pemetaan N-1, yang berarti bahwa semua level aplikasi thread dipetakan ke entitas tunggal yang ada di kernel. Dengan pendekatan ini, switching proses dapat dilakukan dengan sangat cepat.
- Thread pengguna didukung kernel serta diimplementasikan dengan pustaka (library) thread pada tingkatan pengguna.
- Pustaka (library) menyediakan fasilitas untuk pembuatan thread, penjadwalan thread, dan manajemen thread tanpa dukungan dari kernel.
- Semua pembuatan dan penjadwalan thread dilakukan dalam ruang pengguna tanpa campur tangan kernel.
-Thread pengguna biasanya dapat cepat dibuat dan dikendalikan
3. Hybrid threading; sebuah pemetaan M-N, yang berarti beberapa jumlah N-thread aplikasi dipetakan ke beberapa entitas di kernel.



Kalo IPC itu apasih nay? Yak, IPC itu adalah singkatan dari Inter-Process Communication atau komunikasi antar proses, ini adalah cara atau mekanisme pertukaran data antara satu proses dengan proses yang lainnya, baik itu proses yang berada di dalam komputer yang sama ataupun komputer jarak jauh yang terhubung dnegan jaringan. Teknik IPC ini terbagi metode message passing, synchronization, shared memory, dan remote procedure calls (RPC). Teknik IPC dapat digunakan dengan metode yang bervariasi tergantung olen latency dan bandwidth komunikasi antar thread dan jenis data yang dikomunikasikan. Ada beberapa dari API (Application Programming Interface) yang memungkinkan untuk digunakan untuk IPC.
Yup selanjuntya nay akan jelasin salah satu contoh soal thread. Salah satunya adalah music player.
Music player yang akan kita buat masih menggunakan tampilan yang sederhana.
Music playernya memiliki 6 inputan, inputan 1 untuk menampilkan help list, inputan 2 untuk menampilkan playlist, inputan 3 untuk mem-play musik yang akan dimainkan, inputan 4 untuk mem-pause lagu selama t detik, inputan 5 untuk meng-continue lagu selama t detik, dan terakhir inputan 6 untuk men-stop lagu.


Ya contoh di atas adalah kodingan dari thread music player. Kita menggunakan 2 thread. Thread yang pertama digunakan untuk melihat playlist lagu, digunakan dengan menggunakan format “ls | grep .mp3”. Fungsi ls digunakan untuk melihat isi dari suatu folder, fungsi grep digunakan untuk mengambil data dengan format tertentu, dalam kasus ini mengambil data dengan format '.mp3'.
Thread yang kedua digunakan untuk mem-play lagu yang akan dimainkan. User dapat menginputkan judul lagu dari playlist untuk dimainkan. Setelah itu lagu akan dimainkan dengan menggunakan syntax “system(music);”.

Fungsi main dari program ini adalah

int main(){
system("clear");
int err=0;
int i=0;
while (1){
int input;
int err=0;
int i=0;
scanf("%d", &input);
// menampilkan help list
if(input==1){
system("clear");
printf("Help List\n");
printf("Daftar List Perintah :\n");
printf("1 = Menampilkan Help List\n");
printf("2 = Menampilkan Playlist\n");
printf("3 = Play Lagu\n");
printf("4 = Pause selama t detik\n");
printf("5 = Continue selama t detik\n");
printf("6 = Stop selama t detik\n");
printf("7 = Exit\n");
}

// pause lagu setelah t detik
else if(input==4){
scanf("%d", &n);
printf("\n");
system("clear");
sleep(n);
system("pkill -STOP vlc");
printf("PAUSE\n");
fflush(stdout);
}

// meng-continue lagu setelah t detik
else if(input==5){
scanf("%d", &n);
printf("\n");
system("clear");
sleep(n);
system("pkill -CONT vlc");
printf("RESUME\n");
fflush(stdout);
}

// men-stop lagu setelah t detik
else if(input==6){
scanf("%d", &n);
printf("\n");
system("clear");
sleep(n);
system("pkill vlc");
printf("TERMINATE\n");
fflush(stdout);
}
else if(input==7){
system("pkill vlc");
break;
}
else{
err=pthread_create(&(tid[input]), NULL, &PlayAndCount, NULL);
while(err!=0){
if(err!=0){
printf("\ncan't create thread : [%s]", strerror(err));
}
else err=pthread_create(&(tid[input]), NULL, &PlayAndCount, NULL);
}
sleep(1);
}
}
return 0;
}

oh iya nay mau mengingatkan untuk menjalankan thread di terminal kalian harus menggunakan syntax

gcc -pthread -o namapilihan namaprogram.c
./namapilihan

Yak, segitu dulu nih sharing-sharing dari nay, semoga dapat bermanfaat dan dapat menemani kesendirian kalian di weekend kali ini hehe. Sampai ketemu lagi di apdetan nay selanjutnya, byebye (kiss)(muah)

Komentar

Postingan populer dari blog ini

Sequence Diagram, Class Diagram dan Use Case Sistem Informasi Laundry

Sistem Informasi Laundry minggu ke-6  Sequence Diagram Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek-obyek yang melakukan suatu tugas atau aksi tertentu. Obyek-obyek tersebut kemudian diurutkan dari kiri ke kanan, aktor yang menginisiasi interaksi biasanya ditaruh di paling kiri dari diagram. Pada diagram ini, dimensi vertikal merepresentasikan waktu. Bagian paling atas dari diagram menjadi titik awal dan waktu berjalan ke bawah sampai dengan bagian dasar dari diagram. Garis Vertical, disebut lifeline, dilekatkan pada setiap obyek atau aktor. Kemudian, lifeline tersebut digambarkan menjadi kotak ketika obyek melakukan suatu operasi , kotak tersebut disebut activation box. Obyek dikatakan mempunyai live activation pada saat tersebut. Pesan yang dipertukarkan antar obyek digambarkan sebagai sebuah anakpanah anta

Hierarchial Input-Process-Output (HIPO)

Hierarchial Input-Process-Output (HIPO) Pengertian ü   Menurut Jogiyanto HM dalam buku Analisis & Desain Sistem Informasi (2005:787) HIPO ( Hierarchy plus Input-Process-Output)  adalah alat disain dan teknik dokumentasi dalam siklus pengembangan sistem. ü   Menurut Praptiningsih (2010:3),  “HIPO (Hierarchy Plus Input Process Output) adalah alat bantu yang digunakan untuk membuat spesifikasi program yang merupakan struktur yang berisi diagram dimana didalam program ini berisi input yang diproses dan menghasilkan output” ü   Jadi, HIPO adalah alat yang digunakan sebagai dokumentasi program dan sebagai alat desain dan teknik dokumentasi dalam siklus pengembangan system. ·          Merupakan metodologi yang dikembangkan dan didukung oleh IBM. ·          Sebenarnya merupakan alat dokumentasi program. ·          Sekarang banyak digunakan sebagai alat disain dan teknik dokumentasi dalam siklus pengembangan system ·          Berbasis pada fungsi, yaitu tiap-tiap

Sistem Informasi Laundry (2)

Sistem informasi Laundry adalah sebuah sistem informasi yang dibuat untuk memudahkan para pengelola usaha laundry dalam memanage usahanya. Pada Sistem informasinya, kami batasi hanya mendukung layanan kiloan. Jadi laundry disini menghitung baju per kilogram bukan dari jenis bajunya. Customer yang memakai jasa kami akan kami berikan kartu anggota untuk mempermudah melakukan penginputan data customer, customer yang telah memiliki kartu anggota dapat menggunakan layanan laundri antar jemput dengan menghubungi kami dan petugas akan datang kerumah. Selain itu customer juga dapat memilih pembayaran cash atau melalui mesin debit yang akan dibawa oleh petugas laundry pada saat pengiriman laundry ketempat customer Ada beberapa jenis diagram yang biasa digunakan, diantaranya Use Case Diagram Use-case Diagram adalah deskripsi dari fungsionality pada sistem. Penjelasan dari use case biasanya dibuat dalam teks sederhana sebagai pendokumentasian pada simbol use case, tetapi dapat juga digamba