halo aku coba tes ya

Wednesday, January 16, 2013

Struktur Sistem Operasi

1. Struktur Sederhana

Pada awalnya, sistem operasi dimulai sebagai sistem yang kecil, sederhana, dan terbatas. Lama kelamaan, sistem operasi semakin berkembang menjadi suatu sistem yang lebih besar dari awalnya. Dalam perkembangannya, ada sistem yang terstruktur dengan kurang baik, dan ada juga yang baik. Contoh sistem yang terstruktur kurang baik adalah MS-DOS. Sistem operasi ini dirancang sedemikian rupa agar mampu berjalan pada hardware yang terbatas. Memang memiliki struktur, tapi belum terbagi-bagi dalam modul-modul, dan interface serta fungsionalitas tidak begitu jelas batasannya.

Begitu pula dengan UNIX, yang pada awalnya juga terbatas oleh hardware yang ada. Sistem ini dapat dibagi menjadi dua bagian, yaitu kernel dan program sistem. Kernel sendiri dapat dibagi menjadi dua bagian, yaitu device driver dan interface, yang kemudian terus berkembang seiring dengan perkembangan UNIX. Berikut ini adalah skema struktur UNIX.

 Gambar 7.1. Struktur UNIX

Versi-versi UNIX selanjutnya dirancang agar mampu bekerja dengan hardware yang lebih baik. Begitu pula dengan strukturnya, yang dibuat makin modular.

2. Struktur Berlapis

Rasanya susah membayangkan sekian banyak fungsi yang disediakan oleh sistem operasi diimplementasikan dalam satu program saja. Karena itu, lebih mudah untuk membaginya dalam sejumlah layer/lapisan. Tentu setiap lapisan memiliki fungsinya sendiri-sendiri, dan juga bisa menambah fungsi-fungsi lain, berdasarkan fungsi-fungsi yang tersedia pada lapisan-lapisan lain yang dibawahnya.

Lapisan-lapisan sistem operasi adalah suatu abstraksi dari enkapsulasi sekumpulan struktur data dalam sistem operasi. Lapisan-lapisan yang berada di atas bisa mengakses operasi-operasi yang tersedia di lapisan-lapisan bawahnya. Stallings memberi model yang lebih detail, sebagai berikut:
•    Lapisan 1. Berisi berbagai sirkuit elektronik, misal register, memory cells, dan logic gate.
•    Lapisan 2. Berisi instruksi prosesor, misal instruksi aritmatika, instruksi transfer data, dsb.
•    Lapisan 3. Penambahan konsep seperti prosedur/subrutin, maupun fungsi yang me-return nilai tertentu.
•    Lapisan 4. Penambahan interrupt.
•    Lapisan 5. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
•    Lapisan 6. Berhubungan dengan secondary storage device, yaitu membaca/menulis head, track, dan sektor.
•    Lapisan 7. Menciptakan alamat logika untuk proses. Mengatur hubungan antara main memory, virtual memory, dan secondary memory.
•    Lapisan 8. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
•    Lapisan 9. Berhubungan dengan secondary storage device, yaitu membaca/menulis head,track, dan sektor.
•    Lapisan 10. Menciptakan alamat logika untuk proses. Mengatur hubungan antara main memory, virtual memory, dan secondary memory.
•    Lapisan 11. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
•    Lapisan 12. File adalah objek yang memiliki nama dan ukuran. Abstraksi dari lapisan 9.
•    Lapisan 13. Menyediakan interface agar bisa berinteraksi dengan pengguna.

Lapisan-lapisan dari 1-4 bukanlah bagian dari sistem operasi dan masih menjadi bagian dari prosesor secara ekslusif.
Lapisan ke-5 hingga ke-7, sistem operasi sudah berhubungan dengan prosesor. Selanjutnya dari lapisan ke-8 hingga 13, sistem operasi berhubungan dengan media penyimpanan maupun perlatan-peralatan lain yang ditancapkan, misalnya peralatan jaringan.

3. Mikro Kernel

Pada pembahasan "Struktur Sederhana", sempat disinggung istilah "kernel". Apakah kernel itu? Kernel adalah komponen sentral dari sistem operasi. Ia mengatur hal-hal seperti interrupt handler(untuk menyediakan layanan interupsi), process scheduler(membagi-bagi proses dalam prosesor), memory management, I/O, dan sebagainya. Atau dengan kata lain, ia adalah jembatan antara hardware dengan software.

Cara tradisional untuk membangun sistem operasi adalah dengan membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan ini menjadikan kernel suatu program yang besar dan kompleks. Cara yang lebih modern, adalah dengan menggunakan kernel mikro. Pada awalnya, konsep mikro kernel dikembangkan pada sistem operasi Mach. Ide dasar dari pengembangan kernel mikro adalah bahwa hanya fitur-fitur yang perlu saja yang diimplementasikan dalam kernel (mengenai fitur-fitur apa saja yang perlu diimplementasikan, ini bisa berbeda tergantung desain sistem operasi).

Walaupun garis pembatas mengenai apa saja yang berada di dalam dan luar kernel mikro bisa berbeda antara desain yang satu dengan yang lain, namun ada karakteristik yang umum, yaitu servis-servis yang umumnya menjadi bagian sistem operasi menjadi subsistem eksternal yang bisa berinteraksi satu sama lain dan dengan kernel tentunya. Ini mencakup device driver, file system, virtual memory manager, windowing system, dan security devices. Pendekatan kernel mikro menggantikan pendekatan berlapis yang vertikal tradisional.

Komponen-komponen sistem operasi yang berada di luar kernel mikro diimplementasikan sebagai server process dan berkomunikasi dengan message passing via kernel mikro. Misalnya jika user ingin membuat berkas baru, dia mengirim pesan ke file system server, atau jika ingin membuat proses baru, dia mengirimkan pesan ke process server.

Gambar 7.2. Struktur kernel mikro

Beberapa kelebihan kernel mikro:
a.    Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
b.    Extensibility . Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang.
c.    Flexibility . Fitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
d.    Portability . Pada kernel mikro, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
e.    Reliability . Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliability-nya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan kernel mikro bisa lebih lagi. Kernel mikro dapat dites secara ekstensif .Karena dia menggunakan API yang sedikit, maka bisa meningkatkan kualitas code di luar kernel.
f.    Support for object-oriendted OS . Model kernel mikro sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan kernel mikro adalah MacOS X dan QNX.

       3.1 Proses Boot

Booting adalah istilah untuk menghidupkan komputer. Secara umum, gambaran yang terjadi pada proses boot adalah sebagai berikut.
•    Saat komputer dihidupkan, memorinya masih kosong. Belum ada instruksi yang dapat dieksekusi oleh prosesor. Karena itu, prosesor dirancang untuk selalu mencari alamat tertentu di BIOS ROM. Pada alamat tersebut, terdapat sebuah instruksi jump yang menuju ke alamat eksekusi awal BIOS. Setelah itu, prosesor menjalankan power-on-self test(POST), yaitu memeriksa kondisi hardware yang ada.
•    Sesudah itu, BIOS mencari video card. Secara khusus, dia mencari program BIOS milik video card. Kemudian system BIOS menjalankan video card BIOS. Barulah setelah itu, video card diinisalisasi.
•    Kemudian BIOS memeriksa ROM pada hardware yang lain, apakah memiliki BIOS tersendiri apakah tidak. Jika ya, maka akan dieksekusi juga.
•    BIOS melakukan pemeriksaan lagi, misal memeriksa besar memori dan jenis memori. Lebih lanjut lagi, dia memeriksa hardware yang lain, seperti disk. Lalu dia mencari disk dimana proses boot bisa dilakukan, yaitu mencari boot sector. Boot sector ini bisa berada di hard disk, atau floppy disk.

        3.2. Kompilasi Kernel

Pada dasarnya Linux hanyalah sebuah kernel. Sedangkan program-program lain seperti teks editor, browser, kompilator, dan seterusnya melengkapi kernel menjadi suatu paket sistem operasi. Tentunya agar kernel dapat bekerja dengan optimal, perlu dilakukan konfigurasi sesuai dengan hardware yang ada. Biasanya, kompilasi kernel dilakukan saat hendak menambahkan device baru yang belum dikenali sebelumnya atau jika hendak mengaktifkan fitur tertentu pada sistem operasi. Pada proses kompilasi kernel, sangat mungkin terjadi kesalahan. Karena itu, jangan lupa membackup kernel yang lama, dan menyiapkan emergency boot disk. Pada penjelasan berikut, diasumsikan kernel yang digunakan adalah versi 2.6.20 dan komputer menggunakan prosesor Intel.

Beberapa tahapan dalam kompilasi kernel:
a.    Mendownload kernel. Ada banyak situs di internet tempat mendownload kernel. Tapi ada baiknya jika anda mengunjungi situs resminya, yaitu "kernel.org". Anda bisa melihat beraneka versi kernel dan patchnya disana.Format penamaan kernel Linux adalah linux-X.YY.ZZ.tar.gz atau linux-X.YY.ZZ.tar.bz2, dimana: X = major number; Y = minor number; ZZ = revision number. Contoh: linux-2.6.20. Angka 2 adalah major number (angka 2 ini jarang berubah dan baru berubah jika sudah terjadi perubahan besar) Angka 6 adalah minor number (karena 6 adalah bilangan genap, berarti kernel ini versi stabil) Angka 20 menunjukkan nomor revisi.
b.    Mengekstrak kernel. Source code kernel Anda yang lama bisa dilihat di direktori /usr/src/linux. Supaya source code kernel sebelumnya tidak hilang, ekstraklah kernel yang baru di direktori yang berbeda, misal /usr/src/linux-2.6.20 (tentunya sesuaikan angka-angka tersebut dengan versi kernel yang anda pakai).
c.    Buat symbolic link. 
ln -s linux-2.6.20 linux
d.    Konfigurasi kernel. Sebelum proses kompilasi, anda memiliki 2 pilihan, yaitu membuat konfigurasi baru, atau menggunakan konfigurasi kernel sebelumnya. Jika anda ingin membuat konfigurasi baru, maka jalankan perintah: make xconfig (atau make menuconfig). Pada tahap ini, anda mengkonfigurasi kernel sesuai dengan hardware yang ada di komputer anda. Isinya antara lain mengatur jenis prosesor, memory, networking, USB, dsb. Dengan ini, kernel bisa bekerja optimal pada hardware yang ada Setelah berkas configurasi (.config) terbentuk, anda bisa memulai proses kompilasi. Sedangkan jika anda ingin menggunakan konfigurasi kernel yang lama, anda bisa mengcopy berkas .config dari direktori kernel yang lama ke direktori kernel yang baru, lalu menjalankan perintah: make oldconfig
e.    Kompilasi. Jalankan perintah "make bzImage". Proses kompilasi kernel bisa memakan waktu cukup lama, dan sangat mungkin terjadi kesalahan disitu. Jika ada kesalahan, coba lakukan lagi konfigurasi kernel. Setelah itu, coba lakukan kompilasi lagi. Jika sukses, terbentuk berkas bzImage di/usr/src/linux-2.6.20/arch/i386/boot. Copy ke direktori /boot dengan perintah:
f.              cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.20
         
Selanjutnya, kompilasi modul. Jalankan perintah :
make modules
diikuti oleh
make modules_install
Terbentuk berkas System.map. Copylah ke /boot dengan perintah:
          cp System.map /boot/System.map-2.6.20
         
Supaya kernel yang baru bisa digunakan, ubahlah konfigurasi bootloader anda supaya ia mengetahui dimana kernel yang baru berada. Misal jika anda menggunakan Lilo, modifikasi berkas lilo.conf (ada di /etc), atau jika anda menggunakan grub, modifikasi berkas menu.lst (ada di /boot/grub). Khusus jika anda menggunakan lilo, jalankan perintah lilo. Setelah itu, reboot komputer anda.

4. Rangkuman

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.

Sistem berprosesor jamak mempunyai lebih dari satu CPU yang mempunyai hubungan yang erat; CPU-CPU tersebut berbagi bus komputer, dan kadang-kadang berbagi memori dan perangkat yang lainnya. Sistem seperti itu dapat meningkatkan throughput dan reliabilititas.

Sistem hard real-time sering kali digunakan sebagai alat pengontrol untuk applikasi yang dedicated/spesifik tugas tertentu. Sistem operasi yang hard real-time mempunyai batasan waktu yang tetap yang sudah didefinisikan dengan baik.Pemrosesan harus selesai dalam batasan-batasan yang sudah didefinisikan, atau sistem akan gagal.

Sistem soft real-time mempunyai lebih sedikit batasan waktu yang keras, dan tidak mendukung penjadwalan dengan menggunakan batas akhir. Sistem ini menggunakan prioritas untuk memilih tugas-tugas mana yang harus terlebih dahulu dikerjakan

Sistem terdistribusi adalah sistem yang menjalankan bagian-bagian program di beberapa komputer yang berbeda. Komputer-komputer itu terhubung dalam suatu jaringan. Sistem terdistribusi adalah salah satu bentuk dari paralelisme

Sistem terkluster adalah sistem yang terdiri dari banyak komputer yang disusun sedemikian rupa untuk menyatukan sumber daya yang ada dan seolah-olah dapat dipandang sebagai satu komputer saja. Model seperti ini sering digunakan untuk membangun super komputer.

Pengaruh dari internet dan WWW telah mendorong pengembangan sistem operasi modern yang menyertakan web browser serta perangkat lunak jaringan dan komunikasi sebagai satu kesatuan. Multiprogramming dan sistem time-sharing meningkatkan kemampuan komputer dengan melampaui batas operasi (overlap) CPU dan M/K dalam satu mesin. Hal seperti itu memerlukan perpindahan data antara CPU dan alat M/K, ditangani baik dengan polling atau interrupt-driven akses ke M/K port Agar komputer dapat menjalankan suatu program, maka program tersebut harus berada di memori utama.

Sumber : http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/

0 comments:

Post a Comment