Sistem operasi Linux terdiri atas kernel(inti), program sistem, dan beberapa program aplikasi. Kernel merupakan inti dari sistem operasi. Program sistem dan semua program-program lainnya yang berjalan di atas kernel disebut user mode. Perbedaan antara program sistem dan program aplikasi adalah program sistem butuhkan agar suatu sistem operasi dapat berjalan sedangkan program aplikasi adaah program yang dibutuhkan untuk menjalankan suatu aplikasi tertentu.Sistem Linux terdiri atas tiga badan kode utama, dengan isi pada barisnya merupakan implementasi UNIX paling tradisional :
1. Kernel
Kernel Linux adalah potongan orisinil dari perangkat lunak yang dibuat dari serpihan oleh komunitas Linux. Sedangkan sistem Linux merupakan gabungan dari komponen-komponen. Sistem Linux basic adalah lingkungan standar untuk aplikasi dan program user. Kernel Linux terdiri atas kode tertulis dari nol yang dibuat spesifik untuk proyek Linux, sedangkan perangkat lunak yang mendukung sistem Linux tidak terikat secara ekslusif pada Linux, tapi umumnya dapat bekerja pada sistem operasi seperti UNIX . Kernel bertanggung jawab untuk mengatur dan menjaga seluruh abstraksi penting dari sistem operasi, termasuk hal-hal seperti virtual memori dan proses. Kernel Linux membentuk inti dari keseluruhan sistem operasi Linux. Kernel menyediakan semua fungsionalitas yang diperlukan untuk menjalankan proses, dan menyediakan servis sistem untuk melindungi akses terhadap sumber daya perangkat keras. Kernel mengimplementasikan seluruh fitur yang dibutuhkan untuk terkualifikasi sebagai sistem operasi.
2. System libraries
System libraries mendefinisikan set standar dari fungsi untuk melewatkan aplikasi agar dapat berinteraksi dengan kernel. Implementasi dari fungsi-fungsi ini sedikit banyak ada pada fungsionalitas sistem operasi yang tidak membutuhkan hak keseluruhan atas kode kernel.
System libraries menyediakan banyak tipe dari fungsionalitas. Pada level paling sederhana, system libraries mengijinkan aplikasi untuk membuat permintaan kernel-system-service. System libraries juga menjaga dan mengoleksi argumen system call dan jika diperlukan mengatur argumen-argumen tersebut ke dalam suatu bentuk khusus untuk melakukan system call.
3. System utilities
System utilities adalah program yang menunjukkan tugas manajemen yang individual dan terspesialisasi. Beberapa system utilities dapat dilibatkan hanya sekali saja untuk menginisialisasi dan mengatur beberapa aspek dari sistem; dan yang lainnya – biasa disebut daemon pada terminologi UNIX- berlangsung secara permanen, memegang tugas seperti merespon pada koneksi jaringan yang masuk, menerima permintaan logon dari terminal, dan memperbaharui file log.Sistem Linux termasuk di dalamnya bermacam-macam user-mode program, baik system utilities maupun user utilities. Pada system utilities terdapat seluruh program yang dibutuhkan untuk menginisialisasi sistem.
Perbedaan paling penting disini ada pada kernel dengan seluruh hal lainnya. Semua kode kernel dieksekusi pada processor privileged mode dengan akses penuh ke seluruh sumber fisik dari komputer. Linux menyebut mode ini sebagai kernel mode. Di bawah Linux, tidak ada kode user mode yang dibangun ke dalam kernel. Kode apapun yang berupa dukungan terhadap sistem operasi yang tidak perlu dijalankan pada kernel mode disimpan ke dalam
system librarieKernel Linux merupakan monolithic kernel, dimana driver dan tambahan kernel berjalan di kernel space, sehingga kernel dapat mengakses hardware secara penuh meskipun ada beberapa bagian yang berjalan di user space. Ini bertujuan untuk meningkatkan performansi karena seluruh kode kernel dan struktur data disimpan pada single address spac. Tidak ada context switch yang diperlukan ketika sebuah proses memanggil fungsi sistem operasi atau saat perangkat lunak melakukan interrupt
ALGORITMA PENJADWALAN PADA LINUX
Penjadwalan merupakan pekerjaan untuk mengalokasi waktu CPU ke proses yang berbeda-beda dalam sebuah sistem operasi. Selain aspek menjalankan dan interrupt proses, ada aspek lain yang penting pada Linux, yaitu running dari beberapa tugas kernel. Tugas kernel meliputi tugas yang diminta oleh running proses dan tugas yang dieksekusi secara internal karena kepentingan device driver.Linux memiliki dua algoritma penjadwalan proses yang terpisah. Yang pertama adalah time-sharing algoritma untuk penjadwalan yang adil dan preemptive diantara beberapa proses, sedangkan yang lain di desain untuk tugas-tugas real-time, dimana absolut prioritas adalah hal yang paling penting.Algortima penjadwalan Linux adalah preemptive, priority based dengan dua range prioritas yang terpisah; range real-time dari 0-99 dan yang lainnya dengan range dari 100-140. Dua range ini memetakan skema prioritas global dimana semakin kecil angka prioritasnya memiliki arti prioritas lebih tinggi.Linux memberikan quantum waktu yang lebih panjang pada proses dengan prioritas tinggi dan sebaliknya. Sebuah proses dapat running pada CPU jika proses tersebut memiliki waktu sisa pada slot waktunya. Saat slot waktunya habis, proses tersebut dianggap kadaluarsa dan tidak akan dieksekusi sampai seluruh proses slot waktunya habis juga. Saat ini terjadi, list proses aktif akan menjadi kosong, maka list proses kadaluarsa akan menjadi aktif dan eksekusi akan dimulai kembali.Penjadwalan real-time Linux mengimplementasikan dua penjadwalan real-time, yaitu first-come, first-served(FCFS) dan round-robin. Pada kedua kasus, setiap proses memiliki prioritas. Penjadwal akan memilih proses dengan prioritas paling. besar pada penjadwalan real-time. Di antara dua proses dengan prioritas yang sama, penjadwal akan menjalankan proses yang telah menunggu paling lama.Penjadwalan real-time Linux adalah soft real-time. Pada algoritma soft real-time fitur yang paling penting dari adalah merespon dengan segera sebuah proses waktu nyata secepat proses yang membutuhkan CPU. Algoritma penjadwalan berdasarkan prioritas memberikan prioritas kepada masing-masing proses berdasarkan tingkat kepentingannya; proses yang lebih penting di berikan prioritas lebih tinggi daripada proses lain yang dianggap kurang penting. Apabila penjadwalan yang digunakan juga mendukung preemption dan tersedia sebuah proses berprioritas tinggi, maka sebuah proses yang berjalan sekarang ini di CPU akan didahulukan.
Sumber : Silberschatz, Abraham. 2005.
google.com
Tidak ada komentar:
Posting Komentar