struktur sistem operasi
DESCRIPTION
menjelaskan apasaja komponen yang terdapat didalam sistem operasiTRANSCRIPT
-
Sistem Operasi 2
Struktur Sistem Operasi
-
Definisi SO
Dari sudut pandang user Sistem Operasi sebagai alat untuk mempermudah
penggunaan Komputer Sistem Operasi sebagai alat untuk memaksimalkan
penggunaan sumber daya komputer (dalam lingkungan multi-user)
Dari sudut pandang sistem Sistem Operasi sebagai alat yang menempatkan sumber
daya secara efisien (Resource Allocator) Sistem Operasi sebagai alat yang mangatur eksekusi
aplikasi dan operasi dari alat I/O (Control Program) Sistem Operasi sebagai sebuah program yang selalu
berjalan setiap saat pada komputer (Kernel)
-
Layanan SO
User interface hampir semua SO ada GUI-nya Varies between Command-Line (CLI), Graphics
User Interface (GUI), Batch Program execution SO harus bisa meload
program ke memory dan mengeksekusinya, menghentikan eksekusi program, baik normal maupun tidak normal (abnormal exit)
I/O operations - Program yang sedang berjalan butuh I/O, I/O device
baik mengakses file ataupun
File-system manipulation - Programs butuh read dan write baik file atau directories, create dan delete, search file/dir, list file information, dan permission management.
-
Layanan SO
Communications proses harus berkomunikasi antar proses dalam komputer yang sama atau antar komputer dalam jaringan Menggunakan shared memory atau
menggunakan message passing
Error detection harus mampu menangani error Dalam terjadi pada CPU, memory hardware,
dalam I/O devices, dan dalam user program Untuk setiap error, OS harus menanganinya
dengan aksi yang sesuai, benar, dan konsisten Harus adanya fasilitas debugging
-
Layanan SO
Resource allocation ketika multiple users atau multiple jobs berjalan bersama-sama (concurent), resources harus dialokasikan
Accounting menentukan berapa banyak dan berapa lama users menggunakan sumber daya sistem
Protection and security Protection menyakinkan hak akses yang
diperbolehkan Security sistem, baik program atau I/O
dari pihak luar menggunakan autentikasi.
-
A View of Operating System Services
-
Command Line Interpreter
Sistem Operasi menunggu instruksi dari pengguna (command driven).
Sometimes commands built-in, names of programs
sometimes just
If the latter, adding new features doesnt require shell modification
CLI: Program yang membaca instruksi dan mengartikan control statements (keinginan user) umumnya disebut: control-card interpreter command-line interpreter UNIX shell.
-
User Operating System Interface - GUI
User-friendly desktop metaphor interface Menggunakan mouse, keyboard, and monitor Icons merepresentasikan files, programs, actions, dll Menggunakan directory = folder Invented at Xerox PARC
SO sekarang menggunakan antara CLI dan GUI interfaces Microsoft Windows is GUI with CLI command shell Apple Mac OS X as Aqua GUI interface with UNIX
kernel underneath and shells available Solaris is CLI with optional GUI interfaces (Java
Desktop, KDE)
-
Command Interpreter
-
The Mac OS X GUI
-
Sistem Calls
System calls menyediakan interface antara proses (program yang sedang dijalankan) dan sistem operasi.
Biasanya dibuat menggunakan bahasa tingkat tinggi (C or C++)
Diakses menggunakan Application Program Interface (API) daripada pemanggilan langsung
3 API yang umum adalah: Win32 API for Windows, POSIX API for POSIX-based systems (including virtually
all versions of UNIX, Linux, and Mac OS X), Java API for the Java virtual machine (JVM)
-
Example of System Calls
System call sequence to copy the contents of one file to another file
-
Example of Standard API
Consider the ReadFile() function in the Win32 APIa function for reading from a file
A description of the parameters passed to ReadFile() HANDLE filethe file to be read LPVOID buffera buffer where the data will be read into and written
from DWORD bytesToReadthe number of bytes to be read into the buffer LPDWORD bytesReadthe number of bytes read during the last read LPOVERLAPPED ovlindicates if overlapped I/O is being used
-
System Call implementation
The caller need know nothing about how the system call is implemented Just needs to obey API and understand
what OS will do as a result call Most details of OS interface hidden
from programmer by API Managed by run-time support library (set
of functions built into libraries included with compiler)
-
API System Call OS Relationship
-
Standard C Library Example
C program invoking printf() library call, which calls write() system call
-
System Calls
Tiga metode umum yang digunakan dalam memberikan parameter kepada sistem operasi Melalui registers
In some cases, may be more parameters than registers
Menyimpan parameter dalam block / tabel pada memori dan alamat block tsb diberikan sebagai parameter pada register This approach taken by Linux and Solaris
Menyimpan parameter (push) ke dalam stack (oleh program), dan melakukan pop off pada stack (oleh sistem operasi) Sifatnya dinamis
-
Parameter Passing via Table
-
Jenis System Calls System Program
Process Control
Manajemen file
Manajemen Device
Information Maintenance Komunikasi
Proteksi
Biasanya digunakan pada system program
-
Examples of Windows and Unix System Calls
-
Process Control
Selesai, abort Load, eksekusi Membuat dan men-terminate proses
Mengambil dan men-set process attributes
Wait for time Wait event, signal event Allocate and free memory
-
MS-DOS execution
(a) At system startup (b) running a program
-
FreeBSD Running Multiple Programs
-
Manajemen File
Membuat dan menghapus file
Membuka dan menutup file
Read, write, reposition
Mengambil dan men-set file attributes
-
Manajemen Device
Meminta device, melepaskan device
Read, write, reposition
Mengambil dan men-set device attributes
Logically attach or detach device (mount / umount)
-
Information Maintenance
Mengambil dan men-set waktu dan tanggal
Men-set proses, file, or device attributes
-
Komunikasi
Menciptakan, menghapus hubungan komunikasi
Mengirim dan menerima pesan
Mentransfer status informasi
Attach atau detach remote device
Komunikasi dapat dilakukan melalui message passing atau shared memory
-
Struktur Sistem Operasi
Struktur Sederhana Tidak dibagi dalam modul-modul Contoh : Struktur sistem MS-DOS:
disusun untuk mendukung fungsi yang banyak pada space yang kecil
Metode pendekatan Layer / Leve Contoh: UNIX, terdiri dari kernel (berisi device driver
dan interface) dan program
Mikrokernel Menyusun sistem operasi dengan menghapus semua
komponen yang tidak esensial dari kernel, dan mengimplementasikannya sebagai sistem program pada user-level
Modular
-
MS-DOS Layer Structure
-
Traditional UNIX System Structure
-
Layered Operating System
Layer adalah implementasi dari object abstrak yang merupakan enkapsulasi dari data dan operasi yang bisa memanipulasi data tersebut Layer paling bawah : hardware Layer paling atas : user interface
-
Layered OS
Keuntungan: modularitas
mempermudah debug dan verifikasi sistem
layer pertama bisa didebug tanpa mengganggu sistem yang lain
Kesulitan: hanya bisa menggunakan layer
dibawahnya
-
Mikrokernel
Fungsi utama: mendukung fasilitas komunikasi antara program user dan bermacam-macam layanan yang juga berjalan di user-space
Kernel menjadi lebih kecil Komunikasi melalui message passing Keuntungan:
ketika layanan baru akan ditambahkan ke user-space, kernel tidak perlu di modif
mendukung keamanan reliabilitas lebih, karena sebagian besar pada level pengguna, SO jadi terjaga
Contoh sistem operasi : Tru64 UNIX, MacOSX, QNX
-
Monolithic vs Microkernel
-
Modules
Most modern operating systems implement kernel modules Uses object-oriented approach
Each core component is separate
Each talks to the others over known interfaces
Each is loadable as needed within the kernel
Overall, similar to layers but with more flexible
-
Solaris Modular Approach
-
Virtual Machine
Mesin virtual mengambil pendekatan layer secara logika. Mesin virtual memperlakukan hardware dan sistem operasi
seolah-olah berada pada level yang sama sebagai hardware.
Pendekatan Mesin virtual menyediakan sebuah interface yang identik dengan seluruh hardware yang ada.
Sistem Operasi host membuat ilusi dari banyak proses, masing-masing dieksekusi pada prosesornya sendiri dengan virtual memorinya sendiri.
Setiap guest menyediakan sebuah (virtual) copy dari semua hal yang ada pada komputer
VM dibuat dengan pembagian sumber daya oleh physical computer
VM ada 2: system VM dan application VM
-
Virtual Machine (2)
Sumber daya fisik dibagi oleh VM untuk: Penjadwalan CPU bisa menciptakan
penampilan seakan user mempunyai prosesor sendiri
Spooling bisa menyediakan virtual card readers dan virtual line printers
Sebuah time-sharing terminal, yang dapat melayani user dengan tepat
VM software membutuhkan disk space untuk menyediakan Virtual memory dan spooling, yaitu sebuah virtual disk
-
Virtual Machines History and Benefits
First appeared commercially in IBM mainframes in 1972
Fundamentally, multiple execution environments (different operating systems) can share the same hardware
Protect from each other VM
Commutate with each other, other physical systems via networking
Useful for development, testing Open Virtual Machine Format, standard format
of virtual machines, allows a VM to run within many different virtual machine (host) platforms
-
Keuntungan VM
Keamanan bukanlah masalah
VM mempunyai pelindungan lengkap pada berbagai sistem sumber daya
Tidak ada pembagian sumber daya secara langsung
VM sistem adalah kendaraan yang sempurna untuk penelitian dan pengembangan sistem operasi
Dengan VM perubahan suatu bagian tidak akan mempengaruhi komponen yang lain
-
Kesulitan VM
VM sulit diimplementasikan karena banyak syarat yang dibutuhkan untuk menyediakan duplikat yang tepat dari mesin host Harus punya virtual-user mode dan virtual-monitor
mode yang keduanya berjalan di pysichal mode. Akibatnya, saat instruksi yang hanya membutuhkan
virtual monitor mode dijalankan, register berubah dan bisa berefek pada virtual user mode, bahkan bisa me- restart VM
Waktu yang dibutuhkan I/O bisa lebih cepat(karena ada spooling), tapi bisa lebih lambat (karena diinterpreted)
-
Non-virtual Machine Virtual Machine
Virtual Machines (Cont)
(a) Nonvirtual machine (b) virtual machine
-
VMware Architecture
-
VMWare
-
Java Virtual Machine
Program Java yang telah dicompile adalah platform-neutral bytecodes yang dieksekusi oleh Java Virtual Machine(JVM)
JVM terdiri dari:
Class loader
Class verificatier
runtime interpreter
Just In-Time(JIT) compilers meningkatkan performance
-
The Java Virtual Machine
-
Flow Chart of BIOS Functions
Turn on Computer Post = power on self test
Pass through POST Error Free YES
NO Output to Monitor
PlugnPlay
Test Boot Drive Pass through POST Error
Free
Bootable media found NO Pass through POST Error
Free NO YES
Load boot program Pass through POST Error
Free
Start operating system
-
Bootstrap loader
Operating system must be made available to hardware, so hardware can start it
Small piece of code bootstrap loader, locates the kernel, loads it into memory, and starts it
boot block at fixed location loads bootstrap loader
When power initialized on system, execution starts at a fixed memory location Firmware used to hold initial boot code