Definisi
Sistem Operasi Komputer merupakan perangkat lunak yang berfungsi untuk mengaktifkan seluruh perangkat yang terpasang pada komputer sehingga masing-masingnya dapat saling berkomunikasi dan dapat digunakan oleh pengguna.
Komponen Sistem Operasi
1. Boot loader
Boot loader merupakan komponen yang bertanggungjawab untuk menjalankan kernel sistem operasi saat pertama kali komputer dinyalakan oleh pengguna, dengan cara memanggil kernel ke dalam memori untuk mengeksekusi semua fungsi sistem operasi.
2. Kernel
Kernel merupakan “jantung” dari sebuah sistem operasi. Di sinilah semua fungsi sistem operasi dilakukan. Mulai dari manajemen proses hingga manajemen keamanan dilakukan oleh kernel.
3. Shell
Shell merupakan antarmuka yang diberikan oleh sistem operasi kepada pengguna untuk berinteraksi dengan komputer. Dalam istilah Microsoft Windows, shell kadang-kadang disebut sebagai “Desktop”, yang lengkap dengan menu Start dan taskbar yang pertama kali dilihat di layar komputer saat dinyalakan.
4. Library
Library merupakan kumpulan fungsi dasar yang dapat dipanggil oleh aplikasi lainnya. Biasanya, sebagian besar library dibuat dokumentasinya oleh pembuat sistem operasi dan dijadikan sebuah standar untuk sistem operasi tersebut, atau menjadi antarmuka pemrograman aplikasi (application programming interface).
Fungsi Sistem Operasi
Meski shell adalah hal yang paling berguna bagi pengguna, sebuah sistem operasi komputer memiliki fungsi yang jauh melebihi “pelayanan” terhadap pengguna, karena juga dirinya harus memberikan “layanan” kepada perangkat keras. Berikut merupakan beberapa fungsi sistem operasi:
1. Manajemen Proses
Sistem operasi komputer modern saat awal-awal dikembangkan hanya mengizinkan pemrosesan secara antre dan bergantian, yang disebut dengan batch processing. Ini berarti sistem komputer tersebut hanya mampu menjalankan satu program saja pada satu waktu. Namun, sistem komputer modern mengizinkan banyak tugas untuk dikerjakan dalam satu waktu, atau multitasking, yang merujuk pada kemampuan sebuah sistem operasi untuk menjalankan banyak program dalam satu waktu.
Fitur multitasking yang dimiliki oleh sebuah sistem operasi pun akhirnya mengubah cara bagaimana pengguna menggunakan komputernya, dan tentu saja secara umum mengubah cara mereka bekerja dengan koomputer. Adalah sebuah hal yang umum bagi seorang pengguna untuk memiliki banyak program di dalam komputer, dan menyalakannya secara sekaligus–tentu selama perangkat kerasnya (terutama memori) mendukung. Ini berarti kita mampu membuka sebuah program e-mail, sebuah program perpesanan instan, membuka beberapa jendela pengolah kata dengan masing-masing satu dokumen yang terbuka, dan tentu saja membuka beberapa jendela halaman peramban Web, sementara pengguna tersebut dapat berpindah antara satu program ke program lainnya dengan mudah.
Meski saat seorang pengguna hanya menjalankan satu program saja, sebenarnya sistem operasi modern tetaplah bersifat multitasking. Ini dikarenakan sistem operasi menjalankan banyak tugas di latar belakang, yang merujuk pada program-program utilitas yang dibutuhkan oleh sistem atau aplikasi yang tidak terlihat secara langsung oleh pengguna. Contoh dari aplikasi utilitas yang berjalan di belakang layar adalah “Print Spooler“–sebuah program yang mampu menerima data yang akan dicetak dari aplikasi apapun, mulai dari program pengolah kata, editor teks, tabel berlajur, dan program apapun, dan kemudian mengirimkan data tersebut kepada printer untuk dicetak. Dalam sistem operasi modern, spooler sangatlah dibutuhkan, mengingat printer hanya dapat menerima data dengan kapasitas tertentu saja pada satu waktu. Bila memang program aplikasi pengolah kata yang ditugasi untuk mengirimkan data kepada printer, maka program pengolah kata tersebut akan sibuk sehingga tidak dapat digunakan oleh pengguna, hingga proses pencetakannya selesai. Nah, dengan memberikan tugas ini kepada sebuah “perantara”, pengguna pun dapat melanjutkan pekerjaannya secara langsung setelah memulai proses pencetakannya melalui aplikasi pengolah kata yang ia gunakan.
Sistem operasi bertanggung jawab untuk terus menjaga agar semua program dan aplikasi berjalan. Dan, fungsi ini disebut dengan manajemen proses (process management). Lho kok kenapa “proses“, bukan “program“? Hal ini dikarenakan sistem operasi hanya melihat “program” yang dijalankan oleh pengguna sebagai proses, mengingat satu program yang dijalankan oleh pengguna bisa saja memiliki beberapa proses, dan bisa saja pengguna menjalankan program yang sama dalam satu waktu berulang-ulang untuk membuka dokumen yang berbeda, dan masing-masing program tersebut dianggap oleh sistem operasi sebagai proses berbeda. Masing-masing jendela aplikasi yang terbuka tersebut merepresentasikan salinan dari program di dalam memori, dan bagi sistem operasi, tidaklah berpengaruh sama sekali, sebab program-program tersebut dianggap sebagai proses yang berbeda.
Mengingat sebagian besar komputer, khususnya komputer desktop dan notebook, hanya memiliki satu CPU saja, maka hanya satu proses saja yang dapat dijalankan oleh sistem operasi pada satu waktu saja. Lho, kok demikian? Bukannya kita dapat menjalankan aplikasi secara bebarengan? Ya, sistem operasi hanya dapat mencapai derajat multitasking melalui sebuah teknik yang disebut dengan pembagian waktu (time slicing). Ini berarti, sistem operasi akan menjalankan sebuah proses dalam waktu yang sangat singkat (kira-kira dihitung dalam waktu milidetik), untuk kemudian tidak menjalankannya untuk menjalankan aplikasi yang lainnya, juga dengan waktu yang singkat juga, dan seterusnya-dan seterusnya. Sebuah program yang terlihat berjalan secara kontinu terus menerus sebenarnya sedang dijalankan dan dihentikan.
Sistem operasi harus menentukan seberapa lama dan seberapa seringkah untuk menjalankan sebuah proses sebelum berpindah ke proses yang lainnya. Sehingga, dari sini para desainer membuat sebuah keaadan proses (process state) yang merujuk pada keadaan apa proses tersebut. Sebuah proses dapat dikatakan “Running“, “Ready“, dan “Blocked“. Sebuah proses yang masuk ke dalam keadaan “running” berarti proses tersebut sedang dijalankan eksekusinya oleh CPU, sementara proses yang masuk ke dalam keadaan “Ready” merujuk pada proses tersebut menunggu “giliran”nya untuk dieksekusi oleh CPU. Sebuah proses yang masuk ke dalam keadaan “Blocked” saat dirinya menunggu sebuah kejadian tertentu terlebih dahulu agar menjadi “ready”. Sebagai contoh, bila pengguna sedang meminta untuk menyimpan sebuah berkas dengan nama yang sama di sebuah direktori, maka program dapat memunculkan sebuah pesan “Are you sure want to overwrite the existing file?” dan menunggu respons dari pengguna. Hal ini disebabkan proses tersebut tidak dapat dilanjutkan hingga pengguna memilih keputusan tertentu, sementara di lain pihak masih banyak proses yang harus dikerjakan, sehingga sistem operasi pun tak mau membuang-buang CPU Time hanya untuk menunggu.
Panjang dari time-slice pun harus ditentukan secara hati-hati oleh para desainer sistem operasi. Penggantian eksekusi proses dari satu proses ke proses yang lain (atau lazim disebut sebagai task switching) jelas membutuhkan waktu. Hal ini dikarenakan pipeline yang dimiliki CPU harus dimulai lagi dari awal saat CPU tersebut berpindah ke proses yang lain. Selain itu, semua nilai dari variabel atau konstanta yang sudah disimpan di dalam register CPU harus disimpan terlebih dahulu dalam memori cache atau memori utama sistem sehingga saat proses tersebut mendapatkan gilirannya untuk memperoleh time-slice, maka CPU dapat melanjutkan eksekusinya yang sebelumnya dihentikan.
Secara umum, kinerja sistem operasi seperti ini dapat ditingkatkan dengan cara melakukan task switching sesedikit mungkin, yang berarti sama saja memperlama waktu time-slice yang dmiliki oleh sistem operasi. Masalahnya adalah meskipun time-slice dapat membuat CPU sibuk dengan semakin banyak kerjaan, kelihatannya oleh pengguna, sistem justru terasa lebih lamban, sehingga pengalaman pengguna terhadap sistem operasi pun menjadi terganggu. Hal ini karena ada jeda yang cukup lama antara saat pengguna menekan tombol tertentu dan hasil yang ditampakkan di dalam monitor. Oleh karena itu, manajemen proses menjadi hal yang sangat penting, dan sistem operasi pun harus secara hati-hati melakukan manajemen terhadap time slice agar mampu memberikan keseimbangan bagi performa yang lebih baik tanpa mengorbankan pengalaman pengguna.
Sistem operasi pun akan mencoba untuk menjadwal kapan penggunaan CPU untuk memberikan waktu lebih banyak bagi proses yang memang sedang membutuhkannya. Hal tersebut adalah tidak mudah bagi sistem operasi, karena tidak ada sebuah cara pun untuk memprediksi proses apa yang akan menjadi paling menyibukkan CPU. Karena itu, sistem operasi akan memantau penggunaan CPU dan menganggap penggunaan CPU dari sebuah proses yang telah lampau sebagai sebuah prediksi untuk penggunaan di masa yang akan datang–beberapa detik setelahnya icon biggrin Digital Literacy, Part 10: Sistem Operasi Komputer .
Proses-proses yang sedang berjalan tersebut akan dipaksa untuk mengantre, mirip seperti mengantre untuk mendapatkan jatah nasi icon biggrin Digital Literacy, Part 10: Sistem Operasi Komputer atau mendapatkan tiket bioskop. Saat sebuah proses mendapatkan gilirannya untuk dieksekusi, maka proses tersebut akan menggunakan CPU untuk waktu itu saja, sebelum proses tersebut kembali ada di urutan paling belakang. Bila memang proses tersebut tidak membutuhkan semua CPU Time yang ditawarkan kepadanya, seperti halnya proses-proses yang berjalan di latar belakang, maka proses tersebut akan langsung dipindahkan ke paling belakang lagi, sehingga akan membutuhkan waktu lebih lama lagi untuk mencapai depan lagi. Namun, meski demikian, proses tersebut masih tetap dieksekusi oleh CPU hingga time slice yang dialokasikan untuknya habis, dan dianggap sibuk, untuk akhirnya dikirim kembali ke antrean–mungkin di tengah. Dengan cara inilah proses yang “sibuk” dapat memperoleh akses terdepat di dalam antrean proses secara lebih sering.
2. Melayani Perangkat Lunak Utilitas
Beberapa program utilitas harus mengintegrasikan dirinya dengan sistem operasi agar dapat berfungsi dengan benar. Contohnya adalah program-program seperti antivirus yang akan memindai berkas dari virus dan malware lainnya sebelum berkas tersebut digunakan. Bila kita sedang berada di dalam program pengolah kata, dan meminta program untuk membukakan sebuah berkas tertentu, maka berkas tersebut haruslah “lolos uji” dari pemindaian yang dilakukan oleh sebuah antivirus, dan dinyatakan bersih dari malware, sebelum sistem operasi membukakan berkas tersebut untuk aplikasi yang sedang kita buka.
Nah, untuk melayani hal seperti ini, sistem operasi memberikan fungsi yang disebut dengan “hook.” Hook sendiri adalah sebuah permintaan yang ditujukan kepada sistem operasi untuk menjalankan program lain untuk sebuah operasi tertentu. Sebagai contoh, untuk program antivirus yang sedang berjalan dan membuat hook dengan sistem operasi akan bilang kepada sistem operasi “saat ente mau buka berkas, panggil ane dulu ya! icon biggrin Digital Literacy, Part 10: Sistem Operasi Komputer ”
3. Manajemen Memori
Fungsi lainnya dari sebuah sistem operasi adalah manajemen memori, yang merujuk kepada sebuah layanan yang berhubungan dengan alokasi memori utama yang ada di dalam sistem komputer itu sendiri. Secara mudahnya, pengatur memori (alias memory manager) akan menentukan alamat memori utama mana yang diasosiasikan dengan proses mana pada satu waktu tertentu. Semua proses yang sedang berjalan, dan tentu saja sistem operasi itu sendiri, haruslah membutuhkan memori yang cukup agar dapat berfungsi dengan baik.
Saat sebuah program pertama kali kita buka, maka program tersebut akan diberikan memori yang dianggap cukup oleh sistem operasi untuk menyimpan beberapa bagian program dan data. Seiring dengan berjalannya waktu, program tersebut bisa saja meminta ruangan lebih lagi dari memori. Permintaan terhadap memori tersebut yang dilakukan saat program sedang berjalan dinamakan juga dengan alokasi memori secara dinamis (dynamic memory allocation), dan fungsi ini hanya dimiliki oleh sistem operasi.
Satu masalah dengan skema alokasi memori dinamis seperti ini adalah bahwa program harus mengingat untuk membebaskan memori tersebut (melakukan dealokasi) saat mereka tidak lagi membutuhkannya sehingga memori yang sudah tidak dipakai olehnya dapat dipakai oleh program lainnya, dan semua program harus mengembalikan memori dinamis yang mereka minta sebelum ditutup. Bila sebuah program tidak menaati untuk membebaskan alokasi memorinya, maka kondisi tersebut dinamakan sebagai kebocoran memori (memory leak), yang merujuk pada sebuah blok memori yang sudah dialokasikan tapi tidak ada yang menggunakannya. Tentu saja karena memori yang belum dialokasikan berkurang jumlahnya, kondisi memory leak seperti ini akan menyebabkan turunnya performa sistem secara keseluruhan.
Kerumitan yang lainnya dari penggunaan skema alokasi memori dinamis seperti ini adalah beberapa lokasi memori digunakan bersama-sama oleh proses yang sedang berjalan. Saat hal ini terjadi, pekerjaan pengatur memori menjadi lebih berat mengingat dirinya harus memantau setiap penggunaan dari memori yang sudah dialokasikan, selain tentunya memori yang belum dialokasikan untuk digunakan. Saat satu proses memberikan sinyal kalau dirinya telah selesai menggunakan alamat memori, tidak berarti pengatur memori akan melakukan dealokasi terhadap memori tersebut. Bahkan, sistem operasi akan cenderung untuk menunggu hingga semua proses memberikan sinyal yang sama bahwa mereka sudah menggunakannya.
sumber : http://www.willysaef.com/2011/10/06/sistem-operasi-komputer/
http://www.jaringankomputer.org/macam-macam-sistem-operasi-komputer/
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment