Dalam
Ilmu komputer, Sistem operasi atau dalam bahasa Inggris: operating system atau
OS adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan
manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk
menjalankan software aplikasi seperti program-program pengolah kata dan browser
web.
Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditaruh
pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software
lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan
melakukan layanan inti umum untuk software-software itu. Layanan inti umum
tersebut seperti akses ke disk, manajemen memori, skeduling task, dan
antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan
tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem
Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut
dinamakan dengan "kernel" suatu Sistem Operasi.
Pendahuluan
Biasanya, istilah Sistem Operasi sering ditujukan kepada
semua software yang masuk dalam satu paket dengan sistem komputer sebelum
aplikasi-aplikasi software terinstall. Dalam Ilmu komputer, Sistem operasi atau
dalam bahasa Inggris: operating system atau OS adalah perangkat lunak sistem
yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta
operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti
program-program pengolah kata dan browser web.
Secara umum, Sistem Operasi adalah software pada lapisan
pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan.
Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan,
dan Sistem Operasi akan melakukan layanan inti umum untuk software-software
itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori,
skeduling task, dan antar-muka user. Sehingga masing-masing software tidak
perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan
dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan
umum tersebut dinamakan dengan "kernel" suatu Sistem Operasi
Kalau sistem komputer terbagi dalam lapisan-lapisan, maka
Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software.
Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting
dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan
secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software
lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan
lain, dan memiliki akses kepada sistem file. Apabila beberapa aplikasi berjalan
secara bersamaan, maka Sistem Operasi mengatur skedule yang tepat, sehingga
sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk
menggunakan prosesor (CPU) serta tidak saling mengganggu.
Dalam banyak kasus, Sistem Operasi menyediakan suatu
pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil
fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu
membuat fungsi-fungsi tersebut dari awal.
Sistem Operasi secara umum terdiri dari beberapa bagian:
1. Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
2. Kernel, yaitu inti dari sebuah Sistem Operasi
3. Command Interpreter atau shell, yang bertugas membaca
input dari pengguna
4. Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi
dasar dan standar yang dapat dipanggil oleh aplikasi lain
5. Driver untuk berinteraksi dengan hardware eksternal,
sekaligus untuk mengontrol mereka.
Sebagian Sistem Operasi hanya mengizinkan satu aplikasi
saja yang berjalan pada satu waktu (misalnya DOS), tetapi sebagian besar Sistem
Operasi baru mengizinkan beberapa aplikasi berjalan secara simultan pada waktu
yang bersamaan. Sistem Operasi seperti ini disebut sebagai Multi-tasking
Operating System (misalnya keluarga sistem operasi UNIX). Beberapa Sistem
Operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada
input pengguna, sedangkan Sistem Operasi lainnya sangat kecil dan dibuat dengan
asumsi bekerja tanpa intervensi manusia sama sekali. Tipe yang pertama sering
disebut sebagai Desktop OS, sedangkan tipe kedua adalah Real-Time OS
Sebagai contoh, yang dimaksud sistem operasi itu antara
lain adalah Windows, Linux, Free BSD, Solaris, palm, symbian, dan sebagainya.
Layanan inti umum
Seiring dengan berkembangnya Sistem Operasi, semakin
banyak lagi layanan yang menjadi layanan inti umum. Kini, sebuah OS mungkin
perlu menyediakan layanan network dan koneksitas internet, yang dulunya tidak
menjadi layanan inti umum. Sistem Operasi juga perlu untuk menjaga kerusakan
sistem komputer dari gangguan program perusak yang berasal dari komputer lainnya,
seperti virus. Daftar layanan inti umum akan terus bertambah.
Program saling berkomunikasi antara satu dengan lainnya
dengan Antarmuka Pemrograman Aplikasi, Application Programming Interface atau
disingkat dengan API. Dengan API inilah program aplikasi dapat berkomunikasi
dengan Sistem Operasi. Sebagaimana manusia berkomunikasi dengan komputer
melalui Antarmuka User, program juga berkomunikasi dengan program lainnya
melalui API.
Walaupun demikian API sebuah komputer tidaklah berpengaruh
sepenuhnya pada program-program yang dijalankan diatas platform operasi
tersebut. Contohnya bila program yang dibuat untuk windows 3.1 bila dijalankan
pada windows 95 dan generasi setelahnya akan terlihat perbedaan yang mencolok
antara window program tersebut dengan program yang lain.
Sistem Operasi saat ini
Sistem operasi-sistem operasi utama yang digunakan
komputer sistem umum (termasuk PC, komputer personal) terbagi menjadi 3
kelompok besar:
1. Keluarga Microsoft Windows - yang antara lain terdiri
dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x
(Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT
4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7
(Seven) yang akan dirilis pada tahun 2009, dan Windows Orient yang akan dirilis
pada tahun 2014)).
2. Keluarga Unix yang menggunakan antarmuka sistem operasi
POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution),
GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan
nama Darwin) dan GNU/Hurd.
3. Mac OS, adalah sistem operasi untuk komputer keluaran
Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah
Mac OS X versi 10.4 (Tiger). Awal tahun 2007 direncanakan peluncuran versi 10.5
(Leopard).
Sedangkan komputer Mainframe, dan Super komputer
menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya merupakan
turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX,
HP/UX, dll.
Proses
Prosesor mengeksekusi program-program komputer. Prosesor
adalah sebuah chip dalam sistem komputer yang menjalankan instruksi-instruksi
program komputer. Dalam setiap detiknya prosesor dapat menjalankan jutaan
instruksi.
Program adalah sederetan instruksi yang diberikan kepada
suatu komputer. Sedangkan proses adalah suatu bagian dari program yang berada
pada status tertentu dalam rangkaian eksekusinya. Di dalam bahasan Sistem
Operasi, kita lebih sering membahas proses dibandingkan dengan program. Pada
Sistem Operasi modern, pada satu saat tidak seluruh program dimuat dalam
memori, tetapi hanya satu bagian saja dari program tersebut. Sedangkan bagian
lain dari program tersebut tetap beristirahat di media penyimpan disk. Hanya
pada saat dibutuhkan saja, bagian dari program tersebut dimuat di memory dan
dieksekusi oleh prosesor. Hal ini sangat menghemat pemakaian memori.
Beberapa sistem hanya menjalankan satu proses tunggal
dalam satu waktu, sedangkan yang lainnya menjalankan multi-proses dalam satu
waktu. Padahal sebagian besar sistem komputer hanya memiliki satu prosesor, dan
sebuah prosesor hanya dapat menjalankan satu instruksi dalam satu waktu. Maka
bagaimana sebuah sistem prosesor tunggal dapat menjalankan multi-proses?
Sesungguhnya pada granularity yang sangat kecil, prosesor hanya menjalankan
satu proses dalam satu waktu, kemudian secara cepat ia berpindah menjalankan
proses lainnya, dan seterusnya. Sehingga bagi penglihatan dan perasaan pengguna
manusia, seakan-akan prosesor menjalankan beberapa proses secara bersamaan.
Setiap proses dalam sebuah sistem operasi mendapatkan
sebuah PCB (Process Control Block) yang memuat informasi tentang proses
tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan
menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi
lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran
yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses
yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi
lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu
sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama,
sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi
dapat juga merubah nilai prioritas proses tertentu, agar proses tersebut akan
dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada
proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi
menaikkan nilai prioritasnya).
Status Proses
Jenis status yang mungkin dapat disematkan pada suatu
proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3
macam status yang umum, yaitu:
1. Ready, yaitu status dimana proses siap untuk dieksekusi
pada giliran berikutnya
2. Running, yaitu status dimana saat ini proses sedang
dieksekusi oleh prosesor
3. Blocked, yaitu status dimana proses tidak dapat
dijalankan pada saat prosesor siap/bebas