SISTEM OPERASI
Tanpa perangkat lunak (software) sebuah komputer sebenarnya sekumpulan besi
yang tidak berguna. Dengan software sebuah komputer dapat digunakan untuk
menyimpan, mengolah data (memproses) dan mendapatkan kembali informasi yang
telah disimpan, menemukan kesalahan dalam program, memainkan games dan
menggunakan banyak aktivitas lainnya yang bernilai.
Pada umumnya program komputer dapat dibagi menjadi dua kategori, yaitu :
- Program sistem (system program)
Yang berfungsi untuk mengatur operasi dari komputer itu sendiri.
- Program aplikasi (application program)
Yang berfungsi untuk membantu menyelesaikan masalah untuk pemakainya. Dasar
yang sangat penting dari semua program sistem adalah operating system yang
mengontrol semua sumber daya komputer dan menyediakan landasan sehingga
sebuah program aplikasi dapat ditulis atau dijalankan.
Sejarah Perkembangan Sistem Operasi
Perkembangan sistem komputer dibagi menjadi empat generasi termasuk
perangkat keras dan perangkat lunaknya (sistem operasi).
- Generasi Pertama (1945-1955)
Pada generasi ini belum ada sistem operasi, sistem komputer diberi instruksi yang
harus dikerjakan secara langsung.
- Generasi Kedua (1955-1965)
Job dikumpulkan dalam satu rangkaian kemudian dieksekusi secara berurutan.
Sistem komputer belum dilengkapi sistem operasi, tapi beberapa fungsi dasar
sistem operasi telah ada, misalnya FMS (Fortran Monitoring System) dan IBSYS,
keduanya merupakan bagian yang fungsinya merupakan komponen sistem operasi.
- Generasi Ketiga (1965-1980)
Dikembangkan untuk melayani banyak pemakai secara online, sehingga menuntut
sistem komputer dapat digunakan secara :
- Multiuser
- Multiprogramming
Generasi Keempat (1980-199x)
Sistem operasi yang dapat melayani banyak mode, yaitu mendukung batch
processing, timesharing dan (soft) real time applications. Perkembangan dengan
meningkatnya kemampuan komputer dekstop (PC) dan teknologi jaringan
(TCP/IP).
Sebuah sistem komputer yang terdiri dari hardware, system programs dan
application program (7 layer).
PROSES
Proses berisi instruksi, data, program counter, register pemroses, stack data,
alamat pengiriman dan variabel pendukung lainnya. Terdapat beberapa definisi
mengenai proses, antara lain :
a. Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen
proses adalah masalah utama dalam perancangan sistem operasi.
b. Proses adalah program yang sedang dieksekusi.
c. Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan
dijadwalkan oleh sistem operasi.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan
manajemen proses seperti:
- Pembuatan dan penghapusan proses pengguna dan sistem proses.
- Menunda atau melanjutkan proses.
- Menyediakan mekanisme untuk proses sinkronisasi.
- Menyediakan mekanisme untuk proses komunikasi.
Menyediakan mekanisme untuk penanganan deadlock (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).
PENJADWALAN PROSES
Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di system
operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Adapun
penjadwalan bertugas memutuskan :
- Proses yang harus berjalan
- Kapan dan selama berapa lama proses itu berjalan
Kriteria untuk mengukur dan optimasi kinerja penjadwalan :
- Adil (fairness)
Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu
pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses
sehingga mengalami kekurangan waktu.
- Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk
pemroses.
- Waktu tanggap (response time)
Waktu tanggap berbeda untuk :
- Sistem interaktif
Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari
perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu
tanggap ini disebut terminal response time.
- Sistem waktu nyata
Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai
instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response
time.
- Turn around time
Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke system
sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang
dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi
(waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu
eksekusi + waktu menunggu.
- Throughput
Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk
mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat
dieksekusi dalam satu unit/interval waktu.
KONGKURENSI
Perkembangan sistem komputer mendatang adalah menuju ke sistem
multiprocessing, multiprogramming, terdistribusi dan paralel yang mengharuskan
adanya proses-proses yang berjalan bersama dalam waktu yang bersamaan. Hal
demikian merupakan masalah yang perlu perhatian dari perancang sistem operasi.
Kondisi dimana pada saat yang bersamaan terdapat lebih dari satu proses disebut dengan kongkurensi (proses-proses yang kongkuren). Proses-proses yang mengalami
kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga
membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan
kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana
dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada.
Prinsip-prinsip kongkurensi:
Kongkurensi merupakan kegiatan yang berhubungan dengan :
- Alokasi waktu pemroses untuk proses-proses yang aktif.
- Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
- Komunikasi antar proses.
- Sinkronisasi aktivitas banyak proses
Masalah kongkurensi dapat terjadi pada :
- Banyak aplikasi
- Strukturisasi sebuah aplikasi yang terdiri dari kumpulan proses
- Strukturisasi sebuah proses
- Strukturisasi sistem operasi
Pokok penyelesaian masalah kongkurensi:
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi dua, yaitu :
- Mengasumsikan adanya memori yang digunakan bersama.
- Tidak mengasumsikan adanya memori yang digunakan bersama.
Adanya memori bersama lebih mempermudah penyelesaian masalah kongkurensi.
Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun
multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat
digunakan untuk multiprocessor tanpa memori bersama ataupun untuk system tersebar.
MANAJEMEN MEMORI
Bagian operating sistem yang mengatur memori disebut dengan memory manager.
Pemakaian memori (manajemen memori dan organisasi) perlu dilakukan karena hal
tersebut sangat mempengaruhi kinerja komputer, sehingga memiliki fungsi dan tugas
penting dan kompleks yaitu berkaitan dengan :
- Memori utama sebagai sumber daya yang harus dialokasikasikan dan dipakai
bersama di antara sejumlah proses yang aktif, sehingga dapat memanfaatkan
pemroses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat
menampung sebanyak mungkin proses.
- Upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem
komputer.
Manajemen memori
Sistem manajemen memori dapat dibagi kedalam dua kelas, yaitu : pemindahan
proses (back and forth) diantara memori utama dengan disk selama eksekusi (swapping
and paging) dan tidak ada pemindahan proses.
Mempunyai beberapa fungsi, antara lain :
- Mengelola informasi memori yang dipakai dan tidak dipakai.
- Mengalokasikan memori ke proses yang memerlukan.
- Mendealokasikan memori dari proses yang telah selesai.
- Mengelola swapping antara memori utama dan disk.
Manajemen memori monoprogramming sederhana mempunyai ciri-ciri berikut :
- Hanya terdapat satu prosess pada satu saat, sehingga proses baru akan menimpa
proses lama yang sudah selesai eksekusi.
- Hanya satu proses mengunakan semua memori.
- Pemakai memusatkan program keseluruh memori dari disk atau tape.
- Program mengambil kendali seluruh mesin
Alasan kenapa multiprogramming digunakan, yaitu :
- Mempermudah pemogram. Pemogram dapat memecah program menjadi dua
proses atau lebih.
- Agar dapat memberi layanan interaktif ke beberapa orang secara simultan. Untuk
itu diperlukan kemampuan mempunyai lebih dari satu proses dimemori agar
memperoleh kinerja yang baik.
- Efisiensi penggunaan sumber daya. Bila pada multiprogramming maka proses
tersebut diblocked (hanya DMA yang bekerja) dan proses lain mendapat jatah
waktu pemroses, maka DMA dapat meningkatkan efisiensi sistem.
- Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil.
- Dapat mengerjakan sejumlah job secara simultan.
Embedded system
Teknik monoprogamming masih dipakai untuk sistem kecil yaitu sistem tempelan
(embedded system) yang menempel atau terdapat disistem lain. Sistem-sistem tempelan
menggunakan mikroprosesor kecil, seperti Intel 8051, dan sebagainya. Sistem ini
biasanya untuk mengendalikan satu alat sehingga menjadi bersifat intelejen (intelegent
devices) dalam menyediakan satu fungsi spesifik. Karena hanya satu fungsi spesifik,
dapat diprogram di mikroprosesor dengan memori kecil (1-64 Kb). Sistem tempelan
telah banyak digunakan, misalnya sistem tempelan di mobil
antar lain untuk :
- Pengendalian pengapian.
- Pengendalian pengeluaran bahan bakar.
- Pengendalian pengereman.
- Pengendalian suspensi.
- Pengendalian kemudi.
- Dan sebagainya.
Pada mobil mewah terdapat lebih dari 50 mikroprosesor, masing-masing mengendalikan
satu fungsi spesifik.