Back to IF2130 Sistem Operasi

Struktur Internal dan Mode Operasi

Questions/Cues

  • Apa itu Kernel?

  • Bagaimana proses booting?

  • Apa itu Dual-Mode Operation?

  • Apa beda User Mode & Kernel Mode?

  • Apa itu privileged instructions?

  • Apa peran hardware timer?

Reference Points

  • Slides 7-15, IF2130-02-2025-OS-Structure.pdf

Kernel

Kernel adalah program inti dari sebuah sistem operasi. Ini adalah satu-satunya program yang berjalan setiap saat (dari boot hingga shutdown). Kernel memiliki kendali penuh atas segala sesuatu di dalam sistem dan berfungsi sebagai manajer utama yang menyediakan semua layanan dasar.

Proses Booting: Menghidupkan Kernel

Booting adalah urutan proses yang terjadi saat komputer pertama kali dinyalakan untuk memuat kernel ke dalam memori dan memulai eksekusinya.

  1. Power On: Saat komputer dinyalakan, sebuah program kecil yang tersimpan di ROM (Read-Only Memory) bernama BIOS (Basic Input/Output System) atau UEFI dijalankan.

  2. Inisialisasi: BIOS/UEFI melakukan inisialisasi dan pengecekan perangkat keras dasar (Power-On Self-Test atau POST).

  3. Load Bootloader: BIOS/UEFI mencari bootloader di perangkat penyimpanan (misalnya, hard disk) dan memuatnya ke memori.

  4. Load Kernel: Bootloader adalah program kecil yang tugas utamanya adalah menemukan file kernel di disk, memuatnya ke memori, dan kemudian mentransfer kontrol eksekusi ke kernel.

  5. Kernel Running: Kernel mulai berjalan, menginisialisasi sisa sistem (driver, services), dan akhirnya menjalankan program pertama untuk pengguna (misalnya, proses login).

Dual-Mode Operation: Mekanisme Proteksi Inti

Untuk melindungi kernel dan komponen sistem penting dari program pengguna yang mungkin error atau jahat, perangkat keras CPU modern menyediakan Dual-Mode Operation. CPU dapat beroperasi dalam salah satu dari dua mode:

  1. Kernel Mode (juga disebut Supervisor, System, atau Privileged Mode)
    • Akses Penuh: Kode yang berjalan dalam mode ini memiliki akses tak terbatas ke semua instruksi CPU dan perangkat keras.
    • Untuk Siapa: Hanya kernel OS yang diizinkan berjalan dalam mode ini.
  2. User Mode
    • Akses Terbatas**: Kode yang berjalan dalam mode ini tidak dapat mengakses perangkat keras secara langsung atau menjalankan instruksi-instruksi kritis.
    • Untuk Siapa: Semua aplikasi pengguna dan program sistem non-inti berjalan dalam mode ini.

Sebuah bit di dalam register CPU, yang disebut mode bit, digunakan untuk melacak mode saat ini (misalnya, 0 untuk kernel, 1 untuk user).

Transisi Antar Mode

  • User ke Kernel: Transisi ini hanya dapat terjadi melalui mekanisme yang terkontrol, yaitu interupsi, yang bisa berupa:

    • System Call: Program secara sukarela meminta layanan kernel.
    • Hardware Interrupt: Perangkat keras meminta perhatian.
    • Exception/Fault: Terjadi error dalam program (misal, pembagian dengan nol). Saat ini terjadi, CPU secara otomatis beralih ke kernel mode dan menjalankan kode penangan (handler) yang sesuai.
  • Kernel ke User: Setelah selesai menangani interupsi, kernel akan mengganti mode bit kembali ke user mode sebelum mengembalikan kontrol ke program pengguna.

Privileged Instructions

Ini adalah instruksi-instruksi CPU yang dianggap berbahaya jika dijalankan oleh aplikasi biasa. Instruksi ini hanya dapat dieksekusi saat CPU berada di kernel mode. Contohnya termasuk:

  • Mengubah pemetaan memori.

  • Mengakses perangkat I/O secara langsung.

  • Memanipulasi mode bit.

  • Menghentikan sistem (halt).

Jika program di user mode mencoba menjalankan instruksi ini, CPU akan menghasilkan trap (exception) dan memberikan kontrol ke kernel, yang kemungkinan besar akan menghentikan program tersebut.

Peran Hardware Timer

Untuk memastikan OS tidak kehilangan kontrol atas sistem (misalnya, karena program pengguna masuk ke dalam infinite loop), perangkat keras menyediakan timer. Sebelum memberikan kontrol ke program pengguna, kernel akan mengatur timer untuk menghasilkan interupsi setelah periode waktu tertentu. Jika program tidak mengembalikan kontrol secara sukarela (misalnya melalui system call), interupsi dari timer pada akhirnya akan terjadi, memaksa CPU kembali ke kernel mode dan mengembalikan kontrol ke OS.

Summary

Struktur internal OS berpusat pada Kernel, program inti yang dimuat saat proses booting. Untuk melindungi dirinya sendiri, OS mengandalkan mekanisme perangkat keras yang disebut Dual-Mode Operation, yang memisahkan eksekusi menjadi Kernel Mode yang memiliki hak akses penuh dan User Mode yang terbatas. Transisi dari User ke Kernel Mode hanya terjadi melalui interupsi, dan instruksi-instruksi kritis (privileged instructions) hanya bisa dijalankan di Kernel Mode. Mekanisme ini, ditambah dengan adanya hardware timer untuk merebut kembali kontrol, memastikan bahwa kernel selalu memegang kendali tertinggi atas sistem.