Sistem Operasi 2 “Sistem operasi” Antonius Rachmat C, C S.Kom, S Kom M.Cs Definisi D fi i i SO • Dari D i sudut d t pandang d user – Sistem Operasi sebagai alat untuk mempermudah penggunaan p gg Komputer p – 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 da a se daya secara a a efisien (Reso (Resource ce Allocator) Allocato ) – 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 L SO • User interface – hampir semua SO ada GUI-nya 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, baik mengakses file ataupun I/O device • File-system manipulation - Programs butuh read d dan d write it baik b ik file fil atau t directories, di t i create t dan delete, search file/dir, list file information, dan permission management. Layanan L 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 d i – harus h 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 t multiple lti l jjobs b b berjalan j l bersama-sama (concurent), resources harus dialokasikan • Accounting – menentukan berapa banyak dan berapa lama users menggunakan k sumber b daya d sistem • Protection and security –P Protection t ti menyakinkan ki k h k akses hak k yang diperbolehkan y sistem,, baik program p g atau I/O / – Security dari pihak luar menggunakan autentikasi. A View of Operating System Services Se ices C Command d Li Line Interpreter I • Si Sistem tem Operasi Ope i menunggu men ngg instruksi in t k i dari d i pengguna (command driven). – Sometimes commands built built-in in, sometimes just names of programs • If the latter, adding new features doesn’t require shell modification • CLI: Program yang membaca instruksi dan mengartikan g control statements (keinginan user) umumnya disebut: – control-card interpreter – command-line command line interpreter inte p ete – UNIX shell. User Operating System Interface - GUI • User-friendly desktop metaphor interface – – – – Menggunakan M k mouse, keyboard, k b d and d monitor it Icons merepresentasikan files, programs, actions, dll Menggunakan gg directory y = folder Invented at Xerox PARC • SO sekarang menggunakan antara CLI dan GUI inte faces interfaces – Microsoft Windows is GUI with CLI “command” shell – Apple pp Mac OS X as “Aqua” q GUI interface with UNIX kernel underneath and shells available – Solaris is CLI with optional GUI interfaces (Java Desktop, KDE) Command Interpreter p The Mac OS X GUI Si Sistem Calls C ll • S System t calls ll menyediakan di k i t f interface antara t proses (program yang sedang dijalankan) dan sistem s ste operasi. ope as • 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 y (including ( g virtually y all versions of UNIX, Linux, and Mac OS X), – Java API for the Java virtual machine (JVM) Example p of System y Calls • System call sequence to copy the contents of one file fil to t another th file fil Example of Standard API • Consider the ReadFile() function in the • Win32 API—a API a function for reading from a file • A description desc iption of the pa parameters amete s 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 S System Call C ll implementation i l i • The Th caller ll need dk know nothing thi about how the system call is implemented l d – Just needs to obey y 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 off functions f ti built b ilt into i t lib libraries i iincluded l d d with ith compiler) API – System Call – OS Relationship Standard C Library Example • C program invoking printf() library call, which calls write() system call S System Calls C ll • Tig Tiga metode umum m m yang ng digunakan dig n k n dalam d l m 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 dib ik diberikan sebagai b i parameter t pada d register i t • This approach taken by Linux and Solaris – Menyimpan e y pa parameter pa a ete (push) (pus ) ke e dalam da a stac stack (oleh program), dan melakukan pop off pada stack (oleh sistem operasi) • Sifatnya dinamis P Parameter Passing P i via i Table T bl Jenis System Calls – System Program Program • • • • • • Process Control j file Manajemen Manajemen Device Information Maintenance Komunikasi Proteksi • Biasanya digunakan pada system program Examples of Windows and Unix System y Calls Process P C Controll • Selesai, S l i abort b • Load,, eksekusi • Membuat dan men-terminate proses • Mengambil dan men-set men set process attributes • Wait for f time • Wait event,, signal g event • Allocate and free memory MS--DOS execution MS i (a) At system startup (b) running a program FreeBSD Running Multiple Programs M Manajemen j Fil File • Membuat dan menghapus file • Membuka dan menutup file • Read, write, reposition • Mengambil dan men-set file attributes M Manajemen j D Device i • Meminta device, melepaskan device • Read, Read write write, reposition • Mengambil dan men-set device attributes tt ib t • Logically attach or detach device (mount / umount) I f Information i Maintenance M i • Mengambil dan men-set waktu dan gg tanggal • Men-set proses, file, or device attributes K Komunikasi ik i • Menciptakan, menghapus hubungan komunikasi • Mengirim dan menerima pesan • Mentransfer M t f status t t informasi i f i • Attach atau detach remote device • Komunikasi dapat dilakukan melalui message passing atau ata shared memory Struktur S k Sistem Si Operasi O i • Struktur St kt Sederhana S d h – Tidak dibagi dalam modul-modul – Contoh : Struktur sistem MS MS-DOS: DOS: • disusun untuk mendukung fungsi yang banyak pada space yang kecil • 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 MS--DOS L MS Layer Structure S Traditional UNIX System Structure Layered y Operating p g System y • Layer adalah implementasi dari object abstrak yang merupakan p enkapsulasi p dari data dan operasi yang bisa memanipulasi data tersebut • Layer paling bawah : hardware • Layer L paling li atas t : user interface L Layered d OS • Keuntungan: K – modularitas – mempermudah debug dan verifikasi sistem – layer pertama bisa didebug tanpa mengganggu sistem yang lain • Kesulitan: – hanya bisa menggunakan layer dibawahnya Mikrokernel Mik k l • F Fungsii utama: t mendukung d k fasilitas f ilit komunikasi k ik i antara program user dan bermacam-macam layanan aya a yang ya g juga berjalan be ja a di d user-space use space • Kernel menjadi lebih kecil g p passing g • Komunikasi melalui message • 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 M li hi vs Mi Microkernel k l M d l 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 S l i M Modular d l A Approach h Vi Virtual lM Machine hi • Mesin virtual mengambil pendekatan layer secara logika. logika • Mesin virtual memperlakukan hardware dan sistem operasi seolah-olah berada pada level yang sama sebagai hardware. hardware • Pendekatan Mesin virtual menyediakan sebuah interface yang identik dengan seluruh hardware yang ada. • Sistem Operasi host membuat ilusi dari banyak proses, proses masing-masing dieksekusi pada prosesornya sendiri dengan virtual memorinya sendiri. pg guest menyediakan y sebuah (virtual) ( ) copy py dari • Setiap semua hal yang ada pada komputer • VM dibuat dengan pembagian sumber daya oleh physical computer • VM ada 2: system VM dan application VM Vi Virtual l Machine M hi (2) • Sumber S mbe daya d fisik fi ik dibagi dib gi oleh VM untuk: nt k – 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 spooling, Virtual Machines History and Benefits • First appeared commercially in IBM mainframes i 1972 in • 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 U f l ffor development, d l testing i • “Open Virtual Machine Format”, standard format of virtual machines machines, allows a VM to run within many different virtual machine (host) platforms K 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 k penelitian l d dan pengembangan sistem operasi – Dengan VM perubahan suatu bagian tidak akan mempengaruhi komponen yang lain Kesulitan li VM • VM sulit lit diimplementasikan dii l t ik karena k banyak b k syaratt yang dibutuhkan untuk menyediakan duplikat yang ya g tepat dari da mesin es host ost – Harus punya virtual-user mode dan virtual-monitor mode yang keduanya berjalan di pysichal mode. – Akibatnya, Akibatnya saat instruksi yang hanya membutuhkan virtual monitor mode dijalankan, register berubah dan bisa berefek pada virtual user mode, bahkan bisa merestart VM • Waktu yang dibutuhkan I/O bisa lebih cepat(karena ada spooling), tapi bisa lebih lambat (karena diinterpreted) Virtual Machines (Cont) Non-virtual Machine Virtual Machine (a) Nonvirtual machine (b) virtual machine VMware Architecture VMWare J Java Virtual Vi l Machine M hi • 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 In-Time(JIT) Time(JIT) compilers meningkatkan performance Th Java The J Virtual Vi l Machine M hi 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 g 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 B Bootstrap loader l d • 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 t t 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 NEXT • Process & Thread