Konsep Dasar Sistem Operasi
2.1. Struktur Sistem Operasi
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.
2.1.1. Komponen-komponen Sistem
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.
2.1.2. 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 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.
2.1.3. Managemen Memori Utama
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.
2.1.4. Managemen 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).
2.1.5. Managemen Sistem I/O
Sering disebut device manager.
Menyediakan device driver yang umum sehingga operasi I/O dapat
seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan
operasi yang sama untuk membaca berkas pada 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.
2.1.6. Managemen 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.
2.1.7. 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.
2.1.8. 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.
2.1.9. 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 I/O yang ada.
Contohnya: CLI, Windows, Pen-based (touch), dan
lain-lain.
2.2. Layanan Sistem Operasi, System
Calls, dan System
Program
2.2.1. 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 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.
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 message-passing,
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, I/O, dan di dalam
program yang dijalankan pengguna. Untuk setiap jenis error system 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 diatas, 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.
2.2.2. 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
system operasi.
Jenis System Calls
Sumber: Silberschatz, 2003, hal. 68.
1.
Kontrol Proses
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.
2.
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.
3. 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.
4. Informasi Maintenance
Beberapa system calls disediakan
untuk membantu pertukaran informasi antara pengguna dan system 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.
5. Komunikasi
Dua model komunikasi:
• Message-passing
Pertukaran informasi dilakukan melalui
fasilitas komunikasi antar proses yang disediakan oleh system 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.
2.2.3. System Program
System program menyediakan
lingkungan yang memungkinkan pengembangan program dan eksekusi berjalan
dengan baik.
Dapat dikategorikan:
• Managemen/manipulasi Berkas Membuat,
menghapus, copy, rename, print, memanipulasi berkas dan
direktori.
• Informasi status
Beberapa program meminta informasi
tentang tanggal, jam, jumlah memori dan disk yang tersedia, jumlah pengguna dan
informasi lain yang sejenis.
• Modifikasi berkas
Membuat berkas dan memodifikasi isi berkas
yang disimpan pada disk atau tape.
• Pendukung bahasa pemrograman
Kadang kala compiler, assembler,
interpreter dari bahasa pemrograman diberikan kepada pengguna dengan bantuan
sistem operasi.
• 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.
• 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 user-specified command selanjutnya.
2.3. Struktur Sistem
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
• Mikrokernel
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.
2.3.1. Struktur Sederhana
Dimulai dengansistemyang kecil,
sederhanadan terbatas kemudian berkembang dengan cakup anoriginal
-DOS : disusun untuk
mendukung fungsi yang banyak pada ruang
yang kecil.
Struktur
Sistem MS-DOS
Ada
sejumlah sistem komersial yang tidak memiliki struktur yang cukup baik. Sistem
operasi tersebut sangat kecil, sederhana dan memiliki banyak keterbatasan.
Salah satu contoh sistem tersebut adalah MS-DOS. MS-DOS dirancang oleh
orang-orang yang tidak memikirkan akan kepopuleran software tersebut.
Sistem operasi tersebut terbatas pada perangkat keras sehingga tidak terbagi
menjadi modul-modul. Meskipun MS-DOS, mempunyai beberapa struktur, antar muka
dan tingkatan fungsionalitas tidak terpisah secara baik seperti pada Gambar Karena
Intel 8088 tidak menggunakan dual-mode
sehingga
tidak ada proteksi hardware. Oleh karena itu orang mulai enggan menggunakannya.
Struktur
Sistem UNIX
Sistem
operasi UNIX (Original UNIX) juga terbatas pada fungsi perangkat
keras
dan struktur yang terbatas. UNIX hanya terdiri atas 2 bagian, yaitu Kernel dan program
sistem. Kernel berada di bawah tingkat antarmuka system call dan diatas perangkat
lunak secara fisik. Kernel ini berisi sistem file, penjadwalan CPU, menejemen
memori, dan fungsi sistem operasi lainnya yang ada pada sistem call berupa sejumlah
fungsi yang besar pada satu level. Program sistem meminta bantuan kernel untuk
memanggil fungsi-fungsi dalam kompilasi dan manipulasi file. Struktur system
UNIX
dapat dilihat pada Gambar
2.3.2. Pendekatan Berlapis
Lapisan
adalah implementasi dari objek abstrak yang merupakan enkapsulasi dari data
dan operasi yang bias memanipulasi
data tersebut.
Teknik pendekatan terlapis pada dasarnya dibuat dengan menggunakanModularisasi
sistem dilakukan dengan cara memecah sistem operasi menajdi
beberapa
lapis (tingkat). Lapisan terendah (layer 0) adalah perangkat keras dan lapisan teratas
(layer N) adalah user interface. Dengan system modularisasi, setiap
lapisan mempunyai fungsi (operasi) tertentu dan melayani lapisan yang lebih
rendah. Gambar
2-7
menunjukkan system pendekatan terlapis tersebut.
Contoh
sistem operasi yan
g
menggunakan sistem ini adalah: UNIX
termodifikasi,
THE, Venus dan OS/2 .
Sebuah
lapisan adalah implementasi dari objek 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 I/O 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 I/O.
• Lapisan 5
Merupakan operator sistem.
Menurut Stallings, model tingkatan
sistem operasi yang mengaplikasikan prinsip ini dapat dilihat pada table berikut,
yang terdiri dari level-level dibawah ini:
• Level 1
Terdiri dari sirkuit elektronik dimana
objek yang ditangani adalah register memory cell, dan gerbang logika.
Operasi pada objek 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. Meskipun 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
objek 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 objek
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 objek.
• 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 objek 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 programmer.
Lapisan ini mencakup lapisan 2 menurut Tanenbaum, dan level 5 sampai dengan
level 7 menurut Stallings.
3. Kelengkapan
Lebih berhubungan kepada programmer.
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.
identifier adalah
alamat atau indikasi lain yang bisa digunakan oleh level yang lebih rendah
untuk meletakkan dan mengontrol objek.
• 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 objek 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 programmer.
Lapisan ini mencakup lapisan 2 menurut Tanenbaum, dan level 5 sampai dengan
level 7 menurut Stallings.
3. Kelengkapan
Lebih berhubungan kepada programmer.
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.
Sumber: Stallings, 2001, hal. 46.
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 I/O, akan mengeksekusi
lapisan I/O, lapisan managemen memori, yang memanggil lapisan penjadual CPU.
2.3.3. Mikrokernel
Metode ini menyusun sistem operasi
dengan menghapus semua komponen yang tidak esensial dari kernel, dan mengimplementasikannya
sebagai program sistem dan level pengguna. Hasilnya kernel yang lebih
kecil. Pada umumnya mikrokernel mendukung proses dan menagemen memori yang
minimal, sebagai tambahan utnuk fasilitas komunikasi.
Fungsi utama mikrokernel adalah
mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan
yang juga berjalan di user space. Komunikasi yang dilakukan secara tidak
langsung, didukung oleh sistem message passing, dengan bertukar pesan
melalui mikrokernel.
Salah satu keuntungan mikrokernel adalah
ketika layanan baru akan ditambahkan ke user space, kernel tidak perlu
dimodifikasi. Kalau pun harus, perubahan akan lebih sedikit. Hasil sistem
operasinya lebih mudah untuk ditempatkan pada suatu desain perangkat keras ke
desain lainnya. Mikrokernel juga mendukung keamanan
reliabilitas lebih, karena kebanyakan
layanan berjalan sebagai pengguna proses. Jika layanan gagal, sistem
operasi lainnya tetap terjaga. Beberapa
sistem operasi yang menggunakan metode ini adalah TRU64 UNIX, MacOSX, dan QNX.
2.4. Mesin Virtual, Desain Sistem dan
Implementasinya, dan
System Generation
2.4.1. Mesin Virtual Java
Pada dasarnya, sistem komputer dibangun
atas lapisan-lapisan (layers). Perangkat keras adalah lapisan terendah. Kernel
yang berada di lapisan atasnya menggunakan instruksi perangkat keras untuk
menciptakan seperangkat system calls yang dapat digunakan oleh
komponen-komponen lain yang berada pada level di atasnya. Sistem program pada
level di atasnya dapat menggunakan system call dan perangkat keras
seolah-olah mereka berada pada level yang sama.
Meski sistem program berada di level
tertinggi, program aplikasi bisa melihat segala sesuatu di bawahnya (pada tingkatan)
seakan mereka adalah bagian dari mesin. Pendekatan dengan lapisan-lapisan
inilah yang diambil sebagai kesimpulan logis pada konsep mesin virtual atau virtual
machine (VM). Pendekatan VM menyediakan sebuah antarmuka yang identik
dengan underlying bare hardware. VM dibuat dengan pembagian sumber daya oleh
physical computer. VM perangkat lunak membutuhkan ruang pada disk untuk
menyediakan memori virtual dan spooling sehingga perlu ada disk virtual.
Meski sangat berguna, VM sulit untuk diimplementasikan. Banyak hal yang
dibutuhkan untuk menyediakan duplikat yang tepat dari underlying machine.
VM dapat dieksekusi pada only user mode sehingga kita harus mempunyai virtual
user mode sekaligus virtual memory mode yang keduanya berjalan di physical
user mode. Ketika instruksi yang hanya membutuhkan virtual user mode dijalankan,
ia akan mengubah isi register yang berefek pada virtual monitor mode sehingga
dapat memulai ulang VM tersebut. Sebuah instruksi I/O yang membutuh waktu 100
ms, dengan menggunakan VM bisa dieksekusi lebih cepat karena spooling atau
lebih lambat karena interpreter. Terlebih lagi, CPU menjadi multiprogrammed di
antara banyak VM. Jika setiap user diberi 1 VM, dia akan bebas menjalankan
sistem operasi (kernel) yang diinginkan pada VM tersebut.
Selain kekurangan yang telah disebutkan
diatas, jelas VM memiliki kelebihan-kelebihan, yaitu: Keamanan yang terjamin
karena VM mempunyai perlindungan lengkap pada berbagai sistem sumber daya,
tidak ada pembagian resources secara langsung. Pembagian disk mini dan jaringan
diimplementasikan dalam perangkat lunak. Sistem VM adalah kendaraan yang
sempurna untuk penelitian dan pengembangan Sistem Operasi. Dengan VM, perubahan
satu bagian dari mesin dijamin tidak akan mengubah komponen lainnya.
Mesin Virtual Java atau Java Virtual
Machine (JVM) terdiri dari sebuah kelas loader dan java interpreter yang mengeksekusi
the architecture-neutral bytecodes. Java interpreter bisa berupa
perangkat lunak yang menginterpretasikan kode byte setiap waktu atau hanya Just-In-Time
(JIT) yang mengubah architecture-neutral bytecodes menjadi
bahasa mesin lokal. Interpreter bisa juga diimplementasikan pada sebuah chip
perangkat keras. Instance dari JVM dibentuk ketika aplikasi java
atau applet dijalankan. JVM mulai berjalan saat method main dipanggil.
Pada applet, JVM menciptakan method main sebelum membuat applet itu
sendiri.
Java Development Environment terdiri
dari sebuah Compile Time Environment dan RunTime Environment. Compile
berfungsi mengubah java sourcecode menjadi kode byte. Sedangkan RunTime
merupakan Java
Platform untuk
sistem Host.
2.4.2. Desain Sistem dan Implementasinya
Desain sistem memiliki masalah dalam
menentukan tujuan dan spesifikasi sistem. Pada level paling tinggi, desain
sistem akan dipengaruhi oleh pilihan perangkat keras dan jenis sistem.
Kebutuhannya akan lebih sulit untuk dispesifikasikan. Kebutuhan terdiri dari
target user dan target sistem. User menginginkan sistem yang nyaman digunakan,
mudah dipelajari, dapat dipercaya, aman, dan cepat. Namun itu semua tidaklah
signifikan untuk desain sistem. Orang yang mendesain ingin sistem yang mudah
didesain, diimplementasikan, fleksibel, dapat dipercaya, bebas eror, efisien.
Sampai saat ini belum ada solusi yang pas untuk menentukan kebutuhan dari sistem
operasi. Lain lingkungan, lain pula kebutuhannya.
Mekanisme dan Kebijakan
Mekanisme menentukan bagaimana melakukan
sesuatu. Kebijakan menentukan apa yang akan dilakukan.Pemisahan antara
mekanisme dan kebijakan sangatlah penting untuk fleksibilitas. Perubahan kebijakan
akan membutuhkan definisi ulang pada beberapa parameter sistem, bahkan bisa
mengubah mekanisme yang telah ada. Sistem operasi Microkernel-based menggunakan
pemisahan mekanisme dan kebijakan secara ekstrim dengan mengimplementasikan
perangkat dari primitive building blocks. Semua aplikasi mempunyai antarmuka
yang sama karena antarmuka dibangun dalam kernel.
Kebijakan penting untuk semua alokasi
sumber daya dan penjadualan problem. Perlu atau tidaknya system mengalokasikan
sumber daya, kebijakan yang menentukan. Tapi bagaimana dan apa, mekanismelah
yang menentukan.
Implementasi
Umumnya sistem operasi ditulis dalam
bahasa rakitan, tapi sekarang ini sering ditulis dalam bahasa tingkat tinggi.
Keuntungannya adalah kodenya bisa ditulis lebih cepat, lebih padat, mudah
dimengerti dan di-debug.Sistem operasi mudah diport (dipindahkan ke
perangkat keras lain). Kerugiannya adalah mengurangi kecepatan dan membutuhkan
tempat penyimpanan yang lebih banyak.
2.4.3. System Generation
Adalah mungkin untuk mendesign,
mengkode, dan megimplementasikan sebuah sistem operasi khusus untuk satu mesin
di suatu site. Pada umumnya sistem operasi dibuat untuk berjalan pada
beberapa kelas mesin di berbagai site dan berbagai konfigurasi peripheral.
Kemudian, sistem dikonfigurasikan untuk masing-masing komputer, untuk site yang
spesifik. Proses ini terkadang disebut sebagai System Generation.
Sistem program membaca dari berkas yang
diberikan atau mungkin bertanya pada operator tentang informasi yang
berhubungan dengan perangkat keras tersebut, antara lain adalah sebagai
berikut:
• CPU apa yang digunakan, pilihan yang
diinstall?
• Berapa banyak memori yang tersedia?
• Peralatan yang tersedia?
• Pilihan Sistem operasi apa yang
diinginkan atau parameter yang digunakan?
Satu kali informasi didapat, bisa
digunakan dengan berbagai cara.
Tidak ada komentar:
Posting Komentar