Sistem operasi adalah seperangkat program yang memantau dan mengatur pemakaian sumber daya komputer (prosesor, memori utama, file, I/O device dan lain-lain). Sistem operasi juga menjadi jembatan/penghubung antara user (program user) dengan perarngkat keras. Komponen Sistem Operasi Sistem operasi terdiri dari beberapa komponen, antara lain manajemen proses, manajemen memori, manajemen file, manajemen sistem I/O, manajemen penyimpan sekunder, sistem jaringan, sistem proteksi dan sistem command interpreter. 1. Manajemen Proses Proses adalah program yang sedang di eksekusi. Sebuah proses memerlukan sumber daya (resource) tertentu seperti waktu CPU, memori, file dan perangakat I/O untuk menyelesaikan tugasnya. Untuk mengatur proses yang ada, sistem operasi bertanggung jawab pada aktivitas- aktivitas yang berhubungan dengan manajemen proses berikut : a. Pembuatan dan penghapusan proses yang dibuat oleh user atau sistem. b. Menghentikan proses sementara dan melanjutkan proses. c. Menyediakan kelengkapan mekanismeuntuk sinkronisasi proses komunikasi proses. 2. Manajemen Memori Utama (Main Memory) Memori utama (main memory) atau biasa disebut dengan memori adalah sebuah array besar berukuran word atau byte, dimana setiap array tersebut mempunyai alamat tertentu. Memoi adalah penyimpanan yang dapat mengakses data dengan cepat yang digunakan oleh CPUdan peranglat I/O. Memori adalah perangkat penyimpanan volatile, isi memori akan hinlang apabila terjadi kegagalan sistem. Untuk mengatur memory, sistem operasi bertanggung jawab pada aktivitas-aktivitas manajemen memori berikut : a. Menjaga dan memelihara bagian-bagian memori yang sedang digunakan dan dari yang menggunakan. b. Memutuskan proses-proses mana saja yang harus di panggil ke memori jika tersdia ruang di memori. c. Mengalokasikan dan mendealokasikan ruang memori jika diperlukan. 3. Manajemen Fie File adalah kumpulan informasi yang saling berhubungan yang sudah di definisikan oleh pembuatnya (user). Biasanya file berupa program (baik dalam bentuk source maupun objek) dan data. Untuk mengatur file, sistem operasi bertanggung jawab pada aktivitas-aktivitas manajemen fie berikut : a. Pembuatan dan penghapusan file. b. Pembuatan dan penghapusan direktori. c. Primitif-primitif yang mendukung untuk manipulasi file dan direktori. d. Pemetaan file ke memori sekunder. e. Backup file ke media penyimpanan yang stabil (nonvolatile).
4. Manajemen I/O Sering disebut device manager. Menyediakan device driver yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh, pengguna menggunakan operasi yang sama untuk membaca berkas pada harddisk, CD-ROM dan floppy disk. Komponen sistem operasi untuk sistem I/O : a. Buffer, menampung sementara data dari/ke perangkat I/O. b. Spooling, melakukan penjadwalan pemakaian sistem I/O agar lebih efisien. c. Menyediakan driver untuk dapat melakukan operasi rinci untuk perangkat keras I/O tertentu. 5. Manajemen Penyimpan Sekunder Karena memori utama (main memory) bersifat volatile dan terlalu kecil untuk mengakomodasi semua data dan program secara permanen, maka sistem komputer harus menyediakan penyimpanan sekunder (secondary storage) untuk backup memori utama. Beberapa sistem komputer modern menggunakan disk untuk media penyimpanan on-line, baik program maupun data. Sistem operasi bertanggung jawab pada aktivitas-aktivitas manajemen penyimpanan sekunder sebagai berikut : a. Pengaturan ruang bebas. b. Alokasi penyimpanan. c. Penjadwalan disk. 6. Sistem Jaringan (Sistem Terdistribusi) Sistem terdistribusi adala kumpulan prosesor yang tidak menggunakan memori atau clock berasama-sama. Setiap prosesor mempunyai local memori sendiri. Prosesor-prosesor pada sistem dihubungkan melalui jaringan komunikasi. Komunikasi dilakukan dengan menggunakan protokol. Sistem terdistribusi memungkinkan user untuk mengakses sumber daya (resource) yang beragam. Dengan mengakses sumber daya yang dapat digunakan bersama-sama tersebut akan memberikan keuntungan dalam meningkatkan kecepatan komputasi, ketersediaan data dan kehandalan sistem. 7. Sistem Proteksi Proteksi adalah suatu mekanisme untuk mengontrol akses oleh program , proses atau user pada sistem maupun resource dari user. Mekanisme sistem proteksi yang harus disediakan sistem meliputi, membedakan antara penggunaan yang sah dan tidak sah, menentukan kontrol yang terganggu dan menetapkan cara pelaksanaan proteksi. 8. Sistem Command Interpreter Sistem operasi menunggu instruksi dari pengguna (command driver). Program yang membaca instruksi dan mengartikan control statements umumnya disebut control-card interpreter, command line interpreter dan UNIX shell. Sistem command interpreter sangat bervariasi dari satu sistem operasi ke sistem operasi lain dan disesuaikan dengan tujuan dan teknologi I/O device yang ada Sistem Call Sistem call adalah suatu set tatacara pemanggilan di program aplikasi untuk memperoleh layanan sistem operasi berupa extended instructions/perluasan instruksi yang merupakan interface/layanan langsung antara program-program dengan sistem operasi. Sistem call membuat, menghapus dan menggunakan objek-objek yang diatur oleh sistem operasi, antara lain proses-proses dan file.
Struktur Sistem Operasi Sebuah sistem yang besar dan kompleks seperti sistem operasi modern harus diatur dengan cara membagi task kedalam komponen-komponen kecil agar dapat berfungsi dengan baik dan mudah. 1. Strukur Monolitik/Struktur Sederhana Sistem operasi sebagai kumpulan prosedur yang dapat dipanggil oleh prosedur lain jika diperlukan. Prosedur ini terdapat dalam kernel atau inti. Menggunakan konsep kernel loadable modules guna pengembangan, pengujian dan fleksibilitas sistem operasi. Prosedur dapat saling dipanggil oleh prosedur lain didalam sistem jika diperlukan dan kernel berisi semua layanan yang disediakan sistem operasi untuk pengguna. Inisialisasinya, terbatas pada fungsional perangkat keras yang terbagi menjadi dua bagian yaitu kernel dan sistem program. Kernel terbagi menjadi serangkaian interface dan device driver dan menyediakan sistem file, penjadwalan CPU, manajemen memori dan fungsi- fungsi sistem operasi lainnya melalui sistem calls. Kelebihan struktur ini yaitu layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat. Kekurangannya : Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dilokalisasi. 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 pemrogramansatu bagian dari kernel menyebabkan matinya seluruh sistem. Evolusi : Kebanyakan UNIX sampai saat ini berstruktur monolitik. Meskipun monolitik, yaitu seluruh komponen/subsistem sistem operasi terdapat di satu ruang alamat tetapi secara rancangan adalah berlapis. Rancangan adalah berlapis yaitu secara logik satu komponen/subsistem merupakan lapisan lebih bawah dibanding lainnya dan menyediakan layanan-layanan untuk lapisan-lapisan lebih atas. Komponen-komponen tersebut kemudia dikompilasi dan dikaitkan (di-link) menjadi satu ruang alamat. Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas, kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules,yaitu: Bagian-bagian kernel terpenting berada di memori utama secara tetap. Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan (run time). Contoh : UNIX berstruktur monolitik, MS-DOS 2. Struktur Berlapis Sistem operasi yang dibentuk secara hierarki berdasar lapisan-lapisan, dimana lapisan bawah memberi layanan terhadap lapisan diatasnya. Lapisan yang paling bawah adalah perangkat keras dan yang paling tinggi adalah user interface. Sebuah laipsan adalah implementasi dari objek abstrak yang merupakan enkapsulasi dari data dan operasi yang bisa memanipulasi data tersebut. 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. Lapisan-lapisan dalam struktur berlapis ada 6, yaitu : Lapisan 5 The Operator = pemakai operator. Lapisan 4 user programs = aplikasi program pemakai Lapisan 3 I/O management = menyederhanakan akses I/O pada level atas. Lapisan 2 operator-opertaor communication = mengatur komunikasi antar proses. Lapisan 1 memory and drum management = mengatur alokasi ruang memori atau drum magnetic. Lapisan 0 processor allocation and multiprograming = mengatur alokasi pemroses dan switching, multiprograming dan pengaturan prosesor.
Contoh gambar penerapannya :
Kelebihan struktur ini : 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. Kekurangan struktur ini : Fungsi fungsi sistem operasi harus diberikan ke tiap lapisan secara hati hati. Contoh : Sistem Operasi THE (Technique Hogesschool Endiche).
Lapisan-Lapisan pada Sistem Operasi THE Layer Function Fungsi 5 The Operator Untuk operator 4 User Programs Untuk aplikasi program pemakai 3 I/O Management Untuk menyederhanakan akses I/O pada level atas 2 Operator-Process Communication Untuk mengatur komunikasi antar proses 1 Memory & Drum Management Untuk mengatur alokasi ruang memori / drum magnetic 0 Processor Allocation & Multiprogramming Untuk mengatur aloksi pemroses dan switching multiprogramming dan pengaturan prosesor Keterangan : Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta layanan lapisan n-1 untuk memberikan layanan bagi lapisan n+1. Tetapi lapisan n tidak dapat meminta layanan n+1. Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti sistem MULTICS yang terdiri 64 lapisan cincin dimana satu lapisan mempunyai fungsi 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.
3. Struktur Virtual Machine (Mesin Maya) Sistem operasi yang yang melakukan simulasi mesin nyata yang memberikan fleksibilitas tinggi dan memungkinkan sistem operasi yang berbeda dapat dijalankan pada mesin komputer tersebut atau dapat juga disebut sebagai operating system emulator. Mesin maya mempunyai sistem timesharing yang berfungsi untuk ,menyediakan kemampuan untuk multiprogramming dan perluasan mesin dengan antarmuka yang lebih mudah. Kelebihan struktur ini : Pengembangan sistem dikerjakan pada mesin virtual, termasuk didalamnya mesin fisik dan tidak mengganggu operasi sistem yang normal. Kekurangan struktur ini : Konsep mesin virtual sangat sulit untuk mengimplementasikan kebutuhan dan duplikasi yang tepat pada mesin yang sebenarnya. Contoh sistem operasi : Windows MT, Linux dengan DOSEMU.
Gambaran penerapannya :
4. Struktur Client Server Sistem operasi yang dibagi fungsinya menjadi proses yang menyediakan layanan (server) dan proses client memerlukan/meminta layanan (client) dalam memproses data. Proses client yang memerlukan layanan mengirim pesan ke server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta, mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi permintaan client dan tidak memulai dengan percakapan client. Kode dapat diangkat ke level tinggi, sehingga kernel dibuat sekecil mungkin dan semua tugas diangkat ke bagian proses pemaka. Kernel hanya mengatur komunikasi antara client dan server. Kernel yang ini popular dengan sebutan mikrokernel. Keuntungan struktur ini : Pengembangan dapat dilakukan secara modular. Kesalahan (bugs) di satu subsistem (diimplementasikan sebagai satu proses) tidak merusak subsistem-subsistem lain, sehingga tidak mengakibatkan satu sistem mati secara keseluruhan. Mudah diadaptasi untuk sistem tersebar. Kekurangan struktur ini : Layanan dilakukan lambat karena harus melalui pertukaran pesan. Pertukaran pesan dapat menjadi bottleneck. Tidak semua tugas dapat dijalankan di tingkat pemakai (sebagai proses pemakai). Contoh sistem operasi : Windows 2000 Server, Linux Gambaran penerapannya:
5. Struktur Berorientasi Objek Sistem operasi ini merealisasikan layanan sebagai kumpulan proses dan terstuktur serta memisahkan layanan yang disediakan dan implementasinya. Pada sistem yang berorientasi objek, layanan diimplementasikan sebagai kumpulan objek. Objek mengkapsulkan struktur data dan sekumpulan operasi pada struktur data itu. Tiap objek diberi tipe yang menanda di properti objek seperti proses, direktori, berkas, dan sebagainya. Dengan memanggil operasi yang didefinisikan di objek, data yang dikapsulkan dapat diakses dan dimodifikasi. Model ini sungguh terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya. Keuntungan struktur ini : Terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya. Kekurangan struktur ini : Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi berorientasi objek tetapi belum keseluruhan. Contoh sistem operasi : Eden, Choices, X-Kernel dan sebagainya.