Anda di halaman 1dari 5

STRUKTUR SISTEM OPERASI

Prasojo Fitroh Romadhon Program Studi Sistem Komputer Fakultas Ilmu Komputer Universitas Sriwijaya Email : sjoefr@gmail.com

Abstrak Pada awalnya semua operasi pada sebuah sistem komputer ditangani oleh hanya seorang pengguna. Sehingga semua pengaturan terhadap perangkat keras maupun perangkat lunak dilakukan oleh pengguna tersebut. Namun seiring dengan berkembangnya Sistem Operasi pada sebuah sistem komputer, pengaturan ini pun diserahkan kepada Sistem Operasi tersebut. Segala macam manajemen sumber daya diatur oleh Sistem Operasi. Pengaturan perangkat keras dan perangkat lunak ini berkaitan erat dengan proteksi dari perangkat keras maupun perangkat lunak itu sendiri. Sehingga, apabila dahulu segala macam proteksi terhadap perangkat keras dan perangkat lunak agar sistem dapat berjalan stabil dilakukan langsung oleh pengguna maka sekarang Sistem Operasi-lah yang banyak bertanggung jawab terhadap hal tersebut. Kata kunci : operating system, kernel, system calls, shell, virtual machine, interface, hardware, user Pendahuluan Sistem operasi(operating system) dapat dikatakan adalah perangkat lunak yang sangat kompleks. Hal-hal yang ditangani oleh sistem operasi bukan hanya satu atau dua saja, melainkan banyak hal. Dari menangani perangkat keras, perangkat lunak atau program yang berjalan, sampai menangani pengguna. Pada dasarnya komputer digunakan untuk melakukan suatu proses yang dikehendaki oleh user. Untuk melakukan hal tersebut harus ada suatu bentuk komunikasi antara user dan hardware pada komputer. Disinilah peran sistem operasi sebagai penghubung komunikasi antara user dan hardware itu terjadi. Sistem operasi melalui shell-nya akan menerima perintah dari user yang kemudian akan dikomunikasikan melalui system calls[2,3]. Pembahasan Secara umum shell merupakan layer yang berfungsi sebagai interface antara user dan inti dalam sistem operasi (kernel). Melalui shell, user dapat memberi perintah-perintah yang akan dikirim ke sistem operasi, sehingga shell ini merupakan layer yang menerima interaksi dari user secara langsung. Shell dalam sistem operasi secara umum dibagi menjadi 2, Command Line Interface(CLI) dan Graphical User Interface(GUI). Jadi dengan kata lain, system calls berperan sebagai interface dalam layanan-layanan yang disediakan oleh sistem operasi. System calls berfungsi membawa perintah-perintah yang di berikan oleh user pada saat menggunakan program aplikasi dan sistem program menuju ke kernel yang berada pada sistem operasi untuk di terjemahkan kedalam bahasa mesin[2,3].

Di dalam struktrur sistem operasi di bahas pula mengenai mesin virtual (virtual machine). Sebelum mendalami mengenai mesin virtual terlebih dahulu kita harus memahami mengenai arti dari virtualisasi. Vitrualisasi merupakan istilah umum yang mengacu kepada penggunaan dari sumber daya komputer. Virtual Machine(VM) adalah sebuah mesin yang mempunyai dasar logika yang menggunakan pendekatan lapisan-lapisan (layers)dari sistem komputer. Sebuah mesin virtual dapat menjalankan banyak sistem operasi diatas sistem operasi lain dan digunakan untuk menjalankan aplikasi untuk sistem operasi lainnya. Adapun cara kerja dari mesin virtual itu sendiri adalah dengan cara membuat sebuah sistem virtual yang nantinya dapat di gunakan untuk memasukkan dan menjalankan sistem operasi lain yang tidak berhubungan dengan sistem operasi utamanya. Di dalam mesin virtual dikenal pula sistem operasi tuan rumah(host) yang merupakan tempat dimana mesin virtual dibuat, serta dikenal juga sistem operasi tamu(guest) yang dimuat dalam virtual mesin tadi. Berdasarkan jenisnya mesin virtual dibagi menjadi dua bagian, mesin virtual sistem dan mesin virtual program. Sedangkan berdasarkan tingkat virtualisasinya, mesin virtual di bagi menjadi tiga bagian, yaitu virtualisasi paruh, virtualisasi penuh dan virtualisasi asli. Adapun beberapa contoh dari mesin virtual adalah VMware, Virtual PC dan JAVA VM[5]. Terdapat hubungan antara sistem operasi tamu dan sistem operasi tuan rumah yitu sistem operasi tamu memberikan layanan dengan cara meletakkannya ke fungsi yang disediakan oleh sistem operasi host. Masalah utama yang perlu di tertimbangkan dalam memilih sistem operasi host adalah apakah sistem operasi itu cukup umum dalam hal antarmuka system call agar dapat mendukung fungsi yang berkaitan dengan sistem operasi tamu[5]. Keuntungan utama menggunakan arsitektur mesin virtual untuk desainer sistem operasi adalah sistem dapat dengan mudah di rubah dan masalah keamanan yang mudak untuk dipecahkan. Keuntungan utamanya untuk pengguna adalan tersedianya platform yang baik untuk sistem operasi sejak banyaknya sistem operasi yang dapat di jalankan dalam satu sistem fisik[5]. Sebuah sistem operasi dapat menyediakan layanan dan fungsi utama yang dapat di bagi menjadi dua kategori. Yang pertama adalah menegakkan perlindungan antara proses yang berbeda namun berjalan secara bersamaan di dalam sistem. Dan yang kedua adalah untuk menyediakan fungsionalitas baru yang tidak didukung langsung oleh perangkat keras. Contoh dari fungsi kedua ini adalah memori virtual dan file sistem. Pada fungsi pertama proses yang diijinkan untuk mengakses hanya lokasi memory yang berkaitan dengan ruang alamat mereka. Juga, proses tidak diperbolehkan untuk file korup terkait dengan pengguna lain. Sebuah proses juga tidak diizinkan untuk mengakses perangkat secara langsung tanpa intervensi sistem operasi[3,4]. Sebuah sistem operasi menyediakan lima kategori layanan yang diperuntukkan untuk pengguna agar lebih mudah dalam menggunakan sistem komputer. Eksekusi program, input/output, manipulasi file sistem, komunikasi dan deteksi kesalahan adalah lima kategori yang di sediakan sistem operasi. Terdapat beberapa kasus dimana User-level program tidak dapat menyediakan layanan-layanan di atas. User-level program tidak dipercaya untuk mengalokasikan CPU sehingga tidak dapat menyediakan layanan eksekusi program. Pada input/output pengguna hanya perlu menentukan perangkat dan operasi untuk melakukan di atasnya, sedangkan sistem mengubah permintaan itu ke dalam perangkat atau kendali khusus perintah. User-level program tidak dapat dipercaya untuk hanya mengakses perangkat mereka harus memiliki akses ke dan untuk mengaksesnya hanya ketika mereka jika tidak terpakai. Ada banyak rincian dalam pembuatan berkas, penghapusan, alokasi, dan penamaan bahwa pengguna tidak perlu melakukan. Perlindungan juga harus diperiksa untuk menjamin akses file yang tepat. Program-program tidak bisa memastikan kepatuhan terhadap metode perlindungan atau hanya dipercaya untuk mengalokasikan gratis blok dan deallocate blok 2

pada penghapusan file. Untuk komunikasi, sebuah pesan yang lewat antara sistem membutuhkan pesan diubah menjadi paket informasi, dikirim ke jaringan controller, ditransmisikan di media komunikasi, dan disusun kembali oleh sistem tujuan. Paket pemesanan dan data koreksi harus terjadi. Sekali lagi, programprogram pengguna mungkin tidak mengkoordinasikan akses ke perangkat jaringan, atau mereka mungkin menerima paket yang ditujukan untuk proses lainnya. Deteksi kesalahan terjadi di kedua perangkat keras dan perangkat lunak tingkat. Di tingkat perangkat keras, semua transfer data harus diperiksa untuk memastikan bahwa data tidak rusak dalam perjalanan. Semua data pada media harus diperiksa untuk memastikan mereka tidak berubah karena mereka ditulis ke media. Di tingkat perangkat lunak, media harus diperiksa untuk konsistensi data, misalnya, apakah nomor blok dialokasikan dan tidak terisi penyimpanan sesuai total nomor pada perangkat. Di sana, kesalahan yang sering proses-independen (misalnya, korupsi data pada disk), sehingga harus ada program global (sistem operasi) yang menangani semua jenis kesalahan[1,2]. Terdapat tiga metode umum untuk melewati parameter sistem operasi, yaitu : pass parameter dalam register, register lewat alamat awal blok parameter dan parameter dapat ditempatkan, atau ditekan, ke stack oleh program, dan muncul dari tumpukan oleh sistem operasi[1,2]. Dengan interupsi timer periodik dan memonitor apa yang instruksi atau apa bagian kode yang sedang dijalankan ketika interupsi dikirim kita bisa mendapatkan profil statistik dari jumlah waktu yang dikeluarkan oleh sebuah program dalam melaksanakan berbagai bagian dari kode. Profil statistik potongan kode yang aktif harus konsisten dengan waktu yang dihabiskan oleh program di bagian yang berbeda dari kode. Setelah seperti profil statistik telah diperoleh, programmer bisa mengoptimalkan bagian-bagian dari kode yang mengkonsumsi lebih banyak sumber daya CPU[3,4]. Sistem operasi memiliki lima kegiatan utama dalam urusan manajemen file yaitu, penciptaan dan penghapusan file, penciptaan dan penghapusan direktori , dukungan dari primitif untuk memanipulasi file dan direktori, pemetaan file ke penyimpanan sekunder, dan cadangan file pada media penyimpanan stabil (nonvolatile)[1]. Telah di bahas sebelumnya mengenai system calls sebagai penghubung komunikasi antara pengguna dan perangkat keras. Selanjutnya akan di bahas pula mengenai keuntungan dan kerugian menggunakan antarmuka system calls yang sama. Setiap perangkat dapat diakses seolah-olah hal ini adalah file dalam sistem file. Sejak sebagian besar kernel bekerja dengan perangkat melalui antarmuka ini, sehingga relatif mudah untuk menambahkan driver perangkat baru dengan menerapkan kode perangkat keras khusus untuk mendukung file abstak antarmuka ini. Oleh karena itu, manfaat pengembangan kedua kode program (file dan perangkat) ini, yang mana dapat digunakan untuk mengakses perangkat dan file dengan cara yang sama, serta kode driver perangkat yang mana juga dapat diterapkan untuk mendukung API yang terdefinisi dengan baik. Adapun kerugian dari menggunakan antarmuka yang sama dalah bahwa mungkinkan kesulitan untuk menangkap fungsi dari peralatan tertentu dalam konteks file API, sehingga mengakibatkan hilangnya fungsi atau kerugian kinerja[3]. Tujuan dari command interpreter adalah membaca perintah dari pengguna atau dari file perintah dan mengeksekusi mereka, biasanya dengan mengubahnya menjadi satu atau lebih system calls. Hal ini biasanya bukan bagian dari kernel sejak command interpreter menjadi subjek untuk di rubah. Seorang pengguna harus dapat mengembangkan command interpreter yang baru menggunakan antarmuka system 3

calls yang disediakan oleh sistem operasi. Command interpreter memungkinkan pengguna untuk membuat dan mengelola proses dan juga menentukan dengan cara mana mereka. Karena semua fungsi ini dapat diakses oleh program pada tingkat user menggunakan system calls, seharusnya mungkin bagi pengguna untuk mengembangkan interpreter command-line baru[2,3,4]. Terdapat dua model komunikasi interprocess, yang pertama adalah Shared-memory model, yang mempunyai kekuatan untuk komunikasi memori bersama lebih cepat lewat pesan ketika proses berada di mesin yang sama. Sedangkan kelemahannya adalah proses yang berbeda perlu memastikan bahwa mereka tidak menulis ke lokasi yang sama secara bersamaan dan proses yang berkomunikasi menggunakan memori bersama harus mengatasi masalah perlindungan memori dan sinkronisasi. Yang kedua adalah Messagepassing model, kekuatannya adalah lebih mudah diterapkan daripada model memori bersama sedangkan kelemahannya adalah komunikasi menggunakan pesan lewat lebih lambat dari memori bersama karena waktu terlibat dalam penyetelan koneksi[3]. Pemisahan mekanisme dan kebijakan yang diinginkan perlu dilakukan untuk memastikan bahwa sistem mudah untuk dimodifikasi. Tidak ada dua instalasi sistem yang sama, sehingga setiap instalasi mungkin ingin untuk menyempurnakan sistem operasi yang sesuai dengan kebutuhannya. Dengan mekanisme dan kebijakan yang terpisah, kebijakan tersebut dapat diubah sesuai keinginan sementara mekanisme tetap tidak berubah. Susunan ini memberikan sistem yang lebih fleksibel [2]. Program java ditunjukan untuk menjadi platform input/output yang bebas. Oleh karena itu, bahasa java tidak menyediakan akses ke kebanyakan sistem sumber daya yang spesifik seperti membaca dari perangkat atau port input/output. Untuk melakukan operasi sistem input/output tertentu, kita harus menulis dalam bahasa yang mendukung fitur tersebut (seperti C atau C++). Perlu di ingat bahwa sebuah program Java yang memanggil metode natif ditulis dalam bahasa lain tidak akan lagi arsitektur netral[6]. Java merupakan bahasa yang ditafsirkan. Ini berati JVM menafsikran intruksi kode byte satu per satu. Biasanya, sebagaian besar ditafsirkan lebih lambat dari pada menjalankan biner asli, untuk penafsiran proses membutuhkan konversi tiap intruksi ke kode mesin. Sebuah kompiler JIT mengkompilasi kode byte untuk metode ke dalam kode mesin pertama. Ini artinya, program Java pada dasarnya berjalan sebagai aplikasi asli(dasar). Selanjutnya, kode JIT dikompilasi sehingga dapat digunakan kembali pada saat metode ini dihadapi. Sebuah program Java yang di jalankan JIT lebih baik dari pada tipikal interpreter tradisional yang berjalan lebih cepat[6]. Terkadang sulit untuk mencapai pendekatan berlapis jika dua komponen dari sistem operasi bergantung pada satu sama lain. Mengidentifikasi skenario di mana tidak jelas bagaimana lapisan dua komponen sistem yang membutuhkan fungsi kopling ketat mereka. Subsistem memori virtual dan subsistem penyimpanan biasanya terhubung erat dan membutuhkan desain yang cermat dalam berlapis karena interaksi berikut sistem. Banyak sistem memungkinkan file dipetakan ke dalam ruang memori virtual dari proses mengeksekusi. Pada sisi lain, subsistem virtual memory biasanya menggunakan penyimpanan sistem untuk menyediakan media penyimpanan dukungan untuk halaman yang tidak saat ini berada dalam memori. Juga, pembaruan ke sistem file kadang-kadang buffer di memori fisik sebelum diproses ke disk, sehingga membutuhkan koordinasi penggunaan memori antara memori virtual subsistem dan sistem berkas. [2] Keuntungan utama dari pendekatan mikrokernel untuk model sistem adalah biasanya meliputi penambahkan layanan baru tidak memerlukan memodifikasi kernel, lebih aman sebagai operasi lebih 4

banyak dilakukan di user mode dari dalam modus kernel, dan kernel desain sederhana dan fungsi biasanya hasil yang lebih dapat diandalkan sistem operasi[2,4]. Pendekatan kernel modular memerlukan subsistem untuk berinteraksi dengan hati-hati melalui antarmuka yang biasanya di bangun terbatas. Pendekatan kernel berlapis mirip dalam hal itu. Namun kernel berlapis membebankan pemesanan subsistem yang ketat sehingga subsistem yang di lapisan bawah tidak diizinkan untuk menjalankan operasi sesuai dengan lapisan atas subsistem. Tidak ada pembatasan seperti dalam pendekatan modular kernel, modul dimana bebas untuk memanggi satu sama lain tanpa batasan[3]. Sistem operasi synthesis yang berpengalaman memiliki kode mesin incorporated di dalam kernel. Untuk mengoptimalkan kinerja system call, kernel merakit ruang routines di dalam kernel untuk meminimalkan jalan bahwa sistem panggilan harus melalui kernel. Pendekatan ini merupakan kebalikan dari pendekatan berlapis, di mana jalan melalui kernel diperpanjang untuk membuat membangun sistem operasi lebih mudah. Pro dan kontra dari pendekatan sintesis untuk merancang kernel dan perbaikan kemampuan sistem adalah sintesis sangat mengesankan karena kinerja itu mencapai melalui kompilasi on-the-fly. Sayangnya, sulit untuk masalah debug dalam kernel karena fluiditas kode. Juga, seperti kompilasi adalah spesifik sistem, membuat Sintesis sulit untuk port (baru compiler harus ditulis untuk setiap arsitektur)[1,3]. Kesimpulan Sistem operasi memiliki beberapa komponen, seperti manajemen proses, manajemen memori utama, manajemen sistem berkas, manajemen sistem M/K, manajemen penyimpanan sekunder, proteksi dan keamanan, dan antarmuka. Semua komponen tersebut saling berkaitan satu sama lain. Sebuah sistem operasi tidak dapat bekerja apabila salah satu saja dari komponen-komponen tersebut hilang. Dalam urusan manajemen file sistem operasi memiliki lima kegiatan utama yaitu, penciptaan dan penghapusan file, penciptaan dan penghapusan direktori , dukungan dari primitif untuk memanipulasi file dan direktori, pemetaan file ke penyimpanan sekunder, dan cadangan file pada media penyimpanan stabil. Ada beberapa cara untuk menghubungkan komponen-komponen yang ada didalam suatu sistem operasi. Pertama, dengan menggunakan struktur sederhana. Kedua, dengan pendekatan terlapis atau level. Lapisan yang lebih rendah menyediakan layanan untuk lapisan yang lebih tinggi. Ketiga, dengan pendekatan kernel mikro, yaitu sistem operasi disusun dalam bentuk kernel yang lebih kecil. Daftar Pustaka [1]Hariyanto, Bambang (2009) Sistem Operasi. Bandung: Informatika Bandung [2]Avi Silberschatz, Peter Galvin, dan Grag Gagne (2005) Operating Systems Concepts. Seventh Edition. John Wiley & Sons. [3]Stallings, William (2012) Operating Systems, Internals and Design Principles. Seven Edition. Pearson: Prentice Hall [4]Tanenbaum, Andrew S (2009) Modern Operating System. Third Edition. Pearson: Prentice Hall [5]Blunden, Bill (2002) Virtual machine design and implementation in C/C++. Plano: Wordware Publishing [6]Lewis, John dan Loftus, William (1998) Java Software Solutions Foundation Of Program Design. First Edition. Addison: Wesley.

Anda mungkin juga menyukai