1
Sistem Operasi
Husni http://husni.trunojoyo.ac.id http://komputasi.wordpress.com husni@if.trunojoyo.ac.id YM, GMail, Facebook, Twitter, Plurk: Lunix962
...akan dibahas
• Layanan sistem operasi
• Antarmuka pengguna sistem operasi
• System call
• Jenis system call
• Program sistem
• Rancangan & Implementasi sistem operasi
• Struktur sistem operasi
• Mesin virtual
• Debugging sistem operasi
• Memulai sistem operasi
3
Tujuan
• Mampu mendeskripsikan layanan yang
disediakan sistem operasi kepada
pengguna, proses dan sistem lain
• Mengetahui cara menstrukturkan sistem
operasi
• Memahami bagaimana sistem operasi
diinstal dan dicustom, dan bagaimana
sistem tersebut boot (mulai beroperasi).
4
Layanan Sistem Operasi
• Himpunan layanan sistem operasi (SO) menyediakan fungsi yang bermanfaat untuk pengguna:
– User interface – Hampir semua SO mempunyai user interface (UI)
• Bervariasi: Command-Line (CLI), Graphics User Interface (GUI), Batch
– Eksekusi program – Sistem harus mampu memuat suatu
program ke dalam memory dan menjalankan program tersebut, mengakhiri eksekusi, normal atau tidak normal (error)
– Operasi I/O - Program yang berjalan mungkin memerlukan I/O, dapat mencakup file atau perangkat I/O
– Manipulasi sistem file - Program perlu membaca dan menulis file dan direktori, membuat dan menghapusnya, mencarinya, menampilkan daftar informasi file, manajemen perijinan.
5
6
Layanan Sistem Operasi
• Himpunan layanan sistem operasi menyediakan fungsi yang bermanfaat bagi penguna:
– Komunikasi – Proses bertukar informasi pada komputer yang sama atau antar komputer dalam jaringan
• Komunikasi mungkin melalui shared memory atau message
passing (paket dipindahkan oleh SO)
– Deteksi error – SO perlu secara konstan mengetahui kemungkinan error
• Dapat terjadi dalam CPU & memory, perangkat I/O, program pengguna
• Pada setiap jenis error, SO akan mengambil tindakan tepat untuk memastikan komputasi benar & konsisten
• Fasilitas debugging dapat meningkatkan kemampuan pengguna dan programmer untuk secara efisien
7
Layanan Sistem Operasi
• Himpunan lain dari fungsi SO hadir untuk
memastikan operasi efisien dari sistem melalui
resource sharing.
– Resource allocation – Ketika banyak pengguna atau kerja (job) berjalan secara konkuren, resources harus dialokasikan ke setiap yang membutuhkannya.
• Banyak jenis resources - Beberapa (seperti siklus CPU, main memory & penyimpanan file) dapat mempunyai kode alokasi khusus, yang lain (seperti perangkat I/O) dapat mempunyai kode request & release umum.
– Accounting – Menjaga track (jejak) pengguna siapa menggunakan berapa banyak dan jenis apa dari
8
Layanan Sistem Operasi
– Protection & security – Pemilik informasi yang
tersimpan dalam sistem komputer multiuser atau
terjaring mungkin ingin mengontrol penggunaan
informasi tersebut, proses-proses konkuren sebaiknya
tidak mengganggu satu sama lain.
• Protection meliputi memastikan bahwa semua akses ke resources sistem terkendali
• Security dari sistem dari pihak luar (outsider)
mengharuskan user authentication, meningkatkan
pertahanan perangkat I/O eksternal dari usaha akses tidak sah.
• Jika suatu sistem terlindungi dan aman, tindakan
pencegahan harus dimulai melalui ini. Tidak ada rantai yang benar-benar aman.
9
Antarmuka SO Pengguna- CLI
• Command Line Interface (CLI) atau
command
interpreter
memungkinkan pengguna
memasukkan perintah langsung.
− Diimplementasikan dalam kernel atau pada program sistem.
− Diimplementasikan dengan banyak cara - shell
− Terutama mengambil perintah dari pengguna dan mengeksekusinya
• Kadang perintah built-in, kadang hanya nama program » Jika yang terakhir, penambahan fitur baru tidak
10
Antar Muka SO - GUI
• Desktop yang user-friendly mengubah interface
– Melibatkan mouse, keyboard, dan monitor
– Icon-icon mewakili file, program, tindakan,dll
– Variasi tombol mouse thd obyek dalam interface
menyebabkan berbagai tindakan (menyediakan informasi, pilihan, fungsi eksekusi, buka direktori)
– Dimulai pada Xerox PARC
• Banyak sistem menyertakan antarmuka CLI & GUI
– Microsoft Windows: GUI dengan shell “command” CLI – Apple Mac OS X: GUI “Aqua” dengan kernel UNIX di
bwahnya & tersedia shell
11
12
13
System Calls
• Antarmuka pemrograman ke layanan yang disediakan oleh SO
• Biasanya ditulis dalam bahasa tingkat tinggi (C/C++) • Sebagian besar diakses oleh program melalui suatu
Application Program Interface (API) tingkat tinggi, jarang langsung system call.
• 3 API paling terkenal: Win32 API, POSIX API untuk sistem berbasis POSIX (UNIX, Linux & Mac OS X), dan Java API untuk Java virtual machine (JVM)
14
Contoh System Calls
• Urutan system call untuk menyalin isi dari satu
file ke file lain
15
Contoh API Standard
• Fungsi ReadFile() dalam Win32 API: membaca file
Deskripsi parameter yang dilewatkan ke ReadFile() – HANDLE file: file yang akan dibaca
– LPVOID buffer: buffer dimana data akan dibaca dan ditulis – DWORD bytesToRead: jumlah byte dibaca ke dalam buffer – LPDWORD bytesRead: jumlah byte dibaca selama
pembacaan terakhir
– LPOVERLAPPED ovl: menunjukkan jika I/O yang sedang digunakan overlap.
16
Implementasi System Call
• Biasanya, suatu nomor diasosiasikan dengan tiap system call
– Antarmuka system-call memelihara suatu tabel yang diindeks sesuai dengan nomor-nomor ini
• Antarmuka system call menjalankan system call yang
dimaksud dalam kernel SO dan mengembalikan status dari system call tersebut dan suatu nilai kembalian
• Pemanggil tidak perlu mengetahui apapun mengenai bagaimana system call diimplementasikan
– Hanya perlu mentaati API & memahami apa yang OS akan kerjakan sebagai hasil pemanggilan.
– Antarmuka SO yang sangat detail disembunkan dari programmer dengan API
• Dikelola oleh pustaka dukungan run-time (himpunan fungsi disatukan ke dalam pustaka oleh compiler)
17
18
Contoh Pustaka C Standard
• Program C
menjalanan library
call printf() yang
memanggil system
call write()
19
Pelewatan Parameter System Call
• Sering, lebih banyak informasi yang diperlukan daripada identitas sederhana dari system call yang diinginkan
– Jenis pasti dan jumlah informasi sesuai dengan SO dan call
• Tiga metode umum digunakan untuk melewatkan parameter ke SO
– Paling sederhana: melewatkan parameter dalam registers
• Beberapa kasus, mungkin lebih banyak parameter daripada register
– Parameter disimpan dalam suatu block atau table, dalam memory, dan alamat dari blok dilewatkan sebagai parameter dalam register
• Pendekatan ini diambil oleh Linux & Solaris
– Parameter ditempatkan atau dipush ke stack oleh program dan dipop oleh SO
– Metode blok dan stack tidak membatasi jumlah atau panjang dari parameter yang akan dilewatkan
20
21
Jenis System Call
• Kontrol proses
• Manajemen file
• Manajemen perangkat
• Perawatan Informasi
• Komunikasi
• Perlindungan
22
Contoh System Call Windows & Unix
23
Eksekusi MS-DOS
24
25
Program Sistem
• Program sistem menyediakan suatu lingkungan
yang tepat untuk pengembangan dan eksekusi
program. Dapat dibagi ke dalam:
– Manipulasi file – Informasi status
– Dukungan bahasa pemrograman – Pemuatan dan eksekusi program – Komunikasi
– Program aplikasi
• Sudut pandang pengguna: SO didefinisikan oleh
program sistem, bukan system call sebenarnya
.26
Program Sistem
• Menyediakan suatu lingkungan yangtepat untuk pengembangan dan eksekusi program
– Beberapa berupa antarmuka sederhana ke system calls; lainnya lebih kompleks
• Manajemen file – create, delete, copy, rename, print, dump, list. (manipulasi file & direktori)
• Informasi status
– Menanyakan sistem info: date, time, jumlah memory yg tersedia, ruang disk, jumlah pengguna
– Menyediakan informasi kinerja, logging & debugging
– Pada dasarnya, program ini menformat dan mencetak output ke terminal atau perangkat output lain
– Beberapa sistem mengimplementasikan registry – digunakan untuk menyimpan dan meretrieve informasi konfigurasi
27
Program Sistem
• Perubahan file
– Text editor untuk membuat dan mengubah file
– Perintah khusus untuk mencari isi file atau mengerjakan transformasi teks
• Dukugan bahasa pemrograman - Compiler, assembler, debugger & interpreter kadang disediakan
• Pemuatan dan eksekusi program - Absolute loader, relocatable loader, linkage editor & overlay-loader,
debugging system bagi bahasa mesindan tingkat tinggi • Komunikasi – Menyediakan mekanisme untuk
pembuatan koneksi virtual antar proses, pengguna & sistem komputer
– Memungkinkan pengguna mengirimkan message ke layar komputer lain, menjelajah halaman web, mengirimkan pesan email, log in jarak jauh, transfer file dari satu mein ke mesin lain
28
Desain & Implementasi SO
• Rancangan & implementasi SO tidak “solvable”, tetapi
beberapa pendekatan telah terbukti berhasil
• Struktur internal dari SO berbeda dapat sangat
bervariasi
• Dimulai dengan mendefinisikan goal dan spefisikasi
• Dipengaruhi oleh pilihan hardware, jenis sistem
• User goals dan System goals
– User goals – SO sebaiknya nyaman digunakan, mudah dipelajari, reliable, aman & cepat
– System goals – SO mudah dirancang, diimplementasikan dan dipelihara, juga fleksibel, reliable, bebas-error &
29
Desain & Implementasi SO
• Prinsip penting untuk memisahkan
Policy: Apa yang akan dikerjakan?
Mechanism: Bagaimana melakukannya?
• Mekanisme menentukan bagaimana
melakukan sesuatu, kebijakan
memutuskan apa yang akan dilakukan
– Pemilahan kebijakan dari mekanisme sangat
penting, memungkinkan fleksibilitas
maksimum jika keputusan kebijakan berubah
kemudian
30
Struktur Sederhana
• MS-DOS – ditulis untuk menyediakan
banyak fungsionalitas dalam ruang sedikit
– Tidak dibagi ke dalam modul-modul
– Meskipun MS-DOS punya beberapa struktur,
antarmuka & level fungsionalitasnya tidak
31
32
Pendekatan Ber-Layer
• SO dibagi ke dalam sejumlah lapisan (layer,
tingkat), masing-masing dibangun di atas layer
yang lebih bawah. Layer paling bawah (layer 0)
adalah hardware; layer paling tinggi (N) adalah
user interface.
• Dengan modularitas, layer dipilih sehingga
setiapnya menggunakan fungsi (operasi) dan
layanan (service) hanya dari layer tingkat lebih
bawah
33
34
UNIX
• UNIX – dibatasi oleh fungsionalitas
hardware, SO Unix awal punya
penstrukturan terbatas. SO Unix terdiri dari
dua bagian (separable):
– Program-program sistem
– Kernel
• Terdiri dari segala sesuatu di bawah antarmuka
system-call dan di atas hardware fisik
• Menyediakan sistem file, penjadwalan CPU,
manajemen memory & fungsi SO lain; jumlah besar dari fungsi untuk level satu
35
36
Struktur Sistem Microkernel
• Memindahkan sebanyak mungkin dari kernel ke
dalam ruang “user”
• Komunikasi antar modul pengguna menggunakan
message passing
• Keuntungan:
– Lebih mudah mengeksten suatu microkernel – Lebih mudah mem-port SO ke arsitektur baru
– Lebih reliable (lebih sedikit code berjalan dalam modus kernel)
– Lebih aman
• Kerugian:
37
38
Modul-modul
• Banyak SO modern mengimplementasikan
modul-modul kernel
– Menggunakan pendekatan object-oriented – Setiap komponen inti (core) tersendiri
– Setiap percakapan ke modul lain melalui interface tertentu
– Bersifat loadable saat diperlukan dalam kernel
• Serupa dengan layer tetapi lebih fleksibel
39
40
Mesin Virtual
• Suatu
virtual machine
mengambil pendekatan
layer untuk kesimpulan logisnya. Memperlakukan
hardware & kernel SO sebagai hardware
(semuanya)
• Virtual machine menyediakan suatu interface
identik untuk hardware ril yang mendasari
• Host SO membuat iluasi bahwa suatu proses
mempunyai processornya (dan virtual memory)
sendiri
• Setiap
guest
disediakan suatu salina (virtual) dari
komputer yang mendasari
41
Mesin Virtual
• Pertama dimunculkan komersil dalam mainframe IBM (1972) • Fundamental, banyak lingkungan eksekusi (SO berbeda)
dapat berbagi hardware yang sama • Melindungi dari setiap yang lain
• Beberapa sharing file dapat diijinkan, dikontrol
• Commutate dengan each other, sistem fisik lain melalui jaringan
• Berguna untuk pengembangan, testing
• Konsolidasi dari banyak low-resource menggunakan sistem di atas sistem yang lebih sibuk yang lebih sedikit
• “Open Virtual Machine Format”, format standard dari mesin virtual, memungkinkan suatu VM berjalan di dalam banyak platform mesin virtual berbeda (host)
42
Mesin Virtual
43
Para-virtualisasi
• Menyajikan guest dengan system serupa
tetapi tidak identik terhadap hardware
• Guest harus dimodifikasi untuk berjalan
pada hardware paravirtualized
• Guest dapat berupa suatu SO, atau dalam
kasus Solaris 10 aplikasi berjalan dalam
44
45
46
47
48
49
Debugging Sistem Operasi
• Debugging: menemukan & membetulkan error atau bugs
• OS membangkitkan log files berisi informasi error
• Kegagalan dari suatu aplikasi dapat membangkitkan file core dump
yang meng-capture memory dari proses
• Kegagalan SO dapat membangkitkan file crash dump yang mengandung memory kernel
• Diluar crash, perbaikan kinerja dapat mengoptimalkan kinerja sistem
• Hukum Kernighan : “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.”
• Tool DTrace di Solaris, FreeBSD, Mac OS X memungkinkan instrumentasi langsung pada sistem produksi
– Pemeriksaan kebakaran ketika kode dieksekusi, mengcapture
50
Dtrace di Solaris 10 dtrace
51
Berjalannya Sistem Operasi
• SO dirancang untuk berjalan pada suatu kelas
mesin; sistem harus dikonfigurasi untuk setiap
komputer spesifik
• Program SYSGEN mendapatkan informasi
mengenai konfigurasi spesifik dari sistem hardware
• Booting – memulai suatu komputer dengan memuat
kernel
• Bootstrap program – kode yang diletakkan dalam
ROM yang mampu untuk menemukan kernel,
memuatkan ke dalam memory & memulai
eksekusinya
52
Boot Sistem
• SO harus dibuat tersedia bagi hardware
sehingga hardware dapat memulainya
– Potongan kecil kode – bootstrap loader,
menemukan kernel, memuatnya ke dalam
memory & memulainya
– Kadang proses dua-langkah dimana boot block
pada lokasi tetap memuat bootstrap loader
– ketika power dihidupkan, eksekusi dimulai pada
lokasi memory tetap
• Firmware digunakan untuk memegang kode boot awal
53
Tugas
• Pelajari perintah dtrace atau sejenis di Linux.
Buat rangkumannya disertai 3 contoh
• Buat rangkuman perbedaan antara Unix,
FreeBSD, Solaris dan Linux!
• Buat program untuk membuka, membaca,
menulis dan menutup file menggunakan:
– Bahasa C murni