Kamis, 03 Juni 2010

SO pertemuan 4

Jelaskan apa yang dilakukan oleh kode C
pada slide No. 21
• Status waiting dinamakan pula blocked.
Terdapat pula status suspend,
blocked/suspend, dan ready/suspend.
Jelaskan 3 status terakhir tersebut!
• Jelaskan proses (trace) eksekusi program
dari sudut panjang processor! (pelajari
kembali konsep computer architecture).

1. yang dilakukan kode c adalah cara membuat proses baru
2. PENGHENTIAN PROSES
Suatu proses berhenti jika telah menyelesaikan pernyataan terakhir, dan
meminta pada sistem operasi untuk menghapusnya dengan menggunakan system call
exit. Proses mengembalikan semua data (output) ke parent proses melalui system call
wait. Kemudian proses dihapus dari list atau tabel sistem, dilanjutkan dengan
menghapus PCB.
Penghapusan proses ini akan menjadi sangat kompleks jika ternyata proses yang
akan dihentikan tersebut membuat proses-proses yang lain. Pada beberapa sistem,
proses-proses anak akan dihentikan secara otomatis jika proses induknya berhenti.
Namun, ada beberapa sistem yang menganggap bahwa proses anak ini terpisah dengan
induknya, sehingga proses anak tidak ikut dihentikan secara otomatis pada saat proses
induk dihentikan
B. Status Proses
Meskipun tiap-tiap proses terdiri dari suatu kesatuan yang terpisah namun
adakalanya proses-proses tersebut butuh untuk saling berinteraksi. Satu proses bisa
dibangkitkan dari output proses lainnya sebagai input.
Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses
didefiniskan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu.
Gambar 3-1 menunjukkan diagram status proses. Status proses terdiri dari :
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.
C.Informasi yang terdapat pada setiap proses meliputi :
a. Status Proses. New, ready, running, waiting dan terminated.
b. Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh
proses tersebut.
c. 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 3-3 menunjukkan switching proses dari satu proses ke proses
berikutnya.
d. Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses,
pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.
e. Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit
register, page table, atau segment table tergantung pada sistem memory yang
digunakan oleh SO.
f. Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang
digunakan, time limits, account numbers, jumlah job atau proses, dll
g. Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti tape
driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka, dll
D. Process Control Block (PCB)
Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB), juga
disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan
sebuah proses yang spesifik, termasuk hal-hal di bawah ini:
•Status proses: status yang mungkin adalah new, ready, running, waiting, halted, dan seterusnya.
•Program counter: suatu penghitung yang mengindikasikan alamat dari instruksi selanjutnya yang
akan dieksekusi untuk proses tersebut.
•CPU register: Register bervariasi dalam jumlah dan tipenya, tergantung pada arsitektur komputer.
Register tersebut termasuk accumulator, index register, stack pointer, general-purposes register,
ditambah informasi condition-code. Bersama dengan program counter, keadaan/status informasi
harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja
dengan benar.
•Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari
dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan oleh sistem operasi.
•Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu nyata yang digunakan,
batas waktu, jumlah account, jumlah job atau proses, dan banyak lagi
2. Definisi dari Proses, Thread, Mutual Exclution, Race Condition, Sinkronisasi, Deadlock, Starvation, Monitor, dan Semaphore!
PROSES
Definisi proses Secara tidak langsung, proses adalah program yang sedang dieksekusi. Menurut SilberSchatz, suatu proses adalah lebih dari sebuah kode program, yang terkadang disebut text section . Proses juga mencakup program counter , yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack yang berisikan data-data yang dibutuhkan selama proses dieksekusi (seperti parameter method, alamat return dan variabel lokal), dan sebuah data section yang menyimpan variabel global. Sama halnya dengan SilberSchatz, Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mecakup program counter , register, dan variabel di dalamnya. termasuk
• Suatu program dalam pelaksanaan
• Sebuah contoh dari program yang berjalan pada komputer
• Entitas yang dapat ditugaskan dan dijalankan pada prosesor
• Sebuah unit aktivitas ditandai dengan pelaksanaan suatu urutan instruksi,keadaan saat ini, dan terkait set sumber daya sistem Juga dapat memikirkan suatu proses sebagai entitas yang terdiri dari sejumlah elemen.
THREAD
Thread adalah unit dasar dari penggunaan CPU, thread mengandung Thread ID, program counter , register set , dan stack . Sebuah Thread berbagi code section , data section , dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process . Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
MUTUAL EXCLUSION
Adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu. Proses proses yang lain dilarang mengerjakan hal yang sama. Bagian program yang sedang mengakses memori atau sumber daya yang dipakai bersama disebut Critical Section/Region. Mutual Exclusion merupakan jaminan untuk mengatasi kondisi pacu agar tidak boleh 2 proses atau lebih memasuki Critical Section secara bersamaan. Kesuksesan proses – proses kongkuren memerlukan pendefinisian Critical Section dan memaksakan Mutual Exclusion di antara proses-proses kongkuren yang sedang berjalan. Pemaksaan Mutual Exclusion merupakan landasan pemrosesan kongkuren.

RACE CONDITON
Race Condition adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Unutk mencegah race condition, proses-proses yang berjalan besamaan haus di disinkronisasi.
Dalam beberapa sistem operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write). Penyimpanan bersama (shared storage) mungkin berada di memori utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak merubah kealamian dari komunikasi atau masalah yang muncul. Untuk mengetahui bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus. Proses yang lain, printer daemon, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.
Bayangkan bahwa spooler direktori memiliki slot dengan jumlah yang sangat besar, diberi nomor 0, 1, 2, 3, 4,… masing-masing dapat memuat sebuah nama berkas. Juga bayangkan bahwa ada dua variabel bersama, out, penunjuk berkas berikutnya untuk dicetak, dan in, menunjuk slot kosong di direktori. Dua vaiabel tersebut dapat menamgami sebuah two-word berkas untuk semua proses. Dengan segera, slot 0, 1, 2, 3 kosong (berkas telah selesai dicetak), dan slot 4, 5, 6 sedang terisi (berisi nama dari berkas yang antre untuk dicetak). Lebih atau kurang secara besamaan, proses A dan B, mereka memutuskan untuk antre untuk sebuah berkas untuk dicetak.
SINKRONISASI
Koordinasi akses ke shared data, misalkan hanya satu proses yang dapat menggunakah shared var.
Contoh operasi terhadap var. “counter” harus dijamin di-eksekusi dalam satu kesatuan (atomik) :
counter := counter + 1;
counter := counter - 1;
Sinkronisasi merupakan “issue” penting dalam rancangan/implementasi OS (shared resources, data, dan multitasking).
DEADLOCK
eadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu. Di kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut.Pada gambar diatas, deadlock dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua antrian tersebut.Misal ada proses A mempunyai resource X, proses B mempunyai resource Y. Kemudian kedua proses ini dijalankan bersama, proses A memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan. Sehingga akan terjadi tunggu-menunggu.
STARVATION
Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan). Namun, starvation juga bisa terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di dunia nyata dapat dilihat di bawah ini.Pada gambar diatas, pada antrian kanan terjadi starvation karena resource (jembatan) selalu dipakai oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran.
MONITOR
Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tak dapat mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal.
Properti-properti monitor adalah sebagai berikut:
i. Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dala monitor dan tidak oleh prosedur di luar monitor.
ii. Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus mengimplementasi ini(mutual exclusion).
iii. Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan Signal.
iv. Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk monitor.
v. Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada variabel kondisi yang sedang ditunggu partnernya.
vi. Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda proses lain.
vii. Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar dari monitor.
Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor, monitor menyediakan fasilitas mutual exclusion. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses pada satu saat. Struktur data bersama dapat dilindungi dengan menempatkannya dalam monitor. Jika data pada monitor merepresentasikan sumber daya, maka monitor menyediakan fasilitas mutual exclusion dalam mengakses sumber daya itu.
SEMAPHORE
Jika kita ingin dapat melakukan proses tulis lebih rumit kita membutuhkan sebuah bahasa untuk melakukannya. Kita akhirnya medefinisikan semaphore yang kita asumsikan sebagai sebuah operasi atomik.
Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut semaphore.
Semaphore mempunyai dua sifat, yaitu:
i. Semaphore dapat diinisialisasi dengan nilai non-negatif.
ii. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.