Mas Danang – Multiprogramming memiliki tujuan untuk memiliki sejumlah proses yang berjalan setiap saat, untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian ini adalah untuk menggantikan waktu CPU di antara proses begitu sering bahwa pengguna dapat berinteraksi dengan setiap program sambil CPU bekerja. Untuk sistem Uniprocessor, tidak akan ada lebih dari satu proses sedang berjalan. Jika ada proses yang lebih dari itu, sisanya akan harus menunggu sampai CPU bebas dan dapat dijadwalkan kembali.
A. Penjadwalan Antrian
Ketika proses memasuki sistem, mereka ditempatkan dalam antrian pekerjaan. antrian ini terdiri dari semua proses dalam sistem. Proses yang hidup di memori utama dan siap dan menunggu untuk mengeksekusi disimpan pada daftar yang disebut antrian siap. antrian ini biasanya disimpan sebagai daftar link. Sebuah header antrian siap mengandung pointer ke awal PCB-PCB dan akhir. Setiap PCB memiliki medan pointer yang menunjukkan proses selanjutnya dalam ready queue.
Juga ada antrian lain dalam sistem. Ketika proses mengalokasikan CPU, proses berjalan / bekerja untuk sementara dan kemudian berhenti, terganggu, atau menunggu situasi tertentu, seperti selesainya suatu permintaan I / O. Dalam hal ini permintaan I / O, permintaan seperti yang mungkin untuk sebuah tape drive yang telah ditunjuk, atau perangkat, seperti pada floppy disk. Karena ada banyak proses dalam sistem, disket mungkin sibuk dengan permintaan I / O untuk proses lainnya. Maka proses mungkin harus menunggu untuk disket tersebut. Daftar proses menunggu perangkat tertentu I / O disebut antrian. Setiap perangkat memiliki queuenya perangkat sendiri (Lihat Gambar 4).
Reprensentasi untuk diskusi pada proses penjadwalan adalah diagram antrian, seperti yang ditunjukkan pada Gambar 5. Setiap kotak menunjukkan persegi panjang antrian. Dua jenis antrian menunjukkan bahwa antrian siap dan antrian perangkat periferal. Lingkaran menunjukkan sumber yang melayani sistem. Sebuah proses baru pertama kali ditempatkan dalam antrian siap. Kemudian menunggu dalam antrian siap sampai proses dipilih untuk melakukan atau dikirim. Setelah proses ini mengalokasikan CPU dan menjalankan / mengeksekusi, satu dari beberapa peristiwa dapat terjadi.
- Proses ini dapat mengeluarkan permintaan I / O, kemudian ditempatkan dalam antrian I / O.
- Proses ini dapat membuat subproses yang baru dan menunggu penghentian itu sendiri.
- Proses ini dapat diganti dengan kekuatan dari CPU, sebagai akibat dari gangguan, dan dimasukkan kembali dalam antrian siap.
Dalam dua kasus pertama, proses waiting state akhirnya berubah menjadi ready state, kemudian dimasukkan kembali dalam antrian siap. Sebuah proses melanjutkan siklus ini sampai akhir, ketika di mana proses ini berubah dari seluruh antrian dan PCB sendiri dan sumber daya dialokasikan kembali.
B. Penjadwalan
Sebuah proses beralih antara berbagai antrian penjadwalan selama masa pakai baterai. Sistem operasi harus memilih, untuk tujuan penjadwalan, pengolahan antrian disebutkan ini dengan cara tertentu. Proses seleksi dilakukan oleh sesuai penjadual / sesuai. Dalam sistem batch, sering ada lebih proses yang disampaikan daripada yang dapat dilaksanakan segera. Proses ini dipitakan / disimpan pada perangkat penyimpanan massal (biasanya disket), dimana proses tersebut disimpan untuk eksekusi kali. Penjadwalan jangka panjang, atau pekerjaan penjadual, proses kolam renang dan mengisinya ke dalam memori executable.
Penjadwalan jangka panjang di sisi lain, apalagi mengeksekusi. Mungkin ada senggang waktu beberapa menit antara pembuatan proses baru dalam sistem. Penjadwalan jangka panjang mengontrol tingkat multiprogramming (jumlah proses dalam memori). Jika derajat multiprogramming stabil, dan tingkat rata-rata proses pembuatan harus sama dengan tingkat rata-rata keberangkatan dari proses yang meninggalkan sistem. Maka penjadwalan jangka panjang mungkin diperlukan untuk dipanggil hanya ketika suatu proses meninggalkan sistem. Karena interval yang lebih panjang antara eksekusi, penjadwalan jangka panjang bisa memakai waktu yang lebih lama untuk menentukan proses harus dipilih untuk eksekusi.
Hal ini penting untuk penjadwalan jangka panjang membuat pilihan hati-hati. Secara umum, sebagian besar proses dapat digambarkan sebagai I / O terikat atau CPU terikat. Sebuah proses I / O terikat adalah salah satu yang limbah waktu untuk bekerja pada I / O dari perhitungan tersebut.
Jika seluruh proses adalah I / O terikat, antrian siap akan hampir selalu kosong, dan penjadwalan jangka pendek akan memiliki sedikit tugas. Jika seluruh proses adalah CPU terikat, I / O menunggu antrian akan hampir selalu kosong, peralatan akan tidak dapat digunakan, dan sistem akan imbang. Sistem dengan kinerja terbaik akan memiliki kombinasi proses CPU bound dan I / O terikat.
Dalam kebanyakan sistem, jangka panjang penjadual tidak boleh mengambil bahagian atau minimum. Sebagai contoh, sistem perkongsian masa seperti UNIX sering tidak mempunyai penjadual jangka panjang. Kestabilan sistem ini bergantung kepada batasan fizikal (seperti bilangan terminal yang ada) atau dalam pelarasan anda sendiri secara semula jadi oleh pengguna manusia. Jika prestasi dikurangkan ke tahap yang tidak boleh diterima, sesetengah pengguna akan berhenti.
Kebanyakan sistem operasi, seperti sistem perkongsian masa, boleh memperkenalkan tambahan, penjadualan peringkat menengah. penjadual jangka sederhana digambarkan dalam Gambar ke 5. utama idea / utama di sebalik penjadual jangka sederhana kadang-kadang bermanfaat untuk menggerakkan proses memori (dan pengecasan aktif CPU), dan kemudian untuk mengurangkan tahap multiprogramming.
Masa depan, proses ini boleh diperkenalkan ke dalam proses ingatan dan pelaksanaan boleh disambung semula di mana ia berhenti / meningkat. skim ini dipanggil bertukar-tukar. Proses ini bertukar keluar, dan kemudian ditukar di penjadual jangka sederhana. Bertukar-tukar mungkin perlu meningkatkan proses pencampuran, atau kerana perubahan dari segi memori untuk dibebaskan.
C. Alih Konteks
Ganti CPU untuk proses lainnya memerlukan penyimpanan keadaan proses yang panjang (keadaan proses yang lama) dan kemudian beralih ke proses baru. Tugas ini dikenal sebagai transfer konteks (context switch). Sebaliknya konteks proses yang dijelaskan dalam PCB proses; termasuk nilai register CPU, status proses (lihat Gambar 7). dan informasi manajemen memori. Ketika konteks lebih terjadi, kernel menyimpan konteks dari proses yang panjang ke dalam PCB dan mengisi konteks yang yang telah diselamatkan dari proses baru yang telah dijadwalkan untuk berjalan.
Waktu konteks substitusi murni overhead, karena sistem melakukan pekerjaan yang tidak perlu. Kecepatannya bervariasi dari mesin ke mesin, tergantung pada kecepatan memori, jumlah register yang akan disalin, dan keberadaan instruksi khusus (seperti instruksi tunggal untuk biaya atau menyimpan semua register). tingkat kecepatan pada umumnya berkisar antara 1 sampai 1000 mikro detik.
waktu selama akan tergantung pada konteks dukungan hardware yang sangat. Misalnya, seperti prosesor UltraSPARC menyediakan dua salinan register. Sebuah konteks dari sekedar memasukkan perubahan pointer ke perangkat register yang ada. Tentu saja, jika ada proses yang aktif yang ada dari satu di register perangkat, sistem ini menggunakan bantuan untuk menyalin data mendaftar masuk dan keluar dari memori, seperti sebelumnya. Sistem operasi yang lebih kompleks, semakin banyak pekerjaan yang harus dilakukan selama transfer konteks.
Seperti yang terlihat dalam Bab 4, teknik manajemen memori modern mungkin memerlukan data tambahan untuk diganti dengan setiap konteks. Sebagai contoh, ruang alamat dari proses harus dipertahankan sebagai ruang pada pekerjaan berikutnya untuk digunakan. Cara mengatasi di ruang jaga, berapa banyak pekerjaan yang dibutuhkan untuk tetap, tergantung pada metode manajemen memori dari sistem operasi.
Leave a Reply