OPERATING SYSTEM
I. PENGENALAN SISTEM OPERASI
Sistem operasi merupakan sebuah penghubung antara
pengguna dari komputer dengan perangkat keras komputer.
Sebelum ada sistem operasi, orang hanya mengunakan komputer
dengan menggunakan sinyal analog dan sinyal digital. Seiring dengan berkembangnya pengetahuan dan teknologi,
pada saat ini terdapat berbagai sistem operasi dengan keunggulan
masing-masing. Untuk lebih memahami sistem operasi maka
sebaiknya perlu diketahui terlebih dahulu beberapa konsep dasar
mengenai sistem operasi itu sendiri.
A. Definisi Sistem Operasi
Sistem komputer pada dasarnya terdiri dari empat
komponen utama, yaitu perangkat keras, program aplikasi,
system operasi, dan para pengguna. Sistem operasi berfungsi
untuk mengatur dan mengawasi penggunaan perangkat keras
oleh berbagai program aplikasi serta para pengguna.
Sistem operasi berfungsi ibarat pemerintah dalam suatu
negara, dalam arti membuat kondisi komputer agar dapat menjalankan program secara benar. Untuk menghindari konflik
yang terjadi pada saat pengguna menggunakan sumber daya
yang sama, sistem operasi mengatur pengguna mana yang
dapat mengakses suatu sumber daya.
Sistem operasi juga sering disebut resource allocator.
Satu lagi fungsi penting sistem operasi adalah sebagai program
pengendali yang bertujuan untuk menghindari kekeliruan (error)
dari penggunaan komputer yang tidak perlu.
B. Layanan Sistem Operasi
Sebuah sistem operasi yang baik menurut Tanenbaum,
harus memiliki layanan sebagai seperti :
1. Pembuatan program yaitu sistem operasi menyediakan
fasilitas dan layanan untuk membantu para pemrogram
untuk menulis program.
2. Eksekusi Program yang berarti Instruksi-instruksi dan
data-data harus dimuat ke memori utama, perangkatparangkat masukan/keluaran dan berkas harus
diinisialisasi, serta sumber-daya yang ada harus
disiapkan, semua itu harus ditangani oleh sistem operasi.
3. Pengaksesan I/O Device, artinya Sistem Operasi harus
mengambil alih sejumlah instruksi yang rumit dan sinyal
kendali agar pemrogram dapat berfikir sederhana dan
perangkat pun dapat beroperasi.
4. Pengaksesan terkendali terhadap berkas, yang artinya
disediakannya mekanisme proteksi terhadap berkas
untuk mengendalikan pengaksesan terhadap berkas.
5. Pengaksesan sistem, artinya pada pengaksesan
digunakan bersama (shared system).
6. Fungsi pengaksesan, yaitu menyediakan proteksi
terhadap sejumlah sumber-daya dan data dari pemakai
serta menyelesaikan konflik-konflik dalam perebutan
sumber-daya.
7. Deteksi dan pemberian tanggapan pada kesalahan,
yaitu jika muncul permasalahan muncul pada sistem
komputer maka sistem operasi harus memberikan
tanggapan yang menjelaskan kesalahan yang terjadi
serta dampaknya terhadap aplikasi yang sedang
berjalan.
8. Akunting, yang artinya sistem operasi harus bisa
mengumpulkan data statistik penggunaan beragam
sumber-daya dan memonitor parameter kinerjanya.
C. Struktur Komputer
Struktur komputer didefinisikan sebagai cara-cara dari
setiap komponen yang saling terkait. Struktur sebuah komputer
secara sederhana, dapat digambarkan dalam diagram blok pada
gambar dibawah.
Struktur sebuah sistem komputer dapat dibagi menjadi:
1. Sistem Operasi Komputer
Dewasa ini sistem komputer multiguna terdiri dari
CPU (Central Processing Unit), serta sejumlah device
controller yang dihubungkan melalui bus yang
menyediakan akses ke memori. Setiap device controller
bertugas mengatur perangkat yang tertentu (contohnya
disk drive, audio device, dan video display).
CPU dan device controller dapat dijalankan secara
bersamaan, namun demikian diperlukan mekanisme
sinkronisasi untuk mengatur akses ke memori.
2. Struktur I/O
Bagian ini akan membahas struktur I/O, interupsi
I/O, dan DMA, serta perbedaan dalam penanganan
interupsi.
a. Interupsi I/O
Untuk memulai operasi I/O, CPU me-load
register yang bersesuaian ke device controller. Sebaliknya device controller memeriksa isi
register untuk kemudian menentukan operasi
apa yang harus dilakukan.
Pada saat operasi I/O dijalankan ada dua
kemungkinan, yaitu synchronous I/O dan
asynchronous I/O. Pada synchronous I/O,
kendali dikembalikan ke proses pengguna
setelah proses I/O selesai dikerjakan.
Sedangkan pada asynchronous I/O, kendali
dikembalikan ke proses pengguna tanpa
menunggu proses I/O selesai. Sehingga proses
I/O dan proses pengguna dapat dijalankan
secara bersamaan.
b. Struktur DMA
Direct Memory Access (DMA) suatu metoda
penanganan I/O dimana device controller
langsung berhubungan dengan memori tanpa
campur tangan CPU.
Setelah men-set buffers, pointers, dan counters
untuk perangkat I/O, device controller
mentransfer blok data langsung ke penyimpanan
tanpa campur tangan CPU. DMA digunakan
untuk perangkat I/O dengan kecepatan tinggi.
3. Struktur Penyimpanan
Program komputer harus berada di memori
utama (biasanya RAM) untuk dapat dijalankan. Memori
utama adalah satu-satunya tempat penyimpanan yang
dapat diakses secara langsung oleh prosesor.
Idealnya program dan data secara keseluruhan
dapat disimpan dalam memori utama secara permanen.
Namun demikian hal ini tidak mungkin karena ukuran
memori utama relatif kecil untuk dapat menyimpan data
dan program secara keseluruhan.
Memori utama juga bersifat volatile, sehingga
tidak bisa menyimpan secara permanen dan apabila
komputer dimatikan maka data yang tersimpan di
memori utama akan hilang.
a. Memori Utama
Hanya memori utama dan register merupakan
tempat penyimpanan yang dapat diakses secara
langsung oleh prosesor. Oleh karena itu
instruksi dan data yang akan dieksekusi harus
disimpan di memori utama atau register.
Untuk mempermudah akses perangkat I/O ke
memori, pada arsitektur komputer menyediakan
fasilitas pemetaan memori ke I/O. Dalam hal ini
sejumlah alamat di memori dipetakan dengan
device register. Membaca dan menulis pada
alamat memori ini menyebabkan data ditransfer
dari dan ke device register. Metode ini cocok
untuk perangkat dengan waktu respon yang
cepat seperti video controller.
b. Magnetic Disk
Magnetic Disk berperan sebagai secondary
storage pada sistem komputer modern.
Magnetic Disk disusun dari piringan-piringan
seperti CD. Kedua permukaan piringan
diselimuti oleh bahan-bahan magnetik.
Permukaan dari piringan dibagi-bagi menjadi
track yang memutar, yang kemudian dibagi lagi
menjadi beberapa sektor.
II. STRUKTUR SISTEM OPERASI
Sistem komputer modern yang semakin kompleks dan rumit
memerlukan sistem operasi yang dirancang dengan sangat hati-hati
agar dapat berfungsi secara optimum dan mudah untuk dimodifikasi.
Pada kenyataannya tidak semua sistem operasi mempunyai struktur
yang sama. Namun menurut Avi Silberschatz, Peter Galvin, dan
Greg Gagne, umumnya sebuah sistem operasi modern mempunyai
komponen sebagai berikut:
A. Manajemen Proses
Proses adalah keadaan ketika sebuah program
sedang dieksekusi. Sebuah proses membutuhkan beberapa
sumber daya untuk menyelesaikan tugasnya. Sumber daya
tersebut dapat berupa CPU time, memori, berkas-berkas,
dan perangkat-perangkat I/O.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses, seperti:
1. Pembuatan dan penghapusan proses pengguna dan
sistem proses.
2. Menunda atau melanjutkan proses.
3. Menyediakan mekanisme untuk proses sinkronisasi.
4. Menyediakan mekanisme untuk proses komunikasi.
5. Menyediakan mekanisme untuk penanganan
deadlock.
B. Manajemen Memori Utama
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 yang akses datanya digunakan oleh CPU atau perangkat
I/O. Memori utama termasuk tempat penyimpanan data yang
sementara (volatile), artinya data dapat hilang begitu sistem
dimatikan.
Sistem operasi bertanggung jawab atas aktivitasaktivitas yang berkaitan dengan managemen memori
seperti:
1. Menjaga track dari memori yang sedang digunakan
dan siapa yang menggunakannya.
2. Memilih program yang akan di-load ke memori.
3. Mengalokasikan dan meng-dealokasikan ruang
memori sesuai kebutuhan.
C. Manajemen Secondary Storage
Data yang disimpan dalam memori utama bersifat
sementara dan jumlahnya sangat kecil. Oleh karena itu,
untuk meyimpan keseluruhan data dan program komputer
dibutuhkan secondary-storage yang bersifat permanen dan
mampu menampung banyak data.
Contoh dari secondary-storage adalah harddisk,
disket, dll. Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan disk-management seperti:
free-space management, alokasi penyimpanan, penjadualan
disk.
D. Manajemen Sistem I/O
Sering disebut device manager. Menyediakan "device
driver" yang umum sehingga operasi I/O dapat seragam
(membuka, membaca, menulis, menutup).
Contoh: pengguna menggunakan operasi yang sama
untuk membaca berkas pada hard-disk, CD-ROM, dan
floppy disk. Komponen Sistem Operasi untuk sistem I/O:
1. Buffer: menampung sementara data dari/ ke
perangkat I/O.
2. Spooling: melakukan penjadualan pemakaian I/O
sistem supaya lebih efisien (antrian dsb.).
3. Menyediakan driver untuk dapat melakukan operasi
"rinci" untuk perangkat keras I/O tertentu.
E. Manajemen Berkas
Berkas adalah kumpulan informasi yang berhubungan
sesuai dengan tujuan pembuat berkas tersebut. Berkas
dapat mempunyai struktur yang bersifat hirarkis (direktori,
volume, dll.). Sistem operasi bertanggung-jawab:
1. Pembuatan dan penghapusan berkas.
2. Pembuatan dan penghapusan direktori.
3. Mendukung manipulasi berkas dan direktori.
4. Memetakan berkas ke secondary storage.
5. Mem-backup berkas ke media penyimpanan yang
permanen (non-volatile).
F. Sistem Proksi
Proteksi mengacu pada mekanisme untuk mengontrol
akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi
harus:
1. Bisa membedakan antara penggunaan yang sudah
diberi izin dan yang belum.
2. Bisa menentukan pengontrolan yang akan dilakukan
terhadap sumber daya.
3. Bisa memberikan punishment terhadap kesalahan
yang terjadi.
G. Jaringan
Sistem terdistribusi adalah sekumpulan prosesor yang
tidak berbagi memori atau clock. Tiap prosesor mempunyai
memori sendiri. Prosesor-prosesor tersebut terhubung
melalui jaringan komunikasi. Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya
sistem. Akses tersebut dapat menyebabkan:
1. Meningkatnya proses komputasi.
2. Meningkatnya ketersediaan data.
3. Meningkatnya kehandalan.
H. Command Interpreter System
Sistem Operasi menunggu instruksi dari pengguna
(command driven). Program yang membaca instruksi dan
mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter, dan UNIX shell.
Command-Interpreter System sangat bervariasi dari
satu sistem operasi ke sistem operasi yang lain dan
disesuaikan dengan tujuan dan teknologi I/O devices yang
ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.
I. Layanan Sistem Operasi
Sistem operasi memberikan layanan sebagai berikut;
1. Eksekusi program, yaitu kemampuan sistem untuk
"load" program ke memori dan menjalankan
program.
2. Operasi I/O, yaitu sistem operasi harus
menyediakan mekanisme untuk melakukan operasi
I/O atas nama pengguna.
3. Sistem manipulasi, berkas yaitu kemampuan
program untuk operasi pada berkas (membaca,
menulis, membuat, and menghapus berkas).
4. Komunikasi, yaitu pertukaran data/informasi antar
dua atau lebih proses yang berada pada satu
komputer (atau lebih).
5. Deteksi error yaitu menjaga kestabilan sistem
dengan mendeteksi "error" pada perangkat keras
mau pun operasi.
Dalam efesiensi penggunaan sistem, sistem operasi
memberikan pelayanan:
1. Resource allocator, yaitu SO mengalokasikan
sumber daya ke beberapa pengguna atau job yang
jalan pada saat yang bersamaan.
2. Proteksi yaitu SO menjamin akses ke sistem sumber
daya dikendalikan (pengguna dikontrol aksesnya ke
sistem).
3. Accounting yaitu SO merekam kegiatan pengguna
dan jatah pemakaian sumber daya (berdasarkan
prinsip keadilan atau kebijaksanaan).
J. System Calls
System call menyediakan interface antara program
(program pengguna yang berjalan) dan bagian OS. System
call menjadi jembatan antara proses dan sistem operasi.
System call ditulis dalam bahasa assembly atau bahasa
tingkat tinggi yang dapat mengendalikan mesin (Bahasa C).
Contoh: UNIX menyediakan system call: read, write
=> operasi I/O untuk berkas. Sering pengguna program
harus memberikan data (parameter) ke OS yang akan
dipanggil.
Contoh pada UNIX: read(buffer, max_size, file_id);
K. Mesin Virtual
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:
1. Perangkat keras (semua bagian fisik komputer)
2. Kernel (program untuk mengontrol disk dan sistem
file, multi-tasking, load-balancing, networking dan
security)
3. 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 di bawahnya seakan-akan mereka
adalah bagian dari mesin. Pendekatan dengan lapisanlapisan inilah yang kemudian menjadi kesimpulan logis pada
konsep Virtual Machine.
L. Perancangan Sistem dan Implementasi
Target untuk pengguna sebuah sistem operasi harus
nyaman digunakan, mudah dipelajari, dapat diandalkan,
aman dan cepat. Sedangkan target untuk sistem, sebuah
sistem operasi harus gampang dirancang, diimplementasi,
dan dipelihara, sebagaimana fleksibel, error, dan efisien.
Sebuah Sistem Operasi mempunyai mekanisme dan
kebijaksanaan:
1. Mekanisme menjelaskan bagaimana melakukan
sesuatu kebijaksanaan memutuskan apa yang akan
dilakukan. Pemisahan kebijaksanaan dari
mekanisme merupakan hal yang sangat penting, ini
mengizinkan fleksibilitas yang tinggi bila
kebijaksanaan akan diubah nanti.
2. Kebijaksanaan memutuskan apa yang akan
dilakukan. Pemisahan kebijaksanaan dari
mekanisme merupakan hal yang sangat penting, ini
mengizinkan fleksibilitas yang tinggi bila
kebijaksanaan akan diubah nanti.
Implementasi Sistem biasanya menggunakan bahasa
assembly, sedangkan sistem operasi sekarang dapat ditulis
dengan menggunakan bahasa tingkat tinggi. Kode yang
ditulis dalam bahasa tingkat tinggi dapat dibuat dengan
cepat, lebih ringkas, lebih mudah dimengerti dan di-debug.
Sistem operasi lebih mudah dipindahkan ke perangkat keras
yang lain bila ditulis dengan bahasa tingkat tinggi.
M. System Generation
Sistem operasi dirancang untuk dapat dijalankan
diberbagai jenis mesin yang mana setiap sistemnya harus
dikonfigurasi untuk tiap komputer. Program SYSGEN
mendapatkan informasi mengenai konfigurasi khusus dari
sistem perangkat keras, seperti:
1. Booting, yaitu memulai komputer dengan me-load
kernel.
2. Bootstrap program, yaitu kode yang disimpan di
code ROM yang dapat menempatkan kernel,
memasukkannya kedalam memori, dan memulai
eksekusinya.
Sumber :
Watrianthos, Ronal; Purnama, Iwan. (2018). Buku Ajar Sistem Operasi. Ds. Sidoarjo, Kec. Pulung, Kab. Ponorogo. Uwais Inspirasi Indonesia