PENGANTAR SISTEM OPERASI DEFINISI Sistem operasi adalah program yang bertindak sebagai perantara antara user dengan perangkat keras komputer. Sistem operasi digunakan untuk mengeksekusi program user dan memudahkan menyelesaikan permasalahan user. adanya sistem operasi membuat sistem komputer nyaman digunakan. Sistem operasi mempunyai tujuan untuk menggunakan perangkat keras komputer secara efisien. KOMPONEN SISTEM KOMPUTER DEFINISI Resource allocator Sistem operasi mengatur dan mengalokasikan sumber daya – sumber daya sistem komputer Program control Sistem operasi melakukan control eksekusi dari program user dan operasi input output. Kernel Sistem operasi sering disebut kernel, yaitu suatu program yang berjalan sepanjang waktu (selain program aplikasi). 1. SEJARAH SITEM OPERASI SISTEM PENDAHULU(GENERASI PERTAMA 1945 - 1955) Karakteristik : 1. Mesin sangat besar 2. Belum ada sistem operasi 3. Sistem komputer diberi instruksi yang harus dikerjakan secara manual SISTEM BATCH SEDERHANA (GENERASI KEDUA 1955 - 1965) Karakteristik: 1. Pengumpulan job-job yang sejenis sebagai satu kelompok 2. Job yang dikumpulkan dieksekusi secara berurutan 5 GENERASI KETIGA (1965 - 1980) Dikembangkan untuk melayani banyak pemakai secara online, sehingga sistem komputer dapat digunakan secara : 1. MULTIUSER Komputer yang memiliki resource yang dapat digunakan oleh banyak orang sekaligus 2. MULTIPROGRAMMING Komputer melayani banyak proses/job sekaligus pada waktu bersamaan, sehingga dikembangkan : • Time Sharing - Tiap pemakai mempunyai satu terminal online dengan CPU hanya memberi layanan pada pemakai yang aktif secara bergantian - Tiap proses dibatasi oleh waktu, waktu maksimum yang digunakan disebut “quantum time” 6 GENERASI KEEMPAT (1980 - skr) - Sistem operasi dapat melayani banyak mode : mendukung batch processing, time sharing, dan real time application - Meningkatnya kemampuan komputer desktop (PC) dan teknologi jaringan(TCP/IP) 1. KOMPONEN SISTEM OPERASI Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut : Managemen Proses. Managemen Memori Utama. Managemen Secondary-Storage. Managemen Sistem I/O. Managemen Berkas. Sistem Proteksi. Jaringan. Command-Interpreter system. MANAJEMEN PROSES Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses seperti : Pelaksanaan dan penghapusan proses yang diinginkan user atau sistem. Menunda atau melanjutkan proses. Menyediakan mekanisme untuk proses sinkronisasi. Menyediakan mekanisme untuk proses komunikasi. Menyediakan mekanisme untuk penanganan deadlock. MANAGEMEN MEMORI UTAMA Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan byte. Setiap word atau byte mempunyai alamat tersendiri. Memori Utama berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O. Memori utama termasuk tempat penyimpanan data yang sementara (volatile), artinya data dapat hilang begitu sistem dimatikan. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen memori seperti: Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya. Memilih program yang akan di-load ke memori. Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan. MANAJEMEN SECONDARY-STORAGE Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan secondary-storage yang bersifat permanen dan mampu menampung banyak data. Contoh dari secondary-storage adalah harddisk, flashdisk, CD-ROM, disket, dll. MANAJEMEN SISTEM I/O Sering disebut device manager. Menyediakan "device driver" yang umum sehingga operasi I/O dapat seragam (seperti kegiatan untuk membuka, membaca, menulis, menjalankan dan menutup file atau program). Komponen Sistem Operasi untuk sistem I/O: Buffer: menampung sementara data dari dan ke perangkat I/O. Spooling: melakukan penjadualan pemakaian I/O sistem supaya lebih efektif dan efisien (pengaturan antrian). Menyediakan driver untuk dapat melakukan operasi "rinci" untuk perangkat keras I/O tertentu. MANAJEMEN BERKAS Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll). Sistem operasi bertanggung-jawab terhadap : ◦ Pembuatan dan penghapusan berkas. ◦ Pembuatan dan penghapusan direktori. ◦ Mendukung manipulasi berkas dan direktori. ◦ Memetakan berkas ke secondary storage. ◦ Mem-backup berkas ke media penyimpanan yang permanen (non-volatile). SISTEM PROTEKSI Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus: membedakan antara penggunaan yang sudah diberi izin dan yang belum. specify the controls to be imposed (menetapkan sistem pengaturan yang digunakan). provide a means of enforcement (menyiapkan alat yang digunakan). JARINGAN Dukungan terhadap komunikasi data antar perangkat komputer mutlak diperlukan. Pada model sistem terdistribusi, dimana sistem operasi mengatur mekanisme penjadualan penggunaan resource komputer dalam jaringan, maka sekumpulan prosesor yang tidak berbagi memori atau clock diatur oleh sistem operasi komputer host untuk pengunaan prosesor dan alokasi tempat penyimpanan serta mekanisme pendistribusian data maupun proses yang dilakukan. Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi, Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem. Akses tersebut menyebabkan: ◦ Computation speed-up (proses komputasi semakin cepat). ◦ Increased data availability (peningkatan ketersediaan data). ◦ Enhanced reliability (peningkatan kemampuan). COMMAND INTERPRETER SYSTEM Sistem Operasi menunggu instruksi dari user (command driven). Program yang dapat membaca instruksi dan mengartikan control statements berdasarkan masukan dari user umumnya disebut : control-card interpreter, atau command-line interpreter. Pada sistem UNIX sering disebut juga shell atau console. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devices yang ada. 2. LAYANAN SISTEM OPERASI Sebuah sistem operasi yang baik menurut Tanenbaum harus memiliki layanan sebagai berikut: Pembuatan Program Eksekusi program. Operasi I/O (pengaksesan I/O Device) Sistem manipulasi berkas Komunikasi Deteksi error Deteksi dan Pemberian tanggapan pada kesalahan Efesiensi penggunaan sistem Accounting LAYANAN SISTEM OPERASI ◦ ◦ ◦ ◦ ◦ ◦ Pembuatan program, yaitu sistem operasi menyediakan fasilitas dan layanan untuk membantu para pemrogram untuk menulis program Eksekusi program adalah kemampuan sistem untuk "load" program ke memori dan menjalankan program yang dikehendaki user maupun sistem. Operasi I/O merupakan kegiatan dimana pengguna tidak dapat secara langsung mengakses sumber daya perangkat keras, sehingga sistem operasi harus menyediakan mekanisme untuk melakukan operasi I/O atas nama pengguna. Sistem manipulasi berkas adalah kemampuan program untuk operasi pada berkas (membaca, menulis, membuat, dan menghapus berkas yang berupa file atau direktori). Komunikasi adalah pertukaran data/ informasi antar dua atau lebih proses yang berada pada satu komputer (atau lebih). Deteksi error adalah kegiatan untuk menjaga kestabilan sistem dengan mendeteksi "error", perangkat keras maupun operasi yang dilakukan. LAYANAN SISTEM OPERASI Deteksi dan Pemberian tanggapan pada kesalahan, jika muncul permasalahan pada sistem komputer maka sistem operasi harus memberikan tanggapan yang menjelaskan kesalahan yang terjadi serta dampaknya terhadap aplikasi yang sedang berjalan. Efesisensi penggunaan sistem, diantaranya: Resource allocator, yakni: mengalokasikan sumber-daya hardware maupun software ke beberapa pengguna atau mengalokasikan job yang jalan pada saat yang bersamaan ke beberapa komputer dalam jaringan. Proteksi sistem untuk menjamin akses ke sistem sumber daya yang aman, dikendalikan oleh sistem sehingga pengguna dikontrol aksesnya ke sistem). Accounting adalah kegiatan merekam aktifitas pengguna, report pemakaian sumber daya. Sistem Operasi yang bagus harus mampu mengumpulkan data statistik penggunaan beragam sumber-daya dan memonitor parameter kinerja. 3. SYSTEM CALL System call menyediakan interface antara program (program pengguna yang berjalan) dan bagian OS. System call menjadi jembatan antara proses dan sistem operasi. System call ditulis dalam bahasa assembly atau bahasa tingkat tinggi yang dapat mengendalikan mesin Contoh: UNIX menyediakan system call: read, write operasi I/O untuk berkas. Sering pengguna program harus memberikan data (parameter) ke OS yang akan dipanggil. Contoh pada UNIX: read(buffer, max_size, file_id); Tiga cara memberikan parameter dari program ke sistem operasi: Melalui registers (sumber daya di CPU). Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register. Push (store) melalui "stack" pada memori dan OS mengambilnya melalui pop pada stack tsb. 4. MESIN VIRTUAL Program sistem diatas kernel dapat menggunakan system call atau instuksi-instruksi hardware. Dalam beberapa hal, program sistem tidak membedakan kedua lapisan tersebut. Program sistem memperlakukan system call dan hardware dilapisan yang sama. Beberapa sistem mengadopsi teknik ini supaya program sistem dapat dipanggil secara mudah oleh programprogram aplikasi. Meskipun program sistem berada ditingkat yang lebih tinggi dari rutin-rutin program aplikasi yang lain, program-program aplikasi akan melihat semua yang berada dibawahnya (didalam hirarki). MODEL MESIN VIRTUAL Proses Proses Proses Proses Kernel Kernel Kernel Programming interface Kernel Mesin virtual Hardware Hardware Sistem Operasi Berhak Milik Generasi Awal Apple Computer Business Operating System (BOS) Commodore PET, Commodore 64, dan Commodore VIC-20 IBM PC awal (UCSD p-System, CPM-86, PC-DOS) Sinclair Micro dan QS TRS-DOS, ROM OS TI99-4 Flex FLEX9 mini-FLEX 3. Sistem Operasi Berlisensi Acorn Arthur ARX RISC OS RISCiX Amiga AmigaOS Atari ST TOS MultiTOS MiNT Be Incorporated BeOS BeIA Zeta ICT/ICL GEORGE VME DME TME Novell o Novell Netware v.1.0, 2.0, 3.0, 3.1, 3.12 o Novell Netware v.4.11, 5.0, 5.1, 6.0 o Novell SuSE 9.0,9.1,9.2, 9.3 IBM IBSYS OS/2 AIX OS/400 DOS/360 DOS/VSE OS/360 MFT MVT SVS MVS TPF ALCS OS/390 z/OS, Unixlike z/VM z/VSE Basic Operating System PC-DOS Digital/Compaq/HP o AIS o OS-8 ITS (untuk PDP-6 dan PDP-10) TOPS-10 (untuk PDP-10) WAITS TENEX TOPS-20 RSTS/E RSX-11 RT-11 VMS Apple Macintosh Apple DOS A/UX ProDOS GS/OS Mac OS Mac OS X Apple Darwin Microsoft MS-DOS Windows for Workstation / Stand alone o Windows 1.0 Windows 2.0 (u/ 80286) Windows 3.0, 3.1 Windows 95 Windows 98/98se/98plus Windows ME (Millenium) Windows 2000 Profesional Windows XP (eXPerience) Home Edition&Profesional Windows Vista (Longhorn) Windows "Blackcomb" Windows for Server Windows NT 3.5 Windows NT 4 Windows 2000 Server & Advance Server (NT v5.0) Windows Server 2003 o o o Xenix Windows for PDA Windows for PC Tablet PDA (Personal Digital Assistant) Palm OS Pocket PC EPOC, Symbian OS Windows CE Linux Sharp Zaurus Router IOS MikroTik RouterOS Smartphones Windows CE Linux Symbian OS Microcontroller, Real-Time OS, Embedded Contiki eCos OSEK Nuclues QNX VxWorks ITRON uCLinux TRON OS ThreadX INTEGRITY Montavista Linux OS-9 LynxOS RTOS OS berhak milik lainnya, Unixlike & POSIX-compliant o Aegis/OS o Cromix o Coherent o DNIX o Digital UNIX o HP-UX o Idris o IRIX o Mac OS X o Menuet o NeXTSTEP o OS-9 o OS-9/68k o OS-9000 o OSF/1 o OPENSTEP o Plan 9 o Plan 9, Inferno o Rhapshody o RiscOS o SCO UNIX o System V o UNIflex o Ultrix o UniCOS 4. Sistem Operasi Open Source Linux distronya antara lain : Debian Slackware Redhat/Fedora Mandrake/Mandr iva Gentoo YellowDog Ubuntu Trustix Knoppix Blank-on Xnuxer, dll. BSD (Berkley Software Development) FreeBSD, OpenBSD, NetBSD, dll. Sun Microsystems Solaris - Unix-like SunOS - Unixlike (menjadi Solaris) Java Desktop System (JDS) Multitasking Multitasking adalah sebuah metode dimana banyak pekerjaan atau dikenal juga sebagai proses diolah dengan menggunakan sumberdaya CPU yang sama. Multitasking memecahkan masalah ini dengan menjadwalkan pekerjaan mana yang dapat berjalan dalam satu waktu, dan kapan pekerjaan yang lain menunggu untuk diolah dapat dikerjakan. Kondisi mengalokasikan CPU dari pekerjaan satu ke pekerjaan yang lain disebut context switch. Time sharing Time sharing system adalah suatu teknik penggunaan CPU oleh beberapa pemakai secara bergantian menurut waktu yang diperlukan pemakai. Hal ini disebabkan waktu perkembangan proses CPU semakin cepat, sedangkan alat Input/Output tidak dapat mengimbangi kecepatan dari CPU, maka kecepatan dari CPU dapat digunakan secara efisien dengan melayani beberapa alat I/O secara bergantian. Pipelining Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesan. Dengan cara ini, maka unit pemrosesan selalu bekerja. Contoh Tanpa pipelining Dengan pipelining MASALAH-MASALAH DALAM SISTEM OPERASI DEADLOCK Suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut. CONTOH DEADLOCK (1) Gambar di atas merupakan contoh deadlocks dalam dunia nyata. Dapat dilihat bahwa kedua mobil yang berada di tengah-tengah jembatan tidak dapat maju dan hanya menunggu Penyelesaian dari masalah tersebut adalah salah satu dari mobil tersebut mundur, sehingga mobil yang lain dapat maju CONTOH DEADLOCK (1) Mobil pada kasus ini adalah proses, sedangkan jembatan adalah sumber daya (resource) Kedua mobil berebut untuk menggunakan sumber daya, namun karena sumber daya tersebut hanya dapat digunakan oleh satu proses saja, maka terjadilah deadlock Kondisi tersebut bila terjadi dalam waktu yang lama dapat menyebabkan terjadinya starvation CONTOH DEADLOCKS (2) KONDISI YANG MENYEBABKAN DEADLOCK Mutual Exclusion Sebuah resource hanya dapat digunakan oleh sebuah proses pada suatu waktu tertentu. (resource yang non-shareable.) –Hold and Wait terdapat proses yang sedang menunggu dan memegang resource. KONDISI YANG MENYEBABKAN DEADLOCK Non-preemption Resource tidak dapat digunakan sebelum proses yang menggunakan telah selesai menggunakan dan kemudian melepaskannya. –Circular wait Proses-proses berada dalam lingkaran. Terjadi saling menunggu resource yang sedang digunakan oleh proses berikutnya dalam lingkaran tersebut. Cara menanggulangi deadlock 1. Mengabaikan masalah deadlock 2. Mendeteksi dan memperbaiki 3. Deadlock avoidance sistem Menghindari situasi yang dapat mengarah kepada terjadinya deadlock, sistem harus diberikan informasi tambahan yang menyatakan resource mana yang diminta proses, dan digunakan selama proses berjalan. 4. Deadlock prevention sistem Menggunakan metode supaya tidak terjadi salah satu kondisi yang menyebabkan deadlock Starvation Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan sehingga mengalamistarvation (kelaparan). Contoh Starvation Mobil pada kasus ini adalah proses, sedangkan jembatan adalah sumber daya (resource) Kedua mobil berebut untuk menggunakan sumber daya, namun karena sumber daya tersebut hanya dapat digunakan oleh satu proses saja, maka terjadilah deadlock Kondisi tersebut bila terjadi dalam waktu yang lama dapat menyebabkan terjadinya starvation