MANAGEMENT PENJADWALAN PROCESSOR DAN MEMORY
Assalamu’alaikum warrahmatullahi wabarakatuh
Proses penjadwalan yang akan dibahas disini adalah proses penjadwalan sistem operasi Solaris dan Linux. Tujuan utama penjadwalan proses optimasi kinerja menurut kriteria tertentu, dimana kriteria untuk mengukur dan optimasi kerja penjadwalan.
Penjadwalan CPU adalah basis dari multi programming sistem operasi. Dengan cara men-switch CPU diantara proses, maka akan berakibat sistem operasi bisa membuat komputer produktif. Dalam bab ini kami akan mengenalkan tentang dasar dari konsep penjadwalan dan beberapa algoritma penjadwalan.
Penjadwalan CPU
Bertugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama. Penjadwalan ini dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus dijalankan. Setelah eksekusi selama suatu waktu, proses mungkin menunda sebuah eksekusi karena membuat permintaan layanan masukan/keluaran atau memanggil suatu system call. 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 lain. Kapasitas memori utama terbatas untuk sejumlah proses aktif. Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder disebut swapping. Bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya berupa proses dengan penggunaan sumber daya yang intensif (yaitu waktu Output/Input) digunakan sebagai pengisi agar pemroses sibuk selama periode aktivitas job-job interaktif rendah. Meskipun tiap-tiap proses terdiri dari suatu kesatuan yang terpisah namun adakalanya proses tersebut butuh untuk saling berinteraksi. Satu proses bisa dibangkitkan dari output proses lainnya sebagai input. Pada saat proses dieksekusi, akan terjadi perubahan status yang didefiniskan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu.
Status proses terdiri dari :
- New, proses sedang dibuat.
- Running, proses sedang dieksekusi.
- Waiting, proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
- Ready, proses menunggu jatah waktu dari CPU untuk diproses.
- Terminated, proses telah selesai dieksekusi.
PENJADWALAN MEMORY
Memori adalah pusat dari operasi pada sistem komputer modern, sebuah array besar dari word atau byte, yang disebut alamat. CPU mengambil instruksi dari memory berdasarkan nilai dari program counter. Instruksi ini menyebabkan penambahan muatan dari dan ke alamat memori tertentu. Instruksi eksekusi yang umum, contohnya, pertama mengambil instruksi dari memori. Instruksi dikodekan dan mungkin mengambil operand dari memory. Setelah instruksi dieksekusi pada operand, hasilnya ada yang dikirim kembali ke memory. Unit memory hanya merupakan deretan alamat memory; tanpa tahu bagaimana membangkitkan (instruction counter, indexing, indirection, literal address dan lainnya) atau untuk apa (instruksi atau data).
Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada saat :
- Compile time : Jika lokasi memori diketahui sejak awal, kode absolut dapat dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan kompilasi ulang.
- Load time : Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui pada saat waktu kompilasi.
- Execution time : Pengikatan ditunda sampai waktu eksekusi jika proses dapat dipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain. Memerlukan dukungan perangkat keras untuk memetakan alamat (misalnya register basis dan limit).
Alamat Logika dan Alamat Fisik
Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat terlihat sebagai uni memory yang disebut alamat fisik (physical address). Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke ruang alamat fisik.
Hasil skema waktu kompilasi dan waktu pengikatan alamat pada alamat logika dan alamat memori adalah sama. Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi tambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.Register basis disebut register relokasi. Nilai dari register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori. sebagai contoh, apabila basis 14000, maka user mencoba menempatkan ke alamat lokasi 0 dan secara dinamis direlokasi ke lokasi 14000.
Swapping
Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi. Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semua memory image untuk semua user, sistem juga harus menyediakan akses langsung ke memory image tersebut. Contohnya, sebuah lingkungan multiprogramming dengan penjadwalan CPU menggunakan algoritma round-robin. Pada saat waktu kuantum berakhir, manajer memori akan memulai untuk menukar proses yang baru selesai keluar dan menukar proses lain ke dalam memori yang dibebaskan.
Proses Swapping
Pada waktu berjalan, penjadwal CPU (CPU scheduler) akan mengalokasikan sejumlah waktu untuk proses yang lain di memori. Ketika masing-masing proses menyelesaikan waktu kuantum-nya, akan ditukar dengan proses yang lain. Kebijakan penukaran juga dapat digunakan pada algoritma penjadwalan berbasis prioritas. Jika proses mempunyai prioritas lebih tinggi datang dan meminta layanan, memori akan swap out proses dengan prioritas lebih rendah sehingga proses dengan prioritas lebih tinggi dapat di-load dan dieksekusi. Umumnya sebuah proses yang di-swap out akan menukar kembali ke ruang memori yang sama dengan sebelumnya. Jika proses pengikatan dilakukan pada saat load-time, maka proses tidak dapat dipindah ke lokasi yang berbeda.
Apabila CPU scheduler memutuskan untuk mengeksekusi proses, maka sistem operasi akan memanggil dispatcher. Dispatcher memeriksa untuk melihat apakah proses selanjutnya pada ready queue ada di memori. Jika tidak dan tidak terdapat cukup memori bebas, maka dispatcher swap out sebuah proses yang ada di memori dan swap in proses tersebut. Kemudian reload register ke keadaan normal. Teknik swapping yang sudah dimodifikasi ditemui pada beberapa sistem misalnya Linux, UNIX dan Windows. Pada sistem operasi linux Untuk melakukan pengecekan sisa dan kapasitas RAM kita baik phisycall maupun swap nya gunakan perintah Untuk mengecek sisa kapasitas hardisk dan penggunaan hardisk kita pada terminal, maka digunakan perintah : df. Sedangkan untuk melihat besarnya memory virtual, dilakukan dengan cara mengetikkan perintah: fdisk -l
Bila ada request atau yang kurang dimengerti untuk ditanyakan kalian bisa mencorat-coret dikomentar.
Semoga bermanfaat.
Wassalamu’alaikum warrahmatullahi wabarakatuh