Tugas Mata Kuliah Sistem Operasi

26 Agustus 2009

Tugas 3 (State of Proccess)

  1. Sebutkan state pada proses dan jelaskan diagram proses!

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.


Status Proses. New, ready, running, waiting dan terminated.

Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.

CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register-register tersebut terdiri-atas: accumulator, index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt. Gambar disamping menunjukkan switching proses dari satu proses ke proses berikutnya.

Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.

Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh SO.

Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.

Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti tape driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka, dll.


  1. Apa yang dimaksud short term scheduler dan long term scheduler?

Terdapat dua bentuk penjadwal, yaitu:

Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue.

Short-term Scheduler (CPU scheduler), memilih proses-proses yang siap untuk dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut.

Short-term scheduler terjadi sangat sering (dalam milidetik), jadi setiap proses

dijadwal dengan cepat, sedangkan long-term scheduler terjadi sangat jarang (dalam detik atau menit), sehingga setiap proses dijadwal dengan lambat. Long-term scheduler digunakan untuk mengontrol tingkat multiprogramming.


  1. Jelaskan 4 alasan mengapa proses harus bekerja sama!

Keuntungan proses yang saling bekerja sama adalah:

(1)Terjadi pembagian informasi

(2)Meningkatkan kecepatan komputasi

(3)Proses dapat dibagi dalam modul-modul

(4)Lebih memberikan kenyamanan pada programmer.


  1. Tuliskan kode program untuk penyelesaian permasalahan producer consumer dengan menggunakan shared memory!

#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;

}

  1. Diketahui skema komunikasi antar proses menggunakan mailbox;
    1. Proses P ingin menunggu 2 pesan, satu dari mailbox A dan satu dari mailbox B. Tunjukkan urutan send dan receive yang dieksekusi!

Send :

Receive :

    1. Bagaimana urutan send dan receive yang dieksekusi P jika P ingin menunggu satu pesan dari mailbox A atau mailbox B (salah satu atau keduanya)

Send :

Receive :


  1. Jelaskah apa yang dimaksud dengan thread dan struktur dari thread!

Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan dieksekusi. Namun adakalanya proses-proses akan menggunakan resource secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack disebut dengan thread atau lighweight process (LWP). 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.

Apabila dilakukan perbandingaan antara sistem multi thread dengan sistem multi proses dapat disimak berikut. Pada multi proses, setiap proses secara terpisah melakukan operasi tidak bekerja sama dengan proses lain, setiap proses mempunyai program counter, stack register dan ruang alamat sendiri. Organisasi jenis ini berguna jika job dibentuk oleh proses-proses yang tidak saling berhubungan. Multi proses membentuk task yang sama. Sebagai contoh, multi proses dapat menyediakan data untuk mesin secara remote pada implementasi system file jaringan. Hal ini lebih efisien apabila satu proses terdiri dari multi thread melayani tugas yang sama. Pada implementasi multi proses, setiap proses mengeksekusi kode yang sama tetapi mempunyai memori dan resource file sendiri. Satu proses multi thread menggunakan resource lebih sedikit daripada multi proses, termasuk memory, open file dan penjadwalan CPU. Seperti halnya proses, thread memiliki status: ready, blocked, running dan terminated, dan hanya satu thread yang aktif dalam satu waktu. Thread dapat membuat child thread. Jika satu thread dalam keadaan blocked, maka thread yang lainnya dapat dijalankan. Namun, tidak saling bebas, Sebab semua thread dapat mengakses setiap alamat dalam satu task, thread dapat membaca dan menulisi stack dari thread yang lainnya. Sehingga tidak ada proteksi antara satu thread terhadap thread yang lainnya. Suatu proses dapat terdiri dari satu thread (single thread) dan beberapa thread (multi thread).


  1. Jelaskan empat keuntungan menggunakan threads pada multiple process!

(1)Pada respon lebih cepat

(2)Menggunakan resource bersama-sama

(3)Lebih ekonomis

(4)Meningkatkan utilitas arsitektur mikroprosessor


  1. Apakah perbedaan antara user-level thread dan kernel-supported threads?

User 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.


  1. Ada 3 model multi threading, jelaskan!

Model multi thread terdiri dari model Many-to-One, One-to-One dan Many-to-Many.
Pada model Many-to-One, beberapa user level thread dipetakan ke satu kernel thread dan digunakan pada sistem yang tidak mendukung kernel threads.

Pada model One-to-One, setiap user-level thread dipetakan ke kernel thread, misalnya pada Windows 95/98/NT/2000 dan OS/2.

Pada model Many-to-Many, user level thread dipetakan ke beberapa kernel threads. Pada sistem operasi ini akan dibuat sejumlah kernel thread, contohnya Solaris 2 dan Windows NT/2000 dengan ThreadFiber package.


  1. Jelaskan state pada Java thread!

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.

0 komentar:


Free Blogger Templates by Isnaini Dot Com and Bridal Gowns. Powered by Blogger