Catatan Kuliah: Pengantar Sistem Operasi (Operating System)

Catatan Kuliah: Pengantar Sistem Operasi (Operating System)

Pendahuluan

Mempelajari Sistem Operasi (SO) mirip dengan kisah "Orang Buta dan Seekor Gajah". Jika kita hanya melihat dari satu sisi, kita tidak akan mendapatkan gambaran yang utuh. SO memiliki banyak sudut pandang: dari sisi pengguna, arsitektur perangkat keras, hingga pengembang aplikasi. Dengan menggabungkan berbagai sudut pandang ini, kita dapat memahami esensi dari apa itu Sistem Operasi secara menyeluruh.

1.1 Apa yang Dilakukan oleh Sistem Operasi?

Sistem Operasi bertindak sebagai jembatan atau perantara antara pengguna komputer dengan perangkat keras komputer.

  • Komponen Sistem Komputer: Secara abstrak, komputer terdiri dari empat komponen utama: Perangkat Keras (Hardware/HW) + Sistem Operasi (OS) + Program Aplikasi (Apps) + Pengguna (Users).
  • Fungsi Utama OS:
    1. Sebagai Antarmuka (Interface): Menghubungkan HW dengan Aplikasi & Pengguna.
    2. Penyedia Layanan: Menyediakan lingkungan tempat aplikasi dapat berjalan dengan efisien.
    3. Pengelola Sumber Daya (Resource Allocator): Mengatur pembagian memori, waktu CPU, dan perangkat input/output. OS sering dianalogikan seperti Pemerintah; ia tidak memproduksi apa pun secara langsung, tetapi menyediakan lingkungan yang aman dan tertib agar komponen lain dapat berfungsi dengan baik.
  • Perdebatan Definisi OS: Apa saja yang termasuk dalam OS? Sebagian ahli berpendapat hanya Kernel (program yang selalu berjalan di latar belakang) yang disebut OS. Sementara yang lain menganggap semua program yang disertakan oleh vendor saat penjualan (termasuk aplikasi sistem) adalah bagian dari OS. Di sini penting untuk membedakan antara Aplikasi Sistem (bawaan OS) dan Aplikasi Pihak Ketiga (yang diinstal pengguna).

1.2 Organisasi Sistem Komputer

Bagian ini membahas bagaimana komponen-komponen komputer saling terhubung dan bekerja sama.

1.2.1 Pengoperasian Sistem Komputer

  • Program Bootstrap: Program pertama yang berjalan saat komputer dinyalakan (berada di ROM/EEPROM). Tugasnya adalah menginisialisasi sistem dan memuat kernel OS ke dalam memori.
  • Shared Memory: CPU dan modul I/O (Input/Output) berbagi memori yang sama dan saling berkomunikasi melalui bus data.
  • Time Slicing: Teknik membagi waktu kerja CPU secara adil agar komputer bisa menjalankan banyak proses secara bersamaan (multi-processing).
  • Penanganan Interupsi (Interrupt Handling): Komputer modern digerakkan oleh interupsi (interrupt-driven). Jika ada perangkat keras (misal: keyboard ditekan) atau perangkat lunak (terjadi error) yang membutuhkan perhatian CPU, sinyal interupsi akan dikirimkan. CPU akan menghentikan pekerjaan sementaranya, beralih ke Interrupt Vector untuk mencari Interrupt Service Routine (ISR) yang sesuai, menyelesaikannya, lalu kembali ke pekerjaan semula.
  • System Call: Metode yang digunakan oleh program aplikasi untuk meminta layanan langsung dari kernel OS.

1.2.2 Struktur Penyimpanan (Storage Structure)

Program harus dimuat ke dalam Memori Utama (RAM) terlebih dahulu agar bisa dieksekusi oleh CPU. Instruksi dan data kemudian diambil dari RAM ke dalam Register CPU.

Berdasarkan kecepatan, kapasitas, dan harga, media penyimpanan dibagi menjadi hierarki berikut:

  1. Memori Volatile (Sifat sementara, data hilang jika listrik mati):
    • Registers: Paling cepat, kapasitas sangat kecil, berada di dalam CPU.
    • CPU Cache: Sangat cepat, menjembatani perbedaan kecepatan CPU dan RAM.
    • Main Memory (RAM): Kecepatan dan ukuran menengah, tempat program aktif disimpan.
  2. Memori Non-Volatile (Sifat permanen, data tetap ada tanpa listrik):
    • Electronic Disks (SSD), Magnetic Disks (Harddisk), Optical Disks (CD/DVD), hingga Magnetic Tapes. Memori jenis ini lebih lambat, tetapi kapasitasnya besar dan harganya jauh lebih murah per bitnya.

1.2.3 Struktur I/O (Input/Output)

Operasi I/O umumnya melibatkan permintaan I/O dari pengguna, DMA (Direct Memory Access)—sebuah mekanisme di mana perangkat I/O dapat mengirim data langsung ke memori tanpa terus-menerus membebani CPU—dan diakhiri dengan penanganan interupsi untuk memberi tahu CPU bahwa transfer data telah selesai.

1.3 Arsitektur Sistem Komputer

Sistem operasi yang berbeda dirancang untuk lingkungan komputer yang berbeda pula.

1.3.1 Sistem Tunggal-Prosesor (Single-Processor Systems)

Hanya memiliki satu CPU utama yang bertugas mengelola sistem dan menjalankan aplikasi pengguna. Prosesor khusus lainnya (seperti kontroler disk atau GPU) mungkin ada, tetapi mereka tidak menjalankan aplikasi pengguna umum.

1.3.2 Sistem Multi-Prosesor (Multiprocessor Systems)

Memiliki dua atau lebih CPU yang bekerja bersama. Keuntungannya meliputi:

  • Peningkatan Throughput: Lebih banyak pekerjaan yang selesai dalam satu waktu (walau peningkatannya tidak 100% linear karena adanya overhead komunikasi antar-CPU).
  • Ekonomi Skala: Lebih hemat karena CPU-CPU tersebut saling berbagi periferal, ruang penyimpanan, dan catu daya yang sama.
  • Peningkatan Keandalan (Reliability): Jika satu CPU rusak, sistem hanya akan melambat, bukan mati total (graceful degradation). Digunakan pada sistem kritis seperti teknologi kedirgantaraan NASA.
    • Symmetric Multiprocessing (SMP): Setiap prosesor menjalankan salinan OS yang sama dan berkomunikasi satu sama lain.
    • Dual-Core / Multi-Core: Menempatkan beberapa inti prosesor (core) di dalam satu chip fisik yang sama demi efisiensi daya dan kecepatan komunikasi.

1.3.3 Sistem Terkluster (Clustered Systems)

Terdiri dari beberapa sistem/komputer independen yang digabungkan melalui jaringan berkecepatan tinggi (LAN) untuk bekerja sama. Sistem ini memerlukan penanganan khusus seperti DLM (Distributed Lock Management) agar beberapa komputer tidak saling berebut atau merusak data yang berada di penyimpanan bersama (shared storage).

1.4 Struktur Sistem Operasi

Untuk mendukung sistem time-sharing (multitasking dan multi-user), sebuah OS harus mengelola banyak hal secara dinamis, meliputi:

  • Manajemen Memori & Proses
  • Penjadwalan Tugas (Job Scheduling) & Alokasi Sumber Daya
  • Swap Space / Virtual Memory: Menggunakan sebagian harddisk sebagai perpanjangan dari RAM fisik.
  • Manajemen File, Sistem Proteksi/Keamanan, dan Komunikasi Antar-Proses (IPC).

1.5 Operasi Sistem Operasi

Sistem operasi modern bekerja berdasarkan interupsi (interrupt-driven). Agar program yang error tidak merusak program lain atau sistem keseluruhan, OS menerapkan operasi berbagai mode.

1.5.1 Operasi Dual-Mode dan Multimode

Arsitektur perangkat keras mendukung setidaknya dua mode operasi:

  1. User Mode (Mode Pengguna): Mengeksekusi kode aplikasi biasa yang aman.
  2. Kernel Mode / Supervisor Mode (Mode Inti): Mengeksekusi instruksi khusus (instruksi berhak istimewa/privileged instructions) yang berhubungan langsung dengan perangkat keras atau keamanan sistem.
  • Transisi Mode: Program pengguna tidak bisa mengubah mode ini sendiri. Jika aplikasi butuh layanan kernel, ia harus melakukan System Call (melalui interupsi perangkat lunak/software interrupt). Kendali akan dialihkan ke OS, mode berubah ke Kernel Mode, OS menyelesaikan tugasnya, lalu mode dikembalikan ke User Mode sebelum kendali diserahkan kembali ke aplikasi.
  • Proteksi Memori: Jika program pengguna mencoba melakukan tindakan ilegal (seperti mengakses memori yang bukan haknya), perangkat keras akan memicu trap/software interrupt. OS kemudian akan menghentikan program tersebut (crash/terminate) dan menghasilkan pesan error (atau core dump).
  • Virtual Machine Manager (VMM): Pada CPU modern yang mendukung virtualisasi, terdapat mode tambahan di luar dual-mode untuk mengindikasikan kapan VMM memegang kendali sistem.

1.5.2 Timer

Sebelum OS menyerahkan kendali komputer kepada program pengguna, OS akan menyetel sebuah Timer. Ketika waktu habis, timer akan memicu interupsi, dan kendali otomatis kembali ke kernel OS. Ini mencegah program pengguna melakukan looping abadi atau "menyandera" CPU.

Komponen Tanggung JawabTugas Utama Sistem Operasi1.6 Manajemen Proses

• Membuat & menghapus proses pengguna dan sistem.
• Menunda (suspend) dan melanjutkan (resume) proses.
• Menyediakan mekanisme sinkronisasi, komunikasi antar-proses, dan penanganan deadlock (kondisi saling mengunci).

1.7 Manajemen Memori

• Mencatat blok memori mana yang sedang digunakan dan oleh siapa.
• Menentukan data/kode mana yang harus dipindah ke memori (RAM) atau dikeluarkan.
• Mengalokasikan dan mengosongkan ruang memori dinamis (seperti fungsi malloc atau new).

1.8 Manajemen Penyimpanan

Manajemen File: Membuat/menghapus file & direktori, memetakan file ke media penyimpanan sekunder, serta melakukan backup berkala.
Manajemen Mass-Storage (Harddisk/SSD): Mengatur ruang kosong, alokasi penyimpanan, dan penjadwalan pergerakan disk (disk scheduling).

1.9 Proteksi & Keamanan

Proteksi: Memastikan semua akses ke sumber daya sistem dikendalikan dengan aman (mencegah ketidaksengajaan/error internal).
Keamanan: Melindungi sistem dari serangan luar (hacker, malware) maupun pengguna lokal yang mencoba mengambil hak akses ilegal.

1.8.3 Caching (Penyimpanan Sementara)

Caching menggunakan memori kecil berkecepatan tinggi untuk menyimpan data yang sering diakses dari memori besar yang lambat.

  • Alur Migrasi Data: Data dari Harddisk –> RAM –> Cache –> Register CPU.
  • Tantangan Coherency: Jika data yang sama disimpan di berbagai tingkat cache dan diakses oleh banyak proses (atau banyak komputer), OS harus memastikan semua pihak selalu mendapatkan data versi terbaru yang paling valid (cache coherency).

1.8.4 Sistem I/O

Sistem I/O pada OS menyembunyikan keunikan perangkat keras dari pengguna melalui:

  • Komponen manajemen memori (termasuk buffering, caching, dan spooling).
  • Antarmuka device-driver umum.
  • Driver khusus untuk perangkat keras tertentu.(Contoh pada UNIX: Driver dibagi menjadi character device [per karakter, ditandai huruf 'c'] dan block device [per blok data, ditandai huruf 'b'] pada folder /dev).

1.10 Struktur Data Kernel

Kernel OS menggunakan struktur data standar untuk mengelola informasinya:

  • List, Stack, Queue: Linked list (tunggal, ganda, melingkar) digunakan untuk antrean proses.
  • Trees: Binary Search Tree (BST) digunakan untuk pencarian data yang efisien.
  • Hash Functions & Maps: Memetakan kunci ke nilai secara cepat.
  • Bitmaps: Untaian bit 0 dan 1 untuk menandai status boolean (misal: menandai blok disk mana yang kosong [0] atau penuh [1]).

1.11 Lingkungan Komputasi (Computing Environments)

  1. Komputasi Tradisional: PC atau Laptop kantoran/rumahan standar.
  2. Komputasi Seluler (Mobile): Smartphone atau Tablet (contoh: Android dan iOS). Memiliki keterbatasan memori dan daya baterai, tetapi kaya akan sensor (GPS, kompas, giroskop).
  3. Sistem Terdistribusi: Kumpulan komputer independen yang terhubung lewat jaringan (PAN, LAN, MAN, WAN) dan tampak bagi pengguna seperti satu sistem tunggal.
  4. Client-Server: Server menyediakan layanan (data, CPU, web) dan Client yang mengonsumsinya.
  5. Peer-to-Peer (P2P): Setiap komputer di jaringan bisa bertindak sebagai server sekaligus client secara bersamaan (tidak terpusat, contoh: BitTorrent, Skype untuk pencarian awal).
  6. Virtualisasi: Menjalankan satu atau lebih OS "tamu" (Guest OS) di atas mesin fisik tunggal menggunakan VMM (Virtual Machine Manager) atau Hypervisor (contoh: menjalankan Linux di dalam Windows menggunakan VMware Player).
  7. Cloud Computing (Komputasi Awan): Menyediakan layanan komputasi, penyimpanan, dan aplikasi melalui internet.
    • Jenis: Publik, Privat, Hibrida.
    • Layanan: SaaS (Aplikasi, misal: Google Docs), PaaS (Platform/Database), IaaS (Infrastruktur/Server/Penyimpanan virtual).
  8. Real-Time Embedded Systems: Sistem tertanam pada perangkat seperti mobil atau robot medis yang membutuhkan ketepatan waktu respons yang sangat ketat (real-time).

1.12 Sistem Operasi Open-Source

Perangkat lunak Open-Source (Sumber Terbuka) menyediakan kode sumbernya secara gratis kepada publik untuk dipelajari, dimodifikasi, dan didistribusikan kembali.

  • Sejarah Singkat: Tahun 1983, Richard Stallman memulai proyek GNU untuk membuat sistem operasi sejenis UNIX yang gratis, mendirikan Free Software Foundation (FSF), dan memperkenalkan lisensi GPL (Copyleft).
  • Linux: Dikembangkan oleh Linus Torvalds pada tahun 1991. Kini berkembang menjadi berbagai distribusi (Distro) seperti Ubuntu, Debian, RedHat, dan Fedora.
  • BSD UNIX: Dikembangkan oleh Universitas Berkeley (UCB). Varian modernnya termasuk FreeBSD, OpenBSD, bahkan core dari macOS milik Apple (Darwin) diturunkan dari BSD UNIX.
  • Solaris: Sistem UNIX dari Sun Microsystems (sekarang Oracle), beberapa komponennya telah dibuka kodenya lewat proyek Open Solaris.

1.14 Ringkasan

Sistem Operasi adalah pengelola kompleks yang memastikan efisiensi, keamanan, dan kemudahan penggunaan sebuah komputer. Mulai dari mengontrol instruksi paling dasar di level hardware menggunakan operasi dual-mode, mengelola memori dan penyimpanan, hingga beradaptasi dengan lingkungan modern seperti Cloud Computing dan sistem Open-Source. Pemahaman bab pengantar ini adalah fondasi penting untuk mempelajari mekanisme internal OS yang lebih mendalam pada bab-bab berikutnya.

Referensi

  1. Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 1