PENCIPTAAN THREAD dan PENCIPTAAN PROSES
PENCIPTAAN THREAD dan PENCIPTAAN PROSES
dengan NILAI dan KONDISI YANG SAMA
SRI LESTARI
JURUSAN TEKNIK ELEKTRO, KONSENTRASI TEKNIK INFORMASI AeU
POLITEKNK NEGERI JAKARTA
KAMPUS BARU UI DEPOK,JAWA BARAT,INDONESIA
[email protected]
Abstract— Makalah ini dususun dengan format IEEE.dan
bertujuan untuk memberikan laporan hasil eksperiment tentang
perbandingan waktu antara thread dan process. pembuatan
thread dan proses dengan nilai dan kondisi yang sama. Serta
processor yang sama. Percobaan ini dilakukan di operating
system LINUX dengan menggunakan koment koment tertentu
melalui terminal. Setelah itu dieksekusi dan dibandingkan mana
yang mempunyai waktu eksekusi yang lebih cepat.
I. PENDAHULUAN
Pada dasarnya setiap teknologi mesin mempunyai
sistem yang mengoperasikannya. Seperti halnya pada
komputer, interaksi antara perangkat keras dan perangkat
lunak tidak akan terwujud tanpa adanya suatu sistem operasi.
Oleh karena itulah, dibutuhkan kecakapan dan pengetahuan
mengenai sistem operasi ini. Dokument ini membahas
mengenai perbandingan kecepatan waktu antara Thread dan
Proses. Maka dari itulah kami sebagai mahasiswa teknik
informatika seharusnya mengetahui mengenai hal ini.
II. DASAR TEORI
Thread operasi termasuk penciptaan thread,
penghentian,sinkronisasi (Bergabung,
pemblokiran),
penjadwalan, pengelolaan data dan interaksi proses. Sebuah
thread tidak menyimpan thread yang dibuat dan juga tidak
mengetahui thread yang diciptakan. Sedangkan Proses adalah
program yang sedang dieksekusi. Ada dua jenis proses, proses
berat (heavyweight) atau biasa dikenal dengan proses
tradisional, dan proses ringan atau kadang disebut thread.
Thread saling berbagi bagian program, bagian data dan
sumber daya sistem operasi dengan thread lain yang mengacu
pada proses yang sama. Thread terdiri atas ID thread, program
counter, himpunan register, dan stack. Dengan banyak kontrol
thread proses dapat melakukan lebih dari satu pekerjaan pada
waktu yang sama.
III. IMPLEMENTSI
A. PENCIPTAAN THREAD
Sebuah thread (kadang dikenal sebagai eksekusi konteks
atau proses ringan) adalah tunggal sekuensi aliran kontrol
dalam proses. Proses UNIX biasanya memiliki kontrol thread
tunggal. Setiap proses hanya melakukan satu pekerjaan pada
satu waktu. Multithreading berarti dapat memiliki labih dari
satu kontrol thread. Setiap proses dapat melakukan bnyak Job
pada satu waktu konseptual.
Example thread.c
#include
#include
#include
#define NTHREADS 5000
void *do_nothing(void *null) {
int i;
i = 0;
pthread_exit(NULL);
}
int main(int argc, char *argv[]) {
int rc, i, j, detachstate;
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr,
PTHREAD_CREATE_JOINABLE);
for (j = 0; j < NTHREADS; j++) {
rc = pthread_create(&tid, &attr, do_nothing, NULL);
if (rc) {
printf("ERROR; return code from pthread_create()
is %d\n", rc);
exit(-1);
}
/* Wait for the thread */
rc = pthread_join(tid, NULL);
if (rc) {
printf("ERROR; return code from pthread_join() is
%d\n", rc);
exit(-1);
}
}
pthread_attr_destroy(&attr);
pthread_exit(NULL);
}
Compile : gcc -lpthread thread.c -o thread
Run
: ./a.out
waktu : time ./a.out
B. PENCIPTAAN PROSES
Dalam UNIX, Proses adalah sebuah program yang memiliki
memori independen ruang dan melaksanakan independen.
Tidak peduli itu adalah tugas sistem atau tugas user, sudah
selesai dengan proses masing-masing. Dalam UNIX, setiap
proses memiliki sebuah id unik yang disebut proses id (pid).
Setiap proses dibuat dengan proses induknya. Setelah
menyelesaikan tugasnya, ia harus melepaskan semua sistem
dan keluar.
Fork adalah model eksekusi semua proses di UNIX.ketika
system sedang boot up, maka proses pertama dieksekusi
disebut init dan pid. Kemudian init menjalankan setiap proses
lain melalui Fork.
Example process.c
#include
#include
#define NFORKS 5000
/*** this is the parent of the fork ***/
else {
waitpid(pid, status, 0);
}
}
}
Compile : gcc fork.c -o fork
run
: ./a.out
waktu : time ./a.out
IV. ANALISA
Hasil dari percobaan thread dan proses menghasilkan grafik
linier,semakin banyak nilai thread/proses yang diujikan maka
semakin lama waktu yang dibutuhkan.
Untuk malakukan eksekusi pada proses dan mengetahui
perbedaan waktu pada source code proses.c #define NFORK
5000 nilainya diganti ganti.Dan setiap nilai yang dieksekusi
mempunyai waktu yang berbeda beda. Ketika melakukan
kompile ada 2 program yang sedang running yakni VLC
media player dan open office. Process dijalankan diterminal.
Berikut adalah grafik process, dengan waktu real.
void do_nothing(){
int i;
i=0;
}
int main(int argc, char *argv[]){
int pid, j, status;
for (j=0; j
dengan NILAI dan KONDISI YANG SAMA
SRI LESTARI
JURUSAN TEKNIK ELEKTRO, KONSENTRASI TEKNIK INFORMASI AeU
POLITEKNK NEGERI JAKARTA
KAMPUS BARU UI DEPOK,JAWA BARAT,INDONESIA
[email protected]
Abstract— Makalah ini dususun dengan format IEEE.dan
bertujuan untuk memberikan laporan hasil eksperiment tentang
perbandingan waktu antara thread dan process. pembuatan
thread dan proses dengan nilai dan kondisi yang sama. Serta
processor yang sama. Percobaan ini dilakukan di operating
system LINUX dengan menggunakan koment koment tertentu
melalui terminal. Setelah itu dieksekusi dan dibandingkan mana
yang mempunyai waktu eksekusi yang lebih cepat.
I. PENDAHULUAN
Pada dasarnya setiap teknologi mesin mempunyai
sistem yang mengoperasikannya. Seperti halnya pada
komputer, interaksi antara perangkat keras dan perangkat
lunak tidak akan terwujud tanpa adanya suatu sistem operasi.
Oleh karena itulah, dibutuhkan kecakapan dan pengetahuan
mengenai sistem operasi ini. Dokument ini membahas
mengenai perbandingan kecepatan waktu antara Thread dan
Proses. Maka dari itulah kami sebagai mahasiswa teknik
informatika seharusnya mengetahui mengenai hal ini.
II. DASAR TEORI
Thread operasi termasuk penciptaan thread,
penghentian,sinkronisasi (Bergabung,
pemblokiran),
penjadwalan, pengelolaan data dan interaksi proses. Sebuah
thread tidak menyimpan thread yang dibuat dan juga tidak
mengetahui thread yang diciptakan. Sedangkan Proses adalah
program yang sedang dieksekusi. Ada dua jenis proses, proses
berat (heavyweight) atau biasa dikenal dengan proses
tradisional, dan proses ringan atau kadang disebut thread.
Thread saling berbagi bagian program, bagian data dan
sumber daya sistem operasi dengan thread lain yang mengacu
pada proses yang sama. Thread terdiri atas ID thread, program
counter, himpunan register, dan stack. Dengan banyak kontrol
thread proses dapat melakukan lebih dari satu pekerjaan pada
waktu yang sama.
III. IMPLEMENTSI
A. PENCIPTAAN THREAD
Sebuah thread (kadang dikenal sebagai eksekusi konteks
atau proses ringan) adalah tunggal sekuensi aliran kontrol
dalam proses. Proses UNIX biasanya memiliki kontrol thread
tunggal. Setiap proses hanya melakukan satu pekerjaan pada
satu waktu. Multithreading berarti dapat memiliki labih dari
satu kontrol thread. Setiap proses dapat melakukan bnyak Job
pada satu waktu konseptual.
Example thread.c
#include
#include
#include
#define NTHREADS 5000
void *do_nothing(void *null) {
int i;
i = 0;
pthread_exit(NULL);
}
int main(int argc, char *argv[]) {
int rc, i, j, detachstate;
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr,
PTHREAD_CREATE_JOINABLE);
for (j = 0; j < NTHREADS; j++) {
rc = pthread_create(&tid, &attr, do_nothing, NULL);
if (rc) {
printf("ERROR; return code from pthread_create()
is %d\n", rc);
exit(-1);
}
/* Wait for the thread */
rc = pthread_join(tid, NULL);
if (rc) {
printf("ERROR; return code from pthread_join() is
%d\n", rc);
exit(-1);
}
}
pthread_attr_destroy(&attr);
pthread_exit(NULL);
}
Compile : gcc -lpthread thread.c -o thread
Run
: ./a.out
waktu : time ./a.out
B. PENCIPTAAN PROSES
Dalam UNIX, Proses adalah sebuah program yang memiliki
memori independen ruang dan melaksanakan independen.
Tidak peduli itu adalah tugas sistem atau tugas user, sudah
selesai dengan proses masing-masing. Dalam UNIX, setiap
proses memiliki sebuah id unik yang disebut proses id (pid).
Setiap proses dibuat dengan proses induknya. Setelah
menyelesaikan tugasnya, ia harus melepaskan semua sistem
dan keluar.
Fork adalah model eksekusi semua proses di UNIX.ketika
system sedang boot up, maka proses pertama dieksekusi
disebut init dan pid. Kemudian init menjalankan setiap proses
lain melalui Fork.
Example process.c
#include
#include
#define NFORKS 5000
/*** this is the parent of the fork ***/
else {
waitpid(pid, status, 0);
}
}
}
Compile : gcc fork.c -o fork
run
: ./a.out
waktu : time ./a.out
IV. ANALISA
Hasil dari percobaan thread dan proses menghasilkan grafik
linier,semakin banyak nilai thread/proses yang diujikan maka
semakin lama waktu yang dibutuhkan.
Untuk malakukan eksekusi pada proses dan mengetahui
perbedaan waktu pada source code proses.c #define NFORK
5000 nilainya diganti ganti.Dan setiap nilai yang dieksekusi
mempunyai waktu yang berbeda beda. Ketika melakukan
kompile ada 2 program yang sedang running yakni VLC
media player dan open office. Process dijalankan diterminal.
Berikut adalah grafik process, dengan waktu real.
void do_nothing(){
int i;
i=0;
}
int main(int argc, char *argv[]){
int pid, j, status;
for (j=0; j