Operating
system (OS) atau yang sering disebut
sistem operasi adalah sekumpulan perintah dasar
yang berperan untuk menjalankan dan mengoperasikan komputer. Sistem operasi juga dikenal sebagai program
yang berperan sebagai penghubung antara manusia (brainware) dengan perangkat keras komputer (hardware). Tanpa
sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer
mereka, kecuali program aplikasi booting.
Sistem
operasi menawarkan sejumlah layanan untuk sistem program, user
interface, program aplikasi dan perangkat keras. Aplikasi mengakses
layanan ini melalui sistem panggilan dan driver dari
perangkat Hardware.
Melalui sistem panggilan, aplikasi dapat meminta layanan dari sistem operasi,
melewati parameter, dan menerima hasil operasi. Pengguna juga dapat
berinteraksi dengan sistem operasi menggunakan beberapa jenis perangkat lunak
atau perangkat keras yang menawarkan
user interface (UI),
seperti keyboard,
mengetik perintah untuk Command Line Interface (CLI) atau
menggunakan keyboard dan mouse
dengan Graphical User Interface (GUI).
Layanan Sistem Operasi
Ada 6 layanan pada system
operasi adalah sebagai berikut :
1. Pembuatan Program
Sistem operasi menyediakan berbagai fasilitas yang membantu
programer dalam membuat program seperti editor. Walaupun bukan bagian dari
sistem operasi, tapi layanan ini diakses melalui sistem operasi.
2. Eksekusi Program
Sistem harus bisa me-load program ke memori, dan menjalankan
program tersebut. Program harus bisa menghentikan pengeksekusiannya baik secara
normal maupun tidak (ada error). Instruksi-instruksi dan data-data
harus dimuat ke memori utama, perangkat-parangkat masukan/ keluaran dan berkas
harus di-inisialisasi, serta sumber-daya yang ada harus disiapkan, semua itu
harus di tangani oleh sistem operasi.
3. Pengaksesan Perangkat I/O
Program yang sedang dijalankan kadang kala membutuhkan I/O.
Untuk efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur peranti I/O
secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam
melakukan operasi I/O. Sistem Operasi harus mengambil alih sejumlah instruksi yang rumit dan sinyal kendali menjengkelkan agar pemrogram dapat berfikir sederhana dan perangkat pun dapat beroperasi.
4. Pengaksesan Terkandali
terhadap Berkas
Disediakannya mekanisme proteksi terhadap berkas
untuk mengendalikan pengaksesan terhadap berkas, Program
harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan
menghapus berkas.
5. Deteksi dan Memberi
Tanggapan Terhadap Kesalahan (error detection)
Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat
terjadi di CPU dan memori perangkat keras, I/O, dan di dalam program yang
dijalankan pengguna. Untuk setiap jenis error
sistem operasi harus bisa mengambil langkah yang tepat untuk mempertahankan
jalannya proses komputasi. Jika muncul permasalahan muncul pada sistem komputer maka sistem operasi harus memberikan tanggapan yang menjelaskan kesalahan yang terjadi serta dampaknya terhadap aplikasi yang sedang berjalan.
6. Pencatatan (Akunting)
Sistem Operasi yang bagus mengumpulkan data statistik
penggunaan beragam sumber-daya dan memonitor parameter kinerja.
Struktur
Dasar Sistem Operasi
1.
Sistem Monilitik (Monolithic
System)
Sistem
operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh
prosedur lain di sistem bila diperlukan. Kernel berisi semua layanan yang
disediakan sistem operasi untuk pemakai. Sistem operasi ditulis sebagai
sekumpulan prosedur (a collection of procedures),
yang dapat dipanggil setiap saat oleh pemakai saat dibutuhkan.
Kelemahan dari system ini
adalah sebagai berikut :
·
Pengujian dan
penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dialokasikan.
·
Sulit dalam menyediakan fasilitas pengamanan
·
Merupakan pemborosan bila setiap
komputer harus menjalankan kernel monolitik sangat besar sementara sebenarnya
tidak memerlukan seluruh layanan yang disediakan kernel.
·
Tidak Fleksibel
·
Kesalahan pemograman satu bagian
dari kernel menyebabkan matinya seluruh sistem.
Keunggulan dari system ini
adalah layanan dapat dilakukan sangat cepat karena terdapat di satu
ruang alamat.
2.
Sistem Berlapis (Layered System)
Sistem
operasi dibentuk secara hirarki
berdasar lapisan-lapisan, dimana lapisan-lapisan bawah memberi
layanan lapisan lebih atas. Struktur berlapis dimaksudkan untuk mengurangi
kompleksitas rancangan dan implementasi sistem operasi. Tiap lapisan mempunyai
fungsional dan antarmuka masukan-keluaran antara dua lapisan bersebelahan yang
terdefinisi bagus.
Lapis-lapis
dalam sistem operasi ada 6 lapis, yaitu :
· Lapis 5 - The operator, Berfungsi
untuk pemakai operator.
· Lapis 4 - User programs, Berfungsi
untuk aplikasi program pemakai.
· Lapis 3 - I/O management, Berfungsi
untuk menyederhanakan akses I/O pada level atas.
· Lapis 2 - Operator-operatot
communication, Berfungsi untuk mengatur komunikasi antar proses.
· Lapis 1 - Memory
and drum management, Berfungsi untuk mengatur alokasi ruang memori atau drum
magnetic.
· Lapis 0- Processor
allocation and multiprogramming, Berfungsi untuk mengatur alokasi pemroses dan
switching, multiprogramming dan pengaturan prosessor.
Lapisan
n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta
layanan lapisan n-1 untuk membangunan layanan bagi lapisan n+1. Lapisan n dapat
meminta layanan lapisan n-1. Kebalikan tidak dapat, lapisan n tidak dapat
meminta layanan n 1. Masing-masing berjalan di ruang alamat-nya sendiri.
Kelanjutan
sistem berlapis adalah sistem berstruktur cincin seperti sistem MULTICS. Sistem
MULTICS terdiri 64 lapisan cincin dimana satu lapisan berkewenangan berbeda.
Lapisan n-1 mempunyai kewenangan lebih dibanding lapisan n. Untuk meminta
layanan lapisan n-1, lapisan n melakukan trap. Kemudian, lapisan n-1 mengambil
kendali sepenuhnya untuk melayani lapisan n.
Keunggulan dari system ini
adalah :
·
Memiliki semua keunggulan rancangan
modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang
secara independen. Tiap lapisan dapat dirancang, dikode dan diuji secara
independen.
·
Pendekatan berlapis menyederhanakan
rancangan, spesifikasi dan implementasi sistem operasi.
Kelemahan dari system ini adalah Fungsi-fungsi
sistem operasi harus diberikan ke tiap lapisan secara hati-hati.
3.
Sistem Client-Server
Server
adalah proses yang menyediakan layanan, dan Client adalah proses ayng
memerlukan/meminta layanan. Keunggulan Pengembangan dapat dilakukan secara
modular. Kesalahan (bugs) di satu subsistem tidak merusak subsistem-subsistem
lainnya. Mudah diadaptasi untuk sistem tersebar. Kelemahan Layanan dilakukan
lamat karena harus melalui pertukaran pesan.Pertukaran pesan dapat menjadi botleneck.
Evolusi Sistem Operasi
1.
Serial Processing (1940 – 1950)
User
harus mengakses mesin (komputer) secara langsung dan dan eksekusi job dilakukan
eksekusi job dilakukan satu satu per satu secara urut per satu secara urut dan
dan bergantian.
Sistem
awal ini menunjukan 2 masalah utama, yaitu:
·
Scheduling:
User bisa mendapatkan masalah dan
tidak bisa menyelesaikannya, tetapi dipaksa untuk berhenti sebelum
menyelesaikan masalahnya.
·
Setup Time
Sebuah program yang dipanggil Job, dapat terlibat memuat
compiler ditambah high-level language program (source code) ke dalam memory.
Menyimpan program yang sudah dicompile (object program) dan memuat serta
menghubungkan object program dengan fungsi umum. Mode operasi ini bisa
diistilahkan sebagai Serial Processing.
2.
Simple Batch System (1950)
Beberapa
job (program ) yang akan diproses, dikumpulkan menjadi satu (menjadi sebuah
batch) oleh operator komputer sebelum diproses oleh komputer. Ide
utama di balik skema simple batch-processing adalah penggunaan bagian dari
perangkat lunak yang dikenal sebagai monitor. Dengan jenis OS ini, pengguna
tidak lagi memiliki akses langsung ke prosesor. Sebaliknya, pengguna
menyerahkan Job pada kartu atau tape ke komputer operator, yang memaketkan Job
bersama-sama secara berurutan dan menempatkan seluruh paket pada perangkat
input, untuk digunakan oleh monitor. Setiap program akan dibangun untuk kembali
ke monitor bila itu selesai mengolah, di mana titik monitor secara otomatis
mulai memuat program berikutnya.
3.
Multiprogrammed Batch System
Job
(program) yang diproses berjumlah lebih dari satu dan diproses secara
bersamaan. salah satu teknik penjadwalan dimana tugas (task) yang
sedang berjalan tetap berjalan sampai ia melakukan operasi yang membutuhkan
waktu untuk menunggu respon dari luar (external event), misalnya membaca data
dari disket/CD/dsb, atau sampai komputer memaksa untuk menukar tugas yang
sedang berjalan dengan tugas lainnya. Sistem operasi yang yang menggunakan
multi-program sebagai scheduler-nya bertujuan untuk memaksimalkan penggunaan
CPU.
4.
Time-Sharing System (1961)
Sebuah
komputer (support multiprogramming) digunakan oleh lebih dari satu user secara
bersamaan untuk mengerjakan interaktif job. Dalam
sistem time-sharing, beberapa pengguna secara bersamaan mengakses sistem
melalui terminal, dengan interleaving OS pelaksanaan setiap program pengguna
dalam ledakan pendek atau kuantum komputasi. Jadi, jika ada n pengguna aktif
meminta layanan pada satu waktu, setiap pengguna hanya akan melihat pada 1 / n
rata-rata kapasitas komputer yang efektif, tidak termasuk OS overhead.
Komponen Utama dalam Sistem Operasi
1.
Process Management
Proses
adalah sebuah program yang sedang dieksekusi. Sebuah proses membutuhkan
beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat
berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat
Masukan/Keluaran. Sistem operasi mengalokasikan sumber
daya-sumber daya tersebut saat proses itu diciptakan atau sedang
diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi
akan mendapatkan kembali semua sumber daya yang bisa digunakan kembali. Sistem
operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses
seperti :
·
Membuat dan menghapus proses
pengguna dan sistem proses.
·
Menunda atau melanjutkan proses.
·
Menyediakan mekanisme untuk proses
sinkronisasi.
·
Menyediakan mekanisme untuk proses
komunikasi.
·
Menyediakan mekanisme untuk
penanganan deadlock.
2.
Input/Output Management
Sering
disebut device manager. Menyediakan device driver yang umum sehingga operasi
Masukan/Keluaran dapat seragam (membuka, membaca, menulis, menutup). Contoh:
pengguna menggunakan operasi yang sama untuk membaca berkas pada perangkat
keras, CD-ROM dan floppy disk. Komponen Sistem Operasi untuk sistem
Masukan/Keluaran:
·
Penyangga: menampung sementara data
dari/ke perangkat Masukan/Keluaran.
·
Spooling: melakukan penjadualan
pemakaian Masukan/Keluaran sistem supaya lebih efisien (antrian dsb.)
· Menyediakan driver: untuk dapat
melakukan operasi rinci untuk perangkat keras Masukan/Keluaran tertentu
3.
Memory Management
Memori
utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari
word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan.
Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi
sebagai tempat penyimpanan instruksi/data yang akses datanya digunakan oleh CPU
dan perangkat Masukan/Keluaran. Memori utama termasuk tempat penyimpanan data
yang yang bersifat volatile -- tidak permanen -- yaitu data akan hilang kalau
komputer dimatikan.
4.
File Management
Kumpulan informasi
yang berhubungan, sesuai dengan tujuan pembuat berkas tersebut. Umumnya berkas
merepresentasikan program dan data. Berkas dapat mempunyai struktur yang
bersifat hirarkis (direktori, volume, dll.). Sistem operasi mengimplementasikan
konsep abstrak dari berkas dengan mengatur media penyimpanan massa, misalnya
tapes dan disk.
5.
Protection System
Proteksi
mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program,
prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:
·
Membedakan antara penggunaan yang
sudah diberi izin dan yang belum.
·
Menspesifikasi kontrol untuk
dibebankan/diberi tugas.
·
Menyediakan alat untuk pemberlakuan system
6. Networking
Sistem
terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock.
Setiap prosesor mempunyai memori dan clock tersendiri. Prosesor-prosesor
tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan
akses pengguna ke bermacam sumber-daya sistem. Akses tersebut menyebabkan
peningkatan kecepatan komputasi dan meningkatkan kemampuan penyediaan data.
7.
Command Interpreter System
Sistem
Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca
instruksi dan mengartikan control statements umumnya disebut: control-card
interpreter, command-line interpreter dan terkadang dikenal sebagai shell.
Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem
operasi yang lain dan disesuaikan dengan tujuan dan teknologi perangkat
Masukan/Keluaran yang ada. Contohnya: CLI, Windows, Penbased (touch), dan
lain-lain.