Copyright (Hak Cipta) © 2003, 2004 Masyarakat Digital Gotong Royong (MDGR).
Silakan menyalin, mengedarkan, dan/atau, memodifikasi bagian dari dokumen – $Revision: 1.9.2.10 $ – – yang dikarang oleh Masyarakat Digital Gotong Royong (MDGR), sesuai dengan ketentuan "GNU Free Documentation License versi 1.1" atau versi selanjutnya dari FSF (Free Software Foundation); tanpa bagian "Invariant", tanpa teks "Front-Cover", dan tanpa teks "Back-Cover". Lampiran A ini berisi salinan lengkap dari lisensi tersebut. Ketentuan ini TIDAK berlaku untuk bagian dan/atau kutipan yang bukan dikarang oleh Masyarakat Digital Gotong Royong (MDGR).

Buku ini dipersembahkan dari Masyarakat Digital Gotong Royong (MDGR), oleh Masyarakat Digital Gotong Royong (MDGR), untuk siapa saja yang ingin mempelajari Sistem Operasi dari sebuah komputer. Buku ini bukan merupakan karya individual, melainkan merupakan hasil keringat dari ratusan peserta Masyarakat Digital Gotong Royong (MDGR)! Masyarakat Digital Gotong Royong (MDGR) ini merupakan Gabungan Kelompok Kerja 21–28 Semester Genap 2002/2003, 41–49 Semester Ganjil 2003/2004, dan 51 Semester Genap 2003/2004, Mata Kuliah IKI-20230 Sistem Operasi, Fakultas Ilmu Komputer Universitas Indonesia (http://rms46.vlsm.org/2/101.html -- http://www.cs.ui.ac.id/), yang namanya tercantum berikut ini:
Kelompok 21. Kelompok ini merupakan penjamin mutu yang bertugas mengkoordinir kelompok 22-28 pada tahap pertama dari pengembangan buku ini. Kelompok ini telah mengakomodir semua ide dan isu yang terkait, serta proaktif dalam menanggapi isu tersebut. Tahap ini cukup sulit dan membingungkan, mengingat sebelumnya belum pernah ada tugas kelompok yang dikerjakan secara bersama dengan jumlah anggota yang besar. Anggota dari kelompok ini ialah: Dhani Yuliarso (Ketua), Fernan, Hanny Faristin, Melanie Tedja, Paramanandana D.M., Widya Yuwanda.
Kelompok 22. Kelompok ini merancang bab 1 (lama) yang merupakan penjelasan umum perihal sistem operasi serta perangkat keras/lunak yang terkait. Anggota dari kelompok ini ialah: Budiono Wibowo (Ketua), Agus Setiawan, Baya U.H.S., Budi A. Azis Dede Junaedi, Heriyanto, Muhammad Rusdi.
Kelompok 23. Kelompok ini merancang bab 2 (lama) yang menjelaskan managemen proses, thread, dan penjadualan. Anggota dari kelompok ini ialah: Indra Agung (Ketua), Ali Khumaidi, Arifullah, Baihaki Ageng Sela, Christian K.F. Daeli, Eries Nugroho, Eko Seno P., Habrar, Haris Sahlan.
Kelompok 24. Kelompok ini merancang bab 3 (lama) yang menjelaskan komunikasi antar proses dan deadlock. Anggota dari kelompok ini ialah: Adzan Wahyu Jatmiko (Ketua), Agung Pratomo, Dedy Kurniawan, Samiaji Adisasmito, Zidni Agni.
Kelompok 25. Kelompok ini merancang bab 4 (lama) yang menjelaskan segala hal yang berhubungan dengan memori komputer. Anggota dari kelompok ini ialah: Nasrullah (Ketua), Amy S. Indrasari, Ihsan Wahyu, Inge Evita Putri, Muhammad Faizal Ardhi, Muhammad Zaki Rahman, N. Rifka N. Liputo, Nelly, Nur Indah, R. Ayu P., Sita A.R.
Kelompok 26. Kelompok ini merancang bab 5 (lama) yang menjelaskan segala hal yang berhubungan dengan managemen sistem berkas. Anggota dari kelompok ini ialah: Rakhmad Azhari (Ketua), Adhe Aries P., Adityo Pratomo, Aldiantoro Nugroho, Framadhan A., Pelangi, Satrio Baskoro Y.
Kelompok 27. Kelompok ini merancang bab 6 (lama) yang menjelaskan segala hal yang berhubungan dengan managemen I/O dan Disk. Anggota dari kelompok ini ialah: Teuku Amir F.K. (Ketua), Alex Hendra Nilam, Anggraini Widjanarti, Ardini Ridhatillah, R. Ferdy Ferdian, Ripta Ramelan, Suluh Legowo, Zulkifli.
Kelompok 28. Kelompok ini merancang bab 7 (lama) yang menjelaskan segala hal yang berhubungan dengan Studi Kasus GNU/Linux. Anggota dari kelompok ini ialah: Christiono H3ndra (Ketua), Arief Purnama L.K., Arman Rahmanto, Fajar, Muhammad Ichsan, Rama P. Tardan, Unedo Sanro Simon.
Kelompok 41. Kelompok ini menulis ulang bab 1 yang merupakan pecahan bab 1 yang lama. Anggota dari kelompok ini ialah: Aristo (Ketua), Ahmad Furqan S K., Obeth M S.
Kelompok 42. Kelompok ini menulis ulang bab 2 yang merupakan bagian akhir dari bab 1 yang lama. Anggota dari kelompok ini ialah: Puspita Kencana Sari (Ketua), Retno Amelia, Susi Rahmawati, Sutia Handayani.
Kelompok 43. Kelompok ini menulis ulang/memperbaiki bab 2 lama (kini bab 3) yang membahas managemen proses, thread, dan penjadualan. Anggota dari kelompok ini ialah: Agus Setiawan (Ketua), Adhita Amanda, Afaf M, Alisa Dewayanti, Andung J Wicaksono, Dian Wulandari L, Gunawan, Jefri Abdullah, M Gantino, Prita I.
Kelompok 44. Kelompok ini menulis ulang/memperbaiki bab 3 lama (kini bab 4) yang membahas komunikasi antar proses dan deadlock. Anggota dari kelompok ini ialah: Arnold W (Ketua), Antonius H, Irene, Theresia B, Ilham W K, Imelda T, Dessy N, Alex C.
Kelompok 45. Kelompok ini menulis ulang/memperbaiki bab 4 lama (kini bab 5) yang membahas segala hal yang berhubungan dengan memori komputer. Anggota dari kelompok ini ialah: Bima Satria T (Ketua), Adrian Dwitomo, Alfa Rega M, Boby, Diah Astuti W, Dian Kartika P, Pratiwi W, S Budianti S, Satria Graha, Siti Mawaddah, Vita Amanda.
Kelompok 46. Kelompok ini menulis ulang/memperbaiki bab 5 lama (kini bab 6) yang membahas segala hal yang berhubungan dengan managemen sistem berkas. Anggota dari kelompok ini ialah: Josef (Ketua), Arief Aziz, Bimo Widhi Nugroho, Chrysta C P, Dian Maya L, Monica Lestari P, Muhammad Alaydrus, Syntia Wijaya Dharma, Wilmar Y Ignesjz, Yenni R.
Kelompok 47. Kelompok ini menulis ulang/memperbaiki bab 6 lama (kini bab 7) yang membahas segala hal yang berhubungan dengan managemen I/O dan Disk. Anggota dari kelompok ini ialah: Bayu Putera (Ketua), Enrico, Ferry Haris, Franky, Hadyan Andika, Ryan Loanda, Satriadi, Setiawan A, Siti P Wulandari, Tommy Khoerniawan, Wadiyono Valens, William Hutama.
Kelompok 48. Kelompok ini menulis ulang/memperbaiki bab 6 lama (kini bab 7) yang membahas segala hal yang berhubungan dengan Studi Kasus GNU/Linux. Anggota dari kelompok ini ialah: Amir Murtako (Ketua), Dwi Astuti A, M Abdushshomad E, Mauldy Laya, Novarina Azli, Raja Komkom S.
Kelompok 49. Kelompok ini merupakan koordinator kelompok 41-48 pada tahap kedua pengembangan buku ini. Kelompok ini selain kompak, juga sangat kreatif dan inovatif. Anggota dari kelompok ini ialah: Fajran Iman Rusadi (Ketua), Carroline D Puspa.
Kelompok 51. Kelompok ini bertugas untuk memperbaiki bab 4 yang membahas komunikasi antar proses dan deadlock. Anggota dari kelompok ini ialah: V.A. Pragantha (Ketua), Irsyad F.N., Jaka N.I., Maharmon, Ricky, Sylvia S.
Buku ini merupakan hasil karya Masyarakat Digital Gotong Royong (MDGR) Fakultas Ilmu Komputer Universitas Indonesia (Fasilkom UI). Kelompok Kerja 21-28 mengawali penulisan buku ini, lalu Kelompok Kerja 41-49, 51 melakukan revisi dan perbaikan. Tujuan utama penulisan buku ini ialah untuk dimanfaatkan sendiri sebagai rujukan utama pada mata ajar IKI-20230 Sistem Operasi di Fakultas Ilmu Komputer Universitas Indonesia.
Buku ini mencakup delapan pokok bahasan bidang Sistem Operasi. Setiap pokok bahasan dipisahkan ke dalam bab yang tersendiri, yang kemudian dibagi menjadi beberapa sub-pokok bahasan. Setiap sub-pokok bahasan dirancang untuk mengisi satu jam tatap muka kuliah. Buku yang terdiri dari 52 sub-pokok bahasan ini, sehingga cocok untuk sebuah mata ajar dengan bobot empat Satuan Kredit Semester (SKS).
Pembahasan buku ini diawali dengan pengenalan Konsep Dasar Sistem Komputer (Bab 1). Bab ini akan membahas tiga sub-pokok bahasan, yaitu Pengenalan Sistem Operasi Komputer, Pengenalan Perangkat Keras Komputer, serta Aspek Lainnya seperti: Proteksi, Keamanan, Jaringan. Bab ini bersifat pengulangan hal-hal yang menjadi prasyarat untuk buku ini. Jika mengalami kesulitan memahami bab ini, sebaiknya mendalami kembali subyek yang berhubungan dengan Pengantar Organisasi Komputer serta Pengantar Struktur Data.
Bab 2 akan membahas Konsep Dasar Sistem Operasi. Ini merupakan bab yang paling penting dari buku ini.
Bab 3 akan membahas Proses dan Penjadualan.
Bab 4 akan membahas Sinkronisasi dan Deadlock.
Bab 5 akan membahas Managemen Memori.
Bab 6 akan membahas Sistem Berkas.
Bab 7 akan membahas I/O.
Akhirnya, Bab 8 akan membahas sebuah studi kasus yaitu sistem GNU/Linux.
Setiap bab berisi soal-soal latihan agar para pembaca dapat mengulas kembali pembahasan pada bab tersebut dan mengevaluasi sejauh mana pengetahuan mengenai bab tersebut. Gambar dipilih sedemikian rupa sehingga dapat memberikan ilustrasi yang membantu pembaca untuk lebih memahami pembahasan.
Kami menyadari bahwa pada buku ini sangat
berbau buku karya Schilberschatz dan kawan-kawan.
Kebanyakan sub-pokok bahasan buku ini memang berbasis kerangka kerja
(framework) buku tersebut.
Diharapkan secara perlahan, bau tersebut akan
pudar pada revisi-revisi yang mendatang.
Silakan menyampaikan kritik/tanggapan/usulan anda ke
<writeme04 <@T> yahoogroups DOT com>.
Sebuah komputer modern merupakan sistem yang kompleks. Komputer tersebut, secara fisik terdiri dari beberapa bagian seperti prosesor, memori, disk, pencetak (printer), serta perangkat lainnya. Sebuah komputer dapat menjalankan berbagai perangkat lunak aplikasi (software aplication). Sebuah sistem operasi merupakan perangkat lunak penghubung antara perangkat keras (hardware) dengan perangkat lunak aplikasi tersebut di atas.
Secara singkat, bab pendahuluan ini akan memberikan gambaran umum perihal komponen-komponen komputer tersebut. Mula-mula, akan diperkenalkan apa yang dimaksud dengan sistem operasi. Uraian yang lebih lengkap akan dilanjutkan pada bab berikutnya (Bab 2). Selanjutnya, akan diuraikan aspek-aspek yang terkait dengan perangkat keras komputer. Aspek-aspek tersebut diperlukan untuk memahami konsep-konsep sistem operasi yang akan dijabarkan dalam buku ini. Selain itu, akan dibahas perihal proteksi perangkat keras, keamanan, serta jaringan komputer. Tentunya tidak dapat diharapkan bahwa pembahasan yang dalam. Rincian lanjut, sebaiknya dilihat pada rujukan yang berhubungan dengan "Pengantar Organisasi Komputer", "Pengantar Struktur Data", serta "Pengantar Jaringan Komputer".
Para pembaca sepertinya pernah mendengar istilah "sistem operasi". Mungkin pula pernah berhubungan secara langsung atau pun tidak langsung dengan istilah tersebut. Namun, belum tentu dapat menjabarkan perihal apa yang sebetulnya dimaksud dengan kata "sistem operasi". Sebaliknya, banyak pula yang pernah mendengar merek dagang "WindowsTM [1])" atau pun istilah "GNU/Linux [2])", lalu mengidentikkan nama Windows TM atau GNU/Linux dengan istilah "sistem operasi" tersebut. Mendefinisikan istilah "sistem operasi" mungkin merupakan hal yang mudah, namun mungkin juga merupakan hal yang sangat ribet!
Sistem operasi merupakan salah satu komponen utama dari sebuah "sistem komputer". Komponen komputer lainnya ialah "perangkat keras", "perangkat lunak aplikasi", dan "para pengguna" (Gambar 1-1). "Perangkat keras" merupakan penyedia sumber daya untuk komputasi. Perangkat keras merupakan benda konkret yang dapat dilihat dan disentuh. Perangkat lunak merupakan sarana yang memberitahukan perangkat keras apa yang harus dikerjakannya. Berbeda dengan perangkat keras, perangkat lunak merupakan benda abstrak yang hanya dapat dilihat dari sudut apa yang dilakukannya terhadap perangkat keras. Perangkat lunak dibagi lagi menjadi dua bagian yaitu "sistem operasi" dan "program aplikasi". Program aplikasi merupakan perangkat lunak yang menentukan bagaimana sumber daya digunakan untuk menyelesaikan masalah para pengguna. Terakhir, istilah "pengguna komputer" yang dimaksud di sini dapat berupa manusia, program aplikasi lain, atau pun komputer lain.
Secara lebih rinci, sistem operasi didefinisikan sebagai sebuah program yang mengatur perangkat keras komputer, dengan menyediakan landasan untuk aplikasi yang berada di atasnya, serta bertindak sebagai penghubung antara para pengguna dengan perangkat keras. Sistem operasi bertugas untuk mengendalikan (kontrol) serta mengkoordinasikan pengunaan perangkat keras untuk berbagai program aplikasi untuk bermacam-macam pengguna. Dengan demikian, sebuah sistem operasi bukan merupakan bagian dari perangkat keras komputer, dan juga bukan merupakan bagian dari perangkat lunak aplikasi komputer, apalagi tentunya bukan merupakan bagian dari para pengguna komputer.
Sistem operasi berada di antara perangkat keras komputer dan perangkat aplikasinya. Namun, bagaimana caranya menentukan secara pasti, letak perbatasan antara "perangkat keras komputer" dan "sistem operasi", dan terutama antara "perangkat lunak aplikasi" dan "sistem operasi"? Umpamanya, apakah "Internet Explorer TM[3])" merupakan aplikasi atau bagian dari sistem operasi? Siapakah yang berhak menentukan perbatasan tersebut? Apakah para pengguna? Apakah perlu didiskusikan habis-habisan melalui milis? Apakah perlu diputuskan oleh sebuah pengadilan? Apakah para politisi (busuk?) sebaiknya mengajukan sebuah Rencana Undang Undang Sistem Operasi terlebih dahulu? Ha!
Pengertian dari sistem operasi dapat dilihat dari berbagai sudut pandang. Dari sudut pandang pengguna, sistem operasi merupakan sebagai alat untuk mempermudah penggunaan komputer. Dalam hal ini sistem operasi seharusnya dirancang dengan mengutamakan kemudahan penggunaan, dibandingkan mengutamakan kinerja atau pun utilisasi sumber daya. Sebaliknya dalam lingkungan berpengguna-banyak (multi-user), sistem operasi dapat dipandang sebagai alat untuk memaksimalkan penggunaan sumber daya komputer. Akan tetapi pada sejumlah komputer, sudut pandang pengguna dapat dikatakan hanya sedikit atau tidak ada sama sekali. Misalnya embedded computer pada peralatan rumah tangga seperti mesin cuci dan sebagainya mungkin saja memiliki lampu indikator untuk menunjukkan keadaan sekarang, tetapi sistem operasi ini dirancang untuk bekerja tanpa campur tangan pengguna.
Dari sudut pandang sistem, sistem operasi dapat dianggap sebagai alat yang menempatkan sumber daya secara efisien (Resource Allocator). Sistem operasi ialah manager bagi sumber daya, yang menangani konflik permintaan sumber daya secara efisien. Sistem operasi juga mengatur eksekusi aplikasi dan operasi dari alat I/O. Fungsi ini dikenal juga sebagai program pengendali (Control Program). Lebih lagi, sistem operasi merupakan suatu bagian program yang berjalan setiap saat yang dikenal dengan istilah kernel.
Dari sudut pandang tujuan sistem operasi, sistem operasi dapat dipandang sebagai alat yang membuat komputer lebih nyaman digunakan (convenient) untuk menjalankan aplikasi dan menyelesaikan masalah pengguna. Tujuan lain sistem operasi ialah membuat penggunaan sumber daya komputer menjadi efisien.
Dapat disimpulkan, bahwa sistem operasi merupakan komponen penting dari setiap sistem komputer. Akibatnya, pelajaran "sistem operasi" selayaknya merupakan komponen penting dari sistem pendidikan berbasis "ilmu komputer".
Konsep sistem operasi dapat lebih mudah dipahami, jika juga memahami jenis perangkat keras yang digunakan. Demikian pula sebaliknya. Dari sejarah diketahui bahwa sistem operasi dan perangkat keras saling mempengaruhi dan saling melengkapi. Struktur dari sebuah sistem operasi sangat tergantung pada perangkat keras yang pertama kali digunakan untuk mengembangkannya. Sedangkan perkembangan perangkat keras sangat dipengaruhi dari hal-hal yang diperlukan oleh sebuah sistem operasi. Dalam bagian-bagian berikut ini, akan diberikan berbagai ilustrasi perkembangan dan jenis sistem operasi beserta perangkat kerasnya.
Arsitektur komputer tradisional terdiri dari empat komponen utama yaitu "Prosesor", "Memori Penyimpanan", "Masukan" (Input), dan "Keluaran" (Output). Model tradisional tersebut sering dikenal dengan nama arsitektur von Neumann (Gambar 1-2). Pada saat awal, komputer berukuran sangat besar sehingga komponen-komponennya dapat memenuhi sebuah ruangan yang sangat besar. Sang pengguna -- menjadi programmer yang sekali gus merangkap menjadi menjadi operator komputer -- juga bekerja di dalam ruang komputer tersebut.
Walau pun berukuran besar, sistem tersebut diketegorikan sebagai "komputer pribadi" (PC). Siapa saja yang ingin melakukan koputasi; harus memesan/antri untuk mendapatkan alokasi waktu (rata-rata 30-120 menit). Jika ingin melakukan kompilasi Fortran, maka pengguna pertama kali akan me-load kompilator Fortran, yang diikuti dengan "load" program dan data. Hasil yang diperoleh, biasanya berbentuk cetakan (print-out).
Timbul beberapa masalah pada sistem PC tersebut. Umpama, alokasi pesanan harus dilakukan dimuka. Jika pekerjaan rampung sebelum rencana semula, maka sistem komputer menjadi "idle"/ tidak tergunakan. Sebaliknya, jika perkerjaan rampung lebih lama dari rencana semula, para calon pengguna berikutnya harus menunggu hingga pekerjaan selesai. Selain itu, seorang pengguna kompilator Fortran akan beruntung, jika pengguna sebelumnya juga menggunakan Fortran. Namun, jika pengguna sebelumnya menggunakan Cobol, maka pengguna Fortran harus me-"load" Masalah ini ditanggulangi dengan menggabungkan para pengguna kompilator sejenis ke dalam satu kelompok batch yang sama. Medium semula yaitu punch card diganti dengan tape.
Selanjutnya, terjadi pemisahan tugas antara programer dan operator. Para operator biasanya secara eksklusif menjadi penghuni "ruang kaca" seberang ruang komputer. Para programer yang merupakan pengguna (users), mengakses komputer secara tidak langsung melalui bantuan para operator. Para pengguna mempersiapkan sebuah job yang terdiri dari program aplikasi, data masukan, serta beberapa perintah pengendali program. Medium yang lazim digunakan ialah kartu berlubang (punch card). Setiap kartu dapat menampung informasi satu baris hingga 80 karakter Set kartu job lengkap tersebut kemudian diserahkan kepada para operator.
Perkembangan sistem operasi dimulai dari sini, dengan memanfaatkan sistem batch (Gambar 1-3). Para operator mengumpulkan job-job yang mirip yang kemudian dijalankan secara berkelompok. Umpama, job yang memerlukan kompilator Fortran akan dikumpulkan ke dalam sebuah batch bersama dengan job-job lainnya yang juga memerlukan kopilator Fortran. Setelah sebuah kelompok job rampung, maka kelompok job berikutnya akan dijalankan secara otomatis.
Pada perkembangan berikutnya, diperkenalkan konsep Multiprogrammed System. Dengan sistem ini job-job disimpan di main memory di waktu yang sama dan CPU dipergunakan bergantian. Hal ini membutuhkan beberapa kemampuan tambahan yaitu: penyediaan I/O routine oleh sistem, pengaturan memori untuk mengalokasikan memory pada beberapa Job, penjadualan CPU untuk memilih job mana yang akan dijalankan, serta pengalokasian perangkat keras lain (Gambar 1-4).
Peningkatan lanjut dikenal sistem "bagi waktu"/"tugas ganda"/"komputasi interaktif" (Time-Sharing System/Multitasking - Interactive Computing). Sistem ini, secara simultan dapat diakses lebih dari satu pengguna. CPU digunakan bergantian oleh job-job di memori dan di disk. CPU dialokasikan hanya pada job di memori dan job dipindahkan dari dan ke disk. Interaksi langsung antara pengguna dan komputer ini melahirkan konsep baru, yaitu response time yang diupayakan wajar agar tidak terlalu lama menunggu.
Hingga akhir tahun 1980-an, sistem komputer dengan kemampuan yang "normal", lazim dikenal dengan istilah main-frame. Sistem komputer dengan kemampuan jauh lebih rendah (dan lebih murah) disebut "komputer mini". Sebaliknya, komputer dengan kemampuan jauh lebih canggih disebut komputer super (super-computer). CDC 6600 merupakan yang pertama dikenal dengan sebutan komputer super menjelang akhir tahun 1960-an. Namun prinsip kerja dari sistem operasi dari semua komputer tersebut lebih kurang sama saja.
Komputer klasik seperti diungkapkan di atas, hanya memiliki satu prosesor. Keuntungan dari sistem ini ialah lebih mudah diimplementasikan karena tidak perlu memperhatikan sinkronisasi antar prosesor, kemudahan kontrol terhadap prosesor karena sistem proteksi tidak, teralu rumit, dan cenderung murah (bukan ekonomis). Perlu dicatat yang dimaksud satu buah prosesor ini ialah satu buah prosesor sebagai Central Processing Unit (CPU). Hal ini ditekankan sebab ada beberapa perangkat yang memang memiliki prosesor tersendiri di dalam perangkatnya seperti VGA Card AGP, Optical Mouse, dan lain-lain.
Dalam pembahasan ini, semua yang layak diletakan di atas meja kerja dikategorikan ke dalam keluarga "komputer meja" (desktop). Salah satu jenis desktop yang paling mudah dikenal ialah komputer personal (PC). Pada awalnya, perangkat keras dari jenis komputer ini relatif sederhana. Sedangkan sistem operasinya hanya mampu secara nyaman, melayani satu pengguna dengan satu job per saat.
Komputer meja beserta sistem operasinya sangat popular sehingga mungkin tidak perlu diperkenalkan di sini. Bahkan, mungkin banyak yang belum menyadari bahwa masih terdapat banyak jenis komputer dan sistem operasi lainnya. Dewasa ini, komputer meja lebih canggih ribuan kali dibandingkan IBM PC yang pertama (1981, prosesor 8088, 4.77 MHz). Sedangkan PC pertama tersebut, beberapa kali lebih canggih dibandingkan Main-Frame tahub 1960-an.
Titik fokus perancangan sistem operasi jenis komputer meja, agak berbeda dibadingkan dengan sistem operasi "main-frame". Pertama, kinerja serta derajat kerumitan komponen perangkat keras komputer meja jauh lebih sederhana (dan murah). Karena itu, "utilisasi" perangkat keras tidak lagi menjadi masalah utama. Kedua, para pengguna Komuputer Meja tidak selalu merupakan "pakar", sehingga kemudahan penggunaan menjadi prioritas utama dalam perancangan sistem operasinya. Ketiga, akibat dari butir kedua di atas, "keamanan" dan "perlindungan" kurang mendapatkan perhatian. Dewasa ini, "virus" dan "cacing" (worm) telah menjadi masalah utama yang dihadapi para pengguna sistem operasi komputer meja tertentu.
Komputer portable (mudah dipindahkan) meniru konsep desktop tetapi jauh lebih hemat dalam penggunaan daya listrik. Dapat digunakan di tempat tanpa catu daya listrik (baterai bertahan cukup lama). Lebih nyaman digunakan untuk bekerja di perjalanan atau pekerjaan yang menuntut fleksibilitas tempat. Kadang masih sulit untuk menjalankan berbagai sistem operasi.
Yang juga termasuk keluarga komputer meja ini ialah komputer jinjing. Pada dasarnya, tidak terdapat banyak perbedaan, kecuali:
a. harganya relatif lebih mahal.
b. penggunaa catu daya internal (beterei) agar catu daya dapat bertahan selama mungkin (rata-rata 3-6 jam).
bobot komputer yang lebih ringan, serta ukuran komputer yang nyaman untuk dijinjing.
Komputer ini memiliki lebih dari satu prosesor. Akibatnya meningkatkan jumlah suatu proses yang dapat diselesaikan dalam satu unit waktu (pertambahan throughput). Perlu diingat hal ini tidak berarti daya komputasinya menjadi meningkat sejumlah prosesornya. Yang meningkat ialah jumlah pekerjaan yang bisa dilakukannya dalam waktu tertentu. Prosesor-prosesor terdapat dalam satu komputer dan dapat membagi peripheral (ekonomis) seperti disk dan catu daya listrik.
Jika satu prossor mengalami suatu gangguan, maka proses yang terjadi masih dapat berjalan dengan baik karena tugas prosesor yang terganggu diambil alih oleh prosesor lain. Hal ini dikenal dengan istilah Graceful Degradation. Sistemnya sendiri dikenal bersifat fault tolerant atau fail-soft system.
Ada dua jenis multiprocessor system yaitu Symmetric MultiProcessing (SMP) dan Asymmetric MultiProcessing (ASMP). Dalam SMP setiap prosesor menjalankan salinan identik dari sistem operasi dan banyak job yang dapat berjalan di suatu waktu tanpa pengurangan kinerja. Sementara itu dalam ASMP setiap prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor bertindak sebagai Master processor yang bertugas menjadualkan dan mengalokasikan pekerjaan pada prosesor lain yang disebut slave processors. Umumnya ASMP digunakan pada sistem yang besar.
Sistem Operasi Jamak memiliki beberapa keunggulan:
a. peningkatan throughput karena lebih banyak proses/thread yang dapat dijalankan sekali gus.
b. Economy of Scale: Ekonomis dalam peralatan yang dibagi bersama.
c. Peningkatan Kehandalan: Jika ada prosesor yang tidak berfungsi.
Melaksanakan komputasi secara terdistribusi diantara beberapa prosesor. Hanya saja komputasinya bersifat loosely coupled system yaitu setiap prosesor mempunyai local memory sendiri. Komunikasi terjadi melalui bus atau jalur telepon. Keuntungannya hampir sama dengan multiprocessor, yaitu adanya pembagian sumber daya dan komputasi lebih cepat. Namun, pada distributed system juga terdapat keuntungan lain, yaitu memungkinkan komunikasi antar komputer.
Terdiri atas dua model yaitu Client-Server Systems di mana hampir seluruh proses dilakukan terpusat di server berdasarkan permintaan client. Model ini masih dibagi dua jenis lagi yaitu compute server system di mana server menyediakan sarana komputasi dan file server system di mana server menyediakan tempat penyimpanan data. Model yang lain ialah Peer-to-peer System (P2P) beberapa komputer saling bertukar data.
Sistem operasi tersebut diatas, ialah NetOS/Distributed OS.
Contoh penerapan Distributed System: Small Area Network (SAN), Local Area Network (LAN), Metropolitan Area Network (MAN), Online Service (OL)/Outernet, Wide Area Network (WAN)/Internet.
Secara umum, sistem kluster ialah gabungan dari beberapa sistem individual (komputer) yang dikumpulkan pada suatu lokasi, saling berbagi tempat penyimpanan data (storage), dan saling terhubung dalam jaringan lokal (Local Area Network).
Sistem kluster memiliki persamaan dengan sistem paralel dalam hal menggabungkan beberapa CPU untuk meningkatkan kinerja komputasi. Jika salah satu mesin mengalami masalah dalam menjalankan tugas maka mesin lain dapat mengambil alih pelaksanaan tugas itu. Dengan demikian, sistem akan lebih andal dan fault tolerant dalam melakukan komputasi.
Dalam hal jaringan, sistem kluster mirip dengan sistem terdistribusi (distributed system). Bedanya, jika jaringan pada sistem terdistribusi melingkupi komputer-komputer yang lokasinya tersebar maka jaringan pada sistem kluster menghubungkan banyak komputer yang dikumpulkan dalam satu tempat.
Dalam ruang lingkup jaringan lokal, sistem kluster memiliki beberapa model dalam pelaksanaannya: asimetris dan simetris. Kedua model ini berbeda dalam hal pengawasan mesin yang sedang bekerja.
Pengawasan dalam model asimetris menempatkan suatu mesin yang tidak melakukan kegiatan apapun selain bersiap-siaga mengawasi mesin yang bekerja. Jika mesin itu mengalami masalah maka pengawas akan segera mengambil alih tugasnya. Mesin yang khusus bertindak pengawas ini tidak diterapkan dalam model simetris. Sebagai gantinya, mesin-mesin yang melakukan komputasi saling mengawasi keadaan mereka. Mesin lain akan mengambil alih tugas mesin yang sedang mengalami masalah.
Jika dilihat dari segi efisiensi penggunaan mesin, model simetris lebih unggul daripada model asimetris. Hal ini disebabkan terdapat mesin yang tidak melakukan kegiatan apapun selain mengawasi mesin lain pada model asimetris. Mesin yang 'menganggur' ini dimanfaatkan untuk melakukan komputasi pada model simetris. Inilah yang membuat model simetris lebih efisien.
Isu yang menarik tentang sistem kluster ialah bagaimana mengatur mesin-mesin penyusun sistem dalam berbagi tempat penyimpanan data (storage). Untuk saat ini, biasanya sistem kluster hanya terdiri dari 2 hingga 4 mesin berhubung kerumitan dalam mengatur akses mesin-mesin ini ke tempat penyimpanan data.
Isu di atas juga berkembang menjadi bagaimana menerapkan sistem kluster secara paralel atau dalam jaringan yang lebih luas (Wide Area Network). Hal penting yang berkaitan dengan penerapan sistem kluster secara paralel ialah kemampuan mesin-mesin penyusun sistem untuk mengakses data di storage secara serentak. Berbagai software khusus dikembangkan untuk mendukung kemampuan itu karena kebanyakan sistem operasi tidak menyediakan fasilitas yang memadai. Salah satu contoh perangkat-lunak-nya-nya ialah Oracle Parallel Server yang khusus didesain untuk sistem kluster paralel.
Seiring dengan perkembangan pesat teknologi kluster, sistim kluster diharapkan tidak lagi terbatas pada sekumpulan mesin pada satu lokasi yang terhubung dalam jaringan lokal. Riset dan penelitian sedang dilakukan agar pada suatu saat sistem kluster dapat melingkupi berbagai mesin yang tersebar di seluruh belahan dunia.
Sistem terdistribusi merupakan kebalikan dari Sistem Operasi Prosesor Jamak. Pada sistem tersebut, setiap prosesor memiliki memori lokal tersendiri. Kumpulan prosesornya saling berinteraksi melalui saluran komunikasi seperti LAN dan WAN menggunakan protokol standar seperti TCP/IP. Karena saling berkomunikasi, kumpulan prosesor tersebut mampu saling berbagi beban kerja, data, serta sumber daya lainnya. Namun, keduanya berbagi keunggulan yang serupa seperti dibahas sebelum ini.
Sistem waktu nyata (Real Time Systems) ialah suatu sistem yang mengharuskan suatu komputasi selesai dalam jangka waktu tertentu. Jika komputasi ternyata belum selesai maka sistem dianggap gagal dalam melakukan tugasnya. Sistem waktu nyata memiliki dua model dalam pelaksanaannya: hard real time system dan soft real time system. Hard real time system menjamin suatu proses yang paling penting dalam sistem akan selesai dalam jangka waktu yang valid. Jaminan waktu yang ketat ini berdampak pada operasi dan perangkat keras (hardware) yang mendukung sistem. Operasi I/O dalam sistem, seperti akses data ke storage, harus selesai dalam jangka waktu tertentu. Dari segi (hardware), memori jangka pendek (short-term memory) atau read-only memory (ROM) menggantikan hard-disk sebagai tempat penyimpanan data. Kedua jenis memori ini dapat mempertahankan data mereka tanpa suplai energi. Ketatnya aturan waktu dan keterbatasan hardware dalam sistem ini membuat ia sulit untuk dikombinasikan dengan sistem lain, seperti sistim multiprosesor dengan sistem time-sharing.
Soft real time system tidak memberlakukan aturan waktu seketat hard real time system. Namun, sistem ini menjamin bahwa suatu proses terpenting selalu mendapat prioritas tertinggi untuk diselesaikan diantara proses-proses lainnya. Sama halnya dengan hard real time system, berbagai operasi dalam sistem tetap harus ada batas waktu maksimum.
Aplikasi sistem waktu nyata banyak digunakan dalam bidang penelitian ilmiah, sistem pencitraan medis, sistem kontrol industri, dan industri peralatan rumah tangga. Dalam bidang pencitraan medis, sistem kontrol industri, dan industri peralatan rumah tangga, model waktu nyata yang banyak digunakan ialah model hard real time system. Sedangkan dalam bidang penelitian ilmiah dan bidang lain yang sejenis digunakan model soft real time system.
Menurut Morgan [MORG92], terdapat sekurangnya lima karakteristik dari sebuah sistem waktu nyata
deterministik, dapat ditebak berapa waktu yang dipergunakan untuk mengeksekusi operasi.
responsif, kapan secara pasti eksekusi dimulai serta diakhiri.
kendali pengguna, dengan menyediakan pilihan lebih banyak daripada sistem operasi biasa.
kehandalan, sehingga dapat menanggulangi masalah-masalah pengecualian dengan derajat tertentu.
penanganan kegagalan, agar sistem tidak langsung crash.
Masih terdapat banyak aspek sistem operasi yang lain; yang kurang cocok diuraikan dalam bab pendahuluan ini. Sebagai penutup dari sub-pokok bahasan ini; akan disinggung secara singkat perihal:
Embeded System
Komputasi Berbasis Jaringan
PDA dan Telepon Seluler
Smart Card
Sistem Multimedia
Sistem multimedia merupakan sistem yang mendukung sekali gus berbagai medium seperti gambar tidak bergerak, video (gambar bergerak), data teks, suara, dan seterusnya. Sistem operasi yang mendukung multimedia seharunya memiliki karakteristik sebagai berikut:
Handal: Para pengguna tidak akan gembira jika sistem terlalu sering crash/tidak handal.
Sistem Berkas: Ukuran berkas multimedia cenderung sangat besar. Sebagai gambaran, berkas video dalam format MPEG dengan durasi 60 menit akan berukuran sekitar 650 MBytes. Untuk itu, diperlukan sistem operasi yang mampu menangani berkas-berkas dengan ukuran tersebut secara efektif dan efisien.
Bandwidth: diperlukan Bandwidth (ukuran saluran data) yang besar untuk multimedia.
Waktu Nyata Real Time: Selain bandwidth yang besar, berkas multimedia harus disampaikan secara lancar berkesinambungan, serta tidak terputus-putus. Walau pun demikian, terdapat toleransi tertendu terhadap kualitas gambar/suara. soft real time.
Klasifikasi ini berdasarkan ukuran komputer, yang juga dapat menunjukkan seberapa besar sumber daya yang mungkin. Hal yang lebih penting lagi ialah ukuran daya komputasinya.
Lingkungan komputasi ialah suatu lingkungan di mana sistem komputer digunakan. Lingkungan komputasi dapat dikelompokkan menjadi empat jenis: komputasi tradisional, komputasi berbasis jaringan, dan komputasi embedded, serta komputasi grid.
Pada awalnya komputasi tradisional hanya meliputi penggunaan komputer meja (desktop) untuk pemakaian pribadi di kantor atau di rumah. Namun, seiring dengan perkembangan teknologi maka komputasi tradisional sekarang sudah meliputi penggunaan teknologi jaringan yang diterapkan mulai dari desktop hingga sistem genggam. Perubahan yang begitu drastis ini membuat batas antara komputasi tradisional dan komputasi berbasis jaringan sudah tidak jelas lagi.
Komputasi berbasis jaringan menyediakan fasilitas pengaksesan data yang luas oleh berbagai perangkat elektronik. Akses tersedia asalkan perangkat elektronik itu terhubung dalam jaringan, baik dengan kabel maupun nirkabel.
Komputasi embedded melibatkan komputer embedded yang menjalankan tugasnya secara real-time. Lingkungan komputasi ini banyak ditemui pada bidang industri, penelitian ilmiah, dan lain sebagainya.
Komputasi model terbaru ini juga berbasis jaringan dengan clustered system. Digunakan super computer untuk melakukan komputasinya. Pada model ini komputasi dikembangkan melalui pc-farm. Perbedaan yang nyata dengan komputasi berbasis jaringan ialah bahwa komputasi berbasis grid dilakukan bersama-sama seperti sebuah multiprocessor dan tidak hanya melakukan pertukaran data seperti pada komputasi berbasis jaringan.
Klasifikasi ini berdasarkan ukuran sifat data yang menjadi masukan bagi komputer.
Komputer yang mengolah data berdasarkan input-input dari pulsa elektronik dan bersifat abstrak.
Menurut Gramacomp Team, komputer ini ialah komputer yang mengolah data berdasarkan input-input dari keadaan lingkungan komputer yang nyata seperti suhu, kelembaban, dll
Gabungan komputer digital dan analog, mengolah data digital sekaligus data analog.
Mengacu pada sistem komputer yang bertugas mengendalikan tugas spesifik dari suatu alat seperti mesin cuci digital, tv digital, radio digital. Terbatas dan hampir tak memiliki user-interface. Biasanya melakukan tugasnya secara real-time merupakan sistem paling banyak dipakai dalam kehidupan.
Klasifikasi ini berdasarkan ukuran sifat khas dari sebuah komputer. Biasanya berkaitan erat dengan fungsinya.
Sistem genggam ialah sebutan untuk komputer-komputer dengan kemampuan tertentu, serta berukuran kecil sehingga dapat digenggam. Beberapa contoh dari sistem ini ialah Palm Pilots, PDA, dan telepon seluler.
Isu yang berkembang tentang sistem genggam ialah bagaimana merancang perangkat lunak dan perangkat keras yang sesuai dengan ukurannya yang kecil.
Dari sisi perangkat lunak, hambatan yang muncul ialah ukuran memori yang terbatas dan ukuran monitor yang kecil. Kebanyakan sistem genggam pada saat ini memiliki memori berukuran 512 KB hingga 8 MB. Dengan ukuran memori yang begitu kecil jika dibandingkan dengan PC, sistem operasi dan aplikasi yang diperuntukkan untuk sistem genggam harus dapat memanfaatkan memori secara efisien. Selain itu mereka juga harus dirancang agar dapat ditampilkan secara optimal pada layar yang berukuran sekitar 5 x 3 inci.
Dari sisi hardware, hambatan yang muncul ialah penggunaan sumber tenaga untuk pemberdayaan sistem. Tantangan yang muncul ialah menciptakan sumber tenaga (misalnya baterai) dengan ukuran kecil tapi berkapasitas besar atau merancang hardware dengan konsumsi sumber tenaga yang sedikit.
Secara umum, keterbatasan yang dimiliki oleh sistem genggam sesuai dengan kegunaan/layanan yang disediakan. Sistem genggam biasanya dimanfaatkan untuk hal-hal yang membutuhkan portabilitas suatu mesin seperti kamera, alat komunikasi, MP3 Player dan lain lain.
Tidak ada suatu ketentuan khusus tentang bagaimana seharusnya struktur sistem sebuah komputer. Setiap ahli dan desainer arsitektur komputer memiliki pandangannya masing-masing. Akan tetapi, untuk mempermudah kita memahami detail dari sistem operasi di bab-bab berikutnya, kita perlu memiliki pengetahuan umum tentang struktur sistem komputer.
Secara umum, sistem komputer terdiri atas CPU dan sejumlah device controller yang terhubung melalui sebuah bus yang menyediakan akses ke memori. Umumnya, setiap device controller bertanggung jawab atas sebuah hardware spesisfik. Setiap device dan CPU dapat beroperasi secara konkuren untuk mendapatkan akses ke memori. Adanya beberapa hardware ini dapat menyebabkan masalah sinkronisasi. Karena itu untuk mencegahnya sebuah memory controller ditambahkan untuk sinkronisasi akses memori.
Pada sistem komputer yang lebih maju, arsitekturnya lebih kompleks. Untuk meningkatkan performa, digunakan beberapa buah bus. Tiap bus merupakan jalur data antara beberapa device yang berbeda. Dengan cara ini RAM, Prosesor, GPU (VGA AGP) dihubungkan oleh bus utama berkecepatan tinggi yang lebih dikenal dengan nama FSB (Front Side Bus). Sementara perangkat lain yang lebih lambat dihubungkan oleh bus yang berkecepatan lebih rendah yang terhubung dengan bus lain yang lebih cepat sampai ke bus utama. Untuk komunikasi antar bus ini digunakan sebuah bridge.
Tanggung jawab sinkronisasi bus yang secara tak langsung juga mempengaruhi sinkronisasi memori dilakukan oleh sebuah bus controller atau dikenal sebagai bus master. Bus master akan mengendalikan aliran data hingga pada satu waktu, bus hanya berisi data dari satu buah device. Pada prakteknya bridge dan bus master ini disatukan dalam sebuah chipset.
NB: GPU = Graphics Processing Unit; AGP = Accelerated Graphics Port; HDD = Hard Disk Drive; FDD = Floppy Disk Drive; FSB = Front Side Bus; USB = Universal Serial Bus; PCI = Peripheral Component Interconnect; RTC = Real Time Clock; PATA = Pararel Advanced Technology Attachment; SATA = Serial Advanced Technology Attachment; ISA = Industry Standard Architecture; IDE = Intelligent Drive Electronics/Integrated Drive Electronics; MCA = Micro Channel Architecture; PS/2 = Sebuah port yang dibangun IBM untuk menghubungkan mouse ke PC;
Jika komputer dinyalakan, yang dikenal dengan nama booting, komputer akan menjalankan bootstrap program yaitu sebuah program sederhana yang disimpan dalam ROM yang berbentuk chip CMOS (Complementary Metal Oxide Semiconductor). Chip CMOS modern biasanya bertipe Electrically Erasable Programmable Read Only Memory (EEPROM), yaitu memori non-volatile (tak terhapus jika power dimatikan) yang dapat ditulis dan dihapus dengan pulsa elektronik. Lalu bootsrap program ini lebih dikenal sebagai BIOS (Basic Input Output System).
Bootstrap program utama, yang biasanya terletak di motherboard akan memeriksa perangkat keras utama dan melakukan inisialisasi terhadap program dalam hardware yang dikenal dengan nama firmware.
Bootstrap program utama kemudian akan mencari dan meload kernel sistem operasi ke memori lalu dilanjutkan dengan inisialisasi sistem operasi. Dari sini program sistem operasi akan menunggu kejadian tertentu. Kejadian ini akan menentukan apa yang akan dilakukan sistem operasi berikutnya (event-driven).
Kejadian ini pada komputer modern biasanya ditandai dengan munculnya interrupt dari software atau hardware, sehingga Sistem Operasi ini disebut Interrupt-driven. Interrupt dari hardware biasanya dikirimkan melalui suatu signal tertentu, sedangkan software mengirim interrupt dengan cara menjalankan system call atau juga dikenal dengan istilah monitor call. System/Monitor call ini akan menyebabkan trap yaitu interrupt khusus yang dihasilkan oleh software karena adanya masalah atau permintaan terhadap layanan sistem operasi. Trap ini juga sering disebut sebagai exception.
Setiap interrupt terjadi, sekumpulan kode yang dikenal sebagai ISR (Interrupt Service Routine) akan menentukan tindakan yang akan diambil. Untuk menentukan tindakan yang harus dilakukan, dapat dilakukan dengan dua cara yaitu polling yang membuat komputer memeriksa satu demi satu perangkat yang ada untuk menyelidiki sumber interrupt dan dengan cara menggunakan alamat-alamat ISR yang disimpan dalam array yang dikenal sebagai interrupt vector di mana sistem akan memeriksa Interrupt Vector setiap kali interrupt terjadi.
Arsitektur interrupt harus mampu untuk menyimpan alamat instruksi yang di- interrupt. Pada komputer lama, alamat ini disimpan di tempat tertentu yang tetap, sedangkan padakomputer baru, alamat itu disimpan di stack bersama-sama dengan informasi state saat itu.
Ada dua macam tindakan jika ada operasi I/O. Kedua macam tindakan itu adalah:
Setelah proses I/O dimulai, kendali akan kembali ke user program saat proses I/O selesai (Synchronous). Instruksi wait menyebabkan CPU idle sampai interrupt berikutnya. Akan terjadi Wait loop (untuk menunggu akses berikutnya). Paling banyak satu proses I/O yang berjalan dalam satu waktu.
Setelah proses I/O dimulai, kendali akan kembali ke user program tanpa menunggu proses I/O selesai (Asynchronous). System call permintaan pada sistem operasi untuk mengizinkan user menunggu sampai I/O selesai.Device-status table mengandung data masukkan untuk tiap I/O device yang menjelaskan tipe, alamat, dan keadaannya. Sistem operasi memeriksa I/O device untuk mengetahui keadaan device dan mengubah tabel untuk memasukkan interrupt. Jika I/O device mengirim/mengambil data ke/dari memory hal ini dikenal dengan nama Direct Memory Access (DMA).
Digunakan untuk I/O device yang dapat memindahkan data dengan kecepatan tinggi (mendekati frekuensi bus memori). Device controller memindahkan data dalam blok-blok dari buffer langsung ke memory utama atau sebaliknya tanpa campur tangan prosesor. Interrupt hanya terjadi tiap blok bukan tiap word atau byte data. Seluruh proses DMA dikendalikan oleh sebuah controller bernama DMA Controller (DMAC). DMA Controller mengirimkan atau menerima signal dari memori dan I/O device. Prosesor hanya mengirimkan alamat awal data, tujuan data, panjang data ke DMA Controller. Interrupt pada prosesor hanya terjadi saat proses transfer selesai. Hak terhadap penggunaan bus memory yang diperlukan DMA controller didapatkan dengan bantuan bus arbiter yang dalam PC sekarang berupa chipset Northbridge.
Suatu jalur transfer data yang menghubungkan setiap device pada komputer. Hanya ada satu buah device yang boleh mengirimkan data melewati sebuah bus, akan tetapi boleh lebih dari satu device yang membaca data bus tersebut. Terdiri dari dua buah model: Synchronous bus di mana digunakan dengan bantuan clock tetapi berkecepatan tinggi, tapi hanya untuk device berkecepatan tinggi juga; Asynchronous bus digunakan dengan sistem handshake tetapi berkecepatan rendah, dapat digunakan untuk berbagai macam device.
Hal penting yang perlu diingat adalah program adalah bagian dari data.
Tempat penyimpanan beberapa buah data volatile yang akan diolah langsung di prosesor yang berkecepatan sangat tinggi. Register ini berada di dalam prosesor dengan jumlah yang sangat terbatas karena fungsinya sebagai tempat perhitungan/komputasi data
Tempat penyimpanan sementara (volatile) sejumlah kecil data untuk meningkatkan kecepatan pengambilan atau penyimpanan data di memori oleh prosesor yang berkecepatan tinggi. Dahulu cache disimpan di luar prosesor dan dapat ditambahkan. Misalnya pipeline burst cache yang biasa ada di komputer awal tahun 90-an. Akan tetapi seiring menurunnya biaya produksi die atau wafer dan untuk meningkatkan kinerja, cache ditanamkan di prosesor. Memori ini biasanya dibuat berdasarkan desain static memory.
Tempat penyimpanan sementara sejumlah data volatile yang dapat diakses langsung oleh prosesor. Pengertian langsung di sini berarti prosesor dapat mengetahui alamat data yang ada di memori secara langsung. Sekarang, RAM dapat diperoleh dengan harga yang cukup murah dangan kinerja yang bahkan dapat melewati cache pada komputer yang lebih lama.
Tambahan memory yang digunakan untuk membantu proses-proses dalam komputer, biasanya berupa buffer. Peranan tambahan memori ini sering dilupakan akan tetapi sangat penting artinya untuk efisiensi. Biasanya tambahan memori ini memberi gambaran kasar kemampuan dari perangkat tersebut, sebagai contoh misalnya jumlah VGA memory, soundcard memory.
Media penyimpanan data yang non-volatile yang dapat berupa Flash Drive, Optical Disc, Magnetic Disk, Magnetic Tape. Media ini biasanya daya tampungnya cukup besar dengan harga yang relatif murah. Portability-nya juga relatif lebih tinggi.
Dasar susunan sistem storage adalah kecepatan, biaya, sifat volatilitas. Caching menyalin informasi ke storage media yang lebih cepat; Main memory dapat dilihat sebagai cache terakhir untuk secondary storage. Menggunakan memory berkecepatan tinggi untuk memegang data yang diakses terakhir. Dibutuhkan cache management policy. Cache juga memperkenalkan tingkat lain di hirarki storage. Hal ini memerlukan data untuk disimpan bersama-sama di lebih dari satu level agar tetap konsisten.
Membagi sumber daya sistem yang memerlukan sistem operasi untuk menjamin bahwa program yang salah tidak menyebabkan program lain berjalan salah juga. Menyediakan dukungan perangkat keras untuk membedakan minimal dua mode operasi yaitu: User Mode - Eksekusi dikendalikan oleh user; Monitor/Kernel/System Mode - Eksekusi dikendalikan oleh sistem operasi. Instruksi tertentu hanya berjalan di mode ini (Privileged Instruction). Ditambahkan sebuah bit penanda operasi. Jika terjadi interrupt, maka perangkat keras berpindah ke monitor mode.
Semua instruksi I/O umumnya Privileged Instruction (kecuali pada DOS, dan program tertentu). Harus menjamin user program tidak dapat mengambil alih kontrol komputer di monitor mode.
Harus menyediakan perlindungan terhadap memori minimal untuk interrupt vector dan interrupt service routine. Ditambahkan dua register yang menentukan di mana alamat legal sebuah program boleh mengakses, yaitu base register untuk menyimpan alamat awal yang legal dan limit register untuk menyimpan ukuran memori yang boleh diakses Memori di luar jangkauan dilindungi.
Timer melakukan interrupt setelah perioda waktu tertentu untuk menjamin kontrol sistem operasi. Timer diturunkan setiap clock. Ketika timer mencapai nol, sebuah Interrupt terjadi. Timer biasanya digunakan untuk mengimplementasikan pembagian waktu. Timer dapat juga digunakan untuk menghitung waktu sekarang walaupun fungsinya sekarang ini sudah digantikan Real Time Clock (RTC). System Clock Timer terpisah dari Pencacah Waktu. Timer sekarang secara hardware lebih dikenal sebagai System Timer/CPU Timer. Load Timer juga Privileged Instruction.
Muncul untuk menggantikan komputer besar. Dirancang untuk melingkupi suatu daerah yang kecil. Menggunakan peralatan berkecepatan lebih tinggi daripada WAN. Hanya terdiri atas sejumlah kecil komputer.
Menghubungkan daerah yang lebih luas. Lebih lambat, dihubungkan oleh router melalui jaringan data telekomunikasi.
Sistem operasi telah berkembang selama lebih dari 40 tahun dengan dua tujuan utama. Pertama, sistem operasi mencoba mengatur aktivitas-aktivitas komputasi untuk memastikan pendayagunaan yang baik dari sistem komputasi tersebut. Kedua, menyediakan lingkungan yang nyaman untuk pengembangan dan jalankan dari program.
Pada awalnya, sistem komputer digunakan dari depan konsol. Perangkat lunak seperti assembler, loader, linkerdan compiler meningkatkan kenyamanan dari sistem pemrograman, tapi juga memerlukan waktu set-up yang banyak. Untuk mengurangi waktu set-up tersebut, digunakan jasa operator dan menggabungkan tugas-tugas yang sama (sistem batch).
Sistem batch mengizinkan pengurutan tugas secara otomatis dengan menggunakan sistem operasi yang resident dan memberikan peningkatan yang cukup besar dalam utilisasi komputer. Komputer tidak perlu lagi menunggu operasi oleh pengguna. Tapi utilisasi CPU tetap saja rendah. Hal ini dikarenakan lambatnya kecepatan alat-alat untuk I/O relatif terhadap kecepatan CPU. Operasi off-line dari alat-alat yang lambat bertujuan untuk menggunakan beberapa sistem reader-to-tape dan tape-to-printer untuk satu CPU. Untuk meningkatkan keseluruhan kemampuan dari sistem komputer, para developer memperkenalkan konsep multiprogramming.
Dengan multiprogramming, beberapa tugas disimpan dalam memori dalam satu waktu; CPU digunakan secara bergantian sehingga menambah utilisasi CPU dan mengurangi total waktu yang dibutuhkan untuk menyelesaikan tugas-tugas tersebut. Multiprogramming, yang dibuat untuk meningkatkan kemampuan, juga mengizinkan time sharing. Sistem operasi yang bersifat time-shared memperbolehkan banyak pengguna untuk menggunakan komputer secara interaktif pada saat yang bersamaan.
PC adalah mikrokomputer yang dianggap lebih kecil dan lebih murah dibandingkan komputer mainframe. Sistem operasi untuk komputer-komputer seperti ini diuntungkan oleh pengembangan sistem operasi untuk komputer mainframe dalam beberapa hal. Namun, semenjak penggunaan komputer untuk keperluan pribadi, maka utilisasi CPU tidak lagi menjadi perhatian utama. Karena itu, beberapa desain untuk komputer mainframe tidak cocok untuk sistem yang lebih kecil.
Paralel System mempunyai lebih dari satu CPU yang mempunyai hubungan yang erat; CPU-CPU tersebut berbagi bus komputer, dan kadang-kadang berbagi memori dan perangkat yang lainnya. Sistem seperti itu dapat meningkatkan throughput dan reliabilititas.
Sistem hard real-time sering kali digunakan sebagai alat pengontrol untuk applikasi yang dedicated. Sistem operasi yang hard real-time mempunyai batasan waktu yang tetap yang sudah didefinisikan dengan baik.Pemrosesan harus selesai dalam batasan-batasan yang sudah didefinisikan, atau sistem akan gagal.
Sistem soft real-time mempunyai lebih sedikit batasan waktu yang keras, dan tidak mendukung penjadualan dengan menggunakan batas akhir. Pengaruh dari internet dan World Wide Webbaru-baru ini telah mendorong pengembangan sistem operasi modern yang menyertakan web browser serta perangkat lunak jaringan dan komunikasi sebagai satu kesatuan.
Multiprogramming dan sistem time-sharing meningkatkan kemampuan komputer dengan melampaui batas operasi (overlap) CPU dan I/O dalam satu mesin. Hal seperti itu memerlukan perpindahan data antara CPU dan alat I/O, ditangani baik dengan polling atau interrupt-drivenakses ke I/O port, atau dengan perpindahan DMA. Agar komputer dapat menjalankan suatu program, maka program tersebut harus berada di memori utama (main memory).
Memori utama adalah satu-satunya tempat penyimpanan yang besar yang dapat diakses secara langsung oleh prosessor, merupakan suatu array dari word atau byte, yang mempunyai ukuran ratusan sampai jutaan ribu. Setiap word memiliki alamatnya sendiri. Memori utama adalah tempat penyimpanan yang volatile, dimana isinya hilang bila sumber energinya (energi listrik) dimatikan. Kebanyakan sistem komputer menyediakan secondary storage sebagai perluasan dari memori utama. Syarat utama dari secondary storage adalah dapat menyimpan data dalam jumlah besar secara permanen.
Secondary storage yang paling umum adalah disk magnetik, yang meyediakan penyimpanan untuk program mau pun data. Disk magnetik adalah alat penyimpanan data yang nonvolatile yang juga menyediakan akses secara random. Tape magnetik digunakan terutama untuk backup, penyimpanan informasi yang jarang digunakan, dan sebagai media pemindahan informasi dari satu sistem ke sistem yang lain.
Beragam sistem penyimpanan dalam sistem komputer dapat d isusun dalam hirarki berdasarkan kecepatan dan biayanya. Tingkat yang paling atas adalah yang paling mahal, tapi cepat. Semakin kebawah, biaya perbit menurun, sedangkan waktu aksesnya semakin bertambah (semakin lambat).
Sistem operasi harus memastikan operasi yang benar dari sistem komputer. Untuk mencegah pengguna program mengganggu operasi yang berjalan dalam sistem, perangkat keras mempunyai dua mode: mode pengguna dan mode monitor. Beberapa perintah (seperti perintah I/O dan perintah halt) adalah perintah khusus, dan hanya dapat dijalankan dalam mode monitor. Memori juga harus dilindungi dari modifikasi oleh pengguna. Timer mencegah terjadinya pengulangan secara terus menerus (infinite loop). Hal-hal tersebut (dual mode, perintah khusus, pengaman memori, timer interrupt) adalah blok bangunan dasar yang digunakan oleh sistem operasi untuk mencapai operasi yang sesuai.
Sebutkan tiga tujuan utama dari sebuah sistem operasi!
Apakah keuntungan utama dari multiprogramming?
Apakah perbedaan utama antara komputer mainframe dengan PC?
Untuk jenis operasi apakah DMA itu berguna? Jelaskan jawabannya!
Sebutkan kendala-kendala yang harus diatasi oleh programmer dalam menulis sistem operasi untuk lingkungan waktu nyata!
Jelaskan perbedaan antara symmetric dan asymmetric multiprocessing. Sebutkan keuntungan dan kerugian dari sistem multiprocessor.
Beberapa CPU menyediakan lebih dari dua mode operasi. Sebutkan dua kemungkinan penggunaan dari mode tersebut?
Sebutkan dua kegunaan dari memory cache! Problem apakah yang dapat dipecahkan dan juga muncul dengan adanya cache tersebut?
Apakah perbedaan antara trap dan interrupt? Sebutkan penggunaan dari setiap fungsi tersebut
Sebutkan 3 kelas komputer menurut jenis datanya!
Menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, memandang atau mengartikan apa itu sistem Operasi bisa diketahui dari beberapa hal, diantaranya dengan mengetahui komponen-komponen sistemnya dan layanan yang disediakan oleh sistem operasi.
Tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut:
Managemen Proses.
Managemen Memori Utama.
Managemen Berkas.
Managemen Sistem I/O.
Managemen Penyimpanan Sekunder.
Sistem Proteksi.
Jaringan.
Command-Interpreter System.
Sedangkan menurut A.S. Tanenbaum, sistem operasi mempunyai empat komponen utama, yaitu managemen proses, input/output, managemen memori, dan sistem berkas.
Proses adalah sebuah program yang sedang dieksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mendapatkan kembali semua sumber daya yang bisa digunakan kembali.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses seperti:
Membuat dan menghapus proses pengguna dan sistem proses.
Menunda atau melanjutkan proses.
Menyediakan mekanisme untuk proses sinkronisasi.
Menyediakan mekanisme untuk proses komunikasi.
Menyediakan mekanisme untuk penanganan deadlock.
Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi/data yang akses datanya digunakan oleh CPU dan perangkat I/O. Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile -- tidak permanen -- yaitu data akan hilang kalau komputer dimatikan.
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen memori seperti:
Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
Memilih program yang akan di-load ke memori.
Berkas adalah kumpulan informasi yang berhubungan, sesuai dengan tujuan pembuat berkas tersebut. Umumnya berkas merepresentasikan program dan data. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi mengimplementasikan konsep abstrak dari berkas dengan mengatur media penyimpanan massa, misalnya tapes dan disk.
Sistem operasi bertanggung-jawab dalam aktivitas yang berhubungan dengan managemen berkas:
Pembuatan dan penghapusan berkas.
Pembuatan dan penghapusan direktori.
Mendukung manipulasi berkas dan direktori.
Memetakan berkas ke secondary-storage.
Mem-back-up berkas ke media penyimpanan yang permanen (non-volatile).
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 perangkat keras, CD-ROM dan floppy disk.
Komponen Sistem Operasi untuk sistem I/O:
Penyangga: menampung sementara data dari/ ke perangkat I/O.
Spooling: melakukan penjadualan pemakaian I/O sistem supaya lebih efisien (antrian dsb.).
Menyediakan driver: untuk dapat melakukan operasi rinci untuk perangkat keras I/O tertentu.
Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk menyimpan keseluruhan data dan program komputer dibutuhkan penyimpanan sekunder yang bersifat permanen dan mampu menampung banyak data, sebagai back-up dari memori utama. Contoh dari penyimpanan sekunder adalah hard-disk, disket, dll.
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen disk seperti:
free-space management.
alokasi penyimpanan.
penjadualan disk.
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:
Membedakan antara penggunaan yang sudah diberi izin dan yang belum.
Menspesifikasi kontrol untuk dibebankan/diberi tugas.
Menyediakan alat untuk pemberlakuan sistem.
Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock. Setiap prosesor mempunyai memori dan clock tersendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem. Akses tersebut menyebabkan peningkatan kecepatan komputasi dan meningkatkan kemampuan penyediaan data.
Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter dan terkadang dikenal sebagai shell. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi perangkat I/O yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.
Layanan sistem operasi dirancang untuk membuat pemrograman menjadi lebih mudah.
Pembuatan Program
Sistim operasi menyediakan berbagai fasilitas yang membantu programer dalam membuat program seperti editor. Walaupun bukan bagian dari sistim operasi, tapi layanan ini diakses melalui sistim operasi.
Eksekusi Program
Sistem harus bisa me-load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusiannya baik secara normal maupun tidak (ada error).
Operasi I/O
Program yang sedang dijalankan kadang kala membutuhkan I/O. Untuk efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur peranti I/O secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan operasi I/O.
Manipulasi Sistem Berkas
Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas.
Komunikasi
Kadang kala sebuah proses memerlukan informasi dari proses yang lain. Ada dua cara umum dimana komunikasi dapat dilakukan. Komunikasi dapat terjadi antara proses dalam satu komputer, atau antara proses yang berada dalam komputer yang berbeda, tetapi dihubungkan oleh jaringan komputer. Komunikasi dapat dilakukan dengan share-memory atau message-passing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
Deteksi Error
Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU dan memori perangkat keras, I/O, dan di dalam program yan