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
shree.lestari@yahoo.com
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
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) {
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.
int main(int argc, char *argv[]){
int pid, j, status;
for (j=0; j<NFORKS; j++){
/*** error handling ***/
if ((pid = fork()) < 0) {
printf("fork failed with error code = %d\n", pid);
exit(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.
Gambar.1
Untuk melihat perbedan waktu antar thread yang dieksekusi pada source code #define NTHREADS 5000 nilainya diganti ganti, dan setiap program dengan nilai yang berbeda menghasilkan waktu yang berbeda.
Dalam thread ini terjadi 200 kali percobaan dengan nilai dari 60 sampai 4020 thread dengan jarak 20. ketika kompile komputer sedang menjalankan 2 program yakni VLC media player, openoffice. Thread di kompile di terminal.
Gambar.2
V. KESIMPULAN
Dari hasil percobaan dapat disimpulkan bahwa :
1. Waktu yang dubuthkan Thread untuk eksekusi lebih cepat dari pada Process, karena proses terdiri dari bebrapa thread.
2. Semakin banyak nilai yang diujikan maka semakin lama waktu yang dibuthkan. Waktu dan jumlah thread/proses berbanding lurus
3. ketika mengeksekusi thread/proses dan ada program yang running mak akan memepengaruhi cpat lambatnya waktu thread/process ketika dijalankan.
V. Daftar Pustaka
[1]. The Single UNIX® Specification, Version 2
[2].Stalling. William, "Operating Systems, 6th edition".2009 [3].http://www.yolinux.com/TUTORIALS/LinuxTutorialPosi xThreads.html
[4] http://wikipedia.org/wiki/sistem_operasi.html
VI. lampiran