BAGIAN
1 KONSEP DASAR PERANGKAT KOMPUTER
Sistem operasi 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.
Sejarah perkembangan
Arsitektur
perangkat keras komputer tradisional terdiri dari empat komponen utama yaitu
"Prosesor",
"Memori Penyimpanan", "Masukan" (Input), dan
"Keluaran" (Output). Model
tradisional
tersebut sering dikenal dengan nama arsitektur von Neumann (Gambar 1.2, “Arsitektur
Komputer von
Neumann”). Pada saat awal, komputer berukuran sangat besar sehingga
komponen-komponennya
dapat memenuhi sebuah ruangan yang sangat besar. Sang pengguna --
menjadi
programer yang sekali gus merangkap menjadi menjadi operator komputer -- juga
bekerja
di dalam ruang
komputer tersebut.
Alasan
mempelajari sistem operasi
Hal yang paling
terlihat secara kasat mata ialah perubahan (pengecilan) fisik yang luar biasa. Penggunaan
memori dan disk pun meningkat dengan tajam, terutama setelah multimedia mulai dimanfaatkan
sebagai antarmuka interaksi. Saat dahulu, setiap arsitektur komputer memiliki
sistem operasinya yang tersendiri. Jika dewasa ini telah terjadi penciutan arsitektur
yang luar biasa, dengan sendirinya menciutkan jumlah variasi sistem operasi.
Hal ini ditambah dengan trend sistem operasi yang dapat berjalan diberbagai
jenis arsitektur. Sebagian dari pembaca yang budiman mungkin mulai bernalar:
mengapa hari gini (terpaksa) mempelajari sistem operasi?! Secara pasti-pasti, dimana
relevansi dan "job (duit)"-nya?Terlepas dari perubahan
tersebut di atas; banyak aspek yang tetap sama seperti dahulu. Komputer abad
lalu menggunakan model arsitektur von-Neumann, dan demikian pula model komputer
abad ini. Aspek pengelolaan sumber daya sistem operasi seperti proses, memori,
masukan/keluaran (m/k), berkas, dan seterusnya masih menggunakan
prinsip-prinsip yang sama. Dengan sendirinya, mempelajari sistem operasi masih
tetap serelevan abad lalu; walaupun telah terjadi berbagai perubahan fisik.
Hak kekayaan Intelektual
(IPR). Istilah
tersebut terdiri dari tiga kata kunci yaitu: ''Hak'', ''Kekayaan'' dan
''Intelektual''. Kekayaan merupakan abstraksi yang dapat: dimiliki, dialihkan,
dibeli, maupun dijual. Sedangkan ''Kekayaan Intelektual'' merupakan kekayaan
atas segala hasil produksi kecerdasan daya pikir seperti teknologi,
pengetahuan, seni, sastra, gubahan lagu, karya tulis, karikatur, dan
seterusnya. Terakhir, ''Hak Kekayaan Intelektual'' (HKI) merupakan hak-hak (wewenang/kekuasaan)
untuk berbuat sesuatu atas Kekayaan Intelektual tersebut, yang diatur oleh norma-norma
atau hukum-hukum yang berlaku.
HKI
perangkat lunak
perangkat lunak,
sangat umum perusahaan besar memiliki portfolio paten yang berjumlah ratusan,
bahkan ribuan. Sebagian besar perusahaan-perusahaan ini memiliki perjanjian
cross-licensing, artinya Saya izinkan anda menggunakan paten saya asalkan saya
boleh menggunakan paten anda. Akibatnya hukum paten pada industri perangkat
lunak sangat merugikan perusahaan-perusahaan kecil yang cenderung tidak
memiliki paten. Tetapi ada juga perusahaan kecil yang menyalahgunakan hal ini.
Misalnya Eolas yang mematenkan teknologi plug-in pada web browser. Untuk kasus
ini, Microsoft tidak dapat menyerang balik Eolas, karena Eolas sama sekali
tidak membutuhkan paten yang dimiliki oleh Microsoft. Eolas bahkan sama sekali
tidak memiliki produk atau layanan, satu-satunya hal yang dimiliki Eolas
hanyalah paten tersebut. Oleh karena itu, banyak pihak tidak setuju terhadap
paten perangkat lunak karena sangatmerugikan industri perangkat lunak. Sebuah
paten berlaku di sebuah negara. Jika sebuah perusahaan ingin patennya berlaku
di Negara lain, maka perusahaan tersebut harus mendaftarkan patennya di negara
lain tersebut. Tidak seperti hak cipta, paten harus didaftarkan terlebih dahulu
sebelum berlaku.
Perangkat Keras
Komputer
Hirarki
Storage
1.
Register
2.
Cache
3.
RAM
4.
Extension Memory
5.
Magnetik disk
6.
Optical Disk
7.
Magnetic Tapes
BAGIAN
2 KONSEP DASAR SISTEM OPERASI
Komponen Sistem Operasi
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:
• Managemen
Proses.
• Managemen
Memori Utama.
• Managemen
Berkas.
• Managemen
Sistem Masukan/Keluaran.
• Managemen
Penyimpanan Sekunder.
• Sistem
Proteksi.
• Jaringan.
• Command-Interpreter
System.
Sedangkan
menurut A.S. Tanenbaum, sistem operasi mempunyai empat komponen utama, yaitu:
• Managemen
proses,
•
Masukan/Keluaran
• Managemen
Memori, dan
• Sistem Berkas.
Fungsi dari komponen sistem operasi
1. Managemen
Proses adalah Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang
berkaitan dengan managemen proses
seperti:
• Membuat dan
menghapus proses pengguna dan sistem proses.
• Menunda atau
melanjutkan proses.
• Menyediakan
mekanisme untuk proses sinkronisasi.
• Menyediakan
mekanisme untuk proses komunikasi.
• Menyediakan
mekanisme untuk penanganan deadlock.
2. Managemen
Memori Utama adalah Sistem operasi bertanggung-jawab atas aktivitas-aktivitas
yang berkaitan dengan managemen memori seperti:
• Menjaga track
dari memori yang sedang digunakan dan siapa yang menggunakannya.
• Memilih
program yang akan di-load ke memori.
3. Managemen
Berkas adalah Sistem operasi bertanggung-jawab dalam aktivitas yang berhubungan
dengan managemen berkas:
• Pembuatan dan
penghapusan berkas.
• Pembuatan dan
penghapusan direktori.
• Mendukung
manipulasi berkas dan direktori.
• Memetakan
berkas ke secondary-storage.
• Mem-back-up
berkas ke media penyimpanan yang permanen (non-volatile).
4. Managemen
Sistem Masukan/Keluaran adalah Komponen Sistem Operasi untuk sistem
Masukan/Keluaran:
• Penyangga:
menampung sementara data dari/ke perangkat Masukan/Keluaran.
• Spooling:
melakukan penjadualan pemakaian Masukan/Keluaran sistem supaya lebih efisien
(antrian dsb.).
• Menyediakan driver:
untuk dapat melakukan operasi rinci untuk perangkat keras
Masukan/Keluaran
tertentu.
5. Managemen
Penyimpanan Sekunder adalah Sistem operasi bertanggung-jawab atas
aktivitas-aktivitas yang berkaitan dengan managemen disk
seperti:
• free-space
management.
•
alokasi penyimpanan.
• penjadualan
disk.
6. Sistem Proteksi
Proteksi mengacu pada mekanisme
untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke
sistem sumber daya. Mekanisme proteksi harus:
• Membedakan antara penggunaan yang
sudah diberi izin dan yang belum.
• Menspesifikasi kontrol untuk
dibebankan/diberi tugas.
• Menyediakan
alat untuk pemberlakuan sistem.
7. Jaringan
Sistem
terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock.
Setiap prosesor mempunyai memori dan clock tersendiri. Prosesor-prosesor
tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan
akses pengguna ke bermacam sumber-daya sistem. Akses tersebut menyebabkan
peningkatan kecepatan komputasi dan meningkatkan kemampuan penyediaan data.
8. 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 terkadang dikenal sebagai shell. Command-Interpreter
System sangat bervariasi dari satu sistem operasi ke sistem operasi yang
lain dan disesuaikan dengan tujuan dan teknologi perangkat Masukan/Keluaran
yang ada. Contohnya: CLI, Windows, Pen-based (touch),
dan lain-lain.
Layanan
Sistem Operasi
1. Pembuatan
Program
2. Eksekusi
Program
3. Operasi
Masukan/Keluaran
4. Manipulasi
Sistem Berkas
5. Komunikasi
6. Deteksi
Error
System
Program
System
program menyediakan lingkungan yang memungkinkan
pengembangan program dan eksekusi berjalan dengan baik. Dapat dikategorikan:
•
Managemen/manipulasi berkas Membuat, menghapus, copy, rename, print,
memanipulasi berkas dan direktori.
• Informasi
status Beberapa program meminta informasi tentang tanggal, jam, jumlah memori
dan disk yang tersedia, jumlah pengguna dan informasi lain yang sejenis.
• Modifikasi
berkas Membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau
tape.
• Pendukung bahasa
pemrograman Kadang kala compiler, assembler, interpreter dari
bahasa pemrograman diberikan kepada pengguna
dengan bantuan sistem operasi.
• Loading dan
eksekusi program Ketika program di-assembly atau di-compile,
program tersebut harus di load ke dalam memori untuk dieksekusi. Untuk
itu sistem harus menyediakan absolute loaders, relocatable loaders,
linkage editors, dan overlay loaders.
• Komunikasi
Menyediakan
mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang berbeda.
Sehingga pengguna bisa mengirim pesan, browse web pages, mengirim
e-mail, atau mentransfer berkas.
BAGIAN
3 PROSES DAN PENJADUALAN
Pembuatan
Proses
Ketika sebuah proses membuat proses
baru maka terdapat dua kemungkinan dalam pelaksanaannya:
1. orang tua
proses tersebut berjalan secara konkuren dengan proses anaknya.
2. orang tua
proses tersebut menunggu hingga beberapa atau seluruh proses anakannya selesai.
Juga terdapat
dua kemungkinan dalam pemberian ruang alamat (address space) proses yang baru:
1. proses
tersebut merupakan duplikasi orang tuanya.
2. proses
tersebut memiliki program yang diload ke ruang alamatnya.
Terminasi
Proses
Suatu
parent dapat mengakhiri eksekusi salah satu children-nya untuk alasan-alasan
seperti:
• Child melampaui penggunaan
resource yang telah dialokasikan. Dalam keadaan ini, parent perlu
mempunyai mekanisme untuk memeriksa
status children-nya.
• Task yang ditugaskan kepada child
tidak lagi diperlukan.
• Parent berakhir dan sistem
operasi tidak memperbolehkan suatu child untuk tetap menjalankan
proses jika parent-nya sudah tidak
ada. Jadi, jika suatu proses berakhir, maka semua
children-nya juga harus
diterminasi. Fenomena yang disebut cascading termination ini biasanya
dimulai oleh sistem operasi.
Status
Proses
Bila sebuah
proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses mencerminkan
aktivitas atau keadaan dari proses itu sendiri. Berikut ini adalah
status-status yang
mungkin dimiliki
sebuah proses menurut Tanenbaum:
• Running:
pada saat menggunakan CPU pada suatu waktu.
• Ready:
proses diberhentikan sementara karena menunggu proses lain untuk dieksekusi.
• Blocked:
tidak dijalankan sampai event dari luar, yang berhubungan dengan proses
tersebut
terjadi.
Sedangkan
menurut Silberschatz, terdapat lima macam jenis status yang mungkin dimiliki
oleh
suatu proses:
• New:
status yang dimiliki pada saat proses baru saja dibuat.
• Running:
status yang dimiliki pada saat instruksi-instruksi dari sebuah proses
dieksekusi.
• Waiting:
status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses
M/K).
• Ready:
status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
• Terminated:
status yang dimiliki pada saat proses telah selesai dieksekusi.
Ada tiga kemungkinan bila sebuah
proses memiliki status running:
• Jika program telah selesai
dieksekusi maka status dari proses tersebut akan berubah menjadi
Terminated.
• Jika waktu yang disediakan oleh
OS untuk proses tersebut sudah habis maka akan terjadi
interrupt dan
proses tersebut kini berstatus Ready.
• Jika suatu event terjadi pada
saat proses dieksekusi (seperti ada request M/K) maka proses
tersebut akan
menunggu event tersebut selesai dan proses berstatus Waiting.
Process
Control Block
• Status proses:
status mungkin, new, ready, running, waiting, halted,
dan juga banyak lagi.
• Program
counter: suatu stack yang berisi alamat dari instruksi selanjutnya
untuk dieksekusi
untuk proses
ini.
• CPU
register: Register bervariasi dalam jumlah dan jenis, tergantung pada
rancangan komputer.
Register
tersebut termasuk accumulator, register indeks, stack pointer, general-purposes
register, ditambah code information pada kondisi apa pun. Beserta
dengan program counter, keadaan/status informasi harus disimpan
ketika gangguan terjadi, untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya
• Informasi
managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai
dari
dasar dan batas
register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan
oleh sistem operasi (lihat Bagian V, “Memori”).
• Informasi
pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan,
batas waktu,
jumlah akun jumlah job atau proses, dan banyak lagi.
• Informasi
status M/K: Informasi termasuk daftar dari perangkat M/K yang di gunakan pada
proses ini,
suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
• PCB hanya
berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari
proses
yang satu dengan
yang lain.
Hirarki
Proses
Sistem operasi
yang mendukung konsep proses harus menyediakan beberapa cara untuk membuat seluruh
proses yang dibutuhkan. Pada sistem yang simple atau sistem yang didisain untuk
menjalankan applikasi sederhana, sangat mungkin untuk mendapatkan seluruh
proses yang akan dibutuhkan itu, terjadi pada waktu sistem dimulai. Pada kebanyakan
system bagaimanapun juga beberapa cara dibutuhkan untuk membuat dan
menghacurkan selama operasi.
Konsep
Penjadualan
Multiprogramming
bertujuan untuk memaksimalkan penggunaan CPU dengan
cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan
sepanjang waktu dan memperkecil waktu idle. Untuk sistem yang bersifat
prosesor tunggal (uniprosesor), hanya ada satu proses yang dapat
berjalan setiap waktunya. Jika proses yang ada lebih dari satu, maka proses
yang lain harus menunggu sampai CPU bebas dan siap untuk dijadualkan kembali.
Penjadualan
CPU
Kapan pun CPU
menjadi idle, sistem operasi harus memilih salah satu proses untuk masuk
kedalam antrian ready (siap)
untuk dieksekusi. Pemilihan tersebut dilakukan oleh penjadual short term.
Penjadualan memilih dari sekian proses yang ada di memori yang sudah siap
dieksekusi, den mengalokasikan CPU untuk mengeksekusinya.
Penjadualan Preemptive
Penjadualan CPU mungkin akan
dijalankan ketika proses:
1. Berubah dari running ke waiting
state
2. Berubah dari running ke ready
state
3. Berubah dari waiting ke ready
4. Terminates
Algoritma
Penjadualan 1
Algoritma
diperlukan untuk mengatur giliran proses-proses diready queue yang mengantri
untuk dialokasikan ke CPU. Terdapat berbagai macam algoritma,antara lain:
• First come
first serve
Algoritma ini
mendahulukan proses yang lebih dulu datang. Kelemahannya,waiting time
rata-rata cukup
lama.
• Shortest job
first
Algoritma ini
mendahulukan proses dengan CPU burst terkecil yang akan mengurangi waiting
time rata-rata.
• Priority
Algoritma ini
mendahulukan prioritas terbesar. Kelemahannya, prioritas kecil tidak mendapat
jatah CPU. Hal
ini dapat diatasi dengan aging,yaitu semakin lama menunggu,prioritas semakin
tinggi.
• Round Robin
Algoritma ini
menggilir proses-proses yang ada diantrian dengan jatah time quantum yang sama.
Jika waktu
habis,CPU dialokasikan keproses selanjutnya.
• Multilevel
Queue
Algoritma ini
membagi beberapa antrian yang akan diberi prioritas berdasarkan tingkatan.
Tingkatan lebih
tinggi menjadi prioritas utama.
• Multilevel
Feedback Queue
Pada dasarnya
sama dengan Multilevel Queue,bedanya pada algoritma ini diizinkan untuk
pindah antrian.
Algoritma
Penjadualan 2
Sistem hard
real-time biasa digunakan menyelesaikan critical task dengan jaminan waktu
tertentu.
Jika kebutuhan
waktu tidak terpenuhi, maka aplikasi akan gagal. Sistem operasi menggunakanmekanisme
resource reservation untuk menerima atau menolak suatu permintaan proses. Sistem
soft real-time memiliki kelonggaran waktu dibandingkan sistem hard real-time.
Sistem soft real-time dapat mengakibatkan delay yang lebih lama atau dapat
menyebabkan terjadinya starvation.
Tidak ada komentar:
Posting Komentar