BAB I
PENDAHULUAN
Sistem operasi merupakan perantara antara program aplikasi, utilitas, dan
pengguna di satu pihak, dengan hardware sistem komputer di pihak lain. Sistem
Operasi bertanggung jawab untuk
aktivitas berikut yang berhubungan dengan manajemen memori:
melacak pemakaian memori (siapa dan berapa
besar?),memilih program mana yang akan, di load ke memori, ketika bisa
digunakan., alokasi dan dealokasi memori sesuai yang dibutuhkan
Topik rancangan sistem operasi mencakup bidang yang sangat luas dan kita
akan mudah kehilangan detail serta konteks pembahasan suatu masalah. Untuk
lebih mudahnya kita perlu mengenal konsep dasar sistem operasi tersebut yaitu :
·
Komponen Sistem Operasi
·
Layanan Sistem Operasi
·
System
Calls
·
Pemrograman Sistem
·
Struktur Sistem
·
Mesin Virtual
·
System
Generation
·
Rancangan Sistem
BAB II
PEMBAHASAN
SISTEM
OPERASI
2.1 Pengertian
Sistem Operasi
Sistem Opersi adalah suatu program yang mengontrol
eksekusi program aplikasi dan berfungsi sebagai interface antara pengguna
computer dengan hardware computer.
2.2
Tujuan dan Fungsi Sistem Operasi
Sistem operasi memiliki tiga tujuan yaitu :
- Kemudahan : system operasi membuat computer menjadi lebih mudah dipakai.
- Efisiensi : system operasi memungkinkan sumber daya system computer untuk digunakan dengan cara yang efisien.
- Kemampuan Berkembang : system operasi harus disusun sedemikian rupa sehingga memungkinkan pengembangan yang efektif,pengujian, dan penerapan fungsi-fungsi system baru tanpa mengganggu layanan yang sudah ada.
2.2.1 Sistem Operasi Sebagai
Interface Pengguna/Komputer
Hardware
dan software yang digunakan untuk menyediakan aplikasi bagi pengguna dapat
dipandang sebagai sesuatu yang berlapis. Sistem operasi berfungsi sebagai
mediator, yang membuatnya menjadi lebih mudah bagi pemrogram dan program
aplikasi dalam mengakses dan menggunakan fasilitas dan layanan.
Pada umumnya system operasi memiliki layanan dalam bidang – bidang
berikut :
1. Pembuatan Program : system operasi
menyediakan berbagai fasilitas dan layanan seperti sebagai editor dan debugger
,untuk membantu para pemrogram dalam
membuat program. Umumnya layanan ini berbentuk program utilitas yang sebenarnya
bukan merupakan bagian dari system operasi, namun dapat diakses melalui system
operasi.
2. Eksekusi Program : beberapa diperlukan
task untuk melakukan eksekusi sebuah program. Instruksi dan data harus dimuat
ke dalam memori utama, perangkat I/O dan file harus diinisialisasi, dan sumber
daya lainnya harus disiapkan. Sistem operasi menangani semua task tersebut
untuk kepentingan pengguna.
3. Acces ke perangkat I/O : setiap
perangkat I/O masing – masing membutuhkan set instruksinya sendiri atau signal
control untuk operasi. Sistem operasi menjaga detailnya sehingga pemrogram
dapat menganggapnya sebagai operasi pembacaan dan penulisan yang sederhana.
4. Acces terkontrol ke file : dalam hal
file, control harus mancakup pengertian yang tidak hannya sifat perangkat I/O
saja (disk drive, tape drive), namun
juga format file yang terdapat dalam media penyimpan.
5. Deteksi error dan respons : bermacam –
macam error dapat terjadi pada saat system komputer bekerja. Error ini meliputi
error hardware internal dan eksternal, misalnya memori error atau kegagalan
atau kesalahan fungsi perangkat. Dan bermacam-macam error software seperti
overflow aritmetik, adanya usaha untuk mengakses lokasi memori yang terlarang,
dan ketidakmampuan system operasi untuk memenuhi request sebuah aplikasi.
6. Accounting : Sistem operasi yang baik
akan mengumpulkan statistik pemakaian bermacam-macam sumber daya dan memonitor
parameter kinerja, seperti waktu respons. Bagi semua system, informasi ini
sangat berguna untuk mengantisipasi kebutuhan pengembangan di masa mendatang
dan mengubah system untuk meningkatkan kinerja. Pada system multiguna,
informasi tersebut dapat digunakan untuk keperluan penagihan biaya pemakaian
system.
2.2.2 Sistem Operasi sebagai Manajer
Sumber Daya
Komputer
adalah kumpulan sumber daya yang berfungsi untuk perpindahan, penyimpanan dan
pengolahan data serta untuk mengontrol fungsi tersebut. Sistem operasi
bertanggung jawab atas pengaturan sumber daya tersebut.
o
Sistem operasi berfungsi dengan cara yang sama
seperti software computer biasa yaitu merupakan suatu program yang dieksekusi
oleh prosesor.
o
Sering kali sistem operasi mengeluarkan control
dan harus bergantung pada prosesor untuk memungkinkannya memperoleh kembali
control.
Perbedaan penting antara sistem operasi dengan sebuah program komputer
lainnya adalah terletak pada tujuan programnya. Sistem operasi mengarahkan
prosesor dalam menggunakan sumber daya sistem lainnya dan dalam timeran
eksekusi program lainnya.
Gambar 2.1 di bawah ini menunjukkan sumber daya utama yang diatur oleh
sistem operasi. Sebagian sistem operasi berada di dalam memori utama. Bagian
tersebut meliputi kernel, atau nucleus, yang berisi fungsi – fungsi yang paling
sering dipakai dalam sistem operasi. Pada saat tertentu, bagian sistem operasi
lainnya yang saat ini sedang digunakan. Isi memori utama lainnya digunakan
untuk menyimpan program lain dan data. Alokasi sumber daya (memori utama) ini
dikontrol secara bersama oleh sistem operasi dan hardware manajement memori
yang terdapat di dalam prosesor. Sistem operasi membuat keputusan kapan suatu
perangkat I/O dapat digunakan oleh program yang sedang dieksekusi dan tujuan
akses control dan pemakaian file.
Prosesor sendiri merupakan sumber daya, dan sistem operasi harus menentukan
jumlah waktu prosesor yang diberikan kepada eksekusi program pengguna tertentu.
Pada sistem multi-prosesor, pembuatan keputusan ini harus dilakukan terhadap
semua prosesor.
Gambar 2.1 Sistem Operasi
sebagai Manajer Sumber Sistem Komputer.
2.2.3 Kemudahan Evolusi Sistem
Operasi
Sistem operasi akan selalu berkembang
dengan alasan berikut ini :
o
Upgrade
Hardware serta Hardware jenis baru : Misalnya versi UNIX dan OS / 2 yang
terdahulu tidak menggunakan mekanisme paging karena sistem-sistem operasi
tersebut beroperasi pada mesin yang tidak memiliki hardware paging. Versi – versi yang baru telah dimodifikasi menggunakan
kemampuan paging.
o
Layanan
baru : untuk menjawab kebutuhan para pengguna, sistem operasi menambah
penawaran layanan baru. Misalnya, apabila ditemukan kesulitan dalam menjaga
kineja yang baik bagi pengguna dengan menggunakan tool yang telah ada, ukuran
dan control yang baru dapat ditambahkan ke sistem operasi.
o
Perbaikan
: setiap sistem operasi memiliki fault. Fault – fault ini ditemukan
dalam periode waktu tertentu dan
kemudian dilakukan perbaikan. Tentu saja, perbaikan ini dapat menyebabkan fault
baru.
2.3 EVOLUSI SISTEM OPERASI
2.3.1 Pengolahan Serial
Sistem
lama memiliki dua masalah besar, sebagai berikut :
- Scheduling ( penjadwalan ) : umumnya instalasi menggunakan formulir pemesanan waktu mesin. Biasanya, seorang pengguna harus mendaftarkan dirinya untuk memesan blok waktu yang merupakan kelipatan setengah jam, dan seterusnya. Seorang pengguna mungkin memesan waktu selama satu jam dan mengakhiri prosesnya 45 menit. Hal tersebut akan memboroskan waktu idle computer. Sebaliknya, pengguna mungkin menemukan masalah, sehingga tidak dapat menyelesaikan pekerjaannya dalam waktu yang telah dipesannya, dan dipaksa untuk menghentikan operasi sebelum dapat mengatasi masalah yang dihadapinya itu.
- Set up time (waktu set up) : sebuah program tunggal, yang disebut job, dapat mencakup pemuatan compiler serta program bahasa tingkat tinggi (program sumber) ke dalam memori, penyimpan program yang telah decompile(program objek), dan kemudian pemuatan dan penggabungan program objek dengan fungsi yang umum. Setiap langkah ini mencakup pemasangan dan penanggalan pita atau penyusunan tumpukan kartu. Apabila sebuah error terjadi, biasanya pengguna harus kembali dari awal rangkaian set up itu, jadi, banyak waktu yang harus terbuang hannya untuk menyiapkan program agar dapat berjalan.
Mode seperti itu dapat dianggap sebagai pengolahan serial, yang
menggambarkan kenyataan bahwa para pengguna memiliki akses ke komputer secara
seri.
2.3.2 Sistem Batch Sederhana
Mesin
– mesin lama sangat mahal sehingga sangat
penting untuk memaksimalkan utilisasi. Waktu yang terbuang akibat
penjadwalan dan set up tidak dapat diterima.
Untuk meningkatkan
utilisasi, di buat konsep sistem operasi batch. Konsep ini muncul pertama
kalinya pada pertengahan 1950-an dan dibuat oleh General Motor untuk digunakan
pada IBM 701 [WEIZ81]. Selanjutnya konsep tersebut disempurnakan dan
diimplementasikan pada IBM 704 oleh beberapa pelanggan IBM.
Inti gagasan yang berada
di balik teknik sistem operasi batch adalah penggunaan potongan software yang
dikenal sebagai monitor. Untuk memahami cara kerjanya, kita akan memandangnya
dari dua sudut, yaitu sudut pandang monitor dan sudut pandang prosesor.
•
Dari sudut pandang monitor, monitorlah yang mengontrol rangkaian event. Agar
pengontrolan itu dapat terjadi, banyak monitor yang selalu berada di memori utama
dan dapat digunakan untuk eksekusi (Gambar 2.3). Bagian monitor yang berada di
memori utama dikenal sebagai resident monitor. Bagian monitor lainnya terdiri dari
utilitas dan fungsi umum yang dimuatkan sebagai subroutine ke program pengguna
pada awal job yang membutuhkan utilitas dan fungsi tersebut. Monitor membaca job satu per satu dari perangkat input (biasanya sebuah pembaca kartu atau penggerak pita magnetik). Pada saat dibaca, job itu akan ditempatkan di daerah program pengguna, dan kontrol diberikan ke job tersebut. Apabila job telah selesai, kontrol dikembalikan ke monitor, yang kemudian akan membaca job berikutnya. Hasil setiap job akan dicetak dan dikirimkan ke pengguna.
pengontrolan itu dapat terjadi, banyak monitor yang selalu berada di memori utama
dan dapat digunakan untuk eksekusi (Gambar 2.3). Bagian monitor yang berada di
memori utama dikenal sebagai resident monitor. Bagian monitor lainnya terdiri dari
utilitas dan fungsi umum yang dimuatkan sebagai subroutine ke program pengguna
pada awal job yang membutuhkan utilitas dan fungsi tersebut. Monitor membaca job satu per satu dari perangkat input (biasanya sebuah pembaca kartu atau penggerak pita magnetik). Pada saat dibaca, job itu akan ditempatkan di daerah program pengguna, dan kontrol diberikan ke job tersebut. Apabila job telah selesai, kontrol dikembalikan ke monitor, yang kemudian akan membaca job berikutnya. Hasil setiap job akan dicetak dan dikirimkan ke pengguna.
•
Sekarang kita perhatikan rangkaian event itu dari
sudut pandang prosesor. Pada
suatu saat tertentu, prosesor mengeksekusi instruksi yang berasal pada bagian memori utama yang berisi monitor. Instruksi-instruksi ini menyebabkan job berikutnya dibacakan ke bagian memori utama lainnya. Sekali job telah dibaca, prosesor akan menemukan di dalam monitor sebuah instruksi pencabangan yang menginstruksikan prosesor untuk melanjutkan eksekusi di awal program pengguna. Kemudian prosesor akan mengeksekusi instruksi yang berada di dalam program pengguna sampai prosesor itu menemukan akhir program atau kondisi error. Salah satu dari kedua event itu akan menyebabkan prosesor membaca instruksi berikutnya dari program monitor. Karena itu, frasa "kontrol dikirimkan ke job" berarti bahwa sekarang prosesor mengambil dan mengeksekusi instruksi pada sebuah program pengguna, dan "kontrol dikembalikan ke monitor" berarti bahwa sekarang prosesor mengambil dan mengeksekusi instruksi yang berasal dari program monitor.
suatu saat tertentu, prosesor mengeksekusi instruksi yang berasal pada bagian memori utama yang berisi monitor. Instruksi-instruksi ini menyebabkan job berikutnya dibacakan ke bagian memori utama lainnya. Sekali job telah dibaca, prosesor akan menemukan di dalam monitor sebuah instruksi pencabangan yang menginstruksikan prosesor untuk melanjutkan eksekusi di awal program pengguna. Kemudian prosesor akan mengeksekusi instruksi yang berada di dalam program pengguna sampai prosesor itu menemukan akhir program atau kondisi error. Salah satu dari kedua event itu akan menyebabkan prosesor membaca instruksi berikutnya dari program monitor. Karena itu, frasa "kontrol dikirimkan ke job" berarti bahwa sekarang prosesor mengambil dan mengeksekusi instruksi pada sebuah program pengguna, dan "kontrol dikembalikan ke monitor" berarti bahwa sekarang prosesor mengambil dan mengeksekusi instruksi yang berasal dari program monitor.
Jelas bahwa monitor menangani masalah
penjadwalan. Suatu batch job diantrikan, dan job dieksekusi secepat
mungkin, dengan tanpa waktu idle. Bagaimana dengan waktu set up job?
Monitor juga menangani masalah ini. Pada setiap job, instruksi dimasukkan ke dalam
bentuk primitif job
control language (JCL). JCL merupakan
bahasa pemrograman.
Monitor mengandalkan kemampuan prosesor dalam
membaca instruksi dari berbagai bagian memori utama agar secara bergantian
mengambil dan melepaskan control. Feature hardware lain yang juga dibutuhkan :
o Proteksi
memori : pada saat program pengguna sedang mengeksekusi, program tersebut tidak
boleh mengubah daerah memori yang berisi monitor. Apabila terjadi pengubahan
daerah tersebut, hardware prosesor akan mendeteksi adanya error dan memindahkan
kontrol ke monitor. Kemudian monitor akan menggagalkan job, mencetak pesan
error, dan memuatkan job berikutnya.
o timer :
sebuah timer akan digunakan untuk mencegah terjadinya sebuah job yang
memonopoli sistem. Timer disetel setiap awal job. Apabila timer telah habis
masanya akan terjadi interrupt, dan control akan dikembalikan ke monitor.
o Privileged
Instructions : instruksi-instruksi tertentu ditandai privileged dan hanya bisa
dieksekusi oleh monitor. Apabila pada saat sedang mengeksekusi program
pengguna, prosesor menemukan instruksi seperti itu, akan terjadi error
interrupt. Salah satu privileged instructions adalah instruksi-instruksi I/O,
karena itu monitor menjaga control seluruh program I/O. Hal tersebut deapat
mencegah, misalnya, program pengguna yang secara tidak sengaja membaca job control
instruction dari job berikutnya. Apabila program pengguna akan melakukan
operasi I/O program tersebut harus meminta monitor untuk melakukan operasi
itu.Apabila Prifileged instruction ditemukan oleh processor pada saat sedang
mengeksekusi sebuah program pengguna, hardware processor menganggapnya sebagai sebuah
error dan kemudian memindahkan control ke monitor.
o Interrupt :
Model computer lama tidak memiliki kemampuan ini. Featur ini menyebabkan sistem
menjadi lebih fleksibel dalam melepaskan kontrolnya ke program pengguna dan
memperoleh kembali control tersebut dari program pengguna.
Dengan
memakai sistem operasi batch, waktu mesin secara bergantian melakukan eksekusi
program pengguna dan eksekusi program monitor.Disini terdapat dua pengorbanan :
sebagian memori utama diberikan kepada monitor dan sebagian waktu mesin dipakai
oleh monitor. Kedua pengorbanan tersebut merupakan bentuk-bentuk overhead.
Walaupun adanya overhead tersebut, sistem batch sederhana akan meningkatkan
utilisasi computer.
2.3.3 Sistem
Batch Multiprogrammed
Walaupun
dengan menggunakan pengurutan program secara otomatik yang dihasilkan oleh
sistem operasi batch sederhana, prosesor masih sering dalam keadaan idle.
Masalahnya adalah perangkat-perangkat I/O cukup lambat apabila dibandingkan
dengan kecepatan prosesor.
Kalkulasi tersebut menunjukkan sebuah program
yang memproses sebuah file record dan secara rata-rata melakukan 100 instruksi
mesin per detik. Dalam contoh ini computer mengeluarka 96% waktunya untuk
menunggu perangkat-perangkat I/O dalam melakukan pemindahan data. Prosesor
membutuhkan jumlah waktu tertentu untuk melakukan eksekusi, sampai prosesor itu
menemukan instruksi I/O. Kemudian prosesor menunggu sampai instruksi I/O
tersebut selesai sebelum melanjutkannya kembali.
Gambar
2.2 contoh multiprogramming
2.3.4 Sistem Time
Sharing
Dengan
menggunakan multiprogramming, pengolahan batch dapat menjadi efisien. Akan
tetapi, untuk job yang jumlahnya banyak, sangat diperlukan suatu mode dimana
pengguna dapat berinteraksi secara langsung dengan computer. Bahkan, bagi
beberapa job, misalnya pengolahan transaksi, mode interaktif merupakan suatu
hal yang penting.
Saat ini, persyaratan fasilitas komputasi interaktif
dapat dipenuhi dengan pemakaian computer terdedikasi. Option tersebut tidak
tersedia pada 1960-an, karena saat itu sebagian computer berukuran besar dan
sangat mahal, sehingga dibuat time sharing.
Table 2.1. Batch Multiprograming versus Time Sharing
Batch Multiprogramming
|
Time Sharing
|
|
Tujuan utama
|
Memaksimalkan pemakaian
|
Meminimalkan waktu respon
|
Sumber instruksi-instruksi ke sistem operasi
|
Instruksi-instruksi job control yang menyediakan perintah dengan job
|
Perintah-perintah yang dimasukkan pada terminal
|
Time sharing dan multiprogramming menimbulkan masalah baru
pada sistem operasi. Apabila terdapat sejumlah job di dalam memori, job-job itu
harus diproteksi agar saling mengganggu satu dengan yang lainnya, misalnya
dengan saling mengubah data. Untuk pengguna interaktif yang berjumlah banyak,
sistem file harus diproteksi sehingga hanya pengguna yang berhak memiliki akses
ke file tertentu. Persaingan untuk mendapatkan sumber daya, misalnya printer
dan mass storage device, harus dapat ditangani dengan baik
2.4 Hasil – Hasil Utama
System operasi merupakan salah satu software yang paling kompleks.
Kompleksitas ini menggambarkan tantangan untuk mengatasi kesulitan dan beberapa
hal merupakan persaingan agar dapat memenuhi tujuan-tujuan kemudahan,
efisiensi, dan kemampuanntuk berkembang. [ DENN 80a] berpendapat bahwa terdapat
lima perolehan
intelektual dalam pengembangan system operasi.
o
Proses
o
Manajemen memori
o
Proteksi informasi dan keamanan
o
Penjadwalan dan manajemen sumber daya
o
Struktur sistem
Setiap perolehan di atas ditandai oleh prinsip-prinsip atau abstraksi,
yang dikembangkan untuk mengatasi masalah kesulita dalam praktik. Dengan
menggabungkannya, kelima bidang tersebut akan mendapatkan rancangan penting dan
masalah-masalah implementasi sistem operasi modern.
2.4.1 Proses
Konsep proses sangat penting bagi struktur sistem
operasi. Istilah ini untuk pertama kali digunakan oeh para perancang Multics
pada 1960-an. Proses adalah istilah yang lebih bersifat umum dibanding job.
Banyak definisi yang diberikan untuk istilah proses, diantaranya
o
Progaram yang sedang dieksekusi
o
“jiwa yang dianimasikan” sebuah program
o
Entity yang dapat di-assign ke prosesor dan dapat dieksekusi pada prosesor.
o
Suatu unit dari karakteristik oleh sekuensial (
thread tunggal pada eksekusi, stack langsung, dan kumpilan set pada
sumber-sumber sistem).
Tiga arah perkembangan sistem komputer telah menciptakan masalah dalam timeran dan
sinkroisasi yang berkontribusi terhadap perkembangan konsep proses multi
programming batch operation, time-sharing, dan transaksi real time. Seperti
telah kita ketahui, multi programming dirancang untuk menjaga agar proses dan
perangkat I/O, termasuk perangkat penyimpan, tetap dalam keadaan sibuk untuk
memperoleh efisiensi yang maksimum. Mekanisme kuncinya dalam hal ini: Dalam
memberiakan respon ke signa-signal yang mengindikasikan selesainya transaksi I
/O, prosesor dipindahkan ke bermacam-macam program yang berada di dalam memori
utama.
Arah perkembangan yang kedua adalah general-purpose
time-sharing. Di sini tujuan rancangan yang utama adalah agar responsif
terhadap kebutuan para pengguna dan saat ini, dengan alasan biaya, harus mampu
mendukung para pengguna yang berjumlah banyak secara simultan. Tujuan ini cukup
bersesuaian karena relatif lambatnya waktu reaksi pengguna. Misalnya, apabila
umumnya seorang pengguna membutuhkan rata-rata dua detik waktu pengolahan per
menit, hampir 30 pengguna seperti itu dapat menggunakan sistem bersama-sama
tanpa gangguan ang berarti. Tentu saja, overhead sistem operasi harus di
perhitungkan.
Arah perkembangan penting lainnya adalah transaction
processing system. Dalam hal ini, sejumlah pengguna melakukan query atau update
terhadap sebuah database. Sebagai contoh adalah sistem pemesanan tiket pesawat
terbang. Perbedaan utama antara transaction processing system dengan
time-sharing system adalah bahwa transaction processing system hanya terbatas
pada sebuah aplikasi atau beberapa aplikasi, sedangkan para pengguna
time-sharing system dapat berkaitan dengan pengembangan program, eksekusi job,
dan penggunaan bermacam-macam aplikasi. Pada kedu sistem tersebut, waktu
respons sistem merupakan hal yang terpenting.
Sebuah tool yang disediakan bagi para pemrogaram
sistem dalam masa perkembangan sistem multi programming dan sistem interaktif
multiguna adalah interupt. Aktivitas suatu job dapat dihentikan dengan
terjadinya suatu event tertentu, misalnya selesainya waktu I / O. Prosesor akan
beberapa konteks (misalnya, program counter dan register lainnya) dan beralih
ke routine interrup-handling, yang akan menentukan sifat interrup, memperoses
interrrupt, dan kemudian melanjutkan lagi pengolahan penguna pada job yang
diinterrupsi atau job-job lainnya.
Koordinasi berbagai aktivitas tersebut membuat
rancangan software sistem menjadi sangat sulit. Dengan banyaknya job yang
dilakukan dalam waktu bersamaan, setiap job itu melibatkan banyak langkah yang
harus dilaksanakan secara berurutan, maka semakin tidak mungkin untuk melakukan
analisis terhadap seluruh kemungkinan event-event yang mungkin terjadi. Apabila
alat untuk melakikan koordinasi dan kooperasi aktivitas yang sistematis tidak
ada, para perancang terpaksa menggunakan metode ad hoc yang didasarkan pada
pemahamannya tentang lingkungan yang harus dikontrol sistem operasi. Usaha
tersebut cukup berbahaya terhadap terjadinya error yang tidak terlihat dalam
pemrograman yang akibatnya hanya dapat diketehui apabila terdapat aksi-aksi
yang relatif jarang terjadi. Error seperti itu sangat sulit untuk dideteksi,
dan sangat sulit untuk menentukan sebabnya, karena kondisi yang tepat yang
menyebabkan error sangat sulit untuk ditirukan. Secara umum, terdapat empat
sebab utama terjadinya error seperti itu [DENN0-80a]:
o
Sinkronisasi
yang salah : sering kalimdijumpai masalah dimana sebuah routine harus
terhenti karena menunggu suatu event. Misalnya, sebuah program menginisiasi pembacaan
I/O dan harus menunggu sampai data tersedia di dalam buffer sebelum dapat
melanjutkan kembali pembacaan tersebut. Dalam kasus seperti itu, diperlukan
signal yang berasal dari routine lainnya. Perancangan mekanisme pensignalan
yang tidak tepat dapat menghilangkan hilangnya signal atau diterimanya signal
duplikat.
o
Mutual
exclusion yang gagal : sering kali dijumpai kasus dimana lebih dari seorang
atau program yang berusaha untuk menggunakan sumber daya yang dapat digunakanb
bersama pada saat yang sama. Mislnya, pada sistem pemesanan tiket pesawat
terbang, dua pengguna dapat berusaha untuk database dan, apabila tempat duduk
masih tersedia, akan meng-update
database untuk melakukan pemesanan tempat duduk. Apabila acces seperti itu
tidak dikontrol, akan terjadi error. Di sini harus ada mekanisme mutual exclusion seperti itu akan sulit
ditentukan di bawah semua rangkaian event yang mungkin terjadi.
o
Operai
program nondeterminate : di dalam sistem bagi-pakai,hasil suatu program
tertentu biasanya hanya bergantung pada input ke program tersebut dan tidak
bergantung pada aktivitas program lainnya. Namun, pada saat program menggunakan
memori bagi-pakai dan eksekusinya dilakukan secara bergiliran oleh prosesor,
program itu dapat tergantung oleh program lainnya dengan menindih daerah memori
umum dengan cara yang tidak dapat diduga.
o
Deadlock
: dimungkinkan dua program atau lebih akan terhenti karena satu program dengan program lainnya saling menunggu.
Misalnya, dua progarm yang masing-masing memerlukan dua perangkat I/O melakukan
beberapa operasi (misalnya menyalin dari disk ke pita). Salah satu program
memegang salah satu perangkat tersebut dan program lainnya memiliki kontrol
perangkat lainnya. Masing-masing program akan menunggu program lainnya untuk
melepaskan sumber daya yang diinginkannnya. Deadlock seperti itu akan
bergantung pada timeran kesempatan alokasi sumber daya dan pelepasannya.
Proses dapat kita anggap memiliki tiga komponen yaitu:
o
Program yang executable
o
Data terkait yang diperlukan oleh program ( variabel,
ruang kerja, buffer, dan lain-lain).
o
Konteks eksekusi program tersebut.
Konteks eksekusi merupakan
elemen yang sangat penting. Konteks eksekusi meliputi seluruh informasi yang
diperlukan oleh sistem operasi untuk mengatur proses dan yang diperlukan prosesor
untuk mengeksekusi proses secara benar. Jadi, konteks meliputi isi
bermacam-macam register prosesor, seperti program counter dan register data.
Konteks juga mencakup informasi penggunaan pada sistem operasi, misalnya
priorotas proses dan apakah suatu proses sedang menunggu selesainya suatu event
I/O tertentu atau tidak.
2.4.2
Manajemen Memori
Para pengguna membutuhkan lingkungan komputasi yang
mendukung pemrograman modular dan pemakaian data yang fleksibel. Manajer sistem
memerlukan pengontrolan alokasi penyimpanan yang efisien. Untuk memenuhi
kebutuhan tersebut, sistem operasi memiliki lima tanggung jawab penting manajemen
penyimpanan.
o
Isolasi proses : sistem operasi harus mencegah
agar proses independen tidak saling menganggu data dan memori.
o
Alokasi otomatis dan manajemen : program harus
secara dinamis dialokasikan ke dalam hierarki memori apabila diperlukan.
Alokasi harus tidak dapat dirasakan oleh pemrogram. Jadi, pemrogram dibebaskan
dari pekerjaan yang berkaitan dengan keterbatasan memori, dan sistem operasi
dapat mencapai efisiensi dengan meng-assign
memori ke job-job hanya apabila diperlukan.
o
Dukungan pemrograman modular : pemrogram harus
mampu membuat dan menghapus modul-modul program, serta mengubah ukuran modul
secara dinamis.
o
Proteksi dan control acces : penggunaan memori
secara bersama-sama, pada sembarang tingkat hierarki memori, akan memungkinkan
sebuah program menunjuk sebuah program lainnya. Kadang-kadang hal tersebut
diperlukan, apabila bagi-pakai diperlukan oleh aplikasi tertentu.
o
Penyimpanan jangka lama : banyak pengguna dan
aplikasi memerlukan cara penyimpanan informasi dalam waktu yang cukup lama.
Umumnya, sistem operasi memenuhi dengan menggunakan
fasilitas virtual memori dan sistem file. Sistem file menerapkan penyediaan
jangka panjang, dengan susunan penyimpanan informasi dalam nama objek, disebut
file. File ini menggantikan konsep untuk programmer dan merupakan unit yang
berfungsi sebagai kontrol akses dan melindungi sistem operasi. Sistem file
mengimplementasikan penyimpanan jangka lama, dengan informasi yang disimpan di
dalam objek yang memiliki nama yang disebut file. File ini merupakan konsep
dasar yang memudahkan pemrogram dan juga unit pengontrol access dan proteksi
bagi sistem operasi.
Memori virtual adalah suatu fasilitas yang
memungkinkan program menunjuk memori berdasarkan sudut pandang logika, tanpa
mempertimbangkan jumlah memori utama yang tersedia secara fisik. Pada saat
suatu program sedang melakukan eksekusi, bagian lain dari program tersebut
disimpan di dalam blok-blok pada disk. Berikut ini merupakan gambar
pengalamatan virtual memori.
Gambar 2.3 Pengalamatan Memori Virtual
2.4.3 Proteksi Informasi dan Keamanan
Semakin meningkatnya pemakaian
sistem time-sharing dan jaringan kerja komputer telah menyebabkan peningkatan
perhaitan terhadap proteksi informasi. Sifat ancaman terhadap organisasi sangat
bervariasi. Namun, terdapat beberapa generasi purpose tool yang dapat
dimasukkan ke dalam komputer dan sistem operasi yang mendukung bermacam-macam
mekanisme proteksi dan keamanan. Secara umum kita berkepentingan dengan masalah
pengontrolan akses ke sistem dan informasi yang tersimpan di dalamnya. Sebagian
besar pekerjaan dalam keamanan dan proteksi yang berhubungan dengan sistem
operasi dapat dikelompokkan menjadi tiga kategori, sebagai berikut.
o
Pengontrolan akses : berkaitan dengan pengaturan
akses pengguna ke sistem keseluruhan, subsistem, dan data, serta pengaturan
akses proses ke berbagai sumber daya dan objek yang terdapat di dalam sistem.
o
Pengontrolan aliran informasi : mengatur aliran
data di dalam sistem dan pengantarannya ke para pengguna.
o
Sertifikasi : berkaitan dengan pembuktian bahwa
mekanisme akses dan aliran kontrol dilakukan sehubungan dengan spesifikasinya
dan bahwa mekanisme tersebut menerapkan kebijakan proteksi dan keamanan yang
diinginkan.
2.4.4 Penjadwalan dan Manajemen Sumber Daya
Tugas
utama sistem operasi adalah untuk mengatur sumber daya yang tersedia ( memori
utama, perangkat I/O, prosesor ) dan untuk menjadwalkan penggunaannya oleh
berbagai proses aktif. Setiap kebijakan alokasi sumber daya dan penjadwalan
memperhatikan tiga faktor berikut ini.
o
Keadilan : umumnya, kita menginginkan semua
proses yang bersaing untuk memperoleh sumber daya diberi akses yang hampir sama
dan adil ke sumber daya tersebut. Hal tersebut perlu terutama untuk job-job
yang kelasnya sama yaitu, job yang kebutuhannya sama dan di beri nilai sama.
o
Responsibilitas Diferensial : sistem operasi
perlu membedakan kelas-kelas job-nya dengan persyaratan layanan yang berbeda.
Sistem operasi harus berusaha untuk melakukan keputusan tentang alokasi dan
penjadwalan yang memenuhi persyaratan secara umum. Sistem operasi perlu
memandang keputusan ini secara dinamis. Misalnya, apabila sebuah proses
menunggu sebuah perangkat I/O, sistem operasi perlu menjadwalkan proses tersebut
untuk melakukan eksekusi secepat mungkin agar membebaskan perangkat untuk
keperluan proses lainnya.
o
Efisiensi : di dalam kendala keadilan dan
efisiensi, sistem operasi harus berusaha untuk memaksimalkan throughput,
meminimalkan waktu respons, dan dalam kasus time-sharing, mengakomodasi
pengguna sebanyak mungkin.
Pada dasarnya, penjadwalan dan manajemen sumber daya
merupakan masalah penelitian sistem operasi dan hasil matematika disiplin itu
dapat diterapkan. Selain itu, ukuran aktivitas sistem penting untuk dapat
memonitor kinerja dan membuat penyesuaian.
2.4.5 Struktur Sistem
Dengan semakin banyaknya feature yang ditambahkan ke
sistem operasi, dan semakin kompleks dan beraneka ragam hardware, ukuran dan
kompleksitas sistem operasipun semakin berkembang. CTSS, yang dioperasikan di
MIT pada 1963, terdiri dari hampir 32.000 word penyimpan 36 bit. OS 360, yang
diperkenalkan setahun kemudian oleh IBM, memiliki lebih dari sejuta instruksi
mesin. Pada 1975, sistem Multics, yang dibuat oleh MIT dan Bell Laboratories,
telah berkembang menjadi lebih dari 20n juta instruksi. Adalah benar bahwa
semakin lama, sistem operasi yang sederhana telah digunakan untuk sistem yang
lebih kecil, namun sistem operasi tersebut telah berkembang semakin kompleks
sesuai dengan semakin kompleksnya hardware dan perkembangan permintaan
pengguna. Jadi, UNIX saat ini jauh lebih kompleks dibandingkan seluruh sistem
mainan yang dibuat oleh para pemrogram berbakat pada awal 1970-an, dan MS-DOS
sederhana telah memberikan alan bagi OS/2 dan Windows 95 yang sangat kompleks.
Ukuran sistem operasi dengan feature-nya, dan
kesulitan tugas yang harus dilakukan. Kedua, sistem memiliki bug-bug laten yang
muncul dalam praktik dan harus diperbaiki. Ketiga, kinerja sering sekali
terjadi tidak sesuai dengan yang diharapkan.
Untuk mengatur kompleksitas sistem operasi dan untuk
mengatasi masalah tersebut, telah banyak perhatian yang diberikan terhadap
struktur software sistem operasi selama bertahun-tahun. Beberapa hal telah
jelas. Software harus bersifat modular. Modularitas ini akan membantu dalam
mengorganisasikan proses pembuatan software dan membatasi pekerjaan diagnosis
dan perbaikan error. Modul harus memiliki interface satu dengan yang lainnya
dan harus dibuat sesederhana mungkin. Hal ini akan memudahkan pemrograman.
Interface seperti itu juga akan memudahkan terjadinya evolusi sistem. Dengan
interface antar modul yang bersih dan minimal, sebuah modul dapat diubah dengan
sedikit dampak terhadap modul lainnya.
Bagi sistem operasi yang besar, yang terdiri mulai
dari ratusan ribu hingga jutaan baris, pemrograman modular saja tidaklah cukup.
Terdapat peningkatan pemakaian konsep lapisan hierarki dan abstraksi informasi.
Struktur hierarki sebuah sistem operasi modern membedakan fungsi-fungsi
berdasarkan kompleksitasnya, skala waktu karakteristiknya, dan tingkatan
abstraksinya. Kita dapat memandang sistem sebagai susunan tingkatan. Setiap
tingkatannya melakukan subset fungsi tertentu yang dilakukan oleh sistem
operasi. Lapisan tersebut bergantung pada lapisan berikutnya yang lebih rendah
dalam melakukan fungsinya yang lebih primitif dan untuk menyembunyikan detail
fungsi tersebut. Lapisan tertentu memberikan layanan bagi lapisan lainnya yang
lebih tinggi. Idealnya, suatu tingkatan harus ditentukan sehingga perubahan
pada satu tingkatan tidak memerlukan perubahan pada tingkatan lainnya. Dengan
demikian kita telah memecah suatu masalah menjadi sejumlah sub-masalah yang
lebih dapat diatur.
2.4 Tabel Hierarki Rancangan Sistem Operasi
Tingkat
|
Nama
|
Objek
|
Contoh
Operasi
|
13
|
Shell
|
Lingkungan
pemrograman
|
Pernyataan
di dalam bahasa
|
pengguna
|
shell
|
||
12
|
Proses pengguna
|
Proses
pengguna
|
Quit,kill,suspende,resume
|
11
|
Direktori
|
Direktori
|
Create,destroy,attach,detach,
|
search,list
|
|||
10
|
Perangkat
|
Perangkat
eksternal
|
Create,destroy,open,
close
|
misalnya
printer,read,write
|
|||
display,
dan keyboard
|
|||
9
|
Sistem file
|
File
|
Create,destroy,open,
close,
|
read,write
|
|||
8
|
Komunikasi
|
Pipe
|
Create,destroy,open,
close,
|
read,write
|
|||
7
|
Memori virtual
|
Segmen,page
|
read,write,fetch
|
6
|
Penyimpan
|
Blok
data, saluran sekunder
|
read,write,fetch,allocate
|
lokal
perangkat
|
|||
5
|
Proses Primitive
|
Proses
Primitive, semaphore,
|
suspend,resume,wait,signal
|
ready
list
|
|||
4
|
Interrupt
|
Program
Intrrrupt-handling
|
Invoke,mask,unmask,retry
|
3
|
Prosedure
|
Prosedure,pemanggilan
stack,
|
Tandai
stack,call,return
|
display
|
|||
2
|
Set instruksi
|
Stack
evaluasi, interpreter
|
Load,store,add,substract
|
mikroprogram,dan
branch skalar
|
|||
dan
array
|
|||
1
|
Rangkaianelektronik
|
Register,gate,bus,dan
lain-lain
|
clear,
transfer, activate,
|
complement
|
2.5 Karakteristik Sistem Operasi Modern
Selama
beberapa tahun, telah terjadi evolusi gradual struktur dan kemampuan sistem
operasi. Namun, dalam beberapa tahun terakhir ini sejumlah elemen-elemen
rancangan yang baru telah diperkenalkan baik ke dalam sistem operasi yang baru
maupun versi baru sistem operasi yang telah ada untuk membuat perubahan besar
dalam sifat sistem operasi. Sistem operasi yang baru ini merupakan jawaban bagi
perkembangan baru di dalam hardware dan aplikasi baru. Salah satu diantara
driver hardware yang penting adalah mesin multiprosesor, yang kecepatannya
sangat meningkat, penyambungan jaringan kerja yang berkecepatan tinggi, dan
peningkata ukuran bermacam-macam perangkat penyimpan memori. Di bidang
aplikasi, aplikasi multimedia, akses internet dan web, dan komputasi
client/server telah memberikan paengaruhnya terhadap rancangan sistem operasi.
Kecepatan perubahan dalam
kebutuhan akan sistem operasi tidak hanya memerlukan modifikasi atau perbaikan
arsitektur yang telah ada saja, namun cara-cara baru mengorganisasikan sistem
operasi. Berbagai pendekatan dan elemen rancangan telah dicoba baik pada sistem
operasi eksperimental maupun sistem operasi komersial. Namun pendekatan dan
elemen rancangan itu pada dasarnya dapat digolongkan menjadi:
o
Arsitektur microkernel
o
Multithreading
o
Multiprocessing simetris
o
Sistem operasi terdistribusi
o
Rancangan berorientasi objek
Sampai saat ini, sebagian besar sistem operasi
berfeature kernel monolotik berukuran besar. Umumnya apa yang dianggap sebagai
fungsionalitas sistem operasi disediakan did ala kernel-kernel yang besar ini,
termasuk diantaranya penjadwalan, sistem file, jaringan kerja, driver-driver
perangkat, manajemen memori, dan lain-lain. Arsitektur microkernel hanya meng-assign beberapa fungsi penting saja ke
kernel, termasuk di antaranya ruang alamat, interprocess communication (IPC),
dan penjadwalan dasar. Layanan OS lainnya disediakan oleh proses, kadang-kadang
disebut server, yang beroperasi pada mode pengguna dan diperlukan seperti
aplikasi lainnya oleh microkernel. Pendekatan ini menggabungkan kernel dan
pengembangan server. Server dapat disesuaikan dengan aplikasi atau persyaratan
lingkungan tertentu. Pendekatan microkernel menyederhanakan implementas,
memberikan fleksibilitas, dan sangat cocok untuk lingkungan terdistribusi. Pada
dasarnya, microkernel berinteraksi dengan proses server lokal dan jauh (remote)
dengan cara yang sama, yang memberikan fasilitas pembentuk sistem terdistribusi.
Multithreading adalah
teknik dimana suatu proses, yang mengeksekusi aplikasi, dibagi menjadi
thread-thread yang dapat berjalan secara bersamaan. Kita dapat membedakan
antara proses dengan thread seperti berikut ini:
o
Thread : satuan
kerja yang dapat dikirimkan. Thread melakukan eksekusi secara sekuential dan
dapat diinterupsi sehingga prosesor dapat beralih ke thread lainnya. Dari sudut
pandang penjadwalan dan pengiriman, konsep ini ekuivalen dengan proses yang
terdapat pada sebagian besar sistem operasi lainnya.
o
Proses :
kumpulan sebuah thread atau lebih darii sumber daya yang terkait (seperti
memori, file terbuka, dan perangkat). Proses berkaitan erat dengan konsep suatu
program dalam eksekusi. Dengan memecah sebuah aplikasi menjadi sejumlah thread,
pemrogram memiliki control yang besar terhadap modularitas aplikasi dan timeran
event-event yang berkaitan dengan aplikasi. Dari sudut pandang job atau
aplikasi, konsep ini ekuivalen dengan konsep tentang proses pada sebagian besar
sistem operasi lainnya.
Daftar Pustaka
ANANG92 Ananda.A., Tay.B..dan Koll,E.-“A Survey Of
Asynchronous Remote Procedure
Calls”.Operating System Review, April 1992.
ARTS89a Artsy,Y.,ed. Special Issue on Process
Migration. Newsletter of the IEEE
Computer SocietyTechnical Committee on Operating Systems, Winter 1989
0 comments:
Post a Comment