Sistem operasi adalah suatu program yang mengontrol eksekusi program aplikasi dan berfungsi sebagai interface antara pengguna komputer dengan hardware komputer serta memiliki tujuan untuk kemudahan, efisiensi, dan kemampuan berkembang.
Program sistem yang paling penting adalah sistem operasi. Sistem operasi menyembunyikan detail hardware dari pemrogram dan menyediakan interface yang mudah bagi pengguna dalam menggunakan sebuah sistem. Sistem operasi berfungsi sebagai mediator, yang membuatnya menjadi lebih mudah bagi pemrogram dan program aplikasi dalam mengakses dan menggunakan fasilitas dan layanan. Secara umum layanan tersebut meliputi bidang-bidang: pembuatan program, eksekusi program, access ke perangkat I/O, access terkontrol ke file, deteksi error dan respons, dan accounting.
Komputer adalah kumpulan sumber daya yang berfungsi untuk pemindahan, penyimpanan, dan pengolahan data serta untuk mengontrol fungsi tersebut. Sistem operasi bertanggung jawab atas pengaturan sumber daya tersebut. Sistem operasi memiliki mekanisme control yang tidak biasa yaitu:
• Sistem operasi berfungsi dengan cara yang sama seperti software komputer biasa; merupakan sustu program yang dieksekusi oleh prosesor.
• Sering kali sistem operasi mengeluarkan kontrol dan harus bergantung pada prosesor untuk memungkinkannya memperoleh kembali kontrol.
Seperti program komputer lainnya, sistem operasi memiliki instruksi untuk prosesor. Perbedaan pentingnya adalah terdapat di dalam tujuan programnya. Sistem operasi mengarahkan prosesor dalam menggunakan sumber daya sistem lainnya dan dalam timeran eksekusi program lainnya.
Sebagian sistem operasi berada di dalam memori utama. Bagian tersebut meliputi kernel dan nucleus, yang berisi fungsi-fungsi yang paling sering dipakai dalam sistem operasi. Pada saat tertentu, digunakan untuk menyimpan program lain dan data. Alokasi sumber daya (memori utama) ini dikontrol secara bersama oleh sistem operasi dan hardware manajemen memori yang terdapat di dalam prosesor. Sistem operasi membuat keputusan kapan suatu perangkat I/O dapat digunakan oleh program yang sedang dieksekusi dan tujuan akses kontrol dan pemakai file. Prosesor sendiri merupakan sumber daya, dan sistem operasi harus menentukan jumlah waktu prosesor yang diberikan kepada eksekusi program pengguna tertentu.
Sistem operasi yang penting akan selalu berkembang dengan alasan: upgrade hardware serta hardware jenis baru, layanan baru, dan perbaikan. Kebutuhan untuk mengubah suatu sistem operasi menyebabkan persyaratan tertentu pada rancangannya. Dengan kata lain konstruksi sistem harus bersifat modular, dengan interface antarmodul yang ditentukan secara jelas, dan bahwa sistem harus didokumentasikan dengan baik.
2. Evolusi Sistem Operasi
Pengolahan Serial
Pada komputer lama, mulai akhir 1940-an hingga pertengahan 1950-an seorang pemrogram berinteraksi langsung dengan hardware komputer; pada saat itu belum ada sistem operasi. Mesin dijalankan dari sebuah console, yang berisi peraga cahaya, switch, beberapa jenis perangkat input, dan printer. Sistem lama memiliki dua masalah besar yaitu scheduling (penjadwalan) dan set up time (waktu set up).
Sistem Batch sederhana
Mesin-mesin lama sangat mahal sehingga sangat penting untuk memaksimalakan utilisasi. Waktu yang terbuang yang diakibatkan penjadwalan dan waktu set up tidak dapat diterima. Untuk meningkatkan utilisasi, dibuat konsep sistem operasi batch.
Konsep sistem operasi batch (dan sistem pertama untuk apa saja) tersebut muncul saat pertama kalinya pada pertwngahan 1950-an. Inti gagasan yang berada di balik teknik sistem operasi batch adalah penggunaan potongan software yang dikenal sebagai monitor. Dengan menggunakan sistem operasi seperti itu, pengguna tidak memiliki lagi akses langsung ke mesin. Pengguna mendelegasikan job yang tersimpan di dalam kartu atau pita kepada operator komputer yang akan melakukan batch job itu secara sekuential dan menaruh seluruh batch pada perangkat input yang akan digunakan oleh monitor. Monitor menangani masalah penjadwalan. Suatu batch job diantrikan, dan job dieksekusi secepat mungkin, dengan tanpa waktu idle. Pada setiap job, instruksi dimasukkan ke dalam bentuk primitive job control language (JCL). JCL merupakan bahasa pemrograman khusus untuk menyediakan instruksi bagi monitor.
Monitor atau sistem operasi batch hanya merupakan program komputer. Monitor mengandalkan kemampuan prosesor dalam membaca instruksi berbagai bagian memori utama agar secara bergantian mengambil dan melepaskan control. Untuk menghindari chaos sistem operasi juga membutuhkan feature hardware lain seperti: proteksi memori, timer, privileged instructions, dan interrupt.
Dengan memakai sistem operasi batch, waktu mesin secara bergantian melakukan eksekusi program pengguna dan eksekusi program monitor. Di sini terdapat dua pengorbanan: sebagin memori utama diberikan kepada monitor dan sebagian waktu mesin dipakai oleh monitor. Kedua pengorbanan tersebut merupakan bentuk-bentuk overhead. Walaupun adanya overhead tersebut, sistem batch sederhana akan meningkatkan utilisasi komputer.
Sistem Batch Multiprogrammed
Walupun dengan menggunakan pengurutan program secara otomatik yang dihasilkan oleh sistem operasi batch sederhana, prosesor masih sering berada dalam keadaan idle. Masalahnya adalah perangkat-perangkat I/O cukup lambat apabila dibandingkan dengan kecepatan prosesor.
Hal yang tidak efisien ini tidak perlu terjadi. Kita mengetahui bahwa terdapat memori yang cukup untuk menampung sistem operasi (resident monitor) dan sebuah program pengguna. Anggap terdapat ruang untuk sistem operasi dan dua program pengguna. Sekarang, pada saat sebuah job perlu menunggu I/O, proseor dapat beralih ke job lainnya, yang mempunyai kemungkinan besar tidak sedang menunggu I/O. selain itu, kita dapat memperbesar memori untuk menampung tiga, empat, atau lebih program dan dapat beralih di antara program-program itu. Proses tersebut dikenal sebgai multiprogramming, atau multitasking. Proses tersebut menjadi tema utama sistem operasi modern.
Sistem operasi multiprogramming cukup canggih apabila dibandingkan dengan sistem operasi tunggal, atau uniprogramming. Agar siap beroperasi, beberapa job itu harus selalu berada di memori utama, yang memerlukan sejenis manajemen memori. Apabila beberapa job berada dalam keadaan siap beroperasi, prosesor harus mengambil keputusan job mana yang akan beroperasi. Pengambilan keputusan ini memerlukan algoritma penjadwalan.
System Time-Sharing
Dengan menggunakan multiprogramming, pengolahan batch dapat menjadi efisien. Akan tetapi, untuk job yang jumlahnya banyak, sangat diperlukan suatu mode di mana pengguna dapat berinteraksi secra langsung dengan komputer. Saat ini, persyaratan fasilitas komputasi interaktif dapat dipenuhi dengan pemakaian mikrokomputer terdedikasi.
Seperti halnya multiprogramming yang mengizinkan prosesor untuk menangani beberapa batch job sekaligus, multiprogramming dapat digunakan untuk menangani beberapa job interaktif. Tekniknya dikenal sebagai time sharing, karena waktu prosesor dapat dibagi-pakai oleh sejumlah pengguna. Dalam sebuah sistem time-sharing, beberapa pengguna secara bersamaan mengakses sistem dengan melalui terminal, dengan sistem operasi yang mengilirkan eksekusi setiap program pengguna dalam sebuah burst pendek atau kuantum komputasi. Baik batch multiprogramming maupun time-sharing menggunakan multiprogramming.
Time-sharing dan multiprogram
mi
ng menimbulkan masalah baru pada sistem operasi. Apabila terdapat sejumlah job di dalam memori, job-job itu harus diproteksi agar saling mengganggu satu dengan yang lain, misalnya dengan saling mengubah data. Untuk pengguna interaktif yang berjumlah banyak, sistem file harus diproteksi sehingga hanya pengguna yang berhak memiliki akses ke file tertentu.
3. Hasil-Hasil Utama
Sistem operasi merupakan salah satu software yang paling kompleks. Kompleksitas ini menggambarkan tantangan untuk mengatasi kesulitan dan dalam beberapa hal merupakan persaingan agar dapat memenuhi tujuan-tujuan kemudahan, efisiensi, dan kemampuan untuk berkembang. [DENN802] berpendapat bahwa terdapat lima buah perolehan intelektual dalam pengembangan sistem operasi, yaitu:
• Proses
• Manajemen memori
• Proteksi informasi dan keamanan
• Panjadwalan dan manajemen sumber daya
• Struktur sistem
Setiap perolehan di atas ditandai oleh prinsip-prinsip, atau abstraksi, yang dikembangkan untuk mengatasi masalah kesulitan dalam praktik. Dengan menggabungkannya, kelima bidang tersebut akan mendapatkan rancangan penting dan masalah-masalah implementasi sistem operasi modern.
4. Karakteristik Sistem Operasi Modern
Selama beberapa tahun, telah terjadi evolusi gradual struktur dan kemampuan sistem operasi. Namun, dalam beberapa tahun terakhir ini sejumlah elemen-elemen rancangan yang baru telah diperkenalkan baik ke dalam sistem operasi yang baru maupun versi baru sistem operasi yang telah ada untuk membuat perubahan besar dalam sifat sistem operasi. Salah satu di antara driver hardware yang penting adalah mesin multiprosesor, yang kecepatannya sangat meningkat, penyambungan jaringan kerja yang berkecepatan tinggi, dan peningkatan ukuran bermacam-macam perangkat penyimpan memori. Di bidang aplikasi, aplikasi multimedia, akses internet dan web, dan komputasi client/server telah memberikan pengaruhnya terhadap rancangan sistem operasi.
Kecepatan perubahan dalam kebutuhan akan sistem operasi tidak hanya memerlukan modifikasi atau perbaikan arsitektur yang telah ada saja, namun cara-cara baru dalam mengorganisasikan sistem operasi. Berbagai pendekatan dan elemen rancangan telah dicoba baik pada sistem operasi eksperimental maupun sistem operasi komersial. Namun pendekatan dan elemen rancangan itu pada dasarnya dapat digolongkan menjadi:
• Arsitektur microkernel
• Multithreading
• Multiprocessing simetris
• Sistem operasi terdistribusi
• Rancangan berorientasi objek
Sampai saat ini, sebagian besar sistem operasi berfeature kernel monolitik berukuran besar. Umumnya apa yang dianggap sebagai fungsionalitas sistem operasi disediakan dalam kernel-kernel yang besar ini, termasuk di dalamnya penjadwalan, sistem file, jaringan kerja, driver-driver perangkat, manajemen memori, dan lain-lain. Layanan OS lainnya disediakan oleh proses, kadang-kadang disebut server, yang beroperasi pada mode pengguna dan diperlukan seperti aplikasi lainnya oleh microkernel. Pendekatan microkernel menyederhanakan implementasi, memberikan fleksibilitas, dan sangat cocok untuk lingkungan terdistribusi. Pada dasarnya, microkernel berinteraksi dengan proses server local dan jauh (remote) dengan cara yang sama, yang memberikan fasilitas pembentukan sistem terdistribusi.
Inovasi yang terbaru dalam rancangan sistem operasi adalah pemakaian teknologi berorientasi objek. Rancangan berorientasi objek memberikan disiplin ke proses tentang penambahan pengembangan modular ke kernel yang kecil. Pada tingkat sistem operasi, struktur berbasis objek memungkinkan pemrogram untuk menyesuaikan sistem operasi tanpa menganggu integritas sistem. Orientasi objek juga memudahkan pembuatan tool terdistribusi dan sistem operasi terdistribusi sangat besar.
Gambaran Umum Windows 2000 (W2K)
W2K dikembangkan oleh Microsoft pertama kali untuk komputer pribadi IBM, dan direferensikan sebagai MS-DOS atau PC-DOS. Versi awal, DOS 1.0, diterbitkan pada Agustus 1981. DOS ini terdiri dari 4000 baris kode sumber bahasa assembler dan beroperasi pada 8 kilobytememori yang menggunakan mikroprosesor Intel 8086.
Pada 2000, Microsoft memperkenalkan upgrade besar-besar berikutnya, yaitu Windows 2000 dengan arsitektur executive dan microkernel yang pada dasarnya sama seperti pada NT 4.0, namun telah ditambahkan feature baru. Penekanan dalam W2K adalah penambahan layanan dan fungsi unutk mendukung pengolahan terdistribusi. Elemen sentral feature baru W2K adalah Active direktori, yang merupakan suatu layanan direktori terdistribusi yang mampu memetakan nama sembarang objek menjadi suatu bentuk informasi tentang objek yang bersangkutan.
Seperti semua sistem operasi, W2k memisahkan software yang berorientasi aplikasi dengan software sistem operasi. Berikutnya, dengan memasukkan driver device microkernel, dan abstraksi dari lapisan hardware berjlan dalam mode kernel. Software model kernel mengakses sistem data dank e hardware. Software sisia, berjalan da;lam model user, memiliki akses terbatas ke sistem data.
Salah satu tujuan rancangan W2K adalah portabilitas-yaitu dapat bekerja tidak hanya pada mesin-mesin intel saja, namun juga pada bermacam-macam platform hardware. Untuk mencapai tujuan ini, W2K executive melihat hardware sebagai sesuatu yang sama, dengan menggunakan struktur yang berlapis.
W2K sangat mengandalkan konsep rancangan berorientasi objek. Pendekatan ini memberikan kemudahan penggunaan bersama sumber daya dan data oleh proses dan proteksi sumber daya dari akses yang tidak berhak. W2K bukanlah sistem operasi yang sepenuhnya berorientasi objek akan tetapi W2K menjelaskan kekuatan teknologi berorientasi objek dan mewakili adanya peningkatan kecenderungan kearah teknologi ini di dalam rancangan sistem operasi.
Sistem UNIX Tradisional
Pada awalnya UNIX dibuat di Bell labs dan telah dioperasikan pada PDP-7 pada 1970. Beberapa orang yang terlibat di Bell Labs juga telah berpartisispasi dalam proyek kerja sama yang dilakukan di proyek MAC MIT. Proyek itu telah menghasilkan CTSS pertama dan kemudian Multics. Sementara itu, pembuatan UNIX di Bell Labs telah berhasil menciptakan seri versi-versi UNIX.
Sistem UNIX tradisional ini dirancang untuk beroperasi pada prosesor tunggal dan kurang memiliki kemampuan dalam melindungi struktur datanya dari akses bersamaan yang dilakukan oleh prosesor jamak. Kernel-nya tidak serba guna, yang mendukung jenis sistem file tunggal, kebijakan penjadwalan proses, dan format executable file. Kernel UNIX tradisional tidak dirancang untuk dapat dikembangakan dan hanya memiliki sedikit fasilitas untuk pemakaian ulang kode. Akibatnya, saat feature baru telah ditambahkan ke berbagai versi UNIX, banyak kode yang harus ditambahkan, yang akan menyebabkan kernel yang besar dan tidak modular.
Sistem UNIX Modern
Dengan berkembangnya UNIX, jumlah implementasi pun berkembang, di mana setiap aplikasi itu menyediakan feature yang berguna. Terdapat kebutuhan untuk memproduksi implementasi baru yang dapat mengabungkan inovasi penting yang jumlahnya banyak, menambahkan feature rancangan OS modern lainnya, dan menghasilkan arsitektur yang lebih modular. Beberapa contoh sistem UNIX modern adalah:
System V Release4 (SVR4)
Dibuat bersama oleh AT&T dan Sun Microsystems, mengkombinasikan feature-feature yang dimiliki SVR3, 4.3BSD, Microsoft Xenix System V, dan SunOS. SVR4 hampir seluruh merupakan penulisan ulang kernel System V dan menghasilkan implementasi yang bersih. Feature baru dalam release ini mencakup dukungan real-time processing, kelas-kelas penjadwalan proses, seca
ra dinamis mengalokasikan struktur data, manajemen virtual memori, sistem file virtual, dan preemptive kernel.
Solaris 2.x
Solaris adalah UNIX berbasis SVR4 yang dibuat Sun. Implementasi Solaris versi 2 memiliki seluruh feature SVR4 ditambah sejumlah feature-feature tingkat lanjut lainnya, misalnya kernel yang sepenuhnya preemptable dan multithreaded, dukungan penuh bagi SMP, dan interface dengan sistem file yang berorientasi objek.
4.4BSD
Seri UNIX Berkeley Software Development telah berperan penting dalam pengembangan teori rancangan OS. 4.xBSD sangat banyak digunakan di dalam lingkungan akademik dan ditujukan sebagai basis sejumlah produk UNIX komersial.
LINUX
Linux awalnya merupakan sebuah varian dari UNIX untuk arsitektur IBM. Versi awal ditulis oleh Linus Torvalds, seorang mahasiswa ilmu komputer dari Finlandia. Torvalds memposting versi awal dari Linux di internet tahun 1991. Sejak itu, sejumlah orang dengan berkolaborasi melalui internet, telah mengkontribusikan pengembangan Linux, yang seluruhnya di bawah control dari Torvalds.
Linux adalah modular yang tinggi dan mudah dikonfigurasikan. Ini memudahkan untuk meningkatkan kinerja secara optimal dari sebuah variants dari platform hardware. Ditambah dengan sumber kode yang tersedia, vendor dapat meningkatkan aplikasi dan utilitas untuk memenuhi persyaratan kebutuhan.
[Mukhlish muchad Fuadi: 2nd Semester 2006]