Mengulang
kembali apa yang dimaksud dengan Sistem Operasi (SO), SO adalah perangkat lunak
sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras
serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi
seperti program-program pengolah kata dan browser web. Sedangkan pengertian SO
secara umum yaitu software pada lapisan pertama yang ditaruh pada memori
komputer pada saat komputer dinyalakan. Sistem Operasi juga bisa disebut
sebagai pengatur aktivitas pada setiap
komponen computer dan selanjutnya akan menampilkan aktifitas tersebut sebagai
user-friendly interface (GUI).
Fungsi
dari SO adalah untuk bertanggung jawab melakukan translasi atau penerjemah
perintah yang dikeluarkan oleh alat input ke kode biner sehingga dapat
melakukan kumunikasi dengan alat output. SO juga sebagai perantara antara user
dengan perangkat keras computer dikarenakan SO sebagai eksekutor program user
dan memudahkan menyelesaikan permasalahan user.
Naah,
bagaimana cara SO mengendalikan kinerja sehingga operasi pada aplikasi itu
berjalan ? Di sini saya akan membahas mengenai permasalahan tersebut. Check it
out J
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;
·
Menggunakan interrupt
software-simulated. Metode ini tersdia dalam hampir
semua hardware, karenanya sangat
umum.
·
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.
·
Menggunakan instruksi system call
khusus. Teknik ini membutuhkan dukungan
hardware khusus, yang mana
arsitektur umum (khususnya x86) mungkin kesulitan.
·
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.
Sumber :
http://puspita10018174.blogspot.com/2012/03/cara-kerja-sistem-operasi-agar-aplikasi.html