1. Sebutkan
state pada proses dan jelaskan diagram proses
Jawab: :
a. New: proses sedang dibuat.
a. New: proses sedang dibuat.
b. Running: proses sedang dieksekusi.
c. Waiting: proses sedang menunggu beberapa event yang akan
terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
d. Ready: proses menunggu jatah waktu dari CPU untuk diproses.
e. Terminated: proses telah selesai dieksekusi.
2. Apa yang dimaksud short term
scheduler dan long term scheduler?
Jawab: :
a. Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue.
a. Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue.
b. Short-term Scheduler (CPU scheduler), memilih
proses-proses yang siap untuk dieksekusi, dan mengakolakasikan CPU ke salah
satu dari proses-proses tersebut.
3. Jelaskan 4 alasan mengapa proses
harus bekerja sama.
Jawab :
a. terjadi pembagian informasi
b. meningkatkan kecepatan komputasi
c. proses dapat dibagi dalam modul-modul
d. lebih memberikan kenyamanan pada programmer.
a. terjadi pembagian informasi
b. meningkatkan kecepatan komputasi
c. proses dapat dibagi dalam modul-modul
d. lebih memberikan kenyamanan pada programmer.
4. Tuliskan kode program untuk penyelesaian
permasalahan producer consumer dengan menggunakan shared memory.
Jawab :
#define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Proses producer :
item nextProduced;
while (1) {
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Proses consumer :
item nextConsumed;
while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
#define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Proses producer :
item nextProduced;
while (1) {
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Proses consumer :
item nextConsumed;
while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
5. Diketahui skema komukasi antar
proses menggunakan mailbox.
a.
Proses P ingin menunggu 2 pesan,
satu dari mailbox A dan satu mailbox.
b.
Tunjukan urutan send dan receive
yang dieksekusi.
Jawab :
a. Send (A pesan ); mengirim pesan ke mailbox B,
Receive(B pesan ); menerima pesan dari mailbox A.
a. Send (A pesan ); mengirim pesan ke mailbox B,
Receive(B pesan ); menerima pesan dari mailbox A.
b. Bagaimana urutan send dan recieve yang dieksekusi p jika p ingin
menunggu satu pesan dari mailbox A atau mailbox
B (salah satu atau
keduanya) Hanya bisa mengunakan satu:
Caranya :
Send (P pesan ); mengirim pesan ke mailbox A,
Receive ( P pesan); menerima peasan darri A.
Caranya :
Send (P pesan ); mengirim pesan ke mailbox A,
Receive ( P pesan); menerima peasan darri A.
6. Jelaskah apa yang dimaksud dengan thread dan
struktur dari thread.
Jawab:
Jawab:
Thread atau
lighweight process (LWP) adalah suatu unit dasar dari CPU utilization yang
berisi program counter, kumpulan register, dan ruang stack. Thread akan
bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode, bagian
data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif
yang sering disebut dengan task.
Struktur dari thread terdiri atas dua struktur :
Struktur dari thread terdiri atas dua struktur :
1. Single
thread
2. Multi thread.
2. Multi thread.
7. Jelaskan empat keuntungan menggunakan threads pada
multiple process.!
Jawab:
Jawab:
1. respon
lebih cepat.
2. menggunakan resource bersama-sama.
3. lebih ekonomis.
4. meningkatkan utilitas arsitektur mikroprosessor.
2. menggunakan resource bersama-sama.
3. lebih ekonomis.
4. meningkatkan utilitas arsitektur mikroprosessor.
8. Apakah perbedaan antara user-level thread dan
kernel-supported threads?
Jawab:
User level thread adalah thread yang diatur dengan menggunakan pustaka user level thread. Contoh sistem yang menggunakan user thread adalah POSIX Pthreads, Mach C-threads dan Solaris threads.Kernel thread adalah thread yang didukung oleh Kernel.Contoh sistem yang menggunakan kernel thread adalah Windows 95/98/NT/2000, Solaris, Tru64 UNIX, BeOS dan Linux.
Jawab:
User level thread adalah thread yang diatur dengan menggunakan pustaka user level thread. Contoh sistem yang menggunakan user thread adalah POSIX Pthreads, Mach C-threads dan Solaris threads.Kernel thread adalah thread yang didukung oleh Kernel.Contoh sistem yang menggunakan kernel thread adalah Windows 95/98/NT/2000, Solaris, Tru64 UNIX, BeOS dan Linux.
9. Ada 3
model multithreading, jelaskan.
Jawab:
Jawab:
a. One to
One yaitu satu user-level thread dipetakan ke satu kernel thread.
b. Many-to-One , beberapa user level thread dipetakan ke satu kernel thread.
c. Many-to-Many, beberapa user level thread dipetakan ke beberapa kernel threads.
b. Many-to-One , beberapa user level thread dipetakan ke satu kernel thread.
c. Many-to-Many, beberapa user level thread dipetakan ke beberapa kernel threads.
10. Jelaskan
state pada Java thread.
Jawab:
Jawab:
Bahasa
pemrograman Java menggunakan Java thread yang dibuat dengan menggunakan class
Thread dan mengimplementasikan antar muka yang bersifat runnable (dapat
dijalankan). Java thread diatur oleh Java virtual machine (JVM). Java thread
terdiri dari state new, runnable, blocked dan dead.