SlideShare a Scribd company logo
1 of 7
Download to read offline
Modul Praktikum Sistem Operasi
Praktikum IV
Ferry Mulyanto , ST
MODUL 04
SISTEM OPERASI
LABORATORIUM TEKNIK INFORMATIKA
UNIVERSITAS PASUNDAN
BANDUNG
2014
Modul Praktikum Sistem Operasi
Praktikum IV
Ferry Mulyanto , ST
Praktikum IV
Process dan Thread
I. Dasar Teori
I.1. Proses
Proses adalah program yang sedang dieksekusi. Setiap kali menjalankan suatu
program, Sistem UNIX melakukan suatu fork(), yaitu melakukan beberapa urutan operasi
untuk membuat suatu proses konteks dan kemudian mengeksekusi program tersebut dalam
konteks yang sudah dibuat. Setiap proses yang dijalankan akan memiliki PID (Process ID).
Kita dapat melihat proses yang sedang berjalan dengan perintah ps. Dengan fork() sistem call
akan membuat proses baru yang identik dengan proses induk kecuali proses ID. Proses
dicopy ke memory dari proses parent dan strukture proses baru ditangani oleh kernel.
Lingkungan, resource limits, umask, controlling terminal, direktori tempat eksekusi, root
direktori, signal mask, dan resource proses lainnya digandakan dari proses induk oleh proses
fork.
I.2. Thread
Operasi thread meliputi pembuatan thread, penghentian, sikronisasi, penjadwalan,
managemen, dan pengulangan proses.
 Thread tidak mengatur pembuatan thread lain, atau mengetahui sebuah thread laen
telah dibuat.
 semua thread dengan sebuah proses saling berbagi pakai address space.
 Thread pada satu proses yang sama saling berbagi pakai:
- Process instructions
- Most data
- open files (descriptors)
- signals and signal handlers
- current working directory
- User and group id
 setiap thread merupakan unik
- Thread ID
- set of registers, stack pointer
- stack for local variables, return addresses
- signal mask
- priority
- Return value: errno
 fungsi pthread memberikan nilai #0# jika OK
Tujuan Praktikum :
1. Mengerti konsep proses dan thread
2. Mampu membuat proses dan thread
3. Mmampu memanajemen proses
Modul Praktikum Sistem Operasi
Praktikum IV
Ferry Mulyanto , ST
Contoh membuat dan mengakhiri thread
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int iret1, iret2;
/* Create independent threads each of which will
execute function */
iret1 = pthread_create( &thread1, NULL,
print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL,
print_message_function, (void*) message2);
/* Wait till threads are complete before main
continues. Unless we */
/* wait we run the risk of executing an exit
which
will terminate */
/* the process and all threads before the threads
have completed. */
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %dn",iret1);
printf("Thread 2 returns: %dn",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s n", message);
}
Modul Praktikum Sistem Operasi
Praktikum IV
Ferry Mulyanto , ST
II.MATERI PRAKTIKUM
1. Login ke sistem GNU/Linux kemudian buka terminal.
2. Pelajari dan lakukan percobaan terhadap perintah-perintah berikut :
Percobaan 1 : Melihat Memory Komputer
Percobaan 2 : Melihat Keseluruhan Proses yang berjalan
Percobaan 3 : Mejadwalkan Proses dan Pembatalkanya
Percobaan 4 : Mengecek Proses yang berjalan di sistem
$ free -okt
$ top
1. Menggunakan instruksi at :
a. $ date
b. $ at <waktu yang mendekati waktu saat ini>
misal : $ at 17:15
c. Akan muncul prompt 'at'
d. dmesg > simpanan
e. Tekan ENTER kemudian CTRL+D
f. Lihatlah daftar antrian dengan mengetikkan
: $at –l
2. Membatalkan proses
$ at -d nomorjobid, misal : $at -d 12
$ jobs
$ jobs -l
Modul Praktikum Sistem Operasi
Praktikum IV
Ferry Mulyanto , ST
Percobaan 5 : Membuat Background dan Foreground Proses
1. Ketik Sorcode ini lalu simpanlah dengan nama proses.sh
#! /bin/sh
i=0
while [ true ];
do
i=$(($i+1))
done
echo $i
2. Ubah hak Aksesnya
$ chmod +x proses.sh
3. Eksekusilah program proses.sh
$ ./proses.sh
4. Suspend Prosesnya
Ketik : CTRL + Z
5. Lihat NomorJOB proses yang kita suspend
$ jobs
6. Jalankan Proses di Background
$ bg %nomorjobs_padaProses
7. Lihat Apakah proses sudah berjalan lagi
$ jobs
8. Jalankan Proses di Foreground
$ fg %nomorPIDpadajobs
Suspend Prosesnya
$ Ketik CTRL + Z
9. Lihat PID proses foreground
$ ps
10. Hentikan Proses tersebut
$ kill -9 <NoPID>
Modul Praktikum Sistem Operasi
Praktikum IV
Ferry Mulyanto , ST
Percobaan 6 : Membuat Fork di dalam Proses
#include <stdio.h> /* printf, stderr, fprintf */
#include <unistd.h> /* _exit, fork */
#include <stdlib.h> /* exit */
#include <errno.h> /* errno */
int main(void)
{
pid_t pid;
/* Output from both the child and the parent process
* will be written to the standard output,
* as they both run at the same time.
*/
pid = fork();
if (pid == 0)
{
/* Child process:
* When fork() returns 0, we are in
* the child process.
* Here we count up to ten, one each second.
*/
int j;
for (j = 0; j < 10; j++)
{
printf("child: %dn", j);
sleep(1);
}
_exit(0); /* Note that we do not use exit() */
}
else if (pid > 0)
{
/* Parent process:
* When fork() returns a positive number, we are in
the parent process
* (the fork return value is the PID of the newly-
created child process).
* Again we count up to ten.
*/
int i;
for (i = 0; i < 10; i++)
{
printf("parent: %dn", i);
sleep(1);
}
exit(0);
}
Modul Praktikum Sistem Operasi
Praktikum IV
Ferry Mulyanto , ST
Untuk Percobaan 6 ikuti langkah – langkah berikut ini :
A) Simpan source code dengan nama fork.c
B) Lalu kompile sorce code tersebut dengan perintah
$ gcc -o fork fork.c
C) Running file hasil kompile dengan perintah
$ ./fork
III. TUGAS PRAKTIKUM
A. Tugas Praktikum
else
{
/* Error:
* When fork() returns a negative number, an error
happened
* (for example, number of processes reached the
limit
).
*/
fprintf(stderr, "can't fork, error %dn", errno);
exit(EXIT_FAILURE);
}
}

More Related Content

Viewers also liked

Revival reformation-100729171652-phpapp02 (1)
Revival reformation-100729171652-phpapp02 (1)Revival reformation-100729171652-phpapp02 (1)
Revival reformation-100729171652-phpapp02 (1)Nick Pellicciotta
 
военный плакат. презентация к 100-летию первой мировой войны
военный плакат. презентация к 100-летию первой мировой войнывоенный плакат. презентация к 100-летию первой мировой войны
военный плакат. презентация к 100-летию первой мировой войныtanja281261
 
Preventive Maintainance
Preventive  MaintainancePreventive  Maintainance
Preventive MaintainanceMr_L0ng
 
паралелограм
паралелогрампаралелограм
паралелограмbalazki1975
 
Quality managemnt day 2 material
Quality managemnt day 2 materialQuality managemnt day 2 material
Quality managemnt day 2 materialjeashabab
 
Prometna Učilica - Dijelovi bicikla bitni za sigurnost
Prometna Učilica - Dijelovi bicikla bitni za sigurnostPrometna Učilica - Dijelovi bicikla bitni za sigurnost
Prometna Učilica - Dijelovi bicikla bitni za sigurnostprometna
 
Balancing equations day 2 a
Balancing equations day 2 aBalancing equations day 2 a
Balancing equations day 2 ajmori1742
 
BSc thesis presentation
BSc thesis presentationBSc thesis presentation
BSc thesis presentationMarco Bosco
 
Kit facial grown alchemist
Kit facial grown alchemistKit facial grown alchemist
Kit facial grown alchemistRenee Mulen
 
التعريف بالمدونات
التعريف بالمدوناتالتعريف بالمدونات
التعريف بالمدوناتلولا عبود
 

Viewers also liked (18)

What the church_needs_now
What the church_needs_nowWhat the church_needs_now
What the church_needs_now
 
Evaluation
Evaluation Evaluation
Evaluation
 
Revival reformation-100729171652-phpapp02 (1)
Revival reformation-100729171652-phpapp02 (1)Revival reformation-100729171652-phpapp02 (1)
Revival reformation-100729171652-phpapp02 (1)
 
военный плакат. презентация к 100-летию первой мировой войны
военный плакат. презентация к 100-летию первой мировой войнывоенный плакат. презентация к 100-летию первой мировой войны
военный плакат. презентация к 100-летию первой мировой войны
 
Preventive Maintainance
Preventive  MaintainancePreventive  Maintainance
Preventive Maintainance
 
Jamestown
JamestownJamestown
Jamestown
 
паралелограм
паралелогрампаралелограм
паралелограм
 
Eu não mudo
Eu não mudoEu não mudo
Eu não mudo
 
Quality managemnt day 2 material
Quality managemnt day 2 materialQuality managemnt day 2 material
Quality managemnt day 2 material
 
Prometna Učilica - Dijelovi bicikla bitni za sigurnost
Prometna Učilica - Dijelovi bicikla bitni za sigurnostPrometna Učilica - Dijelovi bicikla bitni za sigurnost
Prometna Učilica - Dijelovi bicikla bitni za sigurnost
 
Balancing equations day 2 a
Balancing equations day 2 aBalancing equations day 2 a
Balancing equations day 2 a
 
BSc thesis presentation
BSc thesis presentationBSc thesis presentation
BSc thesis presentation
 
Kit facial grown alchemist
Kit facial grown alchemistKit facial grown alchemist
Kit facial grown alchemist
 
التعريف بالمدونات
التعريف بالمدوناتالتعريف بالمدونات
التعريف بالمدونات
 
24 proph
 24 proph 24 proph
24 proph
 
Crating gif
Crating gifCrating gif
Crating gif
 
02 thebib (1)
 02 thebib (1) 02 thebib (1)
02 thebib (1)
 
Sports & the christian (3)
Sports & the christian (3)Sports & the christian (3)
Sports & the christian (3)
 

Similar to SISTEM OPERASI

Pertemuan11 unix system call dan manajemen memory
Pertemuan11   unix system call dan manajemen memoryPertemuan11   unix system call dan manajemen memory
Pertemuan11 unix system call dan manajemen memorySyaiful Ahdan
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasibelajarkomputer
 
Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)Mirza Afrizal
 
Pertemuan5 proses dan manajemen proses - a- handout
Pertemuan5   proses dan manajemen proses - a- handoutPertemuan5   proses dan manajemen proses - a- handout
Pertemuan5 proses dan manajemen proses - a- handoutSyaiful Ahdan
 
Manajemen proses by handini
Manajemen proses by handiniManajemen proses by handini
Manajemen proses by handiniHandini Handini
 
Konsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi ObyekKonsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi Obyekdrmjaya
 
Linux Booting Process
Linux Booting ProcessLinux Booting Process
Linux Booting ProcessLusiana Diyan
 
Pertemuan14 linux booting proses
Pertemuan14   linux booting prosesPertemuan14   linux booting proses
Pertemuan14 linux booting prosesSyaiful Ahdan
 
Pertemuan6 proses dan manajemen proses - b
Pertemuan6   proses dan manajemen proses - b Pertemuan6   proses dan manajemen proses - b
Pertemuan6 proses dan manajemen proses - b Syaiful Ahdan
 
Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6
Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6
Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6Febi Gelar Ramadhan
 

Similar to SISTEM OPERASI (16)

Pertemuan11 unix system call dan manajemen memory
Pertemuan11   unix system call dan manajemen memoryPertemuan11   unix system call dan manajemen memory
Pertemuan11 unix system call dan manajemen memory
 
Praktikum 7
Praktikum 7Praktikum 7
Praktikum 7
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasi
 
Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)
 
Pertemuan5 proses dan manajemen proses - a- handout
Pertemuan5   proses dan manajemen proses - a- handoutPertemuan5   proses dan manajemen proses - a- handout
Pertemuan5 proses dan manajemen proses - a- handout
 
Manajemen proses by handini
Manajemen proses by handiniManajemen proses by handini
Manajemen proses by handini
 
Konsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi ObyekKonsep I/O pada Pemrograman Berorientasi Obyek
Konsep I/O pada Pemrograman Berorientasi Obyek
 
FreeBSD Basic Setting
FreeBSD Basic SettingFreeBSD Basic Setting
FreeBSD Basic Setting
 
Linux Booting Process
Linux Booting ProcessLinux Booting Process
Linux Booting Process
 
Praktikum 4A
Praktikum 4APraktikum 4A
Praktikum 4A
 
Pertemuan14 linux booting proses
Pertemuan14   linux booting prosesPertemuan14   linux booting proses
Pertemuan14 linux booting proses
 
Pertemuan6 proses dan manajemen proses - b
Pertemuan6   proses dan manajemen proses - b Pertemuan6   proses dan manajemen proses - b
Pertemuan6 proses dan manajemen proses - b
 
Praktikum 4B
Praktikum 4BPraktikum 4B
Praktikum 4B
 
Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6
Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6
Dokumentasi Instalasi Network Monitoring System Ganglia on Centos 6
 
Jurnal metasploit(revisi)
Jurnal metasploit(revisi)Jurnal metasploit(revisi)
Jurnal metasploit(revisi)
 
bootrun.ppt
bootrun.pptbootrun.ppt
bootrun.ppt
 

SISTEM OPERASI

  • 1. Modul Praktikum Sistem Operasi Praktikum IV Ferry Mulyanto , ST MODUL 04 SISTEM OPERASI LABORATORIUM TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG 2014
  • 2. Modul Praktikum Sistem Operasi Praktikum IV Ferry Mulyanto , ST Praktikum IV Process dan Thread I. Dasar Teori I.1. Proses Proses adalah program yang sedang dieksekusi. Setiap kali menjalankan suatu program, Sistem UNIX melakukan suatu fork(), yaitu melakukan beberapa urutan operasi untuk membuat suatu proses konteks dan kemudian mengeksekusi program tersebut dalam konteks yang sudah dibuat. Setiap proses yang dijalankan akan memiliki PID (Process ID). Kita dapat melihat proses yang sedang berjalan dengan perintah ps. Dengan fork() sistem call akan membuat proses baru yang identik dengan proses induk kecuali proses ID. Proses dicopy ke memory dari proses parent dan strukture proses baru ditangani oleh kernel. Lingkungan, resource limits, umask, controlling terminal, direktori tempat eksekusi, root direktori, signal mask, dan resource proses lainnya digandakan dari proses induk oleh proses fork. I.2. Thread Operasi thread meliputi pembuatan thread, penghentian, sikronisasi, penjadwalan, managemen, dan pengulangan proses.  Thread tidak mengatur pembuatan thread lain, atau mengetahui sebuah thread laen telah dibuat.  semua thread dengan sebuah proses saling berbagi pakai address space.  Thread pada satu proses yang sama saling berbagi pakai: - Process instructions - Most data - open files (descriptors) - signals and signal handlers - current working directory - User and group id  setiap thread merupakan unik - Thread ID - set of registers, stack pointer - stack for local variables, return addresses - signal mask - priority - Return value: errno  fungsi pthread memberikan nilai #0# jika OK Tujuan Praktikum : 1. Mengerti konsep proses dan thread 2. Mampu membuat proses dan thread 3. Mmampu memanajemen proses
  • 3. Modul Praktikum Sistem Operasi Praktikum IV Ferry Mulyanto , ST Contoh membuat dan mengakhiri thread #include <stdio.h> #include <stdlib.h> #include <pthread.h> void *print_message_function( void *ptr ); main() { pthread_t thread1, thread2; char *message1 = "Thread 1"; char *message2 = "Thread 2"; int iret1, iret2; /* Create independent threads each of which will execute function */ iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1); iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2); /* Wait till threads are complete before main continues. Unless we */ /* wait we run the risk of executing an exit which will terminate */ /* the process and all threads before the threads have completed. */ pthread_join( thread1, NULL); pthread_join( thread2, NULL); printf("Thread 1 returns: %dn",iret1); printf("Thread 2 returns: %dn",iret2); exit(0); } void *print_message_function( void *ptr ) { char *message; message = (char *) ptr; printf("%s n", message); }
  • 4. Modul Praktikum Sistem Operasi Praktikum IV Ferry Mulyanto , ST II.MATERI PRAKTIKUM 1. Login ke sistem GNU/Linux kemudian buka terminal. 2. Pelajari dan lakukan percobaan terhadap perintah-perintah berikut : Percobaan 1 : Melihat Memory Komputer Percobaan 2 : Melihat Keseluruhan Proses yang berjalan Percobaan 3 : Mejadwalkan Proses dan Pembatalkanya Percobaan 4 : Mengecek Proses yang berjalan di sistem $ free -okt $ top 1. Menggunakan instruksi at : a. $ date b. $ at <waktu yang mendekati waktu saat ini> misal : $ at 17:15 c. Akan muncul prompt 'at' d. dmesg > simpanan e. Tekan ENTER kemudian CTRL+D f. Lihatlah daftar antrian dengan mengetikkan : $at –l 2. Membatalkan proses $ at -d nomorjobid, misal : $at -d 12 $ jobs $ jobs -l
  • 5. Modul Praktikum Sistem Operasi Praktikum IV Ferry Mulyanto , ST Percobaan 5 : Membuat Background dan Foreground Proses 1. Ketik Sorcode ini lalu simpanlah dengan nama proses.sh #! /bin/sh i=0 while [ true ]; do i=$(($i+1)) done echo $i 2. Ubah hak Aksesnya $ chmod +x proses.sh 3. Eksekusilah program proses.sh $ ./proses.sh 4. Suspend Prosesnya Ketik : CTRL + Z 5. Lihat NomorJOB proses yang kita suspend $ jobs 6. Jalankan Proses di Background $ bg %nomorjobs_padaProses 7. Lihat Apakah proses sudah berjalan lagi $ jobs 8. Jalankan Proses di Foreground $ fg %nomorPIDpadajobs Suspend Prosesnya $ Ketik CTRL + Z 9. Lihat PID proses foreground $ ps 10. Hentikan Proses tersebut $ kill -9 <NoPID>
  • 6. Modul Praktikum Sistem Operasi Praktikum IV Ferry Mulyanto , ST Percobaan 6 : Membuat Fork di dalam Proses #include <stdio.h> /* printf, stderr, fprintf */ #include <unistd.h> /* _exit, fork */ #include <stdlib.h> /* exit */ #include <errno.h> /* errno */ int main(void) { pid_t pid; /* Output from both the child and the parent process * will be written to the standard output, * as they both run at the same time. */ pid = fork(); if (pid == 0) { /* Child process: * When fork() returns 0, we are in * the child process. * Here we count up to ten, one each second. */ int j; for (j = 0; j < 10; j++) { printf("child: %dn", j); sleep(1); } _exit(0); /* Note that we do not use exit() */ } else if (pid > 0) { /* Parent process: * When fork() returns a positive number, we are in the parent process * (the fork return value is the PID of the newly- created child process). * Again we count up to ten. */ int i; for (i = 0; i < 10; i++) { printf("parent: %dn", i); sleep(1); } exit(0); }
  • 7. Modul Praktikum Sistem Operasi Praktikum IV Ferry Mulyanto , ST Untuk Percobaan 6 ikuti langkah – langkah berikut ini : A) Simpan source code dengan nama fork.c B) Lalu kompile sorce code tersebut dengan perintah $ gcc -o fork fork.c C) Running file hasil kompile dengan perintah $ ./fork III. TUGAS PRAKTIKUM A. Tugas Praktikum else { /* Error: * When fork() returns a negative number, an error happened * (for example, number of processes reached the limit ). */ fprintf(stderr, "can't fork, error %dn", errno); exit(EXIT_FAILURE); } }