Sistem Operasi 2 “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 • Menyediakan layanan kepada user: – 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, 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 • 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 bersamasama (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. Sejarah SO • Generasi ke-0 (1940) – Tabung hampa; blm ada sistem operasi; plug board • Generasi ke-1 (1950) – Komponen utama transistor; sistem batch; punch card • Generasi ke-2 (1960) – Komponen utama IC; konsep: multi programming, multi processing, spooling, time sharing, real time • Generasi ke-3 (1970) – VLSI (very larga scalable integrated circuit) – General purpose • Genrasi ke-4 (1970 – now) – PC; sistem operasi jaringan; cloud computing; GUI friendly Command Line Interpreter • Sistem Operasi menunggu instruksi dari pengguna (command driven). – Sometimes commands built-in, sometimes just names of programs • If the latter, adding new features doesn’t 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) 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) System Calls • Tiga metode umum yang digunakan dalam memberikan parameter kepada sistem operasi – Melalui registers – Menyimpan parameter dalam block atau tabel pada memori dan alamat block tsb diberikan sebagai parameter dalam register – Menyimpan parameter (push) ke dalam stack (oleh program), dan melakukan pop off pada stack (oleh sistem operasi) Parameter Passing via Table Tipe System Calls • • • • • • Process Control Manajemen file Manajemen Device Information Maintenance Komunikasi Proteksi • Biasanya digunakan dalam 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 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 / 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 dan user-level • Modular MS-DOS Layer 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 klien 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 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 dari fisik dibagi untuk membuat VM: – 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 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 Kerugian 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 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 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 System Generation • Sistem operasi dirancang untuk dapat dijalankan pada berbagai jenis mesin, sistemnya harus dikonfigurasikan untuk setiap komputer. • Program Sysgen mendapatkan informasi mengenai konfigurasi khusus tentang sistem hardware dari sebuah data, antara lain sebagai berikut: – – – – CPU apa yang digunakan, opsi yang ada Berapa banyak memori yang tersedia Peralatan yang tersedia Sistem operasi opsi apa yang diinginkan atau parameter apa yang digunakan NEXT • Process