Sistem operasi adalah seperangkat program yang mengelola sumber daya perangkat keras komputer atau hardware, dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi booting.Sistem operasi memiliki proses dalam mengelola peangkat keras pada komputer. Proses adalah keadaan ketika sebuah program sedang di eksekusi. Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses dibuat melalui system call create-process yang membentuk proses turunan ( child process) yang dilakukan oleh proses induk ( parent process). Proses turunan tersebut juga mampu membuat proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses.
Sistem operasi menjalankan banyak dan beragam program :
1. Batch system – jobs
2. Time-shared systems – user programs atau tasks
3. Istilah pada buku teks: job, task dan process (dapat diartikan sama)
Proses lebih dari “program code yang aktif”:
1. Melacak posisi instruksi (sequential execution): program counter
2. Menyimpan data sementara var., parameter, return value: stack
3. Menyimpan data (initial, global variable dll): data section
4. Menyimpan status proses (contoh, aktif, wait I/O request dll.)
Status Proses:
Saat-saat proses dijalankan (executed) maka status dari proses akan berubah
Status proses tidak selamanya aktif menggunakan CPU).Sering proses menunggu I/O complete => status wait, sebaiknya CPU diberikan kepada proses yang lain. Mendukung multi-tasking – utilisasi CPU dan I/O Status proses (antara lain):
- new: proses dibuat.
- running: instruksi dieksekusi.
- waiting: proses menunggu beberapa event yang akan terjadi
- ready: proses menunggu jatah waktu dari prosessor
- terminated: proses selesai dieksekusi.
Informasi Proses
Data struktur dari OS dalam bentuk table :
Satu entry table/linked list => struktur data untuk menampung informasi satu proses (array of structure).
Setiap entry pada tabel proses menyimpan satu proses. Contoh: MINIX (src/kernel/proc.h) => struct proc { … };
Informasi yang disimpan:
- Informasi internal CPU: isi register-register, program counter, status CPU dll (umumnya dalam bentuk stack frame).
- Identifikasi proses: nama proses, proses number/index, proses id.
- Identifikasi proses: nama proses, proses number/index, proses id.
- Accounting dan timer: user time, system time, alarm etc.
- Resources: memory & file management.
Terdapat 3 tipe penjadwal berada secara bersama-sama pada sistem operasi yang kompleks, yaitu
1. Penjadwal jangka pendek (short term scheduller)
Proses Control Block
CPU Switch Dari Satu Proses ke Proses Lainnya
Penjadwalan Proses:
Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Proses penjadwalan yang akan dibahas disini adalah proses penjadwalan sistem operasi SOLARIS, LINUX, dan WINDOWS XP.
Sasaran atau tujuan utama penjadwalan proses optimasi kinerja menurut kriteria tertentu. dimana kriteria untuk mengukur dan optimasi kerja penjadwalan antara lain :
Sasaran atau tujuan utama penjadwalan proses optimasi kinerja menurut kriteria tertentu. dimana kriteria untuk mengukur dan optimasi kerja penjadwalan antara lain :
· Agar semua pekerjaan memperoleh pelayanan yang adil (firness).
· Agar pemakaian prosesor dapat dimaksimumkan.
· Agar waktu tanggap dapat diminimumkan.
· Agar pemakaian sumber daya seimbang.
· Turn arround time, waktu sejak program masuk ke system sampai proses selesai.
· Efesien, proses tetap dalam keadaan sibuk tidak menganggur.
· Agar terobosan (thoughput) dapat dimaksimumkan.
Terdapat 3 tipe penjadwal berada secara bersama-sama pada sistem operasi yang kompleks, yaitu
1. Penjadwal jangka pendek (short term scheduller)
Bertugas menjadwalkan alokasi pemroses di antara proses-proses ready
di memori utama Penjadwalan dijalankan setiap terjadi pengalihan proses
untuk memilih proses berikutnya yang harus dijalankan.
2. Penjadwal jangka menengah (medium term scheduller)
Setelah eksekusi selama suatu waktu, proses mungkin menunda sebuah
eksekusi karena membuat permintaan layanan masukan/keluaran atau
memanggil suatu system call. Proses-proses tertunda tidak dapat membuat
suatu kemajuan menuju selesai sampai kondisi-kondisi yang menyebabkan
tertunda dihilangkan. Agar ruang memori dapat bermanfaat, maka proses
dipindah dari memori utama ke memori sekunder agar tersedia ruang untuk
proses-proses lain. Kapasitas memori utama terbatas untuk sejumlah
proses aktif. Aktivitas pemindahan proses yang tertunda dari memori
utama ke memori sekunder disebut swapping. Proses-proses mempunyai
kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi, begitu
kondisi yang membuatnya tertunda hilang dan dimasukkan kembali ke memori
utama dan ready.
3. Penjadwal jangka panjang (long term scheduller)
Penjadwal ini bekerja terhadap antrian batch dan memilih batch
berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses
dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses,
memori, masukan/keluaran), program-program ini berprioritas rendah,
digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas
job-job interaktif rendah.
Alih Konteks / Context Switch
Mengganti CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of old process) dan kemudian beralih ke proses yang baru. tugas tersebut diketahui sebagai alih konteks (context switch).Ketika alih konteks terjadi, kernel akan menyimpan konteks dari proses yang lama ke dalam PCB-nya dan mengisi konteks yang telah disimpan dari proses baru yang telah terjadwal untuk berjalan.
Pembuatan Proses
Terminasi Proses
Kerja sama Proses
Mengganti CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of old process) dan kemudian beralih ke proses yang baru. tugas tersebut diketahui sebagai alih konteks (context switch).Ketika alih konteks terjadi, kernel akan menyimpan konteks dari proses yang lama ke dalam PCB-nya dan mengisi konteks yang telah disimpan dari proses baru yang telah terjadwal untuk berjalan.
Pembuatan Proses
Create Process yaitu tindakan yang dilakukan sistem operasi pada saat sebuah proses akan ditambahkan ke proses yang sedang dikelola, sistem operasi membuat struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat ke proses itu.
Alur Pembuatan Proses adalah sebagai berikut:
Alur Pembuatan Proses adalah sebagai berikut:
· Memberi identitas (nama) pada proses yang dibuat
· Menyisipkan proses pada list proses atau tabel proses
· Menentukan prioritas awal proses
· Membuat PCB
· Mengalokasikan resource awal bagi proses tersebut.
Create process atau pembuatan proses dilakukan karena alasan-alasan sebagai berikut :
· Batch Job Baru. Sistem Operasi diberikan dengan suatu aliran batch job control, biasanya pada pita atau disk. Pada saat disiapkan untuk mengambil job yang baru, sisitem operasi akan membaca rangkain job control command berikutnya.
· Logon interaktif. Seorang pengguna di sebuah terminal masuk kesistem
· Dibuat oleh OS untuk menyediakan layanan. Sistem operasi dapat membuat suatu proses untuk melakukan fungsi atas naa program pengguna, tanpa mengharuskan pengguna menunggu (misalnya, pencetakan)
· Dibiakan (spawned) oleh proses yang telah ada.Untuk memenuhi tujuan modularitas atau untuk memanfaatkan paralelisme, sebuah program pengguna dapat mengatur pembiakan sejumlah proses
Terminasi Proses
Yaitu tindakan yang dilakukan sistem operasi pada saat sebuah proses telah selesai dilakukan atau dihentikan, sistem operasi menghapus struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat ke proses itu.
Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir atau diterminasi dengan sengaja oleh proses lain, biasanya proses induk yang melakukan hal ini. Pada saat terminasi. Semua sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh sistem operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses yang diterminasi karena selesai melakukan tugasnya, sistem operasi akan memanggil system call exit() sedangkan proses yang diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya proses induk melakukan terminasi sengaja pada turunannya. Alasan terminasi yang dilakukan proses induk tersebut seperti:
Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir atau diterminasi dengan sengaja oleh proses lain, biasanya proses induk yang melakukan hal ini. Pada saat terminasi. Semua sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh sistem operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses yang diterminasi karena selesai melakukan tugasnya, sistem operasi akan memanggil system call exit() sedangkan proses yang diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya proses induk melakukan terminasi sengaja pada turunannya. Alasan terminasi yang dilakukan proses induk tersebut seperti:
· Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.
· Task yang ditugaskan kepada turunan tidak lagi diperlukan.
· · Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap berjalan. Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination.
Alur Penghentian Proses adalah sebagai berikut:
· 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.
Secara umum, Destroyed Process dilakukan karena alasan-alasan sebagai berikut.
· Selesai secara normal. Proses mengeksekusi suatu panggilan layanan OS untuk mengindikasikan bahwa proses tersebut telah selesai beroperasi
· Batas waktu telah dilampaui. Proses telah berjalan lebih lama dari jumlah batas waktu yang telah ditentukan. Terdapat beberapa kemungkinan jenis waktu yang diukur. Jenis-jenis tersebut meliputi jumlah waktu yang berjalan (waktu jam dinding), jumlah waktu yang dibutuhkan untuk melakukan eksekusi, dan pada proses yang interaktif, jumlah waktu sejak pengguna terakhir diberi input
· Memori tidak tersedia. Proses memerlukan memori lebih banyak dari yang dapat disediakan oleh sistem
· Pelanggaran batas. Proses mencoba menakses lokasi memori yang tidak diijinkan untuk diases
· Error proteksi. Proses mencoba menggunakan sumber daya atau file yang tidak diizinkan untuk digunakan, atau mencoba menggunakannya dengan cara yang salah, seperti melakukan penulisan ke file yang hanya dapat dibaca (read-only file)
· Error aritmetik. Proses mencoba untuk melakukan komputasi yang tidak diizinkan, seperti pembagian dengan nol, atau mencoba menyimpan bilangan yang besarnya diluar kemampuan perangkat keras. Kelebihan waktu proses telah menunggu event tertentu lebih lama dari waktu maksimum
· Kegagalan I/O. Error yang terjadi pada saat input atau output, seperti ketidakmampuan untuk menemukan file, kegagalan membaca atau menulis setelah beberapa kali mencoba (pada saat misalnya menemukan daerah yang telah rusak pada pita magnetik) atau operasi yang invalid (misalnya melakukan pembacaan dari printer)
· Intruksi yang invalid. Proses mencoba mengeksekusi intruksi yang tidak ada (seringkali akan mengakibatkan pencabangan ke suatu daerah data dan berusaha mengeksekusi data)
· Intruksi ber-privilage. Proses berusaha untuk menggunakan suatu intruksi yang dicadangkan bagi sistem operasi
· Pemakaian data yang salah. Potongan datanya memiliki jenis yang salah, atau tidak diinisilaisasi terlebih dahulu
· Intervensi Operator atau OS. Dengan sesuatu alasan, operator atau sistem operasi telah menghentikan proses (misalnya, telah terjadi deadlock)
· Penghentian Induk. Apabila induk berhenti, sistem operasi secara otomatis dapat menghentikan seluruh turunan proses induk itu
· Permintaan induk. Proses induk umumnya memiliki otoritas untuk menghentikan semua turunannya
Kerja sama Proses
Akses bebarengan untuk berbagi dua bersama dapat mengakibatkan inkosistensi data. Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama.
Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan.
Masalah pada Sistem Operasi Sinkronisasi bisa terdapat dari masalah lainnya, seperti Masalah Race Condition & Critical Section.
· Arti dari Race Conditon adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan.
· Arti dari masalah Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses
Critical Section mempunyai beberapa kode :
· Entry Section : kode yang digunakan untuk masuk ke dalam critical section
· Critical Section : Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu.
· Exit Section: akhir dari critical section, mengizinkan proses lain.
· Remainder Section : kode istirahat setelah masuk ke critical section.
Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama.
Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared berkas atau melakukan sesuatu yang kitis akan menggiring kepada race conditions. Bagian dari program dimana shaed memory diakses disebut Critical Section atau Critical Region. Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data, kita butuh 4 kondisi agar menghasilkan solusi yang baik yakni :
· Tidak ada dua proses secara bersamaan masuk ke dalam citical section.
· Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
· Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
· Tidak ada proses yang menunggu selamamya untuk masuk critical section.
Solusi untuk mengatasi masalah Critical Section, yaitu:
· Mutual exclution : Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.
· Progress : Jika tidak ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bias ditunda.
· Bounded Waiting :Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum permintaan itu diterima.
Mungkin itu saja yang dapat saya berikan, info ini saya dapat dari berbagai sumber, jika masih ada kekurangan silahkan anda searching kembali tentang Sinkronisasi Pada Sistem Operasi. Semoga bisa memberi bermanfaat untuk anda, terimakasih.
<div style="position: fixed; bottom: 0px; left: 10px;width:125px;height:160px;"><a href="http://www.sweetim.com/s.asp?im=gen&lpver=3&ref=10" target="_blank"><img alt="animasi blog" src="http://content.sweetim.com/sim/cpie/emoticons/00020309.gif" title="Click to get more." /></a><small><center><a href="http://christiantatelu.blogspot.com" target="_blank">Animasi Blog</a></center></small></div>