SO2 [Compatibility Mode]

advertisement
Sistem Operasi
Struktur Sistem Operasi
System Call
Virtual Machine
Aditya Wikan Mahastama
 Antonius Rachmat C
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
program 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
– Varies between Command-Line (CLI), Graphics
User Interface (GUI), Batch
• Program execution – SO harus bisa meload
program ke memory dan mengeksekusinya,
menghentikan eksekusi program
• I/O operations - program yang sedang
berjalan butuh I/O, baik mengakses file ataupun
I/O device
• 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
– shared memory / message passing
• Error detection – harus mampu
menangani error
– Bisa terjadi pada CPU, memory hardware,
dalam I/O devices, dan dalam user program
– Untuk setiap error, OS harus menanganinya
dengan aksi yang tepat dan konsisten
– Harus adanya fasilitas debugging
Layanan SO
• Resource allocation – ketika multiple
users atau multiple jobs berjalan
bersama-sama (concurrent), resources
harus dialokasikan
• Accounting – menentukan berapa
penggunaan sumber daya sistem
• Protection and security
– Protection meyakinkan 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, sometimes just
names of programs
• CLI: Program yang membaca instruksi dan
mengartikan control statements
(keinginan user) umumnya disebut:
– 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/penghubung antara proses 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 (UNIX, Linux, and
Mac OS X),
– Java API for the Java virtual machine (JVM)
– .NET API
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 API—a function for reading from a file
• A description of the parameters passed to ReadFile()
– HANDLE file—the file to be read
– LPVOID buffer—a buffer where the data will be read into and written
from
– DWORD bytesToRead—the number of bytes to be read into the buffer
– LPDWORD bytesRead—the number of bytes read during the last read
– LPOVERLAPPED ovl—indicates 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
API – System Call – OS Relationship
Standard C Library Example
• C program invoking printf() library
call, which calls write() system call
System Calls
• Tiga metode untuk memberikan
parameter dari program ke SO:
– Melalui registers
• Parameters > 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 semi dinamis
Examples of Windows and
Unix System Calls
Jenis System Calls – System
Program
•
•
•
•
•
•
Process Control
Manajemen file
Manajemen device
Komunikasi
Information management
Proteksi
• Biasanya digunakan pada system
program
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 process execution
MS
(a) At system startup (b) running a program
Linux 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
• Menampilkan informasi tentang sistem
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:
• Metode pendekatan Layer / Level
– 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
– Dibagi per modul
MS--DOS Layer Structure
MS
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:
– Menerapkan modularitas
– mempermudah debug dan verifikasi
sistem
– layer pertama bisa didebug tanpa
mengganggu sistem yang lain
• Kesulitan:
– hanya bisa menggunakan service dari
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 dilakukan 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 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
• Using “Open Virtual Machine Format”, standard
format of virtual machines, allows a VM to run
within many different virtual machine (host)
platforms
Keuntungan VM
• Keamanan
• Kemudahan instalasi
• Cocok digunakan dalam penelitian
dan percobaan
• Mendukung green computing
• Murah
Kerugian VM
• Waktu yang dibutuhkan I/O bisa
lebih cepat (karena ada spooling),
tapi bisa lebih lambat (karena
diinterpreted)
• Tidak semua aplikasi kompatible
• Membutuhkan hardware dengan
spek yang cukup tinggi
Virtual Machines (Cont)
Non-virtual Machine
Virtual Machine
(a) Nonvirtual machine (b) virtual machine
Solaris 10 with Two Containers
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
• Mendukung Just In-Time (JIT) compilers
yang meningkatkan performance
The Java Virtual Machine
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
Flow Chart of BIOS Functions
Post = power on self test
Turn on Computer
Pass through POST Error
Free
NO
Output to Monitor
YES
Plug’n’Play
Pass through POST Error
Free
Test Boot Drive
Bootable media found
NO
Pass through POST Error
Free
YES
Load boot program
Start operating system
Pass through POST Error
Free
NO
NEXT
• Process & Thread
Download