Senin, 30 September 2013

Sistem Operasi Komputer


Pengertian Sistem operasi Komputer adalah perangkat lunak komputer atau software yang bertugas untuk melakukan kontrol dan manajemen perangkat keras dan juga operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah data yang bisa digunakan untuk mempermudah kegiatan manusia. Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.
Sistem Operasi komputer merupakan software pada lapisan pertama yang diletakkan pada memori komputer, (memori komputer dalam hal ini ada Hardisk, bukan memory RAM) pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi Komputer berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, schedulling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan kernel suatu Sistem Operasi.

Sistem Operasi secara umum terdiri dari beberapa bagian:
·         Mekanisme boot, yaitu meletakkan kernel ke dalam memory
·         Kernel, yaitu inti dari sebuah Sistem Operasi
·         Command Interpreter atau shell, yang bertugas membaca input dari pengguna
·         Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
·         Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrolnya.

Sistem Operasi berfungsi sebagai penghubung antara lapisan hardware dan lapisan software. selain itu, Sistem Operasi komputer juga melakukan semua perintah perintah penting dalam komputer, serta menjamin aplikasi-aplikasi yang berbeda fungsinya dapat berjalan lancar secara bersamaan tanpa hambatan. Sistem Operasi Komputer menjamin aplikasi perangkat lunak lainnya bisa memakai memori, melakukan input serta output terhadap peralatan lain, dan mempunyai akses kepada sistem file. Jika beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi Komputer akan mengatur jadwal yang tepat, sehingga sebisa mungkin semua proses pada komputer yang berjalan mendapatkan waktu yang cukup untuk menggunakan CPU.
Perangkat keras memiliki hubungan dekat dengan sistem operasi. Tanpa adanya sistem operasi, perangkat keras komputer hanyalah seonggok benda mati yang tidak berguna. Sistem operasi adalah “pengasuh” seluruh perangkat lunak aplikasi yang akan berinteraksi dengan perangkat keras. Tugas sistem operasi dalam rangka cara kerja komputer antara lain sebagai berikut:
1.       Melakukan manajemen proses. Sistem operasi menjadwalkan setiap proses seperti membuat file, menghapus file, sinkronisasi antar file, komunikasi antar file dan lain sebagainya.Sistem operasi juga melakukan penundaan proses, melanjutkan proses atau menghentikan proses secara paksa. Hal yang berkaitan dengan menunda dan melanjutkan proses sangat bergantung pada RAM untuk menampung proses sementara waktu dan register prosesor yang menampung proses yang sedang berjalan. Sedangkan untuk yang berkaitan dengan pengolahan file membutuhkan bantuan dari Control Unit, yakni komponen pemrosesan yang ada dalam CPU.
2.      Manajemen memori utama. Sistem operasi harus bisa mengatur dan mengalokasikan jumlah memori yang dibutuhkan serta alamat memori yang diperlukan untuk menampung proses. Jika tidak bisa, maka terjadi proses yang tumpang tindih dan terjadi hang karena memori tidak cukup menampung beban proses.
3.       Manajemen file. Ada empat bagian penting dalam manajemen file, yakni membuka file, menulis file (salin, tempel atau tulis data), menyimpan file dan menghapus file.
4.      Manajemen sistem input dan output. Sistem operasi harus bisa melakukan hal yang berkaitan dengan masukan dan keluaran data. Data yang diberikan oleh pengguna melalui keyboard, mouse atau perangkat lain harus mampu ditampung. Hal yang berkaitan dengan manajemen sistem input output adalah buffering atau penampungan data, scheduling atau penjadwalan data, spooling atau meletakkan pekerjaan di dalam buffer dan mengalokasikan driver untuk perangkat keras yang terhubung ke CPU.
5.      Manajemen penyimpanan sekunder. Penyimpanan sekunder erat kaitannya dengan media penyimpanan sekunder seperti harddisk, USB flashdisk, SSD, DVD dan lain sebagainya. Aplikasi komputer pada umumnya akan menyimpan file atau data hasil pemrosesan di media penyimpanan sekunder karena penyimpanan primer bersifat sementara dan terbatas. Oleh karena itu sistem operasi juga melakukan perantaraan file maupun data yang akan disimpan dalam sistem penyimpanan sekunder dengan memperhatikan beberapa aspek, diantaranya adalah efisiensi, optimalisasi dan sekuriti.


Selain lima hal diatas, sistem operasi juga menyediakan sistem keamanan untuk komputer. Hal ini dikarenakan tanpa adanya sistem keamanan maka komputer akan menjadi mudah digunakan oleh siapa saja, termasuk yang tidak berwenang untuk menggunakannya. Untuk itu maka sistem operasi menyediakan fitur keamanan seperti login user, firewall dan anti malware.


CARA KERJA SISTEM OPERASI (SO)
Dalam sebuah perangkat komputer, kernel merupakan komponen inti dari Sistem Operasi yang berjalan dalam perangkat tersebut. Kernel bertugas untuk mengatur pembagian sumber daya system komunikasi antara komponen hardware dan software. Kernel menghubungkan antara software aplikasi dan hardware komputer. Ia menyediakan abstraction layer pada level terendah untuk resource-resource seperti memori, prosesor dan perangkat I/O di mana suatu software aplikasi harus mengontrol resource-resource tersebut agar dapat berfungsi. Kernel mampu menyediakan fasilitas seperti ini bagi proses-proses aplikasi melalui mekanisme IPC (Inter Process Communication) dan System call.
Dalam banyak kasus, boot loader mulai mengeksekusi kernel dalam mode supervisor. Kernel kemudian menginisialiasi diri sendiri dan memulai proses pertama. Setelah itu, kernel tidak mengekseskusi secara langsung, tapi hanya merespon kepada even eksternal. Sebagai tambahan, kernel biasanya menyediakan loop yang dieksekusi ketika tidak ada proses yang tersedia untuk dijalankan; hal ini biasnya disebut idle process.
Tujuan utama dari adanya kernel adalah untuk mengatur pembagian sumber daya dan program mana yang boleh mengakses dan menggunakan sumber daya tersebut. Pada umumnya, sumber daya tersebut antara lain adalah CPU, memori dan Perangkat I/O.

-          Central Processing Unit (CPU). Sebagai bagian utama komputer, CPU bertugas dalam mengeksekusi program atau proses. Dalam hal ini, kernel bertugas menentukan setiap saat berapa banyak program yang harus dialokasikan ke CPU.
-           Memori Komputer. Memori digunakan untuk menyimpan instruksi program dan juga data. Keduanya dibutuhkan oleh memori agar suatu program dapat dieksekusi. Biasanya beberapa program akan berusaha mengakses memori, bahkan seringkali meminta memori melebihi yang dimiliki komputer. Di sinilah kernel bertugas untuk menentukan porsi pemakaian memori yang dapat dipakai oleh tiap program dan menentukan apa yang akan dikerjakan ketika tidak cukup tersedia memori.
-           Perangkat I/O. Beberapa perangkat I/O yang umumnya dipakai, misalnya: keyboard, mouse, monitor, Hard Disk, printer, scanner, dsb. Kernel melanjutkan request dari suatu aplikasi yang ingin melakukan suatu aksi I/Okepada perangkat yang sesuai dan menyediakan metode yang sesuai untuk memakai perangkat tersebut.

a.      Pengaturan Proses
Tugas utama kernel adalah membantu eksekusi aplikasi dan mendukungnya dengan fitur seperti abstraksi hardware. Suatu proses mendefinisikan seberapa porsi memori yang dapat diakses oleh suatu aplikasi. Pengaturan proses kernel harus memperhitungkan perangkat yang dibawa oleh hardware untuk perlindungan memori. Untuk menjalankan aplikasi, sebuah kernel pertama kali harus menyediakan space address untuk aplikasi, lalu me-load file yang berisi kode aplikasi ke dalam memori, mempersiapkan stack untuk program dan percabangan ke lokasi lain dalam program, dan kemudian baru memulai eksekusi program.
Dalam sebuah sistem pre-emptive multitasking, kernel akan memberi slot waktu kepada setiap program dan berpindah dari satu proses ke proses yang lain dengan cepat hingga terlihat seperti proses-proses ini dieksekusi secara bersamaan. Kernel menggunakan algoritma penjadwalan untuk menentukan proses mana yang akan dikerjakan berikutnya dan berapa lama waktu yang akan diberikan. Algoritma yang dipilih mungkin akan mengijinkan beberapa proses memiliki prioritas yang lebih tinggi daripada yang lain. Umumnya kernel juga menyediakan cara agar proses-proses ini dapat saling berkomunikasi; hal ini dikenal sebagai Inter-Process Communication (IPC). Pendekatan utama IPC ini adalah untuk shared memory, message passing dan remote procedure call.

b.     Pengaturan Memori
Kernel memiliki akses penuh ke memori sistem dan harus memberikan ijin kepada proses-proses untuk mengakses memori secara aman ketika membutuhkan. Langkah pertama yang dilakukan untuk melakukan hal ini di antaranya adalah virtual addressing. Virtual addressing menijinkan kernel untuk menjadikan suatu alamat fisik untuk tampil sebagai alamat lain, alamat virtual. Space alamat virtual mungkin berbeda untuk masing-masing proses; memori yang diakses suatu proses pada alamat virtual tertentu mungkin berbeda dengan memori yang diakses proses lain pada alamat yang sama. Hal ini menyebabkan tiap program seakan menjadi satu-satunya program yang berjalan dan karenanya dapat mencegah terjadinya crash antar program.
Dalam kebanyakan sistem, alamat virtual suatu program dapat berupa data yang sebenarnya tidak ada dalam memori. Layer abstraksi yang disediakan virtual addressing mengijinkan Sistem Operasi untuk menggunakan penyimpan data, seperti Hard Disk, untuk menyimpan apa yang mestinya ada di memori utama (RAM).
Akibatnya, Sistem Operasi dapat mengijinkan program untuk memakai memori melebihi memori fisik yang yang dimiliki oleh komputer. Virtual addressing juga mengijinkan dibuatnya partisi vritual memori di dua area yang terpisah, satu dipakai oleh kernel (kernel space) dan yang lain untuk aplikasi (user space). Aplikasi tidak diijinkan oleh CPU untuk memakai alamat kernel, yang akhirnya hal ini akan mencegah agar aplikasi tidak merusak kernel.

c.      Pengaturan perangkat
Untuk menjalankan fungsinya, aplikasi membutuhkan akses ke perangkat-perangkat yang terhubung ke komputer, yang dikontrol oleh kernel melalui device driver. Sebagai contoh, untuk menampilkan sesuatu di layar, sebuah aplikasi harus membuat request ke kernel. Kernel lalu akan melanjutkan request tersebut ke driver display yang kemudian akan bertanggung jawab mem-plot karakter/pixel. Kernel harus memelihara sejumlah perangkat yang tersedia. Daftar perangkat ini dapat berupa plug and play (dideteksi oleh Sistem Operasi saat perangkat dijalankan), di-configure oleh user, atau bahkan advance (misal dalam system embedded di mana kernel akan diubah jika hardware diubah).

d.     System calls
Untuk mengakses layanan yang disediakan oleh kernel, biasanya kernel menyediakan library C atau API (Application Programming Interface) yang selanjutnya akan melibatkan fungsi kernel yang berhubungan.
Metode untuk melibatkan fungsi kernel berbeda-beda antar kernel. Jika isolasi memori sedang dipakai, tidak mungkin bagi proses untuk memanggil kernel secara langsung, karena hal itu merupakan pelanggaran aturan akses kontrol dari prosesor. Beberapa kemungkinan antara lain;
o   Menggunakan interrupt software-simulated. Metode ini tersdia dalam hamper semua hardware, karenanya sangat umum.
o   Menggunakan call gate. Call gate adalah address khusus di mana alamat tersebut ditambahkan dalam daftar yang disimpan dalam memori kernel yang diketahui prosesor. Ketika prosesor mendeteksi call ke lokasi tersebut, prosesor kemudian mengalihkannya ke lokasi target tanpa menyebabkan pelanggaran akses.
o   Menggunakan instruksi system call khusus. Teknik ini membutuhkan dukungan hardware khusus, yang mana arsitektur umum (khususnya x86) mungkin kesulitan.
o   Menggunakan memory-based queue. Sebuah aplikasi yang membuat request dalam jumlah besar tapi tidak perlu menunggu hasilnya dapat menambahkan detil request-nya ke suatu area memori yang di-scan secara priodik oleh kernel untuk menemukan request.

Tidak ada komentar:

Posting Komentar