Komponen Sistem Operasi
Sejarah Perkembangan
Arsitektur perangkat keras 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. Pada saat awal, komputer
berukuran sangat besar sehingga komponen-komponennya dapat memenuhi sebuah ruangan yang
sangat besar. Sang pengguna --menjadi programer yang sekali gus merangkap menjadi menjadi
operator komputer -- juga bekerja di dalam ruang komputer tersebut.
Walaupun berukuran besar, sistem tersebut dikategorikan sebagai "komputer pribadi" (PC). Siapa
saja yang ingin melakukan komputasi; 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.
Hal ini membutuhkan beberapa kemampuan tambahan yaitu: penyediaan I/O routine oleh sistem,
pengaturan memori untuk mengalokasikan memori pada beberapa Job, penjadualan CPU untuk
memilih job mana yang akan dijalankan, serta pengalokasian perangkat keras lain. 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.
Merancang sebuah sistem operasi merupakan hal yang sulit. Merancang sebuah sistem sangat
berbeda dengan merancang sebuah algorithma. Hal tersebut disebabkan karena keperluan yang
dibutuhkan oleh sebuah sistem sulit untuk didefinisikan secara tepat, lebih kompleks dan sebuah
sistem memiliki struktur internal dan antarmuka internal yang lebih banyak serta ukuran dari
kesuksesan dari sebuah sistem sangat abstrak.Masalah pertama dalam mendesain sistem operasi
adalah mendefinisikan tujuan dan spesifikasi sistem. pada level tertinggi, desain sistem akan
dipengaruhi oleh pemilihan hardware dan tipe sistemseperti batch, time shared, single user,
multiuser, distributed, real time atau tujuan umum.
Berdasarkan level desain tertinggi, kebutuhan sistem akan lebih sulit untuk dispesifikasi. Kebutuhan
sistem dapat dibagi menjadi dua kelompok utama, yaitu user goal dan sistem goal. User
menginginkan properti sistem yang pasti seperti: sistem harus nyaman dan mudah digunakan,
mudah dipelajari, reliable, aman dan cepat. Sekumpulan kebutuhan dapat juga didefinisikan oleh
orang-orang yang harus mendesain, membuat, memelihara dan mengoperasikan sistem operasi
seperti: sistem operasi harus mudah didesain, diimplementasikan dan dipelihara, sistm harus
fleksibel, reliable, bebas eror dan efisien. Yang harus diperhatikan ketika merancang sebuah sistem
yang baik adalah apakah sistem tersebut memenuhi tiga kebutuhan: fungsionalitas: apakah sistem
tersebut bekerja dengan baik?, kecepatan: apakah sistem tersebut cukup cepat?, dan fault-tolerance:
apakah sistem tersebut dapat terus bekerja?.
Adapun prinsip-prinsip dalam merancang sistem operasi adalah:
1. Extensibility
Extensibility terkait dengan kapasitas sistem operasi untuk tetap mengikuti perkembangan teknologi
komputer, sehingga setiap perubahan yang terjadi dapat difasilitasi setiap waktu, pengembang
sistem operasi modern menggunakan arsitektur berlapis, yaitu struktur yang modular. Karena
struktur yang modular tersebut, tambahan subsystem pada sistem operasi dapat ditambahkan tanpa
mempengaruhi subsystem yang sudah ada.
2. Portability
Suatu sistem operasi dikatakan portable jika dapat dipindahkan dari arsitektur hardware yang satu ke
yang lain dengan perubahan yang relatif sedikit. Sistem operasi modern dirancang untuk portability.
Keseluruhan bagian sistem ditulis dalam bahasa C dan C++. Semua kode prosesor diisolasi di DLL
(Dynamic Link Library) disebut dengan abstraksi lapisan hardware.
3. Reliability
Adalah kemampuan sistem operasi untuk mengatasi kondisi eror, termasuk kemampuan sistem
operasi untuk memproteksi diri sendiri dan pengggunanya dari software yang cacat. Sistem operasi
modern menahan diri dari serangan dan cacat dengan menggunakan proteksi perangkat keras untuk
memori virtual dan mekanisme proteksi perangkat lunak untuk sumber daya sistem operasi.
4. Security
Sistem operasi harus memberikan keamanan terhadap data yang disimpan dalam semua drive.
5. High performance
Sedangkan menurut A.S. Tanenbaum, sistem operasi mempunyai empat komponen utama, yaitu:
1) Managemen proses,
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 Masukan/Keluaran. 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.
2) Masukan/Keluaran
Sering disebut device manager. Menyediakan device driver yang umum sehingga operasi
Masukan/Keluaran dapat seragam (membuka, membaca, menulis, menutup). Contoh:
pengguna menggunakan operasi yang sama untuk membaca berkas pada perangkat keras, CDROM
dan floppy disk. Komponen Sistem Operasi untuk sistem Masukan/Keluaran:
• Penyangga: menampung sementara data dari/ke perangkat Masukan/Keluaran.
• Spooling: melakukan penjadualan pemakaian Masukan/Keluaran sistem supaya lebih
efisien (antrian dsb.).
• Menyediakan driver: untuk dapat melakukan operasi rinci untuk perangkat keras
Masukan/Keluaran tertentu.
3) Managemen Memori, dan
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 Masukan/Keluaran.
Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile -- tidak
permanen -- yaitu data akan hilang kalau komputer dimatikan. Sistem operasi bertanggungjawab
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.
4) Sistem Berkas.
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).
Selain daripada itu terdapat pula :
Penyimpanan Sekunder
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.
Sistem Proteksi
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.
Jaringan
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.
Command-Interpreter System
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 Masukan/Keluaran yang ada. Contohnya: CLI, Windows, Penbased
(touch), dan lain-lain.
Layanan Sistem Operasi
Layanan sistem operasi dirancang untuk membuat pemrograman menjadi lebih mudah.
1. 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.
2. 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).
3. Operasi Masukan/Keluaran
Program yang sedang dijalankan kadang kala membutuhkan Masukan/Keluaran. Untuk
efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur peranti Masukan/Keluaran
secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan
operasi Masukan/Keluaran.
4. Manipulasi Sistem Berkas
Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan
menghapus berkas.
5. 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 messagepassing,
dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
6. Deteksi Error
Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU
dan memori perangkat keras, Masukan/Keluaran, dan di dalam program yang dijalankan
pengguna. Untuk setiap jenis error sistem operasi harus bisa mengambil langkah yang tepat
untuk mempertahankan jalannya proses komputasi. Misalnya dengan menghentikan jalannya
program, mencoba kembali melakukan operasi yang dijalankan, atau melaporkan kesalahan
yang terjadi agar pengguna dapat mengambil langkah selanjutnya.
Disamping pelayanan di atas, sistem operasi juga menyediakan layanan lain. Layanan ini bukan
untuk membantu pengguna tapi lebih pada mempertahankan efisiensi sistem itu sendiri. Layanan
tambahan itu yaitu:
1. Alokasi Sumber Daya
Ketika beberapa pengguna menggunakan sistem atau beberapa program dijalankan secara
bersamaan, sumber daya harus dialokasikan bagi masing-masing pengguna dan program
tersebut.
2. Accounting
Kita menginginkan agar jumlah pengguna yang menggunakan sumber daya, dan jenis sumber
daya yang digunakan selalu terjaga. Untuk itu maka diperlukan suatu perhitungan dan statistik.
Perhitungan ini diperlukan bagi seseorang yang ingin merubah konfigurasi sistem untuk
meningkatkan pelayanan.
3. Proteksi
Layanan proteksi memastikan bahwa segala akses ke sumber daya terkontrol. Dan tentu saja
keamanan terhadap gangguan dari luar sistem tersebut. Keamanan bisa saja dilakukan dengan
terlebih dahulu mengidentifikasi pengguna. Ini bisa dilakukan dengan meminta password bila
ingin menggunakan sumber daya.
System Program
System program menyediakan lingkungan yang memungkinkan pengembangan program dan
eksekusi berjalan dengan baik.
Dapat dikategorikan:
1. Managemen/manipulasi berkas
Membuat, menghapus, copy, rename, print, memanipulasi berkas dan direktori.
2. Informasi status
Beberapa program meminta informasi tentang tanggal, jam, jumlah memori dan disk yang
tersedia, jumlah pengguna dan informasi lain yang sejenis.
3. Modifikasi berkas
Membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau tape.
4. Pendukung bahasa pemrograman
Kadang kala compiler, assembler, interpreter dari bahasa pemrograman diberikan kepada
pengguna dengan bantuan sistem operasi.
5. Loading dan eksekusi program
Ketika program di-assembly atau di-compile, program tersebut harus di-load ke dalam memori
untuk dieksekusi. Untuk itu sistem harus menyediakan absolute loaders, relocatable loaders,
linkage editors, dan overlay loaders.
6. Komunikasi
Menyediakan mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang
berbeda. Sehingga pengguna bisa mengirim pesan, browse web pages, mengirim e-mail, atau
mentransfer berkas.
Umumnya sistem operasi dilengkapi oleh system-utilities atau program aplikasi yang di dalamnya
termasuk web browser, word prossesor dan format teks, sistem database, games. System program
yang paling penting adalah command interpreter yang mengambil dan menerjemahkan userspecified
command selanjutnya.
System Calls
Biasanya tersedia sebagai instruksi bahasa assembly. Beberapa sistem mengizinkan system calls
dibuat langsung dari program bahasa tingkat tinggi. Beberapa bahasa pemrograman (contoh: C,
C++) telah didefenisikan untuk menggantikan bahasa assembly untuk sistem pemrograman. Tiga
metoda umum yang digunakan dalam memberikan parameter kepada sistem operasi:
• Melalui register.
• Menyimpan parameter dalam block atau tabel pada memori dan alamat block tersebut
diberikan sebagai parameter dalam register.
• Menyimpan parameter (push) ke dalam stack oleh program, dan melakukan pop off pada
stack oleh sistem operasi.
Jenis System Calls
System calls yang berhubungan dengan kontrol proses antara lain ketika penghentian
pengeksekusian program. Baik secara normal (end) maupun tidak normal (abort). Selama proses
dieksekusi kadang kala diperlukan untuk me-load atau mengeksekusi program lain, disini diperlukan
lagi suatu system calls. Juga ketika membuat suatu proses baru dan menghentikan sebuah proses.
Ada juga system calls yang dipanggil ketika kita ingin meminta dan merubah atribut dari suatu
proses.
MS-DOS adalah contoh dari sistem single-tasking. MS-DOS menggunakan metoda yang sederhana
dalam menjalankan program aan tidak menciptakan proses baru. Program di-load ke dalam memori,
kemudian program dijalankan. Berkeley Unix adalah contoh dari sistem multi-tasking. Command
Interpereter masih tetap bisa dijalankan ketika program lain dieksekusi.
System Calls Managemen Proses
System Call untuk managemen proses diperlukan untuk mengatur proses-proses yang sedang
berjalan. Kita dapat melihat penggunaan system calls untuk managemen proses pada Sistem Operasi
Unix. Contoh yang paling baik untuk melihat bagaimana system call bekerja untuk managemen
proses adalah Fork. Fork adalah satu satunya cara untuk membuat sebuah proses baru pada sistem
Unix. Fork membuat duplikasi yang mirip dengan proses aslinya, termasuk file descriptor, register,
dan lainnya.
Setelah perintah Fork, child akan mengeksekusi kode yang berbeda dengan parentnya. Bayangkan
yang terjadi pada shell. Shell akan membaca command dari terminal, melakukan fork pada child,
menunggu child untuk mengeksekusi command tersebut, dan membaca command lainnya ketika
child terminate. Untuk menunggu child selesai, parent akan mengeksekusi system call waitpid, yang
hanya akan menunggu sampai child selesai. Proses child harus mengeksekusi command yang
dimasukkan oleh user(pada kasus shell). Proses child melakukannya dengan menggunakan system
call exec. Dari ilustrasi tersebut kita dapat mengetahui bagaimana system call dipakai untuk
managemen proses. Kasus lainnya bukan hanya pada Fork, tetapi hampir setiap proses memerlukan
system call untuk melakukan management proses.
System Calls Managemen Berkas
System calls yang berhubungan dengan berkas sangat diperlukan. Seperti ketika kita ingin membuat
atau menghapus suatu berkas. Atau ketika ingin membuka atau menutup suatu berkas yang telah
ada, membaca berkas tersebut, dan menulis berkas itu. System calls juga diperlukan ketika kita ingin
mengetahui atribut dari suatu berkas atau ketika kita juga ingin merubah atribut tersebut. Yang
termasuk atribut berkas adalah nama berkas, jenis berkas, dan lain-lain. Ada juga system calls yang
menyediakan mekanisme lain yang berhubungan dengan direktori atau sistim berkas secara
keseluruhan. Jadi bukan hanya berhubungan dengan satu spesifik berkas.
Contohnya membuat atau menghapus suatu direktori, dan lain-lain.
System Calls Managemen Peranti
Program yang sedang dijalankan kadang kala memerlukan tambahan sumber daya. Jika banyak
pengguna yang menggunakan sistem, maka jika memerlukan tambahan sumber daya maka harus
meminta peranti terlebih dahulu. Dan setelah selesai penggunakannnya harus dilepaskan kembali.
Ketika sebuah peranti telah diminta dan dialokasikan maka peranti tersebut bisa dibaca, ditulis, atau
direposisi.
System Calls Informasi Maintenance
Beberapa system calls disediakan untuk membantu pertukaran informasi antara pengguna dan sistem
operasi. Contohnya system calls untuk meminta dan mengatur waktu dan tanggal. Atau meminta
informasi tentang sistem itu sendiri, seperti jumlah pengguna, jumlah memori dan disk yang masih
bisa digunakan, dan lain-lain. Ada juga system calls untuk meminta informasi tentang proses yang
disimpan oleh sistem dan system calls untuk merubah (reset) informasi tersebut.
System Calls Komunikasi
Dua model komunikasi:
• Message-passing
Pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh
sistem operasi.
• Shared-memory
Proses menggunakan memori yang bisa digunakan oleh berbagai proses untuk pertukaran
informasi dengan membaca dan menulis data pada memori tersebut.
Dalam message-passing, sebelum komunikasi dapat dilakukan harus dibangun dulu sebuah koneksi.
Untuk itu diperlukan suatu system calls dalam pengaturan koneksi tersebut, baik dalam
menghubungkan koneksi tersebut maupun dalam memutuskan koneksi tersebut ketika komunikasi
sudah selesai dilakukan. Juga diperlukan suatu system calls untuk membaca dan menulis pesan
(message) agar pertukaran informasi dapat dilakukan.
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
dimodifikasi. Pada bab ini, kita akan membahas cara komponen-komponen ini dihubungkan satu
sama lain. Menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, ada tiga cara yaitu:
• Struktur Sederhana
• Pendekatan Berlapis
• Kernel Mikro
Sedangkan menurut William Stallings, kita bisa memandang sistem sebagai seperangkat lapisan.
Tiap lapisan menampilkan bagian fungsi yang dibutuhkan oleh sistem operasi. Bagian yang terletak
pada lapisan yang lebih rendah akan menmpilkan fungsi yang lebih primitif dan menyimpan detail
fungsi tersebut.
Struktur Sederhana
Banyak sistem yang tidak terstruktur dengan baik, sehingga sistem operasi seperti ini dimulai
dengan sistem yang lebih kecil, sederhana, dan terbatas. Kemudian berkembang dengan cakupan
yang original. Contoh sistem seperti ini adalah MS-DOS, yang disusun untuk mendukung fungsi
yang banyak pada ruang yang sedikit karena keterbatasan perangkat keras untuk menjalankannya.
Contoh sistem lainnya adalah UNIX, yang terdiri dari dua bagian yang terpisah, yaitu kernel dan
program sistem. Kernel selanjutnya dibagi dua bagian, yaitu antarmuka dan device drivers. Kernel
mendukung sistem berkas, penjadualan CPU, managemen memori, dan fungsi sistem operasi
lainnya melalui system calls.
Pendekatan Berlapis
Sistem operasi dibagi menjadi sejumlah lapisan yang masing-masing dibangun diatas lapisan yang
lebih rendah. Lapisan yang lebih rendah menyediakan layanan untuk lapisan yang lebih tinggi.
Lapisan yang paling bawah adalah perangkat keras, dan yang paling tinggi adalah user-interface.
Sebuah lapisan adalah implementasi dari obyek abstrak yang merupakan enkapsulasi dari data dan
operasi yang bisa memanipulasi data tersebut. Keuntungan utama dengan sistem ini adalah
modularitas. Pendekatan ini mempermudah debug dan verifikasi sistem. Lapisan pertama bisa di
debug tanpa mengganggu sistem yang lain karena hanya menggunakan perangkat keras dasar untuk
implementasi fungsinya. Bila terjadi error saat debugging sejumlah lapisan, error pasti pada lapisan
yang baru saja di debug, karena lapisan dibawahnya sudah di debug.
Sedangkan menurut Tanenbaum dan Woodhull, sistem terlapis terdiri dari enam lapisan, yaitu:
• Lapisan 0
Mengatur alokasi prosesor, pertukaran antar proses ketika interupsi terjadi atau waktu habis.
Lapisan ini mendukung dasar multi-programming pada CPU.
• Lapisan 1
Mengalokasikan ruang untuk proses di memori utama dan pada 512 kilo word drum yang
digunakan untuk menahan bagian proses ketika tidak ada ruang di memori utama.
• Lapisan 2
Menangani komunikasi antara masing-masing proses dan operator console. Pada lapis ini
masing-masing proses secara efektif memiliki opertor console sendiri.
• Lapisan 3
Mengatur peranti M/K dan menampung informasi yang mengalir dari dan ke proses tersebut.
• Lapisan 4
Tempat program pengguna. Pengguna tidak perlu memikirkan tentang proses, memori,
console, atau managemen M/K.
• Lapisan 5
Merupakan operator sistem.
Menurut Stallings, model tingkatan sistem operasi yang mengaplikasikan prinsip ini dapat dilihat
pada tabel berikut, yang terdiri dari level-level dibawah ini:
Level 1
Terdiri dari sirkuit elektronik dimana obyek yang ditangani adalah register memory cell, dan
gerbang logika. Operasi pada obyek ini seperti membersihkan register atau membaca lokasi
memori.
Level 2
Pada level ini adalah set instruksi pada prosesor. Operasinya adalah instruksi bahasa-mesin,
seperti menambah, mengurangi, load dan store.
Level 3
Tambahan konsep prosedur atau subrutin ditambah operasi call atau return.
Level 4
Mengenalkan interupsi yang menyebabkan prosesor harus menyimpan perintah yang baru
dijalankan dan memanggil rutin penanganan interupsi.
Empat level pertama bukan bagian sistem operasi tetapi bagian perangkat keras. Meski pun
demikian beberapa elemen sistem operasi mulai tampil pada level-level ini, seperti rutin
penanganan interupsi. Pada level 5, kita mulai masuk kebagian sistem operasi dan konsepnya
berhubungan dengan multi-programming.
• Level 5
Level ini mengenalkan ide proses dalam mengeksekusi program. Kebutuhan-kebutuhan dasar
pada sistem operasi untuk mendukung proses ganda termasuk kemampuan men-suspend dan
me-resume proses. Hal ini membutuhkan register perangkat keras untuk menyimpan agar
eksekusi bisa ditukar antara satu proses ke proses lainnya.
• Level 6
Mengatasi penyimpanan sekunder dari komputer. Level ini untuk menjadualkan operasi dan
menanggapi permintaan proses dalam melengkapi suatu proses.
• Level 7
Membuat alamat logik untuk proses. Level ini mengatur alamat virtual ke dalam blok yang
bisa dipindahkan antara memori utama dan memori tambahan. Cara-cara yang sering dipakai
adalah menggunakan ukuran halaman yang tetap, menggunakan segmen sepanjang
variabelnya, dan menggunakan cara keduanya. Ketika blok yang dibutuhkan tidak ada
dimemori utama, alamat logis pada level ini meminta transfer dari level 6. Sampai point ini,
sistem operasi mengatasi sumber daya dari prosesor tunggal. Mulai level 8, sistem operasi
mengatasi obyek eksternal seperti peranti bagian luar, jaringan, dan sisipan komputer kepada
jaringan.
• Level 8
Mengatasi komunikasi informasi dan pesan-pesan antar proses. Dimana pada level 5
disediakan mekanisme penanda yang kuno yang memungkinkan untuk sinkronisasi proses,
pada level ini mengatasi pembagian informasi yang lebih banyak. Salah satu peranti yang
paling sesuai adalah pipe (pipa) yang menerima output suatu proses dan memberi input ke
proses lain.
• Level 9
Mendukung penyimpanan jangka panjang yang disebut dengan berkas. Pada level ini, data dari
penyimpanan sekunder ditampilkan pada tingkat abstrak, panjang variabel yang terpisah. Hal
ini bertentangan tampilan yang berorientasikan perangkat keras dari penyimpanan sekunder.
• Level 10
Menyediakan akses ke peranti eksternal menggunakan antarmuka standar.
• Level 11
Bertanggung-jawab mempertahankan hubungan antara internal dan eksternal identifier dari
sumber daya dan obyek sistem. Eksternal identifier adalah nama yang bisa dimanfaatkan oleh
aplikasi atau pengguna. Internal identifier adalah alamat atau indikasi lain yang bisa digunakan
oleh level yang lebih rendah untuk meletakkan dan mengontrol obyek.
• Level 12
Menyediakan suatu fasilitator yang penuh tampilan untuk mendukung proses. Hal ini
merupakan lanjutan dari yang telah disediakan pada level 5. Pada level 12, semua info yang
dibutuhkan untuk managemen proses dengan berurutan disediakan, termasuk alamat virtual di
proses, daftar obyek dan proses yang berinteraksi dengan proses tersebut serta batasan
interaksi tersebut, parameter yang harus dipenuhi proses saat pembentukan, dan karakteristik
lain yang mungkin digunakan sistem operasi untuk mengontrol proses.
• Level 13
Menyediakan antarmuka dari sistem operasi dengan pengguna yang dianggap sebagai shell
atau dinding karena memisahkan pengguna dengan sistem operasi dan menampilkan sistem
operasi dengan sederhana sebagai kumpulan servis atau pelayanan.
Dari ketiga sumber diatas dapat kita simpulkan bahwa lapisan sistem operasi secara umum terdiri
atas 4 bagian, yaitu:
1. Perangkat keras
Lebih berhubungan kepada perancang sistem. Lapisan ini mencakup lapisan 0 dan 1 menurut
Tanenbaum, dan level 1 sampai dengan level 4 menurut Stallings.
2. Sistem operasi
Lebih berhubungan kepada programer. Lapisan ini mencakup lapisan 2 menurut Tanenbaum,
dan level 5 sampai dengan level 7 menurut Stallings.
3. Kelengkapan
Lebih berhubungan kepada programer. Lapisan ini mencakup lapisan 3 menurut Tanenbaum,
dan level 8 sampai dengan level 11 menurut Stallings.
4. Program aplikasi
Lebih berhubungan kepada pengguna aplikasi komputer. Lapisan ini mencakup lapisan 4 dan
lapisan 5 menurut Tanebaum, dan level 12 dan level 13 menurut Stallings.
Salah satu kesulitan besar dalam sistem terlapis disebabkan karena sebuah lapisan hanya bisa
menggunakan lapisan-lapisan dibawahnya, misalnya: backing-store driver, normalnya diatas
penjadual CPU sedangkan pada sistem yang besar, penjadual CPU punya informasi tentang proses
yang aktif yang ada di memori. Oleh karena itu, info ini harus dimasukkan dan dikeluarkan dari
memori, sehingga membutuhkan backing-store driver dibawah penjadual CPU. Kesulitan lainnya
adalah paling tidak efisien dibandingkan tipe lain. Ketika pengguna mengeksekusi M/K, akan
mengeksekusi lapisan M/K, lapisan managemen memori, yang memanggil lapisan penjadual CPU.