Kamis, 15 Maret 2012

Struktur Sistem Operasi

   Komponen-komponen Sistem

  1. Manajemen Proses
Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, File-File, dan perangkat-perangkat I/O. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:


  • Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.
  • Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
  • Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar
  • Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.
  • Menyediakan mekanisme untuk penanganan deadlock.  Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock (kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.


  1. Manajemen Memori Utama
Sistem operasi memiliki tugas untuk mengatur bagian memori yang sedang digunakan dan mengalokasikan jumlah dan alamat memori yang diperlukan, baik untuk program yang akan berjalan maupun untuk sistem operasi itu sendiri. Tujuan dari manajemen memori utama adalah agar utilitas CPU meningkat dan untuk meningkatkan efisiensi pemakaian memori.
Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi/data yang akses datanya digunakan oleh CPU dan perangkat I/O. Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile(tidak permanen), yaitu data akan hilang kalau komputer dimatikan.
Sistem komputer modern memiliki sistem hirarki memori, artinya memori yang ada di komputer disusun dengan tingkatan kecepatan dan kapasitas yang berbeda. Memori yang memiliki kecepatan sama dengan kecepatan prosesor memiliki kapasitas yang kecil, berkisar hanya dari ratusan KB hingga 4 MB dengan harga yang sangat mahal. Sedangkan memori utama yang kecepatannya jauh di bawah kecepatan prosesor memiliki kapasitas yang lebih besar, berkisar dari 128 MB hingga 4 GB dengan harga yang jauh lebih murah. Sistem hirarki memori ini memiliki tujuan agar kinerja komputer yang maksimal bisa didapat dengan harga yang terjangkau.

  1. Manajemen Memori Sekunder
Memori sekunder (secondary storage) adalah sarana penyimpanan yang berada satu tingkat di bawah memori utama sebuah komputer dalam hirarki memori. Tidak seperti memori utama komputer, memori sekunder tidak memiliki hubungan langsung dengan prosesor melalui bus, sehingga harus melewati I/O.
Sarana memori sekunder memiliki ciri-ciri umum sebagai berikut:
  • Non volatile(tahan lama). Walaupun komputer dimatikan, data-data yang disimpan di sarana memori sekunder tidak hilang. Data disimpan dalam piringan-piringan magnetik.
  • Tidak berhubungan langsung dengan bus CPU. Dalam struktur organisasi komputer modern, sarana memori sekunder terhubung dengan northbridge. Northbridge yang menghubungkan sarana memori sekunder pada I/O dengan bus CPU.
  • Lambat. Data yang berada di sarana memori sekunder memiliki waktu yang lebih lama untuk diakses (read/write) dibandingkan dengan mengakses di memori utama. Selain disebabkan oleh bandwidth bus yang lebih rendah, hal ini juga dikarenakan adanya mekanisme perputaran head dan piringan magnetik yang memakan waktu.
  • Harganya murah. Perbandingan harga yang dibayar oleh pengguna per byte data jauh lebih murah dibandingkan dengan harga memori utama.


Sarana memori sekunder memiliki fungsi-fungsi sebagai berikut:
  • Menyimpan File secara permanen. Data atau File diletakkan secara fisik pada piringan magnet dari disk, yang tidak hilang walaupun komputer dimatikan ( non volatile)
  • Menyimpan program yang belum dieksekusi prosesor. Jika sebuah program ingin dieksekusi oleh prosesor, program tersebut dibaca dari disk, lalu diletakkan di memori utama komputer untuk selanjutnya dieksekusi oleh prosesor menjadi proses.
  • Memori virtual. Adalah mekanisme sistem operasi untuk menjadikan beberapa ruang kosong dari disk menjadi alamat-alamat memori virtual, sehingga prosesor bisa menggunakan memori virtual ini seolah-olah sebagai memori utama. Akan tetapi, karena letaknya di memori sekunder, akses prosesor ke memori virtual menjadi jauh lebih lambat dan menghambat kinerja komputer.

Sistem operasi memiliki peran penting dalam manajemen memori sekunder. Tujuan penting dari manajemen ini adalah untuk keamanan, efisiensi, dan optimalisasi penggunaan sarana memori sekunder.

  1. Manajemen I/O
Pekerjaan utama yang paling sering dilakukan oleh sistem komputer selain melakukan komputasi adalah Input/Output (I/O). Dalam kenyataannya, waktu yang digunakan untuk komputasi lebih sedikit dibandingkan waktu untuk I/O. Ditambah lagi dengan banyaknya variasi perangkat I/O sehingga membuat manajemen I/O menjadi komponen yang penting bagi sebuah sistem operasi. Sistem operasi juga sering disebut device manager, karena sistem operasi mengatur berbagai macam perangkat (device).
Fungsi-fungsi sistem operasi untuk sistem I/O:
  • Penyanggaan ( buffering). Menampung data sementara dari/ke perangkat I/O
  • Penjadwalan ( scheduling). Melakukan penjadualan pemakaian I/O sistem supaya lebih efisien.
  • Spooling. Meletakkan suatu pekerjaan program pada penyangga, agar setiap perangkat dapat mengaksesnya saat perangkat tersebut siap.
  • Menyediakan driver perangkat yang umum.  Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras I/O yang umum, seperti optical drive, media memori sekunder, dan layar monitor.
  • Menyediakan driver perangkat yang khusus.  Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras I/O tertentu, seperti kartu suara, kartu grafis, dan motherboard

  1. Manajemen File
File adalah representasi program dan data yang berupa kumpulan informasi yang saling berhubungan dan disimpan di perangkat penyimpanan. Sistem File ini sangatlah penting, karena informasi atau data yang disimpan dalam File adalah sesuatu yang sangat berharga bagi pengguna. Sistem operasi harus dapat melakukan operasi-operasi pada File, seperti membuka, membaca, menulis, dan menyimpan File tersebut pada sarana memori sekunder. Oleh karena itu, sistem operasi harus dapat melakukan operasi File dengan baik.

Sistem operasi melakukan manajemen sistem File dalam beberapa hal:
  • Pembuatan File atau direktori. File yang dibuat nantinya akan diletakkan pada direktori-direktori yang diinginkan pada sistem File. Sistem operasi akan menunjukkan tempat dimana lokasi File atau direktori tersebut akan diletakkan. Setelah itu, sistem operasi akan membuat entri yang berisi nama File dan lokasinya pada sistem File.
  • Penghapusan File atau direktori. Sistem operasi akan mencari letak File atau direktori yang hendak dihapus dari sistem File, lalu menghapus seluruh entri File tersebut, agar tempat dari File tersebut dapat digunakan oleh File lainnya.
  • Pembacaan dan menulis FileProses pembacaan dan penulisan File melibatkan pointer yang menunjukkan posisi dimana sebuah informasi akan dituliskan di dalam sebuah File.
  • Meletakkan File pada sistem memori sekunder. Sistem operasi mengatur lokasi fisik tempat penyimpanan File pada sarana memori sekunder

  1. 2.       Pelayanan Sistem Operasi
Seperti yang telah kita ketahui bersama, tujuan dari sebuah sistem operasi adalah sebagai penghubung antara user dan hardware, dimana sistem operasi memberikan kemudahan-kemudahan agar user tidak harus mengakses hardware secara langsung dalam bahasa mesin, tetapi dalam bentuk layanan-layanan yang diberikan oleh sistem operasi.
Berikut ini adalah kategori-kategori layanan yang diberikan oleh sistem operasi:
  • Antarmuka. Sistem operasi menyediakan berbagai fasilitas yang membantu programmer dalam membuat program seperti editor. Walaupun bukan bagian dari sistem operasi, tapi layanan ini diakses melalui sistem operasi.
  • Eksekusi Program. Sistem harus bisa me- load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusian baik secara normal maupun tidak (ada error).
  • Operasi Masukan/Keluaran. Program yang sedang dijalankan kadang kala membutuhkan Masukan/Keluaran. Untuk efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur piranti masukan/keluaran secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan operasi masukan/keluaran.
  • Manipulasi Sistem Berkas. Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas.
  • Komunikasi. Kadang kala sebuah proses memerlukan informasi dari proses lain. Ada dua cara umum dimana komunikasi dapat dilakukan. Komunikasi dapat terjadi antara proses dalam satu komputer, atau antara proses yang berada dalam komputer yang berbeda tetapi dihubungkan oleh jaringan komputer. Komunikasi dapat dilakukan dengan share-memory atau message-passing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
  • Deteksi Error. Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU dan memori perangkat keras, masukan/keluaran, dan di dalam program yang dijalankan pengguna. Untuk setiap jenis error sistem operasi harus bisa mengambil langkah yang tepat untuk mempertahanan jalannya proses komputasi, misalnya dengan menghentikan jalannya program, mencoba kembali melakukan operasi yang dijalankan, atau melaporkan kesalahan yang terjadi agar pengguna dapat mengambil langkah selanjutnya.

Disamping pelayanan di atas, terdapat juga layanan-layanan lain yang bertujuan untuk mempertahankan efisiensi sistem itu sendiri. Layanan tambahan itu yaitu:
  • Alokasi Sumber Daya. Ketika beberapa pengguna menggunakan sistem atau beberapa program dijalankan secara bersamaan, sumber daya harus dialokasikan bagi masing-masing pengguna dan program tersebut.
  • Accounting. Kita menginginkan agar jumlah pengguna yang menggunakan sumber daya, dan jenis sumber daya yang digunakan selalu terjaga. Untuk itu maka diperlukan suatu perhitungan dan statistik. Perhitungan ini diperlukan bagi seseorang yang ingin merubah konfigurasi sistem untuk meningkatkan pelayanan.
  • Proteksi. Layanan proteksi memastikan bahwa segala akses ke sumber daya terkontrol; dan tentu saja keamanan terhadap gangguan dari luar sistem tersebut. Keamanan bisa saja dilakukan dengan terlebih dahulu mengindentifikasi pengguna. Ini bisa dilakukan dengan meminta password bila ingin menggunakan sumber daya.

  1. 3.       System Call
Komputer digunakan untuk melakukan suatu proses yang dikehendaki user. Oleh karena itu harus ada suatu bentuk komunikasi antara user dan hardware. Komunikasi itu terjadi dalam bentuk system calls. SO melalui shell-nya akan menangkap perintah dari user yang kemudian akan dikomunikasikan melalui system calls. Disinilah peran SO sebagai jembatan komunikasi antara user dan hardware itu terjadi. System calls itu sendiri umumnya ditulis dalam bahasa C dan C++.
Mengenai shell, shell itu sendiri secara umum adalah 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 SO secara umum dibagi menjadi 2, Command Line(CLI) dan Graphical(GUI). Jadi dengan kata lain, system calls berperan sebagai interface dalam layanan-layanan yang disediakan oleh sistem operasi.
Untuk lebih jelasnya lihat gambar berikut. Contoh di atas adalah sytem calls di dalam program yang membaca data dari satu file lalu meng- copy-nya ke file lain.

  1. 4.       Sistem Program
Seperti yang sudah kita pelajari di bab-bab awal bahwa terdapat empat komponen utama dalam sistem komputer, apabila kita jabarkan, dari yang paling bawah adalah perangkat keras ( Hardware), lalu di atasnya adalah sistem operasi, kemudian di atasnya dimana yang berhubungan langsung dengan para pengguna adalah sistem program dan program aplikasi. Di dalam sistem komputer, sistem program berguna untuk menyediakan kemudahan-kemudahan bagi pengembangan progran serta eksekusi. sistem program yang sering kita gunakan contohnya adalah format dan login. Sistem program dibagi dalam beberapa kategori yaitu:
  • Manajemen/manipulasi Berkas. Membuat, menghapus, menyalin, mengganti nama, mencetak, memanipulasi berkas dan direktori.
  • Informasi Status. Beberapa program meminta informasi tentang tanggal, jam, jumlah memori dan disk yang tersedia, jumlah pengguna dan informasi yang sejenis.
  • Modifikasi Berkas. Membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau tape.
  • Pendukung Bahasa Pemograman. Kadang kala kompilator, assembler, interpreter, dari bahasa pemograman diberikan kepada pengguna dengan bantuan sistem operasi.
  • Loading dan Eksekusi Program. Ketika program di assembly atau dikompilasi, program tersebut harus di load ke dalam memori untuk dieksekusi. Untuk itu sistem harus menyediakan absolute loaders, relocatable loaders, linkage editors, dan overlay loaders.
  • Komunikasi. Komunikasi menyediakan mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang berbeda. Sehingga pengguna bisa mengirim pesan, browse web pages, mengirim e-mail, atau mentransfer berkas.

  1. 5.       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.

  1. Monolithic System
Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan. Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai. Sistem operasi ditulis sebagai sekumpulan prosedur (a collection of procedures), yang dapat dipanggil setiap saat oleh pemakai saat dibutuhkan.

Kelemahan :
  • Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dilokalisasi.
  • Sulit dalam menyediakan fasilitas pengamanan.
  • Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik sangat besar sementara sebenarnya tidak memerlukan seluruh layanan yang disediakan kernel.
  • Tidak fleksibel.
  • Kesalahan pemograman satu bagian dari kernel menyebabkan matinya seluruh sistem.

   Keunggulan :
  • Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat.

Kebanyakan UNIX sampai saat ini berstruktur monolitik. Meskipun monolitik, yaitu seluruh komponen/subsistem sistem operasi terdapat di satu ruang alamat tetapi secara rancangan adalah berlapis. Rancangan adalah berlapis yaitu secara logik satu komponen/subsistem merupakan lapisan lebih bawah dibanding lainnya dan menyediakan layanan-layanan untuk lapisan-lapisan lebih atas. Komponen-komponen tersebut kemudia dikompilasi dan dikaitkan (di-link) menjadi satu ruang alamat.
Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas, kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules,yaitu:
  • Bagian-bagian kernel terpenting berada di memori utama secara tetap.
  • Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan (run time).

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

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

  1. Mesin Virtual
Virtual Machine (VM) adalah sebuah mesin yang mempunyai dasar logika yang menggunakan pendekatan lapisan-lapisan (layers) dari sistem komputer.Sehingga sistem komputer dengan tersendiri dibangun atas lapisan-lapisan tersebut, dengan urutan lapisannya mulai dari lapisan terendah sampai lapisan teratas adalah sebagai berikut:
  • Perangkat keras (semua bagian fisik komputer)
  • Kernel (program untuk mengontrol disk dan sistem file, multi-tasking, load-balancing, networking dan security)
  • Sistem program (program yang membantu general user)
Kernel yang berada pada lapisan kedua ini, menggunakan instruksi perangkat keras untuk menciptakan seperangkat system call yang dapat digunakan oleh komponen-komponen pada level sistem program. Sistem program kemudian dapat menggunakan system call dan perangkat keras lainnya seolah-olah pada level yang sama. Meskipun sistem program berada di level tertinggi , namun program aplikasi bisa melihat segala sesuatu pada tingkatan dibawahnya seakan-akan mereka adalah bagian dari mesin. Pendekatan dengan lapisan-lapisan inilah yang kemudian menjadi kesimpulan logis pada konsep Virtual Machine (VM).

  1. Client System Model
Dengan makin berkembangnya teknologi jaringan komputer, sekarang ini ada kecenderungan sebuah sistem yang menggunakan jaringan untuk saling berhubungan. Dalam jaringan tersebut, biasanya terdapat sebuah komputer yang disebut server, dan beberapa komputer yang disebut client. Server adalah komputer yang dapat memberikan service ke server, sedangkan client adalah komputer yang mengakses beberapa service yang ada di client. Ketika client membutuhkan suatu service yang ada di server, dia akan mengirim request kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan menggunakan Socket.
  1. Karakteristik Server
    1. Pasif
    2. Menunggu request
    3. Menerima request, memproses mereka dan mengirimkan balasan berupa service
    4. Karakteristik Client
      1. Aktif
      2. Mengirim request
      3. Menunggu dan menerima balasan dari server
Socket adalah sebuah endpoint untuk komunikasi didalam jaringan. Sepasang proses atau thread berkomunikasi dengan membangun sepasang socket, yang masing-masing proses memilikinya. Socket dibuat dengan menyambungkan dua buah alamat IP melalui port tertentu. Secara umum socket digunakan dalam client/server system, dimana sebuah server akan menunggu client pada port tertentu. Begitu ada client yang menghubungi server maka server akan menyetujui komunikasi dengan client melalui socket yang dibangun.

0 komentar: