Sistem Operasi - 02 - Komponen Dan Struktur Sistem Operasi [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Sistem Operasi Komponen dan Struktur Sistem Operasi



PRODI. TEKNIK INFORMATIKA (S-1)



Sumber Daya Komputasi — Dalam suatu sistem komputer, semua sumber daya komputasi tanpa kecuali berada di bawah kendali kernel. — Sumber daya komputasi dapat dikategorikan menjadi: - Sumber daya fisik: hardware. - Sumber daya abstrak: data dan program.



Komponen-Komponen Sistem Operasi •  Untuk dapat menjalankan fungsinya, sistem operasi memerlukan banyak komponen. •  Komponen-komponen tersebut antara lain: •  Kernel •  Proses •  Interrupt •  Modus kerja •  Manajemen memori •  Memori virtual •  Penyimpanan dan sistem file •  Device driver •  Jaringan •  Keamanan •  Antarmuka pengguna



Kernel •  Kernel merupakan komponen utama sistem operasi yang melakukan pengelolaan pada tingkat paling rendah terhadap semua hardware. Pengelolaan tersebut dilakukan dengan bantuan firmware dan device driver. •  Contoh tugas kernel: mengatur akses memori program-program ke RAM, menentukan program yang memperoleh akses ke sumber daya hardware yang diinginkan, mengatur status prosesor, dan mengorganisasikan data pada media penyimpanan.



Kernel



Kernel •  Kode-kode kritis pada kernel dimuat ke daerah terproteksi pada memori yang mencegahnya dari overwrite. •  Kernel menjalankan tugasnya pada ruang kernel sedangkan user menjalankan program pada ruang user. •  Proses-proses yang ada melakukan permintaan ke kernel melalui system call yang disediakan •  Rancangan kernel berbeda memiliki perbedaan dalam penanganan system call dan sumber daya komputasi.



Kernel •  Dalam perancangannya, terdapat dua pertimbangan: •  Perlindungan dari fault (fault tolerance) •  Perlindungan dari malicious behavior (keamanan) •  Mekanisme yang disediakan oleh kernel dapat diklasifikasikan: •  Statis (pada saat kompilasi) atau dinamis (pada saat run time) •  Dengan dukungan hardware atau dukungan bahasa pemrograman yang digunakan.



Kernel • Desain kernel yang umum digunakan adalah desain monolitik, microkernel dan hybrid kernel. • Di luar desain-desain tersebut terdapat desain-desain eksotik seperti nanokernel dan exokernel. • Masing-masing desain menggunakan cara berbeda dalam mencapai fungsi kernel.



Kernel Monolitik • Pada desain ini, semua layanan berjalan pada thread utama kernel pada ruang memori yang sama. • Pendekatan ini menyediakan akses ke hardware yang sangat baik. • Biasanya digunakan oleh sistem operasi UNIX-like seperti Linux.



Kernel Monolitik •  • 



• 



Keunggulan rancangan ini: - Layanan dapat dilakukan sangat cepat karena terdapat dalam satu ruang alamat. Kelemahan rancangan ini: - Debugging sulit dilakukan. - Sulit menyediakan fasilitas pengamanan. - Menyebabkan pemborosan bila komputer harus menjalankan kernel yang besar padahal tidak menggunakan seluruh layanan yang tersedia. - Tidak fleksibel. - Kesalahan dalam satu bagian kernel dapat melumpuhkan keseluruhan sistem. Evolusi: menggunakan rancangan berlapis yang walaupun secara struktural adalah monolitik. Untuk meningkatkan fleksibilitas, digunakan konsep kernel loadable modules.



Microkernel •  Microkernel merupakan pendekatan dimana fungsionalitas kernel dikeluarkan dari ‘kernel’ tradisional ke suatu set server yang berkomunikasi melalui suatu ‘kernel’ minimal sehingga terdapat sesedikit mungkin layanan pada ruang kernel dan sebanyak mungkin layanan pada ruang user. •  Pendekatan ini mendefinisikan abstraksi sederhana di atas hardware dengan implementasi layanan kernel primitif seperti manajemen memori, multitasking dan komunikasi antarproses. •  Dikenal juga dengan istilah client-server.



Microkernel •  Kelebihan pendekatan ini: - Pengembangan dapat dilakukan secara modular. - Bug pada subsistem tidak akan melumpuhkan keseluruhan sistem. - Mudah diadaptasi untuk sistem tersebar. •  Kelemahan pendekatan ini: -  Kinerja relatif lebih lambat karena melibatkan pertukaran proses. -  Memerlukan ruang memori yang lebih besar. -  Manajemen proses dapat menjadi sangat rumit. •  Contoh sistem operasi yang menggunakan pendekatan ini: AIX, BeOS, Hurd, Mach, MINIX, QNX, dan sebagainya.



Hybrid Kernel • Pendekatan ini menggabungkan pendekatan monolitik dan microkernel. • Pendekatan ini mirip dengan microkernel dengan memasukkan layanan tambahan ke ruang kernel untuk meningkatkan kinerja. • Contoh sistem operasi yang menggunakan pendekatan ini: Windows NT, macOS.



Hybrid Kernel •  Keunggulan pendekatan ini: •  Waktu pengembangan driver lebih cepat karena pengujian lebih mudah dilakukan. •  Tidak perlu mengkompilasi ulang seluruh kernel jika melakukan perubahan. •  Integrasi dengan teknologi pihak ketiga dapat lebih cepat dan mudah dilakukan. •  Kelemahan pendekatan ini: •  Memerlukan antarmuka yang banyak •  Pemeliharaan modul dapat membingungkan.



Perbandingan Kernel Monolitik, Microkernel dan Hybrid Kernel



Nanokernel • Nanokernel atau picokernel merupakan rancangan yang mendelegasikan hampir semua layanan bahkan termasuk yang dasar seperti interrupt controller ke driver untuk membuat kebutuhan memori lebih kecil daripada microkernel.



Exokernel •  Rancangan ini dikembangkan oleh MIT Parallel and Distributed Operating System. •  Merupakan pendekatan ekperimental dalam rancangan sistem operasi. •  Rancangan ini hanya menyediakan perlindungan dan multiplexing kepada hardware tanpa menyediakan abstraksi untuk hardware tersebut. Pendekatan ini membuat pengembang aplikasi yang menentukan cara paling efisien menggunakan hardware untuk program yang dibuatnya. •  Ukuran exokernel sangat kecil, namun rancangan ini menyertakan pustaka sistem operasi yang menyediakan fungsionalitas seperti sistem operasi biasa. •  Keuntungan rancangan ini adalah dapat mengakomodasi pustaka sistem operasi yang berbeda-beda secara bersamaan.



Exokernel



Proses •  Sistem operasi menyediakan antarmuka antara program aplikasi dengan hardware sehingga aplikasi hanya dapat berinteraksi dengan hardware dengan menuruti aturan dan prosedur yang ditetapkan sistem operasi. •  Eksekusi program merupakan kegiatan penciptaan proses oleh kernel dengan memberikan ruang alamat dan sumber daya lainnya yang diperlukan, memberikan prioritas, memindahkan kode biner program ke memori dan memulai eksekusi program yang kemudian berinteraksi dengan pengguna dan hardware komputer.



Proses •  Sistem operasi modern memiliki kemampuan untuk menjalankan lebih dari satu proses pada saat bersamaan dalam komputer. Karena kebanyakan komputer (prosesor) hanya mampu menjalankan sejumlah tertentu (yang terbatas) pekerjaan pada saat bersamaan, maka hal ini biasanya dicapai dengan menggunakan time-sharing. •  Kernel memiliki program penjadualan yang menentukan kapan serta berapa lama waktu eksekusi yang tersedia untuk masing-masing program. Kernel juga menentukan giliran eksekusi proses berdasarkan prioritas proses tersebut. Saat giliran eksekusi suatu proses tiba, kernel memberikan kendali akan prosesor dan memori kepadanya. Saat gilirannya berakhir, kendali dikembalikan kepada kernel yang pada gilirannya akan memberikan kendali tersebut kepada proses lain dalam antrian.



Interrupt •  Interrupt merupakan cara sistem operasi untuk beriteraksi dan bereaksi dengan lingkungannya. •  Interrupt didukung oleh kebanyakan prosesor modern. •  Interrupt ditangani oleh kernel. Saat interrupt diterima, hardware secara otomatis menunda proses yang sedang aktif dan menyimpan statusnya. Kernel memutuskan bagaimana penanganan interrupt tersebut, biasanya dengan beralih ke kode yang diasosiasikan dengan interrupt tersebut. •  Interrupt dapat berasal dari hardware atau maupun proses yang sedang dieksekusi.



Modus Kerja •  Prosesor modern mendukung beberapa modus kerja yang berlainan. •  Setidaknya dua modus kerja digunakan dalam operasi yaitu modus supervisor dan modus protected. •  Modus supervisor digunakan oleh kernel untuk tugas-tugas yang memerlukan akses yang tidak dibatasi ke hardware, sedangkan semua proses yang lain menggunakan modus protected. Proses dalam modus protected dapat mengakses hardware dengan meminta bantuan kernel. •  Prosesor dapat juga memiliki modus kerja lainnya seperti modus virtual yang mengemulasi tipe prosesor yang lebih lama.



Modus Kerja



Modus Kerja •  Saat komputer dihidupkan, secara otomatis dijalankan pada modus supervisor. Program-program pertama yang dijalankan seperti BIOS atau UEFI, bootloader dan sistem operasi memiliki akses tidak terbatas ke hardware. Kondisi ini diperlukan untuk menginisialisasi modus protected untuk menjalankan program-program aplikasi. •  Pada modus protected, aplikasi hanya memiliki akses ke sebagian dari set instruksi yang ada. •  Jika ada aplikasi yang berusaha melakukan akses ilegal ke sumber daya, maka sistem operasi akan menanganinya.



Manajemen Memori •  Manajemen memori merupakan tanggung jawab kernel untuk memastikan suatu program tidak mengganggu memori yang telah digunakan program lain. Selain itu, kernel juga harus memastikan setiap program memiliki akses independen ke memori. •  Proteksi memori memungkinkan kernel membatasi proses untuk mengakses memori. Metode-metode yang digunakan seperti segmentasi memori, paging, semuanya memerlukan dukungan hardware.



Memori Virtual •  Penggunaan alamat memori virtual memungkinkan sistem operasi menggunakan lokasi memori yang sama untuk banyak program. Jika suatu program mencoba mengakses lokasi yang telah dialokasikan untuknya namun tidak tersedia, maka kernel biasanya menyesuaikan alamat memori virtual program tersebut dan memberinya akses ke lokasi tersebut. •  Pada sistem operasi modern, lokasi memori yang jarang digunakan dapat disimpan sementara pada disk atau media lainnya sehingga ruangan RAM tersedia bagi program lain. Proses ini disebut swapping. •  Memori virtual memungkinkan program memiliki persepsi bahwa terdapat lebih banyak RAM daripada yang tersedia secara fisik.



Memori Virtual



Penyimpanan dan Sistem File •  Komputer menyimpan data pada media penyimpanan dalam bentuk file. •  File terstruktur sedemikian rupa untuk dapat diakses secara lebih cepat, lebih reliabel dan lebih efisien dalam menggunakan ruang media penyimpanan. Struktur tersebut dikenal dengan istilah sistem file. •  Sistem operasi biasanya merekomendasikan sistem file yang dirancang secara khusus untuknya.



Device Driver •  Merupakan software khusus yang dikembangkan untuk memungkinkan interaksi dengan hardware. •  Tujuan penggunaan driver adalah abstraksi karena setiap model hardware adalah berbeda. •  Sistem operasi tidak dapat mengetahui bagaimana cara mengontrol setiap hardware. Yang dapat dilakukan hanyalah memaksakan bagaimana setiap tipe hardware dikontrol. Adalah tugas driver untuk menerjemahkan fungsi sistem operasi ke fungsi spesifik hardware. •  Untuk menjalankan fungsinya, maka driver umumnya berjalan pada modus supervisor.



Jaringan •  Sistem operasi modern memiliki dukungan kepada sekumpulan protokol dan hardware jaringan yang berbeda. •  Dengan menggunakan jaringan, sistem dapat mengakses sumber daya pada komputer secara remote. •  Sifat jaringan adalah platform agnostic, dimana sumber daya dapat diakses dengan cara yang seragam dengan tidak mempedulikan hardware dan sistem operasi yang menjalankannya.



Keamanan • Sistem operasi harus mampu melindungi sumber daya komputer yang berada di bawah kendalinya. • Sistem operasi modern mampu mengidentifikasi pengguna, mengotentifikasinya dan mengotorisasinya untuk menggunakan sumber daya komputasi pada sistem sesuai dengan credential yang dimiliki oleh pengguna tersebut.



Antarmuka Pengguna •  Antarmuka pengguna memungkinkan pengguna untuk berinteraksi dengan komputer. Antarmuka ini disediakan oleh komponen yang disebut shell. •  Pengguna biasanya berinteraksi dengan shell dengan menggunakan perangkat input/output seperti keyboard, mouse dan monitor/terminal/ console. •  Bentuk paling umum antarmuka yang digunakan pada komputer adalah command-line interface (CLI) dan graphical user interface (GUI).



Antarmuka Pengguna •  Pada CLI, pengguna berinteraksi dengan komputer dengan cara mengetikkan serangkaian instruksi pada console dengan menggunakan keyboard.



Antarmuka Pengguna •  Pada GUI, pengguna berinteraksi dengan komputer dengan menggunakan icon yang merupakan representasi dari fungsi yang tersedia pada komputer.