Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Chapter 2: Operating-System Structures

Presentasi serupa


Presentasi berjudul: "Chapter 2: Operating-System Structures"— Transcript presentasi:

1 Chapter 2: Operating-System Structures

2 Chapter 2: Operating-System Structures
Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System Design and Implementation Operating System Structure Operating System Debugging Operating System Generation System Boot

3 Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system To explain how operating systems are installed and customized and how they boot

4 Layanan Operating System
Operating system menyediakan lingkungan bagi eksekusi program dan layanan bagi program dan user Sejumlah layanan operating-system berupa fungsi yg membantu user: User interface – Hampir semua operating systems memiliki user interface (UI). Bervariasi antara Command-Line (CLI), Graphics User Interface (GUI), Batch Eksekusi program – sistem harus mampu memuat program ke dlm memory dan menjalankan program tsb, mengakhiri eksekusinya, baik scr normal ataupun abnormal (akibat error) Operasi I/O - Program yg sedang berjalan dpt membutuhkan I/O, yg dpt melibatkan sebah file atau perangkat I/O

5 Layanan Operating System (Lanj.)
Sejumlah layanan operating-system berupa fungsi yg membantu user (lanj.): Pengolahan file-system - File system butuh perhatian khusus. Program butuh membaca dan menulis file dan directory, membuat dan menghapusnya, melakukan pencarian, menampilkan daftar informasinya, dan pengelolaan izin. Komunikasi – Proses dpt saling bertukar informasi, baik pd komputer yg sama atau antara komputer melalui jaringan. Komunikasi dpt melalui memory bersama (shared) atau melalui pertukaran pesan (paket yg dikirim oleh OS) Deteksi error – OS harus terus awas thd kemungkinan error Dpt terjadi pd CPU atau hardware memory, pd perangkat I/O, atau dlm program user Utk setiap jenis error, OS harus mengambil tindakan yg sesuai utk memastikan komputasi yg benar dan konsisten dpt terus berjalan Fasilitas debugging bisa sangat membantu kemampuan user dan programmer dlm menggunakan sistem scr efisien.

6 Layanan Operating System (Lanj.)
Sejumlah fungsi OS lainnya utk menjamin operasional sistem yg efisien melalui pembagian (sharing) sumber daya Alokasi sumber daya – Ketika banyak user atau banyak pekerjaan berjalan scr serentak, sumber daya harus dapat dialokasikan bagi masing2 user atau pekerjaan tsb. Ada banyak jenis sumber daya – siklus CPU, memory utama, penyimpanan file, perangkat I/O. Pembukuan – Utk melacak user mana yg sdh menggunakan sumber daya apa saja dan sdh berapa banyak Proteksi dan keamanan – Pemilik informasi yg disimpan dlm sistem komputer multiuser atau jaringan tentu ingin dpt mengatur penggunaan informasi tsb.; proses yg berjalan serentak tidak boleh saling berinteferensi Proteksi menyangkut bgmn memastikan semua akses ke sumberdaya sistem dpt terkontrol Keamanan system dr pihak luar membutuhkan otentikasi user, hingga melindungi perangkat I/O external dari upaya2 akses yg tidak sah

7 Tampilan Layanan Operating System

8 User Interface Operating System - CLI
CLI atau command line interpreter memungkinkan memasukkan perintah scr langsung Kadangkala diimplementasikan di kernel, kadangkala oleh program system Kadangkala diimplementasikan dgn berbagai “nuansa” – shell Utamanya mengambil perintah dari user dan menjalankannya Kadangkala ada perintah yg sudah-dibuat (built-in), kadangkala dpt berupa nama program Jika bentuk yg kedua, maka menambahkan fitur baru tidak perlu sampai memodifikasi shell

9 Bourne Shell Command Interpreter

10 User Interface Operating System - GUI
Interface user-friendly yg memakai perumpamaan desktop (meja kerja) Biasanya ada mouse, keyboard, dan monitor Icons mewakili file, program, action, etc Berbagai tombol mouse di atas objek pd interface menyebabkan berbagai action (bisa memberi informasi, opsi, eksekusi fungsi, membuka directory (yg disebut folder)) Diciptakan di Xerox PARC Kebanyakan sistem kini memiliki interface baik CLI maupun GUI Microsoft Windows berupa GUI dgn “command” shell CLI Apple Mac OS X berupa interface GUI “Aqua” dgn kernel UNIX di bawahnya dan memiliki shell Unix dan Linux memiliki CLI dgn interfaces GUI opsional (mis. CDE, KDE, GNOME)

11 Interface Touchscreen
Perangkat touchscreen butuh interface jenis baru Mouse tidak mungkin atau tidak diinginkan Action dan pemilihan berdasarkan gerakan Virtual keyboard utk input text Perintah suara.

12 GUI Mac OS X

13 System Call Interface pemrograman ke layanan yg disediakan oleh SO
Biasanya ditulis dlm bahasa tingkat-tinggi (C or C++) Umumnya diakses program melalui Application Programming Interface (API) tingkat-tinggi drpd menggunakan system call scr langsung Tiga API paling umum adalah Win32 API bagi Windows, POSIX API bagi sistem berbasis-POSIX (termasuk semua versi UNIX, Linux, dan Mac OS X), dan Java API bagi Java virtual machine (JVM) Semua nama system-call yg digunakan dlm buku ini bersifat generik/dasar

14 Example of System Calls
Urutan system call utk meng-copy isi sebuah file ke file lainnya

15 Example of Standard API

16 Implementasi System Call
Biasanya, setiap system call diberikan sebuah nomor System-call interface menyimpan tabel yg diindeks berdasarkan nomor tsb. Interface system call memanggil system call terkait dlm kernel OS dan mengembalikan status system call tsb dan nilai hasilnya jika ada Pemanggil tidak perlu tahu bagaimana system call diimplementasikan Hanya perlu mengikuti aturan pd API dan memahami apa yg akan dilakukan OS sbg hasil pemanggilan tsb. Kebanyakan detail interface OS disembunyikan dari programmer oleh API Dikelola oleh run-time support library (himpunan fungsi yg dibangun ke dlm library yg disertakan dgn compiler)

17 Hubungan API – System Call – OS

18 Pengiriman Parameter System Call
Biasaya diperlukan informasi yg lbh dari sekedar nama system call yg mau dipanggil Tipe dan jumlah informasi tepatnya bervariasi, tergantung OS dan jenis panggilannya Tiga metode umum utk mengirim parameter ke OS Paling sederhana: kirim parameter melalui register Dlm kasus tertentu, parameternya bisa lbh banyak drpd register yg ada Parameter disimpan di blok atau dlm tabel di memory, dan alamat blok dikirim sbg parameter dlm register Pendekatan yg digunakan oleh Linux dan Solaris Parameter ditempatkan, atau di-push, ke stack oleh program dan di-pop dari stack oleh operating system Metode blok dan stack tidak membatasi jumlah atau panjang parameter yg dikirimkan

19 Pengiriman Parameter via Table

20 Tipe2 System Call Process control
Meciptakan process, mengakhiri process End (mengakhiri), abort (membatalkan) load, execute Ambil atribut process, set attribute process Menunggu selama Menunggu event, men-signal event Mengalokasikan dan membebaskan memory Buang isi memory if error Debugger utk menentukan bugs, eksekusi single step Locks utk mengelola akses ke data bersama antara process

21 Tipe2 System Call File management buat file, hapus file
buka, tutup file baca, tulis, reposisi ambil dan set attribute file Device management minta device, lepaskan device ambil dan set attribute device secara logis menyambungkan atau melepaskan device

22 Tipe2 System Call (lanj.)
Information maintenance ambil waktu atau tanggal, set waktu atau tanggal ambil atau set data sistem ambil dan set atribut2 proses, file, atau device Communications buat, hapus koneksi komunikasi kirim, terima pesa jika model pertukaran pesan ke nama host atau nama process Dari client ke server Model memory-bersama membuat dan mendapatkan access ke wilayah2 memory transfer informasi status menyambungkan dan melepaskan perangkat remote (jauh)

23 Tipe2 System Call (lanj.)
Protection Kontrol access ke sumber2 daya Ambil dan set izin2 Mengizinkan atau menolak akses user

24 Examples of Windows and Unix System Calls

25 Standard C Library Example
C program memanggil library call printf(), yg kemudian memanggil system call write()

26 Example: MS-DOS Single-tasking Shell dipanggil ketika system booting
Metode sederhana utk menjalankan program Tanpa menciptakan proses Ruang memory tunggal Memuat program ke memory, menimpa semuanya kecuali kernel Program exit -> shell dimuat ulang At system startup running a program

27 Example: FreeBSD Unix variant Multitasking
User login  menjalankan shell pilihan user Shell menjalankan system call fork() utk menciptakan process Menjalankan exec() utk memuat program ke dlm process Shell menunggu process selesai atau terus menjalankan perintah lain dari user Process exit dgn: code = 0 – no error code > 0 – error code

28 System Programs System programs menyediakan lingkungan yg memudahkan pengembangan dan eksekusi program. Dpt dibagi menjadi: File manipulation Status information (kadangkala disimpan dlm sebuah registry) File modification Dukungan bg bahasa pemrograman Memuat dan eksekusi program Communications Layanan di latar belakang Program aplikasi Kebanyakan user melihat OS dari system programnya, bukan dari system call yg sebenarnya

29 System Programs System programs menyediakan lingkungan yg memudahkan pengembangan dan eksekusi program Sebagian system program merupakan sekedar user interface ke system call; sebagian lainnya bisa lebih rumit File management - Buat, hapus, copy, rename, print, dump (tampilkan isi file), list (daftar file& directory), dan scr umum mengolah file dan directory Status information Sebagian program meminta info dr sistem – tgl, jam, memory tersedia, ruang disk, jumlah user. Sebagian lainnya menyediakan informasi rinci kinerja, logging, debugging Biasanya program2 ini memformat dan mencetak output ke terminal atau perangkat output lain Sebagian sistem menggunakan registry – yg dipakai utk menyimpan dan mengambil kembali informasi konfigurasi

30 System Programs (lanj.)
File modification Text editor utk membuat dan mengubah file Perintah2 tertentu utk mencari isi file atau melakukan perubahan thd text Dukungan thd bahasa pemrograman - Compiler, assembler, debugger dan interpreter kadangkala tersedia Program loading dan eksekusi - Absolute loaders, relocatable loaders, linkage editors, and overlay-loaders, debugging systems for bahasa mesin atau bahasa tkt-tinggi Communications – Menyediakan mekanisme menciptakan koneksi virtual di antara proses, user, dan sistem komputer Memungkinkan user berkirim pesan ke layar user lain, browsing halaman web, kirim surat elektronik, log in jarak jauh, transfer file dari satu komputer ke komputer lainnya.

31 System Programs (Cont.)
Layanan Latar Belakang Diluncurkan ketika waktu booting Sebagan utk system startup, kemudian diakhiri Sebagian sejak system boot sampai shutdown Menyediakan fasilitas spt pengecekan disk, penjadwalan process, error logging, printing Berjalan dlm konteks user bukan konteks kernel Disebut services, subsystems, daemons Application programs Tidak menyangkut system Dijalankan oleh user Biasanya tidak dianggap bagian dari OS Diluncurkan dgn command line, mouse click, sentuhan jari

32 Operating System Design and Implementation
Design and Implementation of OS not “solvable”, but some approaches have proven successful Internal structure of different Operating Systems can vary widely Start the design by defining goals and specifications Affected by choice of hardware, type of system User goals and System goals User goals – operating system should be convenient to use, easy to learn, reliable, safe, and fast System goals – operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient

33 Operating System Design and Implementation (Cont.)
Important principle to separate Policy: What will be done? Mechanism: How to do it? Mechanisms determine how to do something, policies decide what will be done The separation of policy from mechanism is a very important principle, it allows maximum flexibility if policy decisions are to be changed later (example – timer) Specifying and designing an OS is highly creative task of software engineering

34 Implementation Much variation Early OSes in assembly language
Then system programming languages like Algol, PL/1 Now C, C++ Actually usually a mix of languages Lowest levels in assembly Main body in C Systems programs in C, C++, scripting languages like PERL, Python, shell scripts More high-level language easier to port to other hardware But slower Emulation can allow an OS to run on non-native hardware

35 Operating System Structure
OS bertujuan-umum adl program yg sangat besar Ada berbagai cara utk menstrukturkannya Struktur sederhana – MS-DOS Lebih rumit -- UNIX Berlapis – dgn abstraksi Microkernel – Mach

36 Struktur Sederhana -- MS-DOS
MS-DOS – dibuat utk menyediakan fungsionalitas maksimum dlm ruang yg minimal Tidak dibagi menjadi modul2 Meskipun MS-DOS sdh memiliki struktur, interface dan tingkatan fungsionalitasnya kurang terpisah dgn baik

37 Non Simple Structure -- UNIX
UNIX – krn dibatasi oleh fungsionalitas hardware, UNIX pd awalnya juga terbatas penstrukturannya. OS UNIX terdiri atas dua bagian terpisah: Systems program Kernel Terdiri atas semua yg ada di bawah interface system-call dan di atas hardware fisik Menyediakan file system, penjadwalan CPU, memory management, dan fungsi operating-system lainnya; banyak fungsi dlm satu level

38 Struktur Sistem UNIX Tradisional
Melebihi simple tapi belum sepenuhnya berlapis

39 Pendekatan Berlapis (Layered)
Operating System dibagi menjadi sejumlah lapisan/layer/ level, masing2 dibangun di atas layer yg lebih rendah. Layer terbawah (layer 0) adl hardware; layer tertinggi (layer N) adl user interface. Dgn modularitas, layer dipilih sedemikian hingga masing2 menggunakan fungsi (operasi) dan layanan hanya dari layer2 di bawahnya

40 Struktur System Microkernel
Memindahkan sebanyak mungkin dari kernel ke ruang user Mach adl contoh microkernel Mac OS X kernel (Darwin) sebagian didasarkan kpd Mach Komunikasi antar modul2 user menggunakan message passing (pertukaran pesan). Manfaat: Lebih mudah memperluas sebuah mirokernel Lebih mudah memindahkan operating system ke arsitektur baru Lebih andal (lbh sedikit kode yg berjalan dlm mode kernel) Lebih aman Kelemahan: Overhead kinerja akibat komunikasi dari ruang user ke ruang kernel

41 Struktur System Microkernel

42 Modul-modul Kebanyakan modern operating system mengimplementasi modul2 kernel yg bisa dimuat (loadable) Memakai pendekatan berorientasi-objek Masing2 komponen inti terpisah Masing2 berbicara satu sama lain melalui interface yg sdh diketahui Masing2 dpt dimuat hanya ketika dibutuhkan di dlm kernel Scr keseluruhan, mirip dgn layer tetapi lbh fleksibel Linux, Solaris, etc

43 Pendekatan Modular Solaris

44 System Hybrid Kebanyakan sistem operasi modern sebenarnya tidak murni satu model Hybrid mengkombinasikan berbagai pendekatan utk menjawab kebutuhan kinerja, keamanan, dan kemudahan Kernel Linux dan Solaris berada dlm ruang alamat kernel, shg monolitik, ditambah modular utk kemampuan loading yg dinamis Windows kebanyakan monolitik, plus microkernel utk berbagai kepribadian subsystem Apple Mac OS X hybrid, layered, Aqua UI plus lingkungan pemrograman Cocoa Di bawahnya kernel terdiri atas microkernel Mach dan bagian2 BSD Unix, plus kit I/O dan modul2 yg dpt diload scr dinamis (yg disebut kernel extensions)

45 Mac OS X Structure

46 iOS Apple mobile OS utk iPhone, iPad
Distruktur berdasarkan Mac OS X, dgn tambahan fungsionalitas Tdk menjalankan aplikasi asli OS X Juga berjalan di atas arsitektur CPU berbeda (ARM vs. Intel) Cocoa Touch Objective-C API utk membangun apps Media services layer utk graphics, audio, video Core services menyediakan cloud computing, database Core operating system, berdasarkan pd kernel Mac OS X

47 Android Developed by Open Handset Alliance (mostly Google) Open Source
Similar stack to IOS Based on Linux kernel but modified Provides process, memory, device-driver management Adds power management Runtime environment includes core set of libraries and Dalvik virtual machine Apps developed in Java plus Android API Java class files compiled to Java bytecode then translated to executable than runs in Dalvik VM Libraries include frameworks for web browser (webkit), database (SQLite), multimedia, smaller libc

48 Android Architecture

49 Operating-System Debugging
Debugging is finding and fixing errors, or bugs OS generate log files containing error information Failure of an application can generate core dump file capturing memory of the process Operating system failure can generate crash dump file containing kernel memory Beyond crashes, performance tuning can optimize system performance Sometimes using trace listings of activities, recorded for analysis Profiling is periodic sampling of instruction pointer to look for statistical trends Kernighan’s Law: “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”

50 Performance Tuning Improve performance by removing bottlenecks
OS must provide means of computing and displaying measures of system behavior For example, “top” program or Windows Task Manager

51 DTrace DTrace tool in Solaris, FreeBSD, Mac OS X allows live instrumentation on production systems Probes fire when code is executed within a provider, capturing state data and sending it to consumers of those probes Example of following XEventsQueued system call move from libc library to kernel and back

52 Dtrace (Cont.) DTrace code to record amount of time each process with UserID 101 is in running mode (on CPU) in nanoseconds

53 Operating System Generation
Operating systems are designed to run on any of a class of machines; the system must be configured for each specific computer site SYSGEN program obtains information concerning the specific configuration of the hardware system Used to build system-specific compiled kernel or system-tuned Can generate more efficient code than one general kernel

54 System Boot When power initialized on system, execution starts at a fixed memory location Firmware ROM used to hold initial boot code Operating system must be made available to hardware so hardware can start it Small piece of code – bootstrap loader, stored in ROM or EEPROM locates the kernel, loads it into memory, and starts it Sometimes two-step process where boot block at fixed location loaded by ROM code, which loads bootstrap loader from disk Common bootstrap loader, GRUB, allows selection of kernel from multiple disks, versions, kernel options Kernel loads and system is then running

55 End of Chapter 2


Download ppt "Chapter 2: Operating-System Structures"

Presentasi serupa


Iklan oleh Google