Sistem Operasi Pendahuluan
Komponen komputer modern Prosesor: satu atau lebih, multicore Cache Memori utama Memori skunder: harddisk, CD, UFD, dll Printer Perangkat I/O: kartu grafis, soundcard, dll Perlu dikelola dengan baik sehingga dapat dioperasikan/beroperasi sesuai dengan kebutuhan pengguna
SEBUAH perangkat lunak yang disebut dengan SISTEM OPERASI Siapa yang mengelola? SEBUAH perangkat lunak yang disebut dengan SISTEM OPERASI Biasanya pengguna akan berhadapan dengan shell (text based) atau GUI (grafis) sebagai antarmuka/perantara dengan sistem operasi. Shell atau GUI bukan bagian dari sistem operasi
Ilustrasi sistem operasi Kernel mode (supervisor mode): modus di mana sistem operasi berjalan, perangkat lunak (baca: sistem operasi) yang berjalan pada kernel mode mendapatkan akses ke seluruh sumber daya yang ada dan dapat mengeksekusi semua instruksi mesin yang ada User mode: perangkat lunak lain berjalan pada modus ini yang mana tidak semua instruksi dapat dieksekusi oleh program, misal I/O dan instruksi yang berakibat pada kendali mesin (timer, dll) Shell/GUI: perangkat lunak modus user yang paling rendah (paling dekat dengan sistem operasi), memungkinkan pengguna menjalankan program yang lain, misal web browser, mail, dll. Sebagai antarmuka antara pengguna dengan sistem operasi.
Apa beda sistem operasi dengan aplikasi? User bebas menambah/mengubah/menulis/mengganti aplikasi yang diinginkan User tidak bebas (baca: bisa) menulis clock interrupt handler-nya sendiri: sudah menjadi bagian dari sistem operasi, diproteksi secara hardware terhadap usaha modifikasi yang dilakukan oleh user Sistem operasi: pasti besar (ukuran), kompleks (mengelola sumber daya), long-lived (berjalan terus-menerus) Aplikasi: belum tentu besar (tetapi ada yang lebih besar), belum tentu kompleks (hanya menyediakan fungsi tertentu; tetapi ada yang sama/lebih kompleks), tidak berjalan terus-menerus Perbedaan ini menjadi tidak jelas pada embedded system yang mana tidak mesti memiliki modus kernel (sistem operasi dan aplikasi adalah aplikasi/sistem operasi itu sendiri; baca: aplikasi dan sistem operasi menjadi satu executable) atau pada interpreted system, misal Java based operating system Ada di banyak sistem program-program yang berjalan di modus user tetapi membantu melaksanakan fungsi sistem operasi atau melakukan fungsi-fungsi privileged, contoh program untuk mengubah password: program seperti ini harus diproteksi dengan cara tertentu
Jadi, apa sesungguhnya sistem operasi itu? Perangkat lunak Berjalan terus-menerus Mengelola sumber daya Kernel mode Tapi tidak selalu benar seperti itu, ada sistem operasi yang tidak berjalan pada modus kernel. Alasannya adalah 2 tugas/fungsi sistem operasi
Tugas/fungsi sistem operasi Extended Machine: menyediakan model komputer yang lebih baik, sederhana, dan rapi kepada program-program yang berjalan di atasnya (lebih tepatnya programmer) Resource Manager: mengelola semua sumber daya yang ada Top down view Dua tugas tidak berhubungan Bottom up view
Sebagai Extended Machine Contoh, mengakses storage: floppy disk, harddisk, dll Diabstraksikan menjadi file system: apa pun medianya, cara aksesnya sama Intinya, abstraksi kepada aplikasi (lebih tepatnya programmer) sehingga konsisten di semua aplikasi, contoh console dan GUI, meskipun antarmuka penggunanya berbeda, tetapi hubungan (antarmuka, abstraksi) antara console dan GUI dengan sistem operasi tetap sama Menyediakan abstraksi (dan mengimplementasikan serta mengelola objek abstrak) yang lebih mudah dipahami daripada detail perangkat kerasnya
Sebagai pengelola sumber daya Memungkinkan beberapa aplikasi berjalan secara bersamaan Mengelola dan memproteksi memori, perangkat I/O, dan sumber daya lain Melakukan multiplexing (sharing, berbagi pakai) sumber daya: Dalam waktu: bagaimana? Dalam ruang: bagaimana? Waktu: prosesor, I/O Ruang: memori, storage Sumber daya yang ada harus dikelola sehingga aplikasi dapat menggunakannya sesuai dengan kebutuhan pada waktunya: mengalokasikan sumber daya secara teratur (orderly)
Jenis sistem operasi Mainframe Server Multiprosesor PC Handheld Embedded Sensor node Real-time Smart card, dll Fokus mata kuliah ini
Siklus booting Power on BIOS Sistem operasi Hardware checking Mencari bootable device: floppy, UFD, harddisk, CDROM Sistem operasi Boot loader Device driver: mendapatkan informasi dari BIOS Kernel Shell
Konsep sistem operasi Konsep ~ abstraksi Mempermudah pemahaman dan penggunaan sistem komputer Proses I/O Address space Files Proteksi Shell Fokus mata kuliah ini
Ontogeny recapitulates Phylogeny Large memories: assembly language vs high level language Protection hardware: monoprogramming vs multiprogramming Disk: single level directory vs complex hierarchical file system Virtual memory
System call Interaksi yang terjadi antara aplikasi dengan sistem operasi menunjukkan fungsi pertama dari sistem operasi: abstraksi Pengelolaan sumber daya dilakukan sistem operasi secara transparent dan otomatis: pengguna tidak mengetahuinya Antarmuka antara aplikasi dengan sistem operasi: system call
System call Melakukan pemanggilan sistem bergantung pada mesin yang digunakan: melibatkan bahasa assembly Oleh karena itu pustaka prosedur/fungsi disediakan untuk memungkinkan bahasa tingkat tinggi melakukan pemanggilan sistem Jika suatu aplikasi membutuhkan layanan sistem operasi, maka aplikasi yang berjalan pada modus pengguna mengeksekusi instruksi trap untuk menyerahkan kendali ke sistem operasi
System call Sistem operasi menerjemahkan parameter yang dikirimkan aplikasi bersamaan dengan instruksi trap Sistem operasi menjalankan layanan yang diminta dan selanjutnya mengembalikan kendali ke aplikasi Pemanggilan sistem intinya sama dengan pemanggilan prosedur/fungsi biasa, hanya saja pemanggilan sistem melibatkan modus kernel Contoh: count = read(fd, &buffer, nbytes);
System call
Struktur sistem operasi Monolithic Layered system Microkernels Client-server model Virtual machines Exokernel
Model pemrograman dalam C