Dari sejarah perkembangan sistem operasi terlihat bahwa sistem operasi dirancang sedemikian rupa untuk memenuhi dua fungsi utama seperti pada gambar, yaitu sebagai mesin abstraksi (extended machine) bagi pengguna dan program aplikasi serta pengelola sumber daya komputer (resource manager)

Fungsi Utama Sistem Operasi
Fungsi Utama Sistem Operasi

SISTEM OPERASI SEBAGAI EXTENDED MACHINE

Sistem operasi melakukan abstraksi pengaksesan sumber daya komputer sehingga tersedia lingkungan (antarmuka) dan layanan yang nyaman dan mudah bagi program aplikasi maupun pengguna.

Komputer terdiri atas berbagai macam perangkat keras seperti prosesor, memori, pewaktu, mendia penyimpanan, dan peranti I/O lainnya. Pada awal perkembangan komputer, dimana  belum ada sistem operasi, semua operasi komputer dilakukan secara manual menggunakan panel kontrol leh para ahli saja.

Sistem operasi kemudian dikembangkan secara bertahap untuk mengotomatisasi hal-hal yang tadinya harus dilakukan secara manual. Selain itu, sistem operasi menyembunyikan detil perasi perangkat keras serta menyediakan antarmuka operasi yang lebih sederhana dan mudah dimengerti oleh pengguna. Dengan kata lain, sistem operasi melakukan abstraksi bagi pengguna terhadap pengaksesan sumber daya komputer.

Sistem operasi ibaratnya adalah sistem otomatisasi pada kendaraan bermotor sepeti mobil. Sistem otomotif melakukan abstraksi bagi pengguna mobil terhadap pengendalian elemen-elemen mobil dengan menyediakan antarmuka seperti kemudi, pedal rem, pedal gas, stop kontak, dan gigi persneling. Pengemudi tidak butuh mengendalikan detil operasi elemen otomotif yang sesungguhnya, seperti memutar tuas roda, memperbanyak debit pembakaran bensin, menggesek roda dengan bantalan rem. Semua detil operasi tersebut dikendalikan secara tidak langsung lewat antarmuka seperti kemudi, pedal gas, dan pedal rem. Pengemudi hanya butuh belajar bagaimana mengemudikan mobil dengan menggunakan antarmuka  tersebut.

Demikian pula dengan sistem operasi melakukan abstraksi terhadap pengaksesan terhadap sumber daya komputer sehingga pengoperasian komputer menjadi mudah bagi pengguna. Dengan adanya sistem operasim pengguna hanya melihat komputer sebagai mesin yang dapat menjalankan tugas-tugas yang diberikan kepadanya, seperti memutar lagu, melakukan perhitungan matematis, membaca basis data dnegan cara yang sangat mudah. Pengguna tidak perlu tahu bagaimana sesungguhnya mekanisme kerja internal komputer seperti menyalin kode instruksi data ke suatu alamat di disk, dan bagaimana caranya data-data dikirim ke printer lewat kabel paralel serta detil operasi lainnya.

SISTEM OPERASI SEBAGAI RESOURCE MANAGER

Sistem operasi mengelola sejumlah sumber daya komputer sehingga terpakai secara efisien, dan aman. Pada sistem komputer dimungkinkan beberapa job dijadwal secara bergantian untuk menggunakan prosesor. Sumber daya komputer dibagi pakai oleh job-job tersebut. Caranya adalah dengan melakukan multipleks (multiplexing) pada penggunaan sumber daya, baik dari segi waktu maupun ruang.

Contoh sumber daya yang dimultipleks secara waktu adalah prosesor dan printer, Multiprogramming pada prosesor tunggal dicapai dengan melakukan alokasi prosesor kepada masing-masing job secara bergantian. Setiap kali terjadi pergantin job, status eksekusi dari job sebelumnya harus disimpan sehingga jika eksekusi kembali lagi kepadanya, job tersebut dapat melanjutkan eksekusinya dari keadaan terakhir. Ini merupakan tugas sistem operasi. Contoh lainnya, jika suatu printer sedang melayani pencetakan dari suatu job, sebaiknya printer tidak dialokasikan  ke job yang lain jika job pencetakan itu belum selesai. Ini untuk menghindari kondisi dimana halaman pencetakan berisi satu barus keluaran dari job A, kemudian suatu baris berikutnya berisi keluaran dari job B, dan disusul lagi satu baris berikutnya dari job A dan seterusnya. Sistem operasi dalam hal ini bertugas menjamin pengguna printer secara ekslusif oleh suatu job sampai selesai.

Contoh sumber daya yang dimultipleks secara ruang adalah memori dan disk. Ruang memori dipartisi untuk menyimpan beberapa job secara bersamaan Sistem operasi harus memastikan program yang satu tidak menulis atau memodifikasi partisi memori job lainnya. Selain itu, disk yang sama digunakan untuk menyimpan berkas-berkas yang berbeda. Penyimpanan berbagai berkas di disk butuh dilakukan secara baik sehingga mudah dibaca kembali dan tidak saling tumpang tindih. Inipun menjadi tanggung jawab sistem operasi.