Kamis, 22 April 2010

TUGAS SISTEM OPERASI ( Pertemuan 5 )

PRINSIP Concurrency dan MUTUAL EXCLUSION
Problem 5.1 (PRINSIP Concurrency)

Sepintas, mungkin tampak bahwa interleaving dan tumpang tindih merupakan modus fundamental berbeda dari eksekusi dan masalah yang berbeda sekarang. Bahkan, baik teknik dapat dilihat sebagai contoh pengolahan bersamaan, dan keduanya hadir sama masalah. Dalam kasus sebuah uniprocessor, masalah berasal dari dasar karakteristik sistem multiprogramming: Kecepatan relatif pelaksanaan proses yang tidak dapat diprediksi. Tergantung pada proses kegiatan lain, cara menangani OS menyela, dan kebijakan penjadwalan dari OS. Itu kesulitan berikut muncul:
1. Berbagi sumber daya global penuh bahaya. Misalnya, jika dua proses baik menggunakan variabel global yang sama dan keduanya melakukan membaca dan menulis pada variabel itu, maka urutan yang membaca dan menulis berbagai dieksekusi adalah kritis. Satu contoh masalah ini ditunjukkan dalam ayat berikut.
2. Hal ini menjadi sangat sulit untuk menemukan kesalahan pemrograman karena hasilnya biasanya tidak deterministik dan direproduksi
Race Condition
A race condition terjadi ketika banyak proses atau benang membaca dan menulis data item sehingga hasil akhir tergantung pada urutan pelaksanaan instruksi dalam beberapa proses. Mari kita mempertimbangkan dua contoh sederhana. Sebagai contoh pertama, anggaplah bahwa dua proses, P1 dan P2, berbagi global variabel a. Pada titik tertentu dalam pelaksanaannya, P1 update ke nilai 1, dan di beberapa titik dalam pelaksanaannya, update P2 ke nilai 2. Jadi, dua tugas dalam perlombaan ke menulis variabel a. Dalam contoh ini yang kalah “” dari perlombaan (proses yang update terakhir) menentukan nilai akhir a. Sebagai contoh kami yang kedua, mempertimbangkan dua proses, P3 dan P4, berbagi global variabel b dan c, dengan nilai awal b = 1 dan c = 2. Pada titik tertentu dalam perusahaan eksekutif-SI, P3 melaksanakan tugas b = b + c, dan pada beberapa titik dalam pelaksanaannya, P4 melaksanakan tugas c = b + c. Perhatikan bahwa dua proses update yang berbeda variabel. Namun demikian, nilai akhir dari kedua variabel tergantung pada urutan yang kedua proses menjalankan kedua tugas. Jika P3 menjalankan perusahaan menetapkanan pernyataan pertama, maka nilai final b = 3 dan c = 5. Jika P4 menjalankan perusahaan Tugas pertama pernyataan, maka nilai final dan b = 4 c = 3. Sulit bagi OS untuk mengelola alokasi sumber daya secara optimal. Misalnya, proses A dapat meminta penggunaan, dan diberikan kontrol, yang saya khusus / O saluran dan kemudian dihentikan sebelum menggunakan saluran tersebut. Ini mungkin tidak diinginkan untuk OS hanya untuk mengunci saluran tersebut dan mencegah penggunaannya oleh proses lain, memang ini dapat mengakibatkan kondisi deadlock.
Operating System Concerns
Apa desain dan isu-isu manajemen yang dibangkitkan oleh adanya konkurensi? Kita bisa daftar keprihatinan berikut:
1. OS harus dapat melacak berbagai proses. Hal ini dilakukan dengan penggunaan blok kontrol proses dan diuraikan dalam Bab 4.
2. OS harus mengalokasikan dan deallocate berbagai sumber daya untuk setiap proses aktif. Pada kali, beberapa proses menginginkan akses ke sumber daya yang sama. Sumber daya ini memasukkan
o Processor waktu: ini adalah fungsi penjadwalan, dibahas dalam Bagian Keempat.
o Memori: Sebagian besar sistem operasi menggunakan skema memori virtual. Topik kali ini adalahdibahas dalam Bagian Ketiga.
o File: Dibahas di Bab 12.
o perangkat I / O: Dibahas di Bab 11.
3. OS harus melindungi data dan sumber daya fisik setiap proses terhadap yang dimaksudkan gangguan proses lainnya. Hal ini melibatkan teknik yang berhubungan dengan memori, berkas, dan I / O device. Perawatan umum ditemukan di perlindungan Bab 14.
4. Fungsi proses, dan output yang dihasilkannya, harus independen kecepatan di mana pelaksanaannya dilakukan relatif terhadap kecepatan lain
5. konkuren proses. Ini merupakan pokok bab ini.
Untuk memahami bagaimana masalah kecepatan kemerdekaan dapat diatasi, kita perlu melihat cara-cara proses dapat berinteraksi.
Process Interaction
• Proses tidak menyadari satu sama lain: Ini adalah proses independen yang tidak dimaksudkan untuk bekerja sama. Contoh terbaik dari situasi ini adalah multiprogramming beberapa proses independen. Ini dapat menjadi batch pekerjaan atau sesi interaktif atau campuran. Meskipun proses tidak bekerja bersama-sama, OS perlu khawatir tentang persaingan untuk sumber daya. Misalnya, dua aplikasi independen mungkin baik ingin mengakses sama disk atau file atau printer. OS harus mengatur akses ini.
• Proses tidak langsung mengenali satu sama lain: Ini adalah proses yang tidak selalu menyadari satu sama lain dengan ID masing-masing proses tapi berbagi akses ke beberapa objek, seperti I / O buffer. Proses tersebut menunjukkan kerjasamadalam berbagi objek umum.
• Proses langsung mengenali satu sama lain: Ini adalah proses yang dapat berkomunikasi satu sama lain dengan ID dan proses yang dirancang untuk bekerja bersama pada beberapa kegiatan. Sekali lagi, proses seperti pameran kerjasama. Kondisi tidak akan selalu sama yang jelas seperti yang disarankan dalam Tabel 5.2. Sebaliknya, beberapa proses mungkin menunjukkan aspek dari kompetisi dan kerjasama. Namun demikian, adalah produktif untuk memeriksa masing-masing dari tiga item dalam daftar sebelumnya secara terpisah dan implikasinya untuk menentukan OS.
Competition among Processes for Resources
Proses datang bersamaan ke dalam konflik satu sama lain ketika mereka bersaing untuk penggunaan sumber daya yang sama. Dalam bentuk murni, kita dapat menggambarkan situasi sebagai berikut ini. Dua atau lebih proses perlu untuk mengakses sumber daya selama eksekusi mereka. Setiap proses menyadari adanya proses lainnya, dan setiap yang akan terpengaruh oleh eksekusi proses lain. Memang benar bahwa setiap proses harus meninggalkan negara dari setiap sumber daya yang menggunakan terpengaruh. Contoh sumber daya termasuk I / O, memori, waktu prosesor, dan jam. Tidak ada pertukaran informasi antara proses bersaing. Namun, pelaksanaan satu proses dapat mempengaruhi perilaku proses bersaing. Secara khusus, jika akses dua proses kedua ingin satu sumber daya, maka satu proses akan dialokasikan bahwa sumber daya oleh OS, dan yang lain harus menunggu. Oleh karena itu, proses yang ditolak akses akan melambat. Dalam kasus yang ekstrim, diblokir proses mungkin tidak pernah mendapatkan akses ke sumber daya dan karenanya tidak akan pernah berakhir dengan sukses. Dalam hal proses bersaing tiga masalah kontrol harus dihadapi. Pertama adalah kebutuhan untuk saling pengecualian. Misalkan dua atau lebih proses membutuhkan akses ke sumber daya nonsharable tunggal, seperti printer. Selama eksekusi, setiap proses akan mengirimkan perintah ke I / O device, menerima informasi status, mengirim data, dan / atau menerima data. Kita akan lihat seperti sumber daya sebagai sumber daya kritis, dan bagian dari program yang menggunakannya kritis Bagian dari program. Adalah penting bahwa hanya satu program pada satu waktu diizinkan pada bagian yang kritis. Kita tidak bisa hanya bergantung pada OS untuk memahami dan menegakkan pembatasan ini karena persyaratan rinci mungkin tidak jelas. Dalam hal printer, misalnya, kita menginginkan proses individu untuk memiliki kontrol terhadap sedangkan printer mencetak seluruh file. Jika tidak, baris dari proses bersaing akan akan disisipkan.
Cooperation among Processes by Sharing
Kasus kerjasama oleh berbagi mencakup proses yang berinteraksi dengan proses-proses lain tanpa secara eksplisit menyadarinya. Sebagai contoh, beberapa proses mungkin memiliki akses ke variabel bersama atau berbagi file atau database. Proses dapat menggunakan dan memperbarui data bersama tanpa referensi untuk proses yang lain tapi tahu bahwa proses lain mungkin memiliki akses ke sama data. Dengan demikian proses harus bekerja sama untuk memastikan bahwa data mereka berbagi telah dikelola secara baik. Mekanisme kontrol harus menjamin integritas berbagi data. Karena data yang diadakan pada sumber daya (perangkat, memori), masalah kontrol saling pengucilan, kebuntuan, dan kelaparan yang kembali hadir. Satunya perbedaan adalah bahwa item data dapat diakses dalam dua mode yang berbeda, membaca dan menulis, dan hanya operasi menulis harus saling eksklusif.

Cooperation among Processes by Communication
kedua kasus pertama yang telah kita bahas, setiap proses memiliki lingkungan yang terisolasi sendiri yang tidak termasuk proses lainnya. Interaksi di antara proses-proses yang tidak langsung. Dalam kedua kasus, ada berbagi. Dalam kasus persaingan, mereka berbagi sumber daya tanpa menyadari proses lainnya. Pada kasus kedua, mereka berbagi nilai-nilai, dan meskipun masing-masing proses tidak secara eksplisit menyadari proses-proses lain, sadar dari kebutuhan untuk mempertahankan integritas data. Ketika proses bekerja sama dengan komunikasi, namun berbagai proses berpartisipasi dalam upaya umum yang menghubungkan semua proses. Komunikasi menyediakan cara untuk sinkronisasi, atau koordinat, yang berbagai kegiatan. Biasanya, komunikasi dapat dicirikan sebagai terdiri dari pesan-pesan beberapa macam. Primitif untuk mengirim dan menerima pesan mungkin disediakan sebagai bagian dari bahasa pemrograman atau disediakan oleh kernel OS. Karena tidak ada yang dibagi antara proses dalam tindakan lewat pesan, saling pengecualian bukan persyaratan kontrol untuk kerjasama semacam ini. Namun, masalah kebuntuan dan kelaparan yang masih ada. Sebagai contoh tentang kunci, dua proses mungkin tersumbat, masing-masing menunggu untuk komunikasi dari lainnya. Sebagai contoh kelaparan, pertimbangkan tiga proses, P1, P2, dan P3, bahwa mantan hibit perilaku berikut. P1 berulang kali berusaha untuk berkomunikasi dengan baik P2 atau P3, dan P2 dan P3 keduanya berusaha untuk berkomunikasi dengan P1. A urutan bisa muncul di mana pertukaran informasi P1 dan P2 berulang kali, sedangkan P3 diblokir menunggu untuk komunikasi dari P1. Tidak ada jalan buntu, karena P1 tetap aktif, tapi P3 adalah kelaparan
Requirements for Mutual Exclusion
Setiap fasilitas atau kemampuan yang memberikan dukungan untuk dikecualikan harus saling memenuhi persyaratan sebagai berikut:
1. Reksa pengecualian harus dilaksanakan: Hanya satu proses pada suatu waktu yang dibolehkan masuk bagian kritis, di antara semua proses yang memiliki bagian penting untuk hal yang sama berbagi sumber daya atau objek.
2. Sebuah proses yang menghentikan di bagian tidak kritis yang harus melakukannya tanpa mempengaruhi proses lainnya.
3. Ini tidak boleh mungkin untuk proses yang membutuhkan akses ke critical section harus meletakkan tanpa batas: tidak ada jalan buntu atau kelaparan.
4. Ketika proses tidak ada bagian kritis, proses apapun yang masuk ke permintaan yang critical bagian harus diperbolehkan untuk masuk tanpa penundaan.
5. Tidak ada asumsi yang dibuat tentang kecepatan relatif proses atau jumlah prosesor.
6. Sebuah proses tetap dalam bagian penting dalam waktu yang terbatas saja.
Problem 5.2 (MUTUAL EXCLUSION: HARDWARE SUPPORT)

Dalam sistem uniprocessor, proses konkuren tidak dapat memiliki eksekusi tumpang tindih; mereka hanya dapat disisipkan. Selain itu, proses akan terus berjalan sampai memanggil layanan OS atau sampai terganggu. Oleh karena itu, untuk menjamin saling pengecualian, itu sudah cukup untuk mencegah proses dari diganggu. Kemampuan ini dapat diberikan dalam bentuk primitif didefinisikan oleh kernel OS untuk menonaktifkan dan memungkinkan interupsi. Sebuah proses kemudian dapat menegakkan saling pengecualian dengan cara berikut
(true) { while
/* disable interrupts */;
/* critical section */;
/* enable interrupts */;
/* remainder */;
}
Karena bagian kritis tidak dapat terganggu, saling pengecualian dijamin. Harga pendekatan ini, bagaimanapun, adalah tinggi. Efisiensi eksekusi bisa akan tampak rusak karena prosesor terbatas pada kemampuannya untuk interleave proses.
Special Machine Instructions
Pada tingkat perangkat keras, seperti yang disebutkan, akses ke lokasi memori mengecualikan setiap akses lain ke lokasi yang sama. Dengan ini sebagai landasan, prosesor desainer telah mengusulkan beberapa instruksi mesin yang melakukan dua tindakan atomically, 2 seperti membaca dan menulis atau membaca dan pengujian, dengan memori tunggal lokasi dengan satu instruksi mengambil siklus. Selama pelaksanaan instruksi, akses ke lokasi memori yang diblokir untuk referensi instruksi lainnya yang lokasi.
Compare & Swap Instruction
int compare_and_swap (int *word, int testval, int newval)
{ int oldval;
oldval = *word
if (oldval == testval) *word = newval;
return oldval;
}
Versi dari cek instruksi lokasi memori (* kata) terhadap nilai tes (testval). Jika nilai sekarang lokasi memori adalah testval, itu diganti dengan newval, kalau dibiarkan tidak berubah. Nilai memori tua selalu kembali; demikian, lokasi memori telah diperbarui jika nilai dikembalikan adalah sama dengan nilai tes. Oleh karena itu instruksi atom ini memiliki dua bagian: A membandingkan adalah dibuat antara nilai memori dan nilai tes, jika nilai berbeda swap terjadi. The membandingkan seluruh & swap fungsi dilakukan atomically, yaitu, tidak tunduk untuk interupsi. Versi lain dari instruksi ini mengembalikan nilai Boolean: true jika swap terjadi; palsu sebaliknya. Beberapa versi dari instruksi ini tersedia di hampir semua prosesor keluarga (x86, IA64, sparc, / 390, dll), dan sebagian besar sistem operasi menggunakan instruksi untuk mendukung konkurensi.
Exchange Instruction
void exchange (int register, int memory)
{ temp;
int
temp = memory;
memory = register;
register = temp;
}
Instruksi pertukaran isi register dengan sebuah lokasi memori. Kedua arsitektur Intel IA-32 (Pentium) dan arsitektur IA-64 (Itanium) mengandung instruksi XCHG. Menunjukkan protokol pengecualian timbal balik yang didasarkan pada penggunaan pertukaran instruksi. Sebuah baut bersama variabel diinisialisasi ke 0. Setiap proses menggunakan lokal variabel kunci yang diawali dengan 1. Proses hanya yang dapat masuk critical section adalah salah satu yang menemukan baut sama dengan 0. Ini termasuk semua proses lain dari kritis bagian dengan mengatur baut ke 1. Ketika sebuah proses meninggalkan critical section, ia ulang baut untuk 0, memungkinkan proses lain untuk mendapatkan akses ke critical section.
Properties of the Machine-Instruction Approach
Penggunaan khusus instruksi mesin untuk menegakkan pengecualian saling memiliki sejumlah keuntungan:
• Hal ini berlaku untuk sejumlah proses di kedua prosesor tunggal atau beberapa prosesor berbagi memori utama.
• Sangat sederhana dan karena itu mudah untuk memverifikasi.
• Hal ini dapat digunakan untuk mendukung beberapa bagian kritis; setiap bagian kritis dapat didefinisikan oleh variabel sendiri. Ada beberapa kelemahan serius:
• Sibuk menunggu digunakan. Jadi, sementara proses sedang menunggu akses ke bagian kritis, terus untuk mengkonsumsi waktu prosesor.
• Kelaparan adalah mungkin. Ketika sebuah proses meninggalkan critical section dan lebih dari satu proses sedang menunggu, pemilihan proses menunggu adalah sewenang-wenang. Dengan demikian, beberapa proses tanpa batas bisa mengakses.
• Deadlock adalah mungkin. Pertimbangkan skenario berikut pada prosesor-tunggal sistem. Proses P1 mengeksekusi instruksi khusus (misalnya, membandingkan & swap,pertukaran) dan memasuki critical section. P1 kemudian menyela untuk memberikan prosesor untuk P2, yang memiliki prioritas lebih tinggi. Jika P2 sekarang mencoba untuk menggunakan sumber daya yang sama dengan P1, itu tidak akan dapat mengakses karena saling eksklusi mekanisme. Oleh karena itu akan masuk ke dalam lingkaran menunggu sibuk. Namun, P1 akan pernah dikirim karena prioritas lebih rendah daripada proses lain siap, P2.

Definisi dari Proses, Thread, Mutual Exclution, Race Condition, Sinkronisasi, Deadlock, Starvation, Monitor, dan Semaphore!

KONSEP DASAR DAN DEFINISI PROSES
Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikanvariabel global.
Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.
Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja. Kami mendiskusikan masalah tersebut pada Bagian 2.4.
Keadaan Proses
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:
• New: Proses sedang dikerjakan/ dibuat.
• Running: Instruksi sedang dikerjakan.
• Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/Oatau penerimaan sebuah tanda/ signal).
• Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
• Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Nama-nama tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi disepanjang sistem operasi. Keadaan yang mereka gambarkan ditemukan pada seluruh sistem. Namun, sistem operasi tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana pun pada waktu kapan pun. Namun, banyak proses yang dapat ready atau waiting.

Process Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) – juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2-2. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk ini:
• Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
• Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses ini.
• CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
• Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 2-3).
• Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yangdigunakan oleh sistem operasi (lihat Bab 4).
• Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
• Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas dan banyak lagi.
• PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari prose ke proses.

Gambar 2-2. Process Control Block.

Gambar 2-3. CPU Register.
THREADS
Model proses yang didiskusikan sejauh ini telah menunjukkan bahwa suatu proses adalah sebuah program yang menjalankan eksekusi thread tunggal. Sebagai contoh, jika sebuah proses menjalankan sebuah program Word Processor, ada sebuah thread tunggal dari instruksi-instruksi yang sedang dilaksanakan.
Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Pada Bagian 2.5 akan dibahas proses multithreaded.
Penjadualan Proses
Tujuan dari multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada sepanjang waktu, untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian waktu adalah untuk mengganti CPU diantara proses-proses yang begitu sering sehingga pengguna dapat berinteraksi dengan setiap program sambil CPU bekerja. Untuk sistem uniprosesor, tidak akan ada lebih dari satu proses berjalan. Jika ada proses yang lebih dari itu, yang lainnya akan harus menunggu sampai CPU bebas dan dapat dijadualkan kembali.
RACE CONDITION
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. Situasi seperti ini diperlihatkan oleh Gambar 3-1.

Gambar 3-1. Race Condition.
Dalam Murphy’s Law kasus tesebut dapat terjadi. Proses A membaca in dan menyimpan nilai “7″ di sebuah variabel lokal yang disebut next_free_slot. Sebuah clock interrupt terjadi dan CPU memutuskan bahwa proses A berjalan cukup lama, sehingga digantika oleh proses B. Proses B juga membaca in, dan juga mengambil nilai 7, sehingga menyimpan nama berkas di slot nomor 7 dan memperbaharui nilai in menjadi 8. Maka proses mati dan melakukan hal lain.
Akhirnya proses A berjalan lagi, dimulai dari tempat di mana proses tersebut mati. Hal ini terlihat dalam next_free_slot, ditemukan nilai 7 di sana, dan menulis nama berkas di slot nomor 7, menghapus nama berkas yang bau saja diletakkan oleh proses B. Kemudian proses A menghitung next_free_slot + 1, yang nilainya 8 dan memperbaharui nilai in menjadi 8. Direktori spooler sekarang secara internal konsisten, sehingga printer daemon tidak akan memberitahukan apa pun yang terjadi, tetapi poses B tidak akan mengambil output apa pun. Situasi seperti ini, dimana dua atau lebih proses melakukan proses reading atau writing beberapa shared data dan hasilnya bergantung pada ketepatan berjalan disebut race condition.
SINKRONISASI
Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat rancangan yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau asinkron.
• Pengiriman yang diblok: Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
• Pengiriman yang tidak diblok: Proses pengiriman pesan dan mengkalkulasi operasi.
• Penerimaan yang diblok: Penerima mem blok samapai pesan tersedia.
• Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.
DEADLOCK
Pengertian Deadlock yaitu :
- Keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya
- Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah
- Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses

Strategi mengatasi Deadlock
- Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku
- Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock, Algoritma Banker
- Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich
Penyebab Deadlock
- Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama
- Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang dimilikinya ketika meminta resource baru
- Circular Waiting : memberikan penamaan resource berdasarkan urutan atau level
Contoh circular waiting:

- No Preemption : membolehkan adanya preemption
Detection dan Recovery
- Membiarkan deadlock terjadi lalu mendeteksinya kemudian melakukan tindakan recovery seperlunya
- Algoritma yang paling dikenal adalah algoritma Ostrich
- Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat checkpoint untuk rollback lalu membunuh proses yang prioritasnya kecil
Monitor
Konsep monitor diperkenalkan pertama kali oleh Hoare (1974) dan Brinch Hansen (1975) untuk mengatasi beberapa masalah yang timbul ketika memakai semaphore. Monitor merupakan kumpulan dari prosedur, variabel, dan struktur data dalam satu modul. Monitor hanya dapat diakses dengan menjalankan fungsinya. Kita tidak dapat mengambil variabel dari monitor tanpa melalui prosedurnya. Hal ini dilakukan untuk melindungi variabel dari akses yang tidak sah dan juga mengurangi terjadinya error.
shared variable declarations
void bodyP1 (….)
{
……
}
void bodyP2 (….)
{
……
}
…..
void bodyPn (….)
{
……
}
void main{
initialization code
}
Konstruksi monitor memastikan hanya satu proses yang aktif pada suatu waktu. Sehingga sebenarnya programmer tidak membutuhkan synchronization codes yang disisipkan secara eksplisit. Akan tetapi konstruksi monitor tidak benar-benar powerfull untuk modelisasi sebuah skema synchronization, sehingga perlu ditambahkan mekanisme sinkronisasi tambahan. Mekanisme ini disediakan oleh konstruksi conditional, seperti deklarasi variabel di bawah ini:
condition x,y;

Gambar 3 Schematic view monitor
Operasi x.wait menahan proses sampai proses lain memanggil x.signal. Operasi x.signal
melanjutkan proses yang tertahan, jika tidak ada proses yang tertahan operasi ini tidak mempunyai pengaruh apa-apa. Misalkan x.signal dipanggil oleh proses P, lalu ada proses Q tertahan dan diasosiasikan dengan kondisi x. Jelasnya jika proses Q yang tertahan diijinkan untuk melanjutkan eksekusinya, pensinyalan proses P harus menunggu. Jika tidak kedua P dan Q akan aktif secara
simultan melalui monitor. Ada dua kemungkinan yang terjadi yaitu:
1. P menunggu sampai Q meninggalkan monitor atau menunggu untuk kondisi lain
2. Q menunggu sampai Pmeninggalkan monitor atau menunggu untuk kondisi lain.

Gambar 4 Monitor dengan variabel-variabel kondisi
Monitor merupakan konsep bahasa pemrograman, sehingga kompilator bertanggung jawab dalam mengkondisikan monitor sebagai mutual eksklusif. Namun, tidak semua kompilator bias menerapkannya. Sehingga meski bahasa pemrograman yang sama mungkin tidak memiliki semaphore, akan tetapi menambahkan semaphore akan lebih mudah.


Implementasi Sinkronisasi dan Mutual Exclusion di Windows dan Linux

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).
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.
maka uraian mengenai implementasi sinkronisasi dan mutual exclusion di windows dan linux sebagai berikut:
mengenai definisi dari apa itu sinkronisasi dan apa itu mutual exclusion telah di jelaskan pada postingan sebelumnya, jadi kali ini akan di jelaskan secara langsung perbedaan dari dua oeprasi sistem diantaranya :
• Windows
Sinkronisasi primitive yang umum seperti semaphore, mutexes, spinlocks, timers, didasarkan dari dasar mekanisme tunggu/sinyal.

• Linux
Sinkronisasi primitive yang umum seperti semaphore, mutexes, spinlocks, timers, didasarkan dari dasar mekanisme sleep/wake up .Linux menghadirkan variasi mekanisme untuk komunikasi interprocessor dan sinkronisasi. Berikut bisa kita ketahui bagian yang paling penting:
• Pipes
• Messages
• Shared Memory
• Semaphores
• Signals
Pipes, messages, dan Shared Memory dapat digunakan untuk berkomunikasi data antar proses dimana semaphores dan signal digunakan untuk aksi trigger oleh proses lain.

Kamis, 15 April 2010

tugas 2, sistem operasi


TUGAS II

MIKROKERNEL

mikrokernel adalah inti OS kecil yang menyediakan dasar untuk modular extensesi. Metode ini menyusun sistem operasi dengan menghapus semua komponen yang tidak esensial dari kernel, dan mengimplementasikannya sebagai program sistem dan level pengguna.Hasilnya kernel yang lebih kecil. Pada umumnya mikrokernel mendukung proses dan menagemen memori yang minimal, sebagai tambahan utnuk fasilitas komunikasi. Fungsi utama mikrokernel adalah mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan yang juga berjalan di user space. Komunikasi yang dilakukan secara tidak langsung, didukung oleh sistem message passing, dengan bertukar pesan melalui mikrokernel.Salah satu keuntungan mikrokernel adalah ketika layanan baru akan ditambahkan ke user space, kernel tidak perlu dimodifikasi. Kalau pun harus, perubahan akan lebih sedikit. Hasil sistem operasinya lebih mudah untuk ditempatkan pada suatu desain perangkat keras ke desain lainnya. Mikrokernel juga mendukung keamanan reliabilitas lebih, karena kebanyakan layanan berjalan sebagai pengguna proses. Jika layanan gagal, sistem operasi lainnya tetap terjaga. Mikro Kernel meiliki beberpa kelebihan diantaranya: 
1. Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level,karena semuanya berkomunikasi via message passing.
2. Extensibility. Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang
3. Flexibility. Fitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
4. Portability. Pada mikro kernel, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
5. Reliability. Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliabilitynya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan mikro kernel bisa lebih lagi. Mikro kernel dapat diuji secara ekstensif karena dia menggunakan API yang sedikit,sehingga bisa meningkatkan kualitas code di luar kernel.
6. Support for object-oriendted OS. Model mikro kernel sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan mikro kernel adalah Mac OS X dan QNX.
Microkernel hanya memiliki fungsi manajemen sederhana untuk mendeliver services :
  low-level address space management : sistem pengalamatan physical atau virtual untuk memory, network host, peripheral, dan lain-lain.
  thread management : pengaturan proses (=’molekul’) yang terpecah menjadi thread (=’atom’) dan dijalankan secara paralel.
  . inter-process communication (IPC) : pengaturan komunikasi antar thread pada satu atau beberapa proses. IPC bisa punya ruang lingkup di dalam atau antar computer.

Untuk mengatur kegiatan proses mereka perlu saling berkomunikasi. Linux mendukung berbagai mekanisme komunikasi antar proses (KAP). Sinyal dan pemipaan merupakan dua di antaranya, tapi linux juga mendukung system sistem ke lima mekanisme KAP. Manajemen I/O berguna Untuk mengelola perangkat masukan/keluaran, dimana perangkat tersebut digunakan proses tertenty, sehingga perlu dijaga agar proses lain tidak memakainya. Sistem operasi perlu mengetahui status operasi masukan/keluaran dan lokasi memori utama yang digunakan untuk transfer data. Manajemen Memory Manajemen memory level bawah (low- level): Memetakan setiap page virtual ke frame fisik, - Sebagian besar tugas manajemen memory terjadi dalam user space 


 
             Manajemen I/O & interrupt 
- Di dalam mikrokernel, adalah mungkin menangani interupsi hardware sebagai message dan menyertakan port I/O dalam ruang alamat. - Proses user-level tertentu dilewatkan ke interrupt & kernel memelihara pemetaan tersebut. 
Microkernel vs Monolithic Kernel dan aplikasinya pada Router
  Microkernel adalah inti (kernel) dari operating system yang paling sederhana, tidak ada fasilitas apapun, menjadikannya kernel ini berukuran sangat kecil dan biasanya sangat stabil (hampir bisa dipastikan tidak ada lagi bugsnya).

Microkernel hanya memiliki fungsi manajemen sederhana untuk mendeliver services :
  low-level address space management : sistem pengalamatan physical atau virtual untuk memory, network host, peripheral, dan lain-lain
  thread management : pengaturan proses (='molekul') yang terpecah menjadi thread (='atom') dan dijalankan secara paralel.
  inter-process communication (IPC) : pengaturan komunikasi antar thread pada satu atau beberapa proses. IPC bisa punya ruang lingkup di dalam atau antar komputer.
Arsitektur microkernel sangat berbeda dengan monolithic kernel :
  Monolithic kernel memiliki struktur vertical layered : setiap aplikasi memanggil servis yang berada di bawahnya
  Microkernel memiliki struktur horizontal : aplikasi memanggil servis yang berada sejajar dengan menggunakan IPC

          Realtime Applications

  Karena sistem microkernel menggunakan thread yang dieksekusi secara parallel, microkernel sangat mudah mendukung aplikasi realtime meskipun system sedang overloaded.
Sedangkan pada arsitektur monolithic, aplikasi realtime akan terputus-putus pada saat system overloaded.

Robustness/Keandalan Tinggi
  Microkernel sangat sederhana, sehingga bisa dipastikan bebas bugs. Selain itu proses di dalam microkernel berjalan secara independent. Sehingga microkernel memiliki keandalan sangat tinggi, jauh lebih tinggi dibandingkan dengan monolithic. Oleh karena itu arsitektur microkernel banyak dipakai pada aplikasi mission critical pada embedded system.
Pada monolithic kernel, bugs lebih sering menghantam kernel karena kernelnya sangat kompleks. Selain itu semua proses saling terkait. Sehingga jika ada bugs atau proses yang menggantung, seluruh sistem bisa ikut crashed.

     Security/Keamanan Tinggi

  Microkernel menggunakan prinsip miminal privilege, di mana setiap proses hanya dapat mengeksekusi instruksi sederhana yang sangat spesifik. Sehingga pengaturan security menjadi sangat mudah.
Sedangkan proses2 pada arsitektur monolithic cenderung bisa melakukan eksekusi kompleks yang lebih sulit dimonitor securitynya.

Arsitektur Microkernel pada Router
  Pada router-router kelas high end, seperti Cisco CRS-1, operating system dengan arsitektur Microkernel menjadi pilihan yang sangat menarik, karena keunggulan-keunggulan tadi :
  Performance - Router CRS-1 adalah router raksasa yang memiliki CPU (dan kipas pendingin) yang sangat kuat, sehingga overhead microkernel menjadi tidak ada artinya
  Realtime Applications - Router CRS-1 dapat menjalankan aplikasi realtime (seperti emulasi leased line, voice, telemetri, dll) tanpa takut aplikasi realtime terganggu karena ada traffic sangat tinggi atau ada serangan DDoS
  Robustness - semua komponen hardware/software CRS-1 dapat diganti2 tanpa adanya system down sama sekali. Termasuk penggantian chassis dan switching fabric, karena CRS-1 bersifat multi chassis dan multi switching fabric (yang dimungkinkan karena microkernel ini)
  Security - user CRS-1 memiliki tingkat privilege yang berbeda2, sehingga pengaturan security menjadi mudah sekali. Level security inipun terbawa sampai tingkat process dan thread karena arsitektur microkernel ini
Kinerjanya Mikrokernel

  Dalam teorinya, sistem operasi yang menggunakan microkernel disebut jauh lebih stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan server tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan server-server lainnya. Sistem operasi yang menggunakan microkernel umumnya secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolithic kernel. Hal ini disebabkan oleh adanya overhead yang terjadi akibat proses input/output dalam kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan data antara aplikasi dan server. Beberapa sistem operasi yang menggunakan microkernel:
1) IBM AIX, sebuah versi UNIX dari IBM
2) Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
3) Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X
4) Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
5) Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.
Rancangan Mikrokernel

Pada pembahasan "Struktur Sederhana", sempat disinggung istilah "kernel".Apakah kernel itu?Kernel adalah komponen sentral dari sistem operasi.Ia mengatur hal-hal seperti interrupt handler (untuk menyediakan layanan interupsi), process scheduler (membagi – bagi proses dalam prosesor), memory management, I/O, dan sebagainya. Atau dengan kata lain, ia adalah jembatan antara hardware dengan software. Cara tradisional untuk membangun sistem operasi adalah dengan membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan ini menjadikan kernel suatu program yang besar dan kompleks. Cara yang lebih modern, adalah dengan menggunakan kernel mikro. Pada awalnya, konsep mikro kernel dikembangkan pada sistem operasi Mach. Ide dasar dari pengembangan kernel mikro adalah bahwa hanya fitur-fitur yang perlu saja yang diimplementasikan dalam kernel (mengenai fitur-fitur apa saja yang perlu diimplementasikan, ini bisa berbeda tergantung desain sistem operasi). Walaupun garis pembatas mengenai apa saja yang berada di dalam dan luar kernel mikro bisa berbeda antara desain yang satu dengan yang lain, namun ada karakteristik yang umum, yaitu servis-servis yang umumnya menjadi bagian sistem operasi menjadi subsistem eksternal yang bisa berinteraksi satu sama lain dan dengan kernel tentunya. Ini mencakup device driver, file system, virtual memory manager, windowing system, dan security devices. Pendekatan kernel mikro menggantikan pendekatan berlapis yang vertikal tradisional.Komponen – komponen sistem operasi yang berada di luar kernel mikro diimplementasikan sebagai server process dan berkomunikasi dengan message passing via kernel mikro. Misalnya jika user ingin membuat berkas baru, dia mengirim pesan ke file system server, atau jika ingin membuat proses baru, dia mengirimkan pesan ke process server.


Gambar 7.2. Struktur kernel mikro

 

Kelebihan MikroKernel:

• Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
• Extensibility. Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang.
• Flexibility. Fitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
• Portability. Pada kernel mikro, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
• Reliability. Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliability-nya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan kernel mikro bisa lebih lagi. Kernel mikro dapat dites secara ekstensif .Karena dia menggunakan API yang sedikit, maka bisa meningkatkan kualitas code di luar kernel.
• Support for object-oriendted OS. Model kernel mikro sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan kernel mikro adalah TRU64 UNIX, MacOSX, dan QNX.
Manajemen Memory

Pada umumnya mikrokernel mendukung proses dan menajemen memori yang minimal, sebagai tambahan untuk fasilitas komunikasi. Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem.Memori managemen merupakan salah satu bagian terpenting dalam sistem operasi.Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini.Jalan keluarnya adalah dengan menggunakan memori virtual.Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya. Dengan memori virtual kita dapat: 
• Ruang alamat yang besar : Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.
• Pembagian memori fisik yang adil : Managemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses. 
• Perlindungan : Memori managemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut. 
• Penggunaan memori virtual bersama : Memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda. 


Memori Virtual

Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN).Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini: 
• Virtual PFN
• PFN fisik
• Informasi akses page dari page tersebut
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari.CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.

Demand Paging

Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging. Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini. CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali. Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik. 

Swaping

Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem. Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap. Pengaksesan Memori Virtual Bersama Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.
Efisiensi
Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem.Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam managemen memori di linux: 
• Page Cache :Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache. 
• Buffer Cache :Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer. 
• Swap Cache :Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu. Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.
Load dan Eksekusi Program
• Penempatan program dalam memori Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik. 
• Linking statis dan linking dinamis
1. Linking statis: librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library sistem yang umum. 
2. Linking dinamis: hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien dalam hal memori fisik dan ruang disk.

Komunikasi Antar Proses

Komunikasi antar proses (Interprocess Communication) atau thread dalam suatu SO mikrokernel adalah melalui message. Suatu message menyertakan:
• Header yang mengidetifikasi proses pengiriman dan penerimaan, dan
• Body yang mengandung data langsung, pointer ke suatu block data, atau beberapa informasi kontrol mengenai proses.
Fungsi utama mikrokernel adalah mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan yang juga berjalan di user space.Komunikasi yang dilakukan secara tidak langsung, didukung oleh sistem message passing, dengan bertukar pesan melalui mikrokernel. Salah satu keuntungan mikrokernel adalah ketika layanan baru akan ditambahkan ke user space, kernel tidak perlu dimodifikasi. Kalau pun harus, perubahan akan lebih sedikit. Hasil sistem operasinya lebih mudah untuk ditempatkan pada suatu desain perangkat keras ke desain lainnya. Mikrokernel juga mendukung keamanan reliabilitas lebih, karena kebanyakan layanan berjalan sebagai pengguna proses. Jika layanan gagal, sistem operasi lainnya tetap terjaga. 

tugas 1, sistem operasi


TUGAS 1

3.1Definisi Proses
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.
Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya ( resource yang dibutuhkan agar sebuah proses dapat dieksekusi.
Proses control block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block PCB - juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2-2. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal dibawah ini:
  Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
  Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
  CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator , indeks register, stack pointer , general-purposes register , ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 2-3).
  Informasi managemen 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 (lihat Bab Managemen memori).
  Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
  Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
  PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

Gambar 3-2. Process Control Block


Status Proses

 

Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting. Ada tiga kemungkinan bila sebuah proses memiliki status Running: 
a. Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.
b. Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt dan proses tersebut kini berstatus Ready.
c. Jika suatu event terjadi pada saat proses dieksekusi (seperti ada permintaan M/K) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.

4.1SMP (Symmetric Multi processors) Arsitektur

  Hal ini berguna untuk melihat di mana SMP arsitektur muat ke dalam kategori keseluruhan parallel prosesor. Sebuah taksonomi yang menyoroti sistem prosesor paralel pertama kali diperkenalkan oleh Flynn [FLYN72] masih merupakan cara paling umum mengkategorikan sistem tersebut. Flynn diusulkan dengan kategori sebagai berikut sistem komputer:
  instruksi tunggal data tunggal (SISD) stream: Sebuah prosesor tunggal menjalankan sebuah aliran instruksi untuk beroperasi pada data yang tersimpan dalam memori tunggal.
  Single instruksi multiple data (SIMD) stream: Sebuah mesin tunggal instruksi mengontrol eksekusi simultan dari sejumlah elemen pengolahan pada dasar berbaris. Setiap elemen pemrosesan memiliki memori data yang terkait, sehingga bahwa setiap instruksi dieksekusi pada satu set data yang berbeda oleh berbagai processors.Vector dan prosesor array termasuk dalam kategori ini.
  Beberapa instruksi data tunggal (MISD) stream: Sebuah urutan data ditransmisikan ke satu set prosesor, masing-masing melaksanakan instruksi yang berbeda Struktur sequence.This tidak pernah dilaksanakan.
  Beberapa instruksi multiple data (MIMD) stream: Satu set prosesor secara simultan mengeksekusi urutan instruksi yang berbeda pada set data yang berbeda.
Organisasi SMP

  Organisasi umum dari SMP.There adalah beberapa Prosessors, masing-masing berisi kontrol unit sendiri, unit aritmatika-logika, dan register. Setiap prosesor memiliki akses ke memori utama bersama dan perangkat I / O melalui beberapa bentuk mekanisme interkoneksi; bus bersama adalah fasilitas umum. Itu prosesor dapat berkomunikasi satu sama lain melalui memori (pesan dan status informasi yang tersisa dalam ruang alamat bersama-sama). Hal ini juga dapat dibuat untuk prosesor untuk pertukaran sinyal secara langsung. memori ini sering diselenggarakan simultan sehingga akses ganda untuk blok terpisah dari memori yang mungkin. Pada komputer modern, prosesor umumnya memiliki setidaknya satu tingkat cache memori yang swasta untuk prosesor. Ini menggunakan cache memperkenalkan beberapa considerations.Because desain baru setiap cache lokal berisi gambar sebagian utama memori, jika sebuah kata berubah dalam satu cache, itu menurut pikiran bisa membatalkan kata dalam cache lain. Untuk mencegah hal ini, prosesor lain harus diberitahu bahwa pembaruan telah terjadi. Masalah ini dikenal sebagai masalah koherensi cache dan biasanya dibahas dalam perangkat keras daripada oleh OS.

Multiprosesor Sistem Operasi Pertimbangan Desain 
  Simultan bersamaan proses atau thread: Kernel rutinitas perlu reentrant untuk memungkinkan beberapa prosesor untuk menjalankan kode kernel yang sama simultaneously.With prosesor menjalankan beberapa bagian yang sama atau berbeda dari kernel, kernel tabel dan struktur manajemen harus dikelola dengan baik untuk menghindari jalan buntu atau operasi yang tidak valid. 
  Penjadwalan: Penjadwalan dapat dilakukan oleh prosesor, jadi konflik harus dihindari. Jika kernel-tingkat multithreading digunakan, maka ada kesempatan untuk jadwal beberapa benang dari proses penjadwalan yang sama secara bersamaan pada beberapa processors.Multiprocessor diuji dalam Bab 10. 
  Sinkronisasi: Dengan beberapa proses yang aktif memiliki akses yang potensial berkaitan alamat ruang bersama atau bersama I / O sumber daya, perhatian harus diambil untuk memberikan efektif sinkronisasi. Sinkronisasi adalah fasilitas yang saling memaksa pengecualian dan acara ordering.A mekanisme sinkronisasi umum digunakan dalam multiprosesor sistem operasi adalah kunci, dijelaskan dalam Bab 5. 
  Manajemen memori: Memori manajemen pada multiprosesor harus berurusan dengan semua masalah yang ditemukan pada komputer uniprocessor dan dibahas dalam Bagian Tiga. Selain itu, perlu OS mengeksploitasi paralelisme perangkat keras yang tersedia, seperti kenangan multiported, untuk mencapai kinerja terbaik. Paging ini mekanisme pada prosesor yang berbeda harus dikoordinasikan untuk menegakkan konsistensi ketika beberapa prosesor berbagi halaman atau segmen dan memutuskan pada halaman penggantian. 
  Keandalan dan toleransi kesalahan: OS harus menyediakan degradasi anggun wajah kegagalan prosesor. Scheduler dan bagian-bagian lain dari OS harus mengakui kehilangan prosesor dan merestrukturisasi manajemen sesuai tabel.



Kamis, 01 April 2010

TUGAS SISTEM OPERASI PERTEMUAN 3

Jelaskan alasan pembuatan dan penghentian suatu proses!

A.SO Windows

v Pembuatan proses:

a.Pada lingkungan batch, sebagai tanggapan atas pemberian suatu kerja (job)

b.Pada lingkungan interaktif, ketika pemakai baru berusaha logon

c.Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, SO

dapat menciptakan proses yang akan mengelola pencetakan itu

d.Proses menciptakan proses lain (child).

1.Proses yang menciptakan child process disebut proses induk (parent process)

2.Child process dapat menciptakan proses baru.

3.Proses-proses dapat membentuk pohon hirarki proses

v Penghentian proses

Penyebab terjadinya penghentian suatu proses yaitu:

a. Apabila Proses selesai mengerjakan tugasnya(selesai normal)

b. Apabila Proses berjalan melebihi batas waktu

c. Jika memory tidak tersedia

d. Pelanggaran terhadap batas memori

e. Terjadi kesalahan karena pelanggaran proteksi

f. Terjadi kesalahan perhitungan

g. Jika terjadi proses menunggu terlalu lama

h. Terjadi kegagalan I/O

i. Jika proses mengeksekusi instruksi yang tidak ada

j. Proses menggunakan instruksi yang disimpan untuk SO

k. Terjadi kesalahan penggunaan data

l. Terjadi intervensi dari operator atau SO (contoh : deadlock)

m. Jika proses induk berakhir

n. Yang terakhir atas permintaan proses induk

B.SO Linux

1) Pembuatan proses: tanpa adanya proses sebuah sistem operasi tidak dapat berjalan sebagaimana mestinya,karena tugas dari so adalah mengatur eksekusi,dimana sebuah eksekusi itu berjalan karena adanya manajemen proses.definisi dari proses itu sendiri adalah unit aktifitas yang dicirikan oleh eksekusi serangkaian instruksi, current state (status terkini) & himpunan instruksi sistem terkait (associated).

2) Alasan penghentian suatu proses : masih banyak aplikasi yang membutuhkan sumber daya sehingga Processor di-switch antar banyak aplikasi sehingga perangkat I/O dapat digunakan secara efisien dan juga menghindari komputer mengambang ( hang ).

  1. Jelaskan tentang model proses 5 status beserta kemungkinan transisinya!

Model proses lima status adalah model alur proses kerja dengan menggunakan lima pos atau lima pengaturan jalan proses sehingga alur dan penjadwalan proses dapat terkontrol.







a) proses baru akan masuk lewat pos New

b) kemudian masuk pada pos Ready untuk antri giliran panggilan proses oleh Dispatch

c) setelah dipanggil Dispatch akan diproses pasa pos Running

d) bila waktu giliran habis namun proses belum selesai maka proses akan menuju pos Blocked untuk menunggu giliran masuk pos Ready untuk menyelesaikan sisa proses

e) bila proses selesai sebelum waktu giliran habis maka proses akan keluar melalui pos exit dan akan diganti proses berikutnya

Gambar diatas menunjukkan kemungkinan terjadinya proses transisi Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:

a) Null -New : Sebuah proses baru yang dibuat untuk menjalankan sebuah event terjadi program

b) New -Ready : proses akan berpindah ke tempat yang baru siap ketika sudah siap untuk melakukan proses tambahan. Kebanyakan sistem menetapkan beberapa batas berdasarkan jumlah proses yang ada atau jumlah memori virtual berkomitmen untuk proses yang ada.

c) Ready – Running : Ketika waktu untuk memilih menjalankan proses OS memilih salah satu proses di siap state. Pekerjaan ini yang menjadwal atau memberangkatkan.

d) Running -Exit : proses yang sedang berjalan diakhiri oleh OS jika proses menunjukkan bahwa ia telah selesai atau jika aborts.

e) Running – Ready :alasan yang paling umum untuk transisi ini adalah proses yang berjalan telah mencapai batas maksimum yang diijinkan untuk terganggu waktu pelaksanaan hampir semua sistem operasi multiprogramming menentukan jenis waktu yang tepat.

f) Running -Blocked : Sebuah proses diletakkan di Diblokir jika permintaan sesuatu yang harus menunggu. Permintaan untuk OS biasanya dalam bentuk sistem layanan panggilan yaitu panggilan dari program untuk menjalankan prosedur yang merupakan bagian dari sistem operasi kode.

g) Blocked -Ready : Sebuah proses blokir tersebut akan dipindahkan yang Siap saat acara yang telah menunggu terjadi.

h) Ready -Exit : Untuk jelasnya, transisi ini tidak akan ditampilkan pada diagram . Dalam beberapa sistem induk dapat proses setiap saat Juga jika induk terminates dihentikan maka semua proses yang terkait dengan induk tersebut akan dihentikan.

i) Blocked – Exit : Komentar di bawah item sebelumnya berlaku.

Nama-nama tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi disepanjang sistem operasi. Keadaan yang mereka gambarkan ditemukan pada seluruh sistem. Namun, sistem operasi tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana pun pada waktu kapan pun. Namun, banyak proses yang dapat ready atau waiting.

  1. Mengikuti soal sebelumnya, tetapi pada kehadiran 2 status suspended!








Model proses pada status dua suspended merupakan model proses yang mengakibatkan processor lebih cepat daripada I/O sehingga semua proses dapat menunggu I/O.Swap proses sedemikian ke disk untuk membebaskan lebih banyak memory & menugaskan processor pada lebih banyak proses.Dimana Status Blocked berubah menjadi Suspend ketika proses dialihkan ke disk. Kemungkinan transisinya:

a) Swapping : SO harus membebaskan cukup main memory agar suatu proses siap eksekusi.

b) Request User Interaktif: Misalnya, debugging atau berhubungan dengan pemanfaatan sumber daya.

c) Timing :Proses dapat dieksekusi secara periodik (misal, sistem monitoring sistem atau accounting) & boleh di-suspend selama menunggu waktu berikutnya.

d) Request Proses Induk Proses induk berkeinginan men-suspend eksekusi dari suatu turunan untuk menguji atau mengubah proses turunan tersebut atau mengkoordinasikan aktifitas dari berbagai keturunannya.

e) Blocked -Blocked/Suspend : Jika tidak ada proses siap maka setidaknya satu diblokir proses swapped keluar untuk memberikan ruang bagi proses lain yang tidak diblokir. Transisi ini dapat dilakukan meskipun ada proses siap tersedia jika OS menentukan bahwa proses yang sedang berjalan atau siap proses yang ingin dispatch memerlukan memori lebih utama untuk mempertahankan performa yang memadai.

f) Blocked/Suspend -Ready/Suspend : Sebuah proses dalam Diblokir / Suspend negara tersebut akan dipindahkan ke Siap / Suspend saat acara yang telah menunggu terjadi. Perlu diketahui bahwa yang memerlukan informasi mengenai proses harus ditangguhkan diakses OS.

g) Ready/Suspend – Ready : Bila tidak ada siap proses di memori utama OS perlu membawa satu untuk melanjutkan eksekusi. Selain itu mungkin dengan kasus yang di proses Siap / Suspend negara memiliki prioritas lebih besar dari salah satu proses di Siap negara.

h) Ready -Ready/Suspend: Biasanya OS memilih untuk menunda proses yang diblokir daripada satu siap karena proses siap sekarang dapat dijalankan sedangkan yang diblokir adalah proses mengambil atas ruang memori utama dan tidak dapat dijalankan. Namun mungkin perlu menangguhkan yang siap jika proses yang satu-satunya cara untuk membebaskan yang cukup besar blok utama memory.

i) New – Ready/Suspend and New – Ready : Ketika sebuah proses baru dibuat maka dapat ditambahkan ke antrian Siap atau Siap / Suspend antrian. Dalam kedua kasus sistem operasi harus membuat proses kontrol blok dan mengalokasikan ruang alamat untuk proses.

j) Blocked/Suspend -Blocked : Pencantuman ini tampaknya transisi jika proses belum siap untuk dijalankan dan belum di utama memori tetapi mempertimbangkan skenario berikut Sebuah proses terminates freeing beberapa memory.memory utama akan memproses dalam (Diblokir / Suspend) antrian dengan prioritas yang lebih tinggi daripada salah satu dalam proses (Ready / Suspend) antrian dan OS memiliki alasan percaya bahwa memblokir kegiatan untuk proses yang akan terjadi segera. Berdasarkan kondisi ini akan tampak masuk akal untuk membawa ke dalam proses yang diblokir memori utama dalam preferensi yang siap untuk proses.

k) Running – Ready/Suspend:Biasanya yang menjalankan proses tersebut akan dipindahkan ke negara Siap jika alokasi waktu berakhir. Namun jika OS memproses yang lebih tinggi karena prioritas pada proses Diblokir / Suspend antrian menjadi baru saja dibuka, OS dapat memindahkan menjalankan proses langsung ke (Siap / Suspend) dan bebas antrian beberapa memori utama.

l) Any State – Exit: Biasanya, proses terminates ketika sedang berjalan baik karena telah selesai atau karena kondisi beberapa kesalahan fatal. Namun, dalam beberapa sistem operasi suatu proses dapat dihentikan oleh proses yang menciptakan.

  1. Jelaskan elemen-elemen dari Process Control Block (PCB)!










Element-elemen PCB antara lain:

a) Identifikasi Proses yaitu Identifier numerik yang meliputi

b) Informasi Status Pemroses yang meliputi

c) Informasi Kendali Pemroses meliputi

1)Identifier proses

2) Identifier proses yang menciptakan

3) Identifier pemakai

d) Register-register yang terlihat pemakai yaitu Register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses

e) Register-register kendali dan status yaitu Register-register yang digunakan untuk mengendalikan operasi pemroses, a.l.:

1) Program counter

2) PSW, dsb.

f) Pointer stack yaitu Tiap proses mempunyai satu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjuk posisi paling atas dari stack

g) Informasi penjadwalan dan status yaitu Informasi-informasi yang dipakai untuk menjalankan fungsi penjadwalan a.l :

1) Status proses. Mendefinisikan status proses (running,ready,block, dsb)

2) Prioritas. Menjelaskan prioritas proses

3) Informasi berkaitan penjadwalan. Informasi ini seperti lama menunggu, lama proses terakhir dieksekusi dsb.

4) Kejadian (Event). Identitas kejadian yang ditunggu proses

h) Penstrukturan data yaitu Suatu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.

i) Komunikasi antar proses yaitu Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah. Informasi ini disimpan dalam PCB

j) Kewenangan proses yaitu Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan

k) Manajemen memori Bagian ini berisi pointer ke tabel segmen atau page yang menyatakan memori virtual proses

l) Kepemilikan dan utilisasi sumber daya yaitu Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :

1) Berkas yang dibuka

2) Pemakaian pemroses

3) Pemakaian sumberdaya lainnya