Overview Sistem Operasi (Pertemuan ke-1) Agustus 2012
Sistem Operasi? Adalah program yang mengatur eksekusi program aplikasi Merupakan penghubung (interface) antara aplikasi dengan perangkat keras Merupakan jembatan penghubung antara user dengan perangkat keras komputer
Kemampuan apa yang harus dimiliki oleh Sistem Operasi ? Dapat memberi kenyamanan bagi user dalam memanfaatkan resource komputer Sebagai interface user dengan komputer Dapat mengatur resource komputer (resource manager) Resource komputer dapat dimanfaatkan secara lebih efisien Dapat berkembang (berevolusi) Dapat dikembangkan atau ditambahkan fungsi atau layanan baru tanpa mengganggu layanan yang telah ada
Layer/Tingkatan Sistem Komputer (1)
Layer/Tingkatan Sistem Komputer (2) Physical devices Microprogramming Machine language Operating system Compilers Editors Command interpreter Banking system Airline reservation Web browser Application programs Hardware System programs
Sistem Operasi sebagai Interface antara User dan Komputer (1) Layanan yang dapat disediakan Sistem Operasi: Mendukung pengembangan program aplikasi OS menyediakan fasilitas dan layanan (program utility) untuk pengembangan program aplikasi, misal: editor dan debugger Meng-eksekusi program Load data dan instruksi ke memori Inisialisasi I/O device dan resource lain Atur penjadualan pengeksekusian program Menyediakan akses ke I/O device OS menyediakan interface yang seragam untuk berbagai jenis I/O device yang berbeda dengan cara menyembunyikan detail I/O tsb Programmer cukup menggunakan perintah read dan write sederhana
Sistem Operasi sebagai Interface antara User dan Komputer (2) Layanan yang dapat disediakan Sistem Operasi: (lanjutan) Mengontrol pengaksesan file OS menyediakan fasilitas untuk mengatur hak akses terhadap file (read, write, hide) Mengontrol pengaksesan sistem OS dapat memproteksi resource dan data dari user yang tidak berhak OS mencegah terjadinya rebutan resource Menyediakan data-data accounting (log) OS memonitor parameter performansi (misal response time) untuk perbaikan selanjutnya OS mengumpulkan statistik penggunaan resource untuk keperluan penagihan (pada sistem multi user)
Sistem Operasi sebagai Interface antara User dan Komputer (3) Layanan yang dapat disediakan Sistem Operasi: (lanjutan) Men-deteksi kesalahan/error Kesalahan H/W, misal: Memory error Device failure Kesalahan S/W, misal: Arithmetic overflow Pembagian dengan nol Akses ke lokasi memori terlarang Kegagalan OS memenuhi request dari program aplikasi (time out) Memberikan respons terhadap error yang terjadi dengan efek seminimal mungkin terhadap aplikasi yang sedang berjalan dengan cara: Hentikan program penyebab error Mencoba kembali (retry) Hanya berupa laporan telah terjadi error
OS Sebagai Resource Manager (1) Komputer = kumpulan resource yang berfungsi untuk memindahkan, memproses, dan menyimpan data OS bertanggung jawab terhadap aktifitas tersebut Model kontrol oleh OS = model kontrol tidak lazim, karena OS tidak selamanya menjadi pengontrol: OS = program yang dieksekusi oleh prosesor Saat OS dieksekusi prosesor yang mengontrol OS Saat program lain (bukan OS) dieksekusi OS menjadi pengontrol Termasuk mengendalikan prosesor
OS Sebagai Resource Manager (2) Kernel/nucleus = Bagian OS yang di memori = Fungsi yang sering digunakan dan bagian OS lain yang sedang digunakan
Mengapa Sistem Operasi Ber-evolusi ? Supaya dapat memanfaatkan kemajuan di bidang teknologi H/W H/W memori (RAM) berkembang sehingga dapat digunakan cara pengaturan memori lebih baik (model paging atau segment) OS diperbarui sehingga dapat memanfaatkan kemajuan di bidang H/W tersebut H/W monitor (display) telah berkembang sehingga dapat menampilkan informasi secara grafis (tidak hanya mode teks) OS dikembangkan sehingga beberapa aplikasi dapat ditampilkan secara bersamaan dalam “window” Ada penambahan layanan baru Misal: penambahan tool baru yang dapat meningkatkan performansi OS Koreksi terhadap kesalahan/bug Apa ciri OS yang baik ? (dilihat dari sisi perancang OS) tersusun secara modular interface antar modul terdefinisi dengan baik interface antar modul sesederhana mungkin terdokumentasi secara baik
Evolusi Sistem Operasi Serial Processing (1940 – 1950) User harus mengakses mesin (komputer) secara langsung dan eksekusi job dilakukan satu per satu secara urut dan bergantian Simple Batch System (1950) Beberapa job (program) yang akan diproses dikumpulkan menjadi satu (menjadi sebuah batch) oleh operator komputer sebelum diproses oleh komputer Multiprogrammed Batch System Job (program) yang diproses berjumlah lebih dari satu dan diproses secara “bersamaan” Time-Sharing System (1961) Sebuah komputer (support multiprogramming) digunakan oleh lebih dari satu user secara bersamaan untuk mengerjakan interaktif job
Contoh Evolusi Berbagai Sistem Operasi 55 60 65 70 75 80 85 90 95 00 03 IOCS DOS/360 DOS/VDSE VS VS/ESA OS/360 MVS/370 MVS/XA MVS/ES TSO IBSYS CTSS CP/CM5 VM/370 VM/XA VM/ESA SYSTEM III SYSTEM V SYSTEM V.4 MULTICS UNIX UNIXV.7 AIX/370 AIX SUN OS POSIX SOLARIS 2 4.1BSD 4.2BSD 4.3BSD 4.4BSD MACH OSF/1 AIX/ESA XENIX MS-DOS 1.0 CP/M DR/DOS OS/2 WIN 3.0 WIN NT WIN 2000 WIN 9X WIN XP LINUX RSX-11M VMS 1.0 VMS 5.4 VMS 7.3 WIN 3.1 SOLARIS 10 RT-11 LINUX 2.6 WIN Server 2003
Evolusi Windows dan Linux 1970 1980 1990 2000 VMS v1.0 Windows NT 3.1 NT 4.0 Windows 2000 Windows XP Server 2003 UNIX public UNIX V6 Linux v1.0 v2.0 v2.2 v2.3 v2.4 v2.6 (see http://www.levenez.com for diagrams showing history of Windows & Unix)
Serial Processing ≠ OS Programmer berinteraksi langsung dengan H/W komputer Tanpa sistem operasi Mesin dijalankan dari sebuah konsole yang dilengkapi dengan lampu display, saklar, peralatan input, dan printer Masalah utama: Penjadualan: Sebelum menggunakan mesin user harus memesan terlebih dahulu Jika user memperkirakan job selesai dalam 1 jam dan ternyata selesai dalam 45 menit mesin menunggu sia-sia selama 15 menit Jika job tidak selesai dalam waktu yang telah ditentukan harus berhenti bisa jadi harus diulangi dari awal Waktu setup: Setiap satu job membutuhkan satu persiapan tersendiri (loading compiler, source program, penyimpanan compiled program, loading dan linking) Bila terjadi error setup harus dilakukan dari awal lagi boros waktu
Simple Batch System (1) Simple batch system uniprogramming Tujuan: untuk meningkatkan utilisasi mesin (komputer) Prinsip kerja: Digunakan sebuah software (“sistem operasi”) yang disebut “monitor” yang berfungsi untuk mengatur urut-urutan eksekusi job (program) User tidak langsung berinteraksi dengan komputer User mengirimkan job melalui card atau pita magnet Komputer dijalankan oleh operator Setiap job langsung dieksekusi setelah job yang di depannya selesai dieksekusi tidak ada waktu terbuang
Simple Batch System (2) Monitor di-load di lokasi memori tertentu Punch card
Simple Batch System (3) Apa yang dilakukan monitor ? Baca sebuah job yang ada di card atau tape Taruh job tersebut ke dalam area program user Serahkan kontrol (eksekusi) terhadap job tersebut kepada prosesor Bila job selesai ambil alih kontrol Kirim hasil job ke device output (printer) Baca job berikutnya
Simple Batch System (4) Apa yang dilakukan prosesor ? Eksekusi instruksi (yang merupakan bagian dari program monitor) yang ada di memori Prosesor sebagai pengendali Bila program yang dieksekusi adalah perintah untuk membaca job, maka prosesor beralih dari mengeksekusi program monitor menjadi mengeksekusi program job Prosesor berubah dari pengontrol menjadi yang dikontrol OS Demikian seterusnya sampai seluruh job selesai dieksekusi
Feature Simple Batch System (1) Proteksi memori: Area program monitor dilindungi terhadap pengaksesan oleh program user Bila terjadi pengaksesan ilegal ada pesan error job dibatalkan eksekusi job berikutnya Timer: Setiap job diberi timer job tidak boleh memonopoli resource Bila waktu habis program dihentikan prosesor mengembalikan kontrol ke monitor
Feature Simple Batch System (2) Instruksi eksklusif (Privileged instructions) Instruksi tertentu dilindungi dari pengaksesan oleh program user dan hanya boleh diakses oleh monitor, misal perintah ke I/O Program user yang akan mengakses I/O device harus melalui monitor Bila user langsung mengakses I/O ada pesan error kontrol diambil alih oleh monitor Tujuan: Untuk mencegah jangan sampai suatu program mengakses I/O device yang sedang diakses oleh program lain Interrupts Fasilitas ini digunakan untuk memperbaiki perpindahan kontrol antara program monitor dan program user secara fleksibel
Mode pada Simple Batch System User mode Adalah kondisi pada saat program user (job) sedang dieksekusi oleh prosesor Protected memory dan privileged instructions tidak boleh diakses Kernel mode Adalah kondisi pada saat program monitor (OS) sedang dieksekusi oleh prosesor Protected memory dan priviledged instructions boleh diakses
Kekurangan Simple Batch System Apa kekurangan Simple Batch System ? Terjadi overhead: Sebagian lokasi memori ditempati oleh monitor Sebagian waktu prosesor digunakan untuk mengeksekusi monitor Waktu prosesor belum termanfaatkan secara maksimal, mengapa ? Prosesor sering idle (menganggur) karena I/O device jauh lebih lambat dibanding prosesor
Contoh kasus Simple Batch System Sebuah komputer akan membaca, memproses, dan menyimpan kembali sebuah file ke media penyimpan data (melalui I/O) yang menyimpan sejumlah record. Jika: Waktu untuk membaca sebuah file = 15 µS Waktu untuk memproses sebuah file = 1 µS Waktu untuk menyimpan sebuah file = 15 µS Maka: Total waktu yang diperlukan untuk mengolah sebuah file = 31 µS Utilisasi CPU = 1/31 = 0.032 = 3.2% 96,8% waktu CPU hanya untuk menunggu !!!
Eksekusi job pada Simple Batch System Contoh komputer simple batch system : IBM 701 (1950) IBM 704 IBM 7090/7094 (1960) dengan menggunakan sistem operasi IBSYS
Multiprogrammed Batch System (1) Multiprogrammed batch system multiprogramming multitasking OS modern Tujuan: untuk meningkatkan utilisasi prosesor Contoh eksekusi multiprogram dengan 2 buah program: Program B dieksekusi pada saat program A sedang mengakses device lain melalui I/O
Multiprogrammed Batch System (2) Contoh eksekusi multiprogram dengan 3 buah program: Semakin banyak program yang dieksekusi utilitas prosesor semakin tinggi
Contoh kasus Multiprogrammed Batch System (1) Ada 3 buah job (program) yang akan dieksekusi melalui sebuah komputer yang mempunyai memori 250 MB (di luar OS), harddisk, terminal, dan printer. Karakteristik masing-masing job adalah sbb:
Contoh kasus Multiprogrammed Batch System (2) Hasil pengujian ditampilkan dalam Histogram utilitas sbb:
Contoh kasus Multiprogrammed Batch System (3) Hasil perbandingan penggunaan uniprogramming dan multiprogramming terhadap utilitas resource adalah sbb:
Contoh kasus Multiprogrammed Batch System (4) Apa yang dapat anda simpulkan dari histogram utilitas tersebut ? Waktu eksekusi multiprogramming 2 kali lebih cepat dibanding uniprogramming Utilitas setiap resource komputer pada multiprogramming lebih tinggi daripada uniprogramming ............
Time Sharing System (1) Time sharing system interactive mode multi user Time sharing system adalah: Adalah sistem yang membagi waktu prosesor kepada sejumlah user, sehingga semua user dapat mengakses resource komputer secara bersamaan melalui terminal (keyboard dan display) masing-masing Merupakan sistem multiprogramming yang dimanfaatkan untuk menangani beberapa job interaktif Bila terdapat n user, maka setiap user mendapatkan giliran waktu prosesor sebanyak 1/n dalam satu putaran User akan merasa “seolah-olah” menggunakan sebuah komputer pribadi, mengapa…?
Time Sharing System (2) Mengapa timbul gagasan untuk membuat sistem model time sharing ? Komputer telah dapat digunakan untuk melakukan multiprogramming Pada tahun 1960 ukuran komputer sangat besar dan sangat mahal tidak realistis bila satu user satu komputer Contoh: CTSS Compatible Time-Sharing System (CTSS) merupakan sistem operasi model time sharing pertama yang dikembangkan di MIT yang dijalankan pada komputer IBM 709 (th 1961) dan IBM 7094 CTSS dapat digunakan oleh 32 user bersama-sama
Contoh Kasus Time Sharing System (1) Sebuah komputer CTSS mempunyai memori berkapasitas 32.000 word masing-masing 36 bit Program monitor berukuran 5.000 word, sehingga memori yang tersisa untuk user sebanyak 27.000 word Setiap program user selalu diletakkan pada alamat 5.000 Komputer menghasilkan clock interrupt setiap 0,2 detik Setiap user memperoleh slot waktu sebesar 0,2 detik Terdapat 4 user yang mempunyai job dan membutuhkan memori sbb: JOB1=15.000, JOB2 = 20.000, JOB3 = 5.000, dan JOB4 = 10.000 Ruang memori yang tersedia < jumlah total memori yang dibutuhkan user Data user di memori yang akan ditimpa oleh data user lain harus dipindahkan ke harddisk
Contoh Kasus Time Sharing System (2) Urut-urutan eksekusi job:
Contoh Kasus Time Sharing System (3) Keterangan gambar: (a) JOB1 (15 K) dieksekusi dan menempati alamat 5.000 – 20.000 (b) JOB2 (20 K) dieksekusi dan menempati alamat 5.000 – 25.000 semua JOB1 dipindah ke disk (c) JOB3 (5 K) dieksekusi dan menempati alamat 5.000 – 10.000 sebagian JOB2 dipindah (tidak semua) ke disk hemat waktu penulisan (d) JOB1 (15 K) dieksekusi lagi dan menempati alamat 5.000 – 20.000 JOB3 dan sebagian JOB2 dipindah ke disk (e) JOB4 (10 K) dieksekusi dan menempati alamat 5.000 – 15.000 sebagian JOB1 dipindah ke disk (f) JOB2 (20 K) dieksekusi lagi dan menempati alamat 5.000 – 25.000 semua JOB4 dan bagian JOB1 dipindah ke disk. Bagian JOB2 di disk dipindahkan ke memori
Permasalahan Pada Time Sharing Bagaimana cara mencegah agar suatu program user tidak dapat mengakses data user lain ? Bagaimana cara agar suatu file tidak dapat diakses oleh user yang tidak berhak ? Bagaimana cara mencegah agar tidak terjadi rebutan resource (misal printer dan harddisk) ? Ingin tahu jawabannya…… Ikuti terus perkuliahan ini, don’t miss it……… !
Referensi: [STA05] Stallings, William. 2009. Operating System: Internal and Design Principles. 6th edition. Prentice Hall