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