III. Struktur sistem operasi III.1. Struktur sederhana Sistem operasi yang kecil, sederhana dan terbatas pada hardware contoh MSDOS dan UNIX MSDOS MSDOS menggunakan single tasking dan single mode (tanpa proteksi hardware) Terdapat dua fasilitas layanan interrupsi : - Layanan ROM BIOS - Layanan di MS DOS
UNIX Terdiri dari Kernel dan program sistem Kernel berisi sistem file, penjadwalan CPU, manajemen memori dan system call Program sistem memanggil fungsi yang ada pada kernel
Diagram Blok Sistem Kernel UNIX
Struktur UNIX
III.2. Struktur Monolithic Merupakan struktur sederhana yang dilengkapi dengan dual mode Berupa kumpulan prosedur yang dapat dipanggil bila diperlukan dan dieksekusi pada monitor mode User program melakukan trap pada kernel. Intruksi berpindah dari user mode ke monitor mode dan mentransfer kontrol ke sistem operasi Sistem operasi mengecek parameter dari pemanggilan tersebut untuk menentukan system call mana yang memanggil Sistem operasi menunjuk ke suatu tabel yang berisi system call yang dimaksud Setelah system call selesai, kontrol dikembalikan ke user program
Kelemahan sistem monolithic Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik karena sangat besar ukurannya sementara sebenarnya tidak memerlukan seluruh layanan yang disedikan kernel Pengujian dan penghilangan kesalahan sulit dilokalisasi dan bila ada kesalahan dapat mematikan seluruh sistem Keunggulan sistem monolithic Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang yang sama
III.3. Struktur Berlapis Sistem operasi dibagi menjadi modul-modul (modular) dan tiap modul memiliki hirarki top-down. Modul yang merupakan lapisan bawah akan melayani lapisan di atasnya. Contoh : UNIX termodifikasi, THE, Venus dan OS2 Struktur THE : Lapis-5 : user program Lapis-4 : buffering untuk I/O device Lapis-3 : operator-console device driver Lapis-2 : manajemen memori Lapis-1 : penjadwalan CPU Lapis-0 : hardware
Keunggulan Struktur Berlapis Karena sistem dibagi menjadi beberapa modul, tiap lapisan dapat dirancang dan diuji secara independen Kelemahan Struktur Berlapis Fungsi-fungsi sistem operasi harus diberikan ke setiap lapisan secara hati-hati III. 4. Struktur dengan Mesin Virtual Awalnya struktur ini melakukan simulasi mesin nyata dan hasil simulasi berupa mesin virtual yang digunakan user Kemudian berkembang menjadi emulator sistem operasi yang memungkinkan sistem operasi diemulasikan pada sistem operasi yang berbeda Mula-mula digunakan pada IBM S/370 dengan VM370-nya
Contoh emulasi sistem operasi Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi Win16. Aplikasi tersebut dijalankan sebagai masukan bagi subsistem di MS-Windows NT yang mengemulasikan system calls yang dipanggil aplikasi dengan WIN32 API IBM mengembangkan WABI yang mengemulasikan WIN32 API sehingga diharapkan sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS Windows Pada LINUX ada DOSEMU untuk menjalankan aplikasi DOS pada LINUX dan WINE untuk menjalankan aplikasi MS Windows pada LINUX
III.5. Struktur dengan Client-Server Sistem operasi berupa kumpulan proses yang dapat dikategorikan : - Server : proses yang menyediakan layanan - Client : proses yang meminta layanan Server dan client ditempatkan pada user mode Kernel dibuat sekecil mungkin dan hanya bertugas mengatur komunikasi antara client dan server
Kelemahan Struktur Client Server Layanan dilakukan lambat karena harus melalui pertukaran pesan yang dapat menjadi bottleneck Keunggulan Struktur Client Server Pengembangan dapat dilakukan secara modular Kesalahan pada sub sistem tidak akan mematikan seluruh sistem Dapat diadaptasikan pada sister terdistribusi
III.6. Struktur Berorientasi Obyek Sistem operasi mengerjakan layanan sebagai obyek Tiap obyek berisi (encapsulated) struktur data dan operasi data dan diberi tipe sesuai dengan propertinya (proses, direktori, berkas) Contoh : Window NT, Medusa, X-kernel Pelayanan Sistem Operasi (pada programmer) Eksekusi Program Operasi I/O Manipulasi sistem file (pembuatan, penghapusan, write, read) Komunikasi Pendeteksian kesalahan
System Call System call dapat dikelompokkan menjadi 5 kategori A. Kontrol Proses Mengakhiri (end) dan membatalkan (abort) Mengambil (load) dan eksekusi (execute) Membuat dan mengakhir proses Menentukan dan mengeset atribut proses Wait for time Wait event, signal event Mengalokasikan dan membebaskan memori
B. Memanipulasi File Membuat dan menghapus file Membuka dan menutup file Membaca, menulis dan mereposisi file Menentukan dan mengeset atribut file C. Manipulasi Device Meminta dan membebaskan device Membaca, menulis dan mereposisi device Menentukan dan mengeset atribut device D. Informasi Lingkungan Mengambil atau mengeset waktu dan tanggal Mengambil atau mengeset sistem data Mengambil atau mengeset proses, file atau attribut device E. Komunikasi Proses Membuat dan menghapus sambungan komunikasi Mengirim dan menerima pesan Mentransfer status informasi