2. Struktur Sistem Operasi
Layanan (Service) Sistem Operasi
Antarmuka pengguna Sistem Operasi
Sistem Calls
Tipe-Tipe Sistem Call
Program Sistem
Perancangan dan Implementasi Operasi Sistem
Struktur Sistem Operasi
Virtual Machine
Generasi Sistem Operasi
Boot Sistem
3. Tujuan
Untuk menggambarkan pelayanan (service) sistem operasi
yang disediakan kepada pengguna, proses, dan sistem lain
Untuk membahas berbagai cara strukturisasi sistem operasi
Untuk menjelaskan bagaimana sistem operasi diinstal dan
disesuaikan dan bagaimana caranya boot
4. Layanan Sistem Operasi
Satu set layanan (service) sistem operasi menyediakan
fungsi yang membantu pengguna:
User interface - Hampir semua sistem operasi memiliki
antarmuka pengguna (UI)
Bervariasi antara Command-Line (CLI), Grafik User Interface (GUI), Batch
Eksekusi program - Sistem harus dapat memuat program ke
memori dan menjalankan program, mengakhiri eksekusi,
secara normal atau abnormal (menunjukkan kesalahan)
Operasi I/O - program berjalan mungkin memerlukan I/O,
yang mungkin melibatkan file atau peranti I/O.
Manipulasi File sistem - Program perlu membaca dan
menulis file dan direktori, membuat dan menghapus mereka,
pencarian mereka, daftar file Informasi, manajemen izin.
5. Layanan Sistem Operasi (Lanj.)
Satu set layanan (service) sistem operasi menyediakan
fungsi yang membantu pengguna:
Komunikasi - Proses dapat bertukar informasi, pada
komputer yang sama atau antara komputer melalui jaringan
Komunikasi dapat melalui memori bersama atau melalui message passing
(paket dipindahkan oleh OS)
Deteksi kesalahan - OS perlu selalu menyadari kemungkinan
kesalahan
Dapat terjadi di CPU dan perangkat keras memori, peranti I/O, dalam
program pengguna
Untuk setiap jenis kesalahan, OS harus mengambil tindakan yang sesuai
untuk memastikan komputasi yang benar dan konsisten
Fasilitas Debugging dapat sangat meningkatkan pengguna dan
kemampuan programmer untuk efisien menggunakan sistem
6. Layanan Sistem Operasi (Lanj.)
Set lain dari fungsi OS untuk menjamin operasi yang efisien dari sistem
itu sendiri melalui pembagian sumber daya
Alokasi sumber daya - Ketika multiple user atau beberapa pekerjaan
berjalan bersamaan, sumber daya harus dialokasikan untuk masing-masing
Banyak jenis sumber daya - Beberapa (seperti siklus CPU, memoriu tama, dan
penyimpanan file) mungkin memiliki kode alokasi khusus, yang lain (seperti peranti
I/O) mungkin punya permintaan umum dan rilis kode.
Akuntansi - Untuk melacak pengguna mana yang menggunakan berapa
banyak dan apa jenisnya dari sumber daya komputer
Proteksi dan keamanan - Pemilik informasi yang disimpan dalam sebuah
sistem komputer multiuser atau jaringan mungkin ingin mengontrol
penggunaan informasi tersebut, proses konkuren tidak boleh saling
mengganggu
Proteksi/Perlindungan melibatkan memastikan bahwa semua akses ke sumber
daya sistem dikendalikan
Keamanan sistem dari luar memerlukan otentikasi pengguna, diperluas untuk
mempertahankan peranti I/O eksternal dari upaya akses tidak valid
Jika sistem harus dilindungi dan supaya aman, tindakan pencegahan harus
dilembagakan keseluruhan. Sebuah rantai hanya sekuat pada hubungan yang
terlemah
7. Antarmuka Pengguna Sistem Operasi - CLI
CLI memungkinkan pemasukan perintah langsung
Kadang-kadang diimplementasikan di kernel, kadang-kadang
oleh program sistem
Kadang-kadang beberapa selera diimplementasikan shells
Utamanya mengambil perintah dari pengguna dan
mengeksekusinya
Kadang-kadang perintah built-in, kadang-kadang hanya nama program
Jika yang terakhir, menambahkan fitur baru tidak memerlukan modifikasi shell
8. Linux
MS-DOS
shell-nya adalah COMMAND.COM
Shell Name Developed by Where Remark
BASH ( Bourne-Again
SHell )
Brian Fox and
Chet Ramey
Free Software
Foundation
Most common shell in Linux. It's
Freeware shell.
CSH (C SHell) Bill Joy University of
California (For BSD)
The C shell's syntax and usage are
very similar to
the C programming language.
KSH (Korn SHell) David Korn AT & T Bell Labs --
TCSH See the man
page.
Type $ man tcsh
-- TCSH is an enhanced but
completely compatible version of
the Berkeley UNIX C shell (CSH).
9. User Operating System Interface - GUI
Antarmuka metafora desktop yg user-friendly
Biasanya mouse, keyboard, dan monitor
Ikon mewakili file, program, tindakan, dll
Berbagai tombol mouse di atas objek dalam antarmuka
menyebabkan berbagai tindakan (memberikan informasi,
pilihan, melaksanakan fungsinya, membuka direktori (dikenal
sebagai folder)
Diciptakan di Xerox PARC
Banyak sistem sekarang mencakup antarmuka CLI dan GUI
Microsoft Windows GUI dengan shell CLI "command,
PowerShell
Apple Mac OS X sebagai interface GUI "Aqua" dengan kernel
UNIX yang tersedia di bawah dan shell
Solaris CLI dengan antarmuka GUI opsional (Java Desktop,
KDE)
10. System Calls
Antarmuka pemrograman untuk layanan yang diberikan oleh OS
Biasanya ditulis dalam bahasa tingkat tinggi (C atau C + +)
Sebagian besar diakses oleh program melalui Application
Program Interface (API) tingkat-tinggi daripada menggunakan
sistem direct call
Tiga API yang paling umum adalah:
Win32 API untuk Windows,
POSIX API untuk sistem berbasis POSIX (termasuk hampir semua
versi UNIX, Linux, dan Mac OS X), dan
Java API untuk Java virtual machine (JVM)
Mengapa menggunakan API daripada system calls?
(Catatan bahwa nama-nama sistem call yang digunakan di seluruh
teks ini adalah generik)
11. Contoh System Calls
Urutan system call sequence untuk mengkopi isi dari satu
file ke file lain
12. Contoh Standard API
Tinjau function ReadFile() di
Win32 APIfungsi pembacaan dari file
Keterangan dari parameters yang dilewatkan ke ReadFile()
HANDLE filefile yang akan dibaca
LPVOID bufferbuffer dimana data akan dibaca ke dan ditulis dari
DWORD bytesToReadukuran jumlah bytes yang akan dibaca ke buffer
LPDWORD bytesReadukuran jumlah bytes yang dibaca sejak pembacaan terakhir
LPOVERLAPPED ovlindikasi jika overlap I/O sedang digunakan
13. Implementasi System Call
Biasanya, nomor dikaitkan dengan setiap sistem call
System-call interface memelihara sebuah tabel berindeks
menurut nomor-nomor ini
Antarmuka system call memanggil system call yang
diinginkan di kernel OS dan mengembalikan status dari
sistem call dan nilai-nilai hasil baliknya
Caller tidak perlu tahu bagaimana system call
diimplementasikan
Hanya perlu mematuhi API dan mengerti apa OS akan
melakukannya sebagai suatu hasil panggilan
Sebagian besar rincian antarmuka OS disembunyikan dari
programmer menggunakan API
Dikelola oleh library yg mendukung run-time (set fungsi yang dibangun
dalam library yg disertakan dengan compiler)
15. Contoh Standar C Library
Program C memanggil call library printf(), yang mana
memanggil system call write()
16. System Call Parameter Passing
Seringkali, informasi lebih diperlukan dari sekedar identitas system call
yang diinginkan
Tipe pasti tepat dan jumlah informasi yang bervariasi sesuai dengan
OS dan call nya
Tiga metode umum yang digunakan untuk passing parameter ke OS
Sederhana: pass parameter dalam register
Dalam beberapa kasus, mungkin parameter lebih dari register
Parameter disimpan dalam block, atau table, dalam memori, dan
alamat block dilewatkan sebagai parameter di register
Pendekatan yang diambil oleh Linux dan Solaris
Parameter ditempatkan, atau di-push, ke stack oleh program dan di-
pop dari stack oleh sistem operasi
Metode Block dan stack tidak membatasi jumlah atau panjang
parameter yang dilewatkan
21. System Programs
Program sistem menyediakan lingkungan yang
nyaman untuk pengembangan program dan eksekusi.
Ini dapat dibagi menjadi:
Manipulasi Berkas
Informasi status
Modifikasi File
Dukungan bahasa pemrograman
Pemuatan dan eksekusi program (program loading dan
execution)
Komunikasi
Program aplikasi
Pengguna sebagian besar memandang tampilan
sistem operasi didefinisikan oleh program sistem,
bukan sistem call sebenarnya
23. System Programs
Menyediakan lingkungan yang nyaman untuk pengembangan dan
eksekusi program
Beberapa darinya hanya user interface untuk sistem call; lainnya jauh
lebih kompleks
Manajemen file - Membuat, menghapus, menyalin, mengubah nama,
mencetak, dump, daftar, dan umumnya memanipulasi file dan direktori
Informasi status
Beberapa meminta sistem untuk informasi - tanggal, waktu, jumlah
memori yang tersedia, ruang disk, jumlah pengguna
Lainnya menyediakan informasi rincian performa, logging, dan
debugging
Biasanya, program-program ini memformat dan mencetak output ke
terminal atau perangkat output lainnya
Beberapa sistem menerapkan registri - digunakan untuk menyimpan
dan mengambil informasi konfigurasi
24. Program Sistem (contd)
Modifikasi File
Editor Teks untuk membuat dan memodifikasi file
Perintah khusus untuk mencari isi dari file atau melakukan
transformasi dari teks
Dukungan bahasa pemrograman compiler, assembler, debugger dan
interpreter kadang-kadang diberikan
Pemuatan dan eksekusi program Absolute loader, relocatable loader,
linkage editor, dan overlay loader, sistem debugging untuk tingkat yang
lebih tinggi dan bahasa mesin
Komunikasi - Menyediakan mekanisme untuk membuat hubungan
virtual antar proses, pengguna, dan sistem komputer
Memungkinkan pengguna untuk mengirim pesan dari satu layar ke
layar lain, browse halaman web, mengirim pesan email, login jarak
jauh, transfer file dari satu mesin yang lain
25. Desain and Implementasi Sistem Operasi
Desain dan Implementasi OS tidak solvable", tetapi
beberapa pendekatan telah terbukti sukses
Struktur internal Sistem Operasi yang berbeda dapat sangat
bervariasi
Mulailah dengan menentukan tujuan dan spesifikasi
Dipengaruhi oleh pilihan perangkat keras, jenis sistem
Tujuan User dan tujuan System
Tujuan User - sistem operasi harus nyaman digunakan, mudah
dipelajari, dapat diandalkan, aman, dan cepat
Tujuan System - sistem operasi harus mudah untuk dirancang,
diimplementasikan, dan dipelihara, serta fleksibel, handal,
bebas kesalahan, dan efisien
26. Desain and Implementasi Sistem Operasi (Lanj.)
Prinsip penting untuk memisahkan
Kebijakan (Policy): Apa yang akan dilakukan?
Mekanisme (Mechanism): Bagaimana melakukannya?
Mekanisme menentukan bagaimana melakukan sesuatu,
kebijakan memutuskan apa yang akan dilakukan
Pemisahan kebijakan dari mekanisme adalah prinsip yang
sangat penting, hal itu memungkinkan fleksibilitas maksimal
jika keputusan kebijakan harus diubah nanti
27. Simple Structure
MS-DOS - dibuat untuk memberikan fungsionalitas paling
banyak dalam ruang sedikit
Tidak dibagi dalam modul-modul
Meskipun MS-DOS memiliki struktur tertentu, tingkat
antarmuka dan fungsionalitas tidak dipisahkan secara baik
29. Pendekatan Berlapis
Sistem operasi dibagi menjadi beberapa lapisan (tingkat),
masing-masing dibangun di atas lapisan bawahnya.
Lapisan bawah (layer 0), adalah perangkat keras,
sedangkan (lapisan N) tertinggi adalah user interface.
Dengan modularitas, lapisan yang dipilih sedemikian rupa
sehingga masing-masing menggunakan fungsi (operasi)
dan layanan (service) hanya lapisan ditingkat bawahnya
31. UNIX
UNIX - dibatasi oleh fungsionalitas perangkat keras,
sistem operasi UNIX asli memiliki struktur terbatas.
OS UNIX terdiri dari dua bagian terpisah
Sistem program
Kernel
Terdiri dari segala sesuatu di bawah antarmuka sistem -call dan
di atas fisik perangkat keras
Menyediakan sistem berkas, penjadwalan CPU, manajemen
memori, dan sistem operasi fungsi; sejumlah besar fungsi untuk
satu tingkat
33. Microkernel System Structure
Berpindah sebisa mungkin dari kernel ke ruang user
Komunikasi terjadi antara module user menggunakan
passing message
Manfaat:
Lebih mudah untuk mengembangkan mikrokernel
Lebih mudah untuk porting sistem operasi ke arsitektur baru
Lebih dapat diandalkan (sedikit kode berjalan dalam mode
kernel)
Lebih aman
Kekurangan:
Overhead kinerja dari komunikasi ruang pengguna ke ruang
kernel
35. Modul-Modul
Sebagian besar sistem operasi modern menerapkan modul-
modul kernel
Menggunakan pendekatan berorientasi obyek
Tiap modul komponen inti dipisahkan
Tiap modul berbicara ke yang lainnya melalui antarmuka yg
dikenal
Tiap modul loadable sesuai keperluan di dalam kernel
Secara keseluruhan, mirip dengan lapisan tetapi lebih
fleksibel
37. Virtual Machine
Virtual machine mengambil pendekatan berlapis untuk
kesimpulan logis. Memperlakukan hardware dan kernel
sistem operasi seolah-olah semuanya perangkat keras
Sebuah mesin virtual menyediakan sebuah antarmuka yang
identik dengan perangkat keras yang mendasari secara
kasat mata
Sistem operasi menciptakan ilusi dari beberapa proses,
masing-masing dieksekusi pada prosesor sendiri dengan
memori (virtual) sendiri
38. Virtual Machine (Lanj.)
Sumber daya dari komputer fisik dibagi untuk membuat
mesin virtual
Penjadwalan CPU dapat membuat penampakan bahwa
pengguna memiliki prosesor sendiri
Spooling dan sistem berkas dapat memberikan card reader
virtual dan line printer virtual
Terminal pengguna time-sharing biasa berfungsi sebagai
console operator virtual machine
40. Virtual Machines (Cont.)
Konsep virtual machine menyediakan perlindungan yang lengkap
dari sumber daya sistem karena masing-masing mesin virtual
terisolasi dari semua virtual machine lainnya. Isolasi ini,
bagaimanapun, tidak mengizinkan berbagi sumber daya secara
langsung .
Sebuah sistem virtual machine adalah kendaraan yang sempurna
untuk penelitian sistem operasi dan development. Pengembangan
sistem dilakukan pada mesin virtual, bukan pada mesin fisik
sehingga tidak mengganggu operasi normal sistem.
Konsep mesin virtual sangat sulit untuk diimplementasikan karena
usaha yang dibutuhkan untuk menyediakan duplikat yang tepat
untuk mesin yang mendasarinya
43. Operating System Generation
Sistem operasi dirancang untuk berjalan di salah satu dari
suatu kelas mesin, sistem harus dikonfigurasi untuk setiap
situs komputer tertentu
Program SYSGEN mendapatkan informasi mengenai
konfigurasi khusus dari sistem perangkat keras
Booting - memulai komputer dengan me-load kernel
Bootstrap program - kode yang tersimpan dalam ROM
yang mampu menemukan kernel, load ke memori, dan
mulai eksekusi
44. Boot Sistem
Sistem operasi harus dibuat tersedia untuk perangkat keras
sehingga perangkat keras dapat memulainya
Potongan kecil kode - bootstrap loader, menempatkan
kernel, memuat ke memori, dan memulainya
Kadang-kadang proses dua langkah dimana boot block pada
lokasi tetap memuat bootstrap loader
Ketika power diinisialisasi pada sistem, eksekusi dimulai pada
lokasi memori yg tetap
Firmware digunakan untuk menyimpan kode boot awal (misal BIOS)