Bagian I. Konsep Dasar
Perangkat Komputer
Bab 1.Pendahuluan Sistem Operasi
Sebuah sistem komputer
dapat dibagi ke dalam beberapa komponen utama, seperti "para
pengguna","perangkat keras", serta "perangkat lunak"
."Para pengguna" (users) ini merupakan pihak yang memanfaatkan
sistem komputer tersebut. Parapengguna di sini bukan saja manusia, namun
mungkin berbentuk program aplikasi lain, atau pun perangkat komputer lain.
"Perangkat keras" (hardware) ini berbentuk benda konkret yang
dapat dilihat dan disentuh. Perangkat keras ini merupakan inti dari sebuah
sistem, serta penyedia sumber daya (resources) untuk keperluan
komputasi. Diantara "para pengguna" dan "perangkat keras"
terdapat sebuah lapisan abstrak yang disebut dengan "perangkat lunak"
(software). Secara keseluruhan, perangkat lunak membantu para pengguna
untuk memanfaatkan sumber daya komputasi yang disediakan perangkat keras.
(Gambar 1.1, “Abstraksi
Komponen Sistem Komputer”)
sistem operasi merupakan
komponen penting dari setiap sistem komputer. Akibatnya, pelajaran "sistem
operasi" selayaknya merupakan komponen penting dari sistem pendidikan
berbasis "ilmu komputer". Konsep sistem operasi dapat lebih mudah
dipahami, jika juga memahami jenis perangkat keras yang digunakan. Demikian
pula sebaliknya. Dari sejarah diketahui bahwa sistem operasi dan perangkat
keras saling mempengaruhi dan saling melengkapi. Struktur dari sebuah sistem
operasi sangat tergantung pada perangkat keras yang pertama kali digunakan
untuk mengembangkannya. Sedangkan perkembangan perangkat keras sangat
dipengaruhi dari hal-hal yang diperlukan oleh sebuah sistem operasi. Dalam sub
bagian-bagian berikut ini, akan diberikan berbagai ilustrasi perkembangan dan jenis
sistem operasi beserta perangkat kerasnya.
1.2. 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. 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.
(Gambar 1.2, “Arsitektur
Komputer von Neumann”)
Perkembangan sistem
operasi dimulai dari sini, dengan memanfaatkan sistem batch Para
operator mengumpulkan job-job yang mirip yang kemudian
dijalankan secara berkelompok. Umpama, job yang memerlukan kompilator
Fortran akan dikumpulkan ke dalam sebuah batch bersama
dengan job-job lainnya yang juga memerlukan
kompilator Fortran. Setelah sebuah kelompok job rampung, maka
kelompok job berikutnya akan dijalankan secara otomatis.
(Gambar 1.3,“Bagan
Memori Untuk Sistem Monitor Batch Sederhana”)
(Gambar 1.4,“Van neumann")
Komputer klasik hanya
memiliki satu prosesor. Keuntungan dari sistem ini ialah lebih mudah
diimplementasikan karena tidak perlu memperhatikan sinkronisasi antar prosesor,
kemudahan kontrol terhadap prosesor karena sistem proteksi tidak, teralu rumit,
dan cenderung murah (bukan ekonomis). Perlu dicatat yang dimaksud satu buah
prosesor ini ialah satu buah prosesor sebagai Central Processing
Unit (CPU). Hal ini ditekankan sebab ada beberapa perangkat yang
memang memiliki prosesor tersendiri di dalam perangkatnya seperti VGA
Card AGP, Optical Mouse, dan lain-lain.
Bab 2. Perangkat Lunak
Bebas
Arti bebas yang salah,
telah menimbulkan persepsi masyarakat bahwa perangkat lunak bebas
merupakan perangkat
lunak yang gratis. Perangkat lunak bebas ialah perihal kebebasan, bukan
harga. Konsep kebebasan
yang dapat diambil dari kata bebas pada perangkat lunak bebas adalah
seperti kebebasan
berbicara bukan seperti bir gratis. Maksud dari bebas seperti kebebasan
berbicara
adalah kebebasan untuk
menggunakan, menyalin, menyebarluaskan, mempelajari, mengubah, dan
meningkatkan kinerja
perangkat lunak. Suatu perangkat lunak dapat dimasukkan dalam kategori
perangkat lunak bebas
bila setiap orang memiliki kebebasan tersebut. Hal ini berarti, setiap
pengguna perangkat lunak
bebas dapat meminjamkan perangkat lunak yang dimilikinya kepada
orang lain untuk
dipergunakan tanpa perlu melanggar hukum dan disebut pembajak. Kebebasan
yang diberikan perangkat
lunak bebas dijamin oleh copyleft, suatu cara yang dijamin oleh hukum
untuk melindungi
kebebasan para pengguna perangkat lunak bebas. Dengan adanya copyleft maka
suatu perangkat lunak
bebas beserta hasil perubahan dari kode sumbernya akan selalu menjadi
perangkat lunak bebas.
Kebebasan yang diberikan melalui perlindungan copyleft inilah yang
membuat suatu program
dapat menjadi perangkat lunak bebas. Keuntungan yang diperoleh dari
penggunaan perangkat
lunak bebas adalah karena serbaguna dan efektif dalam keanekaragaman
jenis aplikasi. Dengan
pemberian source code-nya, perangkat lunak bebas dapat disesuaikan secara
khusus untuk kebutuhan
pemakai. Sesuatu yang tidak mudah untuk terselesaikan dengan perangkat
lunak berpemilik. Selain
itu, perangkat lunak bebas didukung oleh milis-milis pengguna yang dapat
menjawab pertanyaan yang
timbul karena permasalahan pada penggunaan perangkat lunak bebas.
Bab 3. Perangkat Keras
Komputer
3.1. Pendahuluan
Arsitektur Umum Komputer
GPU = Graphics Processing Unit;
AGP = Accelerated Graphics Port;
HDD = Hard Disk Drive;
FDD = Floppy Disk Drive;
FSB = Front Side Bus;
USB = Universal Serial Bus;
PCI = Peripheral Component Interconnect;
RTC = Real Time Clock;
PATA = Pararel Advanced Technology Attachment;
SATA = Serial Advanced Technology Attachment;
ISA = Industry Standard Architecture;
IDE = Intelligent Drive Electronics/Integrated Drive
Electronics;
MCA = Micro Channel Architecture;
PS/2 = Sebuah port yang dibangun IBM
untuk menghubungkan mouse ke PC;
3.2. Prosesor
Secara umum, sistem
komputer terdiri atas CPU dan sejumlah device controller yang
terhubung
melalui sebuah bus yang
menyediakan akses ke memori. Umumnya, setiap device controller
bertanggung-jawab atas
sebuah hardware spesisfik. Setiap device dan CPU dapat
beroperasi secara
konkuren untuk
mendapatkan akses ke memori. Adanya beberapa hardware ini
dapat menyebabkan
masalah sinkronisasi.
Karena itu untuk mencegahnya sebuah memory controller ditambahkan
untuk
sinkronisasi akses
memori.
3.3. Memori Utama
Dasar susunan sistem
storage adalah kecepatan, biaya, sifat volatilitas. Caching menyalin
informasi
ke storage
media yang lebih cepat; Memori utama dapat dilihat sebagai cache
terakhir untuk
secondary storage. Menggunakan memori berkecepatan tinggi untuk
memegang data yang diakses
terakhir.
Dibutuhkan cache management policy. Cache juga memperkenalkan
tingkat lain di hirarki
storage. Hal ini
memerlukan data untuk disimpan bersama-sama di lebih dari satu level agar tetap
konsisten.
Register
Tempat penyimpanan
beberapa buah data volatile yang akan diolah langsung di
prosesor yang
berkecepatan sangat
tinggi. Register ini berada di dalam prosesor dengan jumlah yang sangat
terbatas karena
fungsinya sebagai tempat perhitungan/komputasi data.
Cache Memory
Tempat penyimpanan
sementara (volatile) sejumlah kecil data untuk meningkatkan kecepatan
pengambilan atau
penyimpanan data di memori oleh prosesor yang berkecepatan tinggi. Dahulu
cache disimpan di luar prosesor dan dapat ditambahkan.
Misalnya pipeline burst cache yang biasa
ada di komputer awal
tahun 90-an. Akan tetapi seiring menurunnya biaya produksi die atau wafer
dan untuk meningkatkan
kinerja, cache ditanamkan di prosesor. Memori ini biasanya
dibuat
berdasarkan desain
memori statik.
Random Access Memory
Tempat penyimpanan
sementara sejumlah data volatile yang dapat diakses langsung
oleh prosesor.
Pengertian langsung di
sini berarti prosesor dapat mengetahui alamat data yang ada di memori
secara langsung.
Sekarang, RAM dapat diperoleh dengan harga yang cukup murah
dangan kinerja
yang bahkan dapat
melewati cache pada komputer yang lebih lama.
Memori Ekstensi
Tambahan memori yang
digunakan untuk membantu proses-proses dalam komputer, biasanya
berupa buffer. Peranan
tambahan memori ini sering dilupakan akan tetapi sangat penting artinya
untuk efisiensi.
Biasanya tambahan memori ini memberi gambaran kasar kemampuan dari perangkat
tersebut, sebagai contoh
misalnya jumlah memori VGA, memori soundcard.
Register
Tempat penyimpanan
beberapa buah data volatile yang akan diolah langsung di
prosesor yang
berkecepatan sangat
tinggi. Register ini berada di dalam prosesor dengan jumlah yang sangat
terbatas karena
fungsinya sebagai tempat perhitungan/komputasi data.
Direct Memory Access
Digunakan untuk I/O
device yang dapat memindahkan data dengan kecepatan tinggi (mendekati
frekuensi bus
memori). Device controller memindahkan data dalam blok-blok
dari buffer langsung
ke memory utama atau
sebaliknya tanpa campur tangan prosesor. Interrupt hanya
terjadi tiap blok
bukan tiap word atau
byte data. Seluruh proses DMA dikendalikan oleh sebuah controller bernama
DMA Controller (DMAC). DMA Controller mengirimkan
atau menerima signal dari memori dan
I/O device. Prosesor hanya mengirimkan alamat awal data,
tujuan data, panjang data ke DMA
Controller. Interrupt pada prosesor hanya
terjadi saat proses transfer selesai. Hak terhadap
penggunaan bus
memory yang diperlukan DMA controller didapatkan
dengan bantuan bus arbiter
yang dalam PC sekarang
berupa chipset Northbridge.
3.4. Memori Sekunder
Gambar 3.4.
Struktur Harddisk
Media penyimpanan data
yang non-volatile yang dapat berupa Flash Drive, Optical
Disc, Magnetic
Disk, Magnetic Tape. Media ini biasanya
daya tampungnya cukup besar dengan harga yang relatif
murah. Portability-nya
juga relatif lebih tinggi.
3.5. Memori Tersier
Pada standar arsitektur
sequential computer ada tiga level utama tingkatan penyimpaana: primer,
sekunder, and tersier.
Memori tersier menyimpan data dalam jumlah yang besar (terabytes, atau 1012
bytes), tapi waktu yang
dibutuhkan untuk mengakses data biasanya dalam hitungan menitsampai
jam. Saat ini, memori
tersiser membutuhkan instalasi yang besar berdasarkan/bergantung pada disk
atau tapes. Memori
tersier tidak butuh banyak operasi menulis tapi memori tersier tipikal-nya
write
ones atau read many.
Meskipun per-megabites-nya pada harga terendah, memory tersier umumnya
yang paling mahal,
elemen tunggal pada modern supercomputer installations.
Ciri-ciri lain:
non-volatile, off-line storage, umumnya dibangun pada removable media contoh
optical disk, flash
memory.
3.6. Struktur
Keluaran/Masukan (M/K)
Ada dua macam tindakan
jika ada operasi M/K. Kedua macam tindakan itu adalah:
Setelah proses M/K
dimulai, kendali akan kembali ke user program saat proses M/K selesai
(Synchronous). Instruksi wait menyebabkan CPU idle sampai
interupsi berikutnya. Akan terjadi
Wait loop (untuk menunggu akses berikutnya). Paling banyak
satu proses M/K yang berjalan dalam
satu waktu.
Setelah proses M/K
dimulai, kendali akan kembali ke user program tanpa menunggu proses M/K
selesai (Asynchronous).
System call permintaan pada sistem operasi untuk mengizinkan user
menunggu sampai M/K
selesai.Device-status table mengandung data masukkan untuk tiap M/K
device yang menjelaskan
tipe, alamat, dan keadaannya. Sistem operasi memeriksa M/K device
untuk mengetahui keadaan
device dan mengubah tabel untuk memasukkan interupsi. Jika M/K
device mengirim/mengambil
data ke/dari memory hal ini dikenal dengan nama Direct Memory
Access (DMA).
3.7. BUS
Pada sistem komputer
yang lebih maju, arsitekturnya lebih kompleks. Untuk meningkatkan
performa, digunakan
beberapa buah bus. Tiap bus merupakan jalur data
antara beberapa device yang
berbeda. Dengan cara
ini RAM, Prosesor, GPU (VGA AGP) dihubungkan oleh bus utama
berkecepatan tinggi yang
lebih dikenal dengan nama FSB (Front Side Bus). Sementara perangkat
lain yang lebih lambat
dihubungkan oleh bus yang berkecepatan lebih rendah yang
terhubung
dengan bus lain
yang lebih cepat sampai ke bus utama. Untuk komunikasi antar bus ini digunakan
sebuah bridge.
Tanggung-jawab
sinkronisasi bus yang secara tak langsung juga mempengaruhi
sinkronisasi
memori dilakukan oleh
sebuah bus controller atau dikenal sebagai bus master. Bus
master akan
mengendalikan aliran
data hingga pada satu waktu, bus hanya berisi data dari satu buah device.
Pada
prakteknya bridge dan bus
master ini disatukan dalam sebuah chipset.
Suatu jalur transfer
data yang menghubungkan setiap device pada komputer. Hanya ada
satu buah
device yang boleh mengirimkan data melewati sebuah bus,
akan tetapi boleh lebih dari satu device
yang membaca data bus
tersebut. Terdiri dari dua buah model: Synchronous bus di mana
digunakan
dengan bantuan clock
tetapi berkecepatan tinggi, tapi hanya untuk device berkecepatan tinggi juga;
Asynchronous bus digunakan dengan sistem handshake tetapi
berkecepatan rendah, dapat digunakan
untuk berbagai
macam device.
3.8. Interupsi
Kejadian ini pada
komputer modern biasanya ditandai dengan munculnya interupsi dari software
atau hardware, sehingga
Sistem Operasi ini disebut Interrupt-driven. Interrupt dari hardware
biasanya dikirimkan
melalui suatu signal tertentu, sedangkan software mengirim
interupsi dengan
cara menjalankan system
call atau juga dikenal dengan istilah monitor call.
System/Monitor call ini
akan menyebabkan trap yaitu
interupsi khusus yang dihasilkan oleh software karena adanya
masalah atau permintaan
terhadap layanan sistem operasi.
Trap ini juga sering disebut sebagai exception.
Setiap interupsi
terjadi, sekumpulan kode yang dikenal sebagai ISR (Interrupt Service
Routine) akan
menentukan tindakan yang
akan diambil. Untuk menentukan tindakan yang harus dilakukan, dapat
dilakukan dengan dua
cara yaitu polling yang membuat komputer memeriksa satu demi
satu
perangkat yang ada untuk
menyelidiki sumber interupsi dan dengan cara menggunakan
alamat-alamat ISR yang
disimpan dalam array yang dikenal sebagai interrupt vector di
mana sistem
akan memeriksa Interrupt
Vector setiap kali interupsi terjadi.
Arsitektur interupsi
harus mampu untuk menyimpan alamat instruksi yang di-interupsi Pada
komputer lama, alamat
ini disimpan di tempat tertentu yang tetap, sedangkan pada komputer baru,
alamat itu disimpan
di stack bersama-sama dengan informasi state saat itu.
3.9. Local Area
Network
Muncul untuk menggantikan
komputer besar. Dirancang untuk melingkupi suatu daerah yang kecil.
Menggunakan peralatan
berkecepatan lebih tinggi daripada WAN. Hanya terdiri atas sejumlah kecil
komputer.
3.10. Wide Area
Network
Menghubungkan daerah
yang lebih luas. Lebih lambat, dihubungkan oleh router melalui
jaringan
data telekomunikasi.
Bab 4. Proteksi
Perangkat Keras
4.1 pendahuluan\
Sistem operasi harus
memastikan operasi yang benar dari sistem komputer. Untuk mencegah
pengguna program
mengganggu operasi yang berjalan dalam sistem, perangkat keras mempunyai
dua mode: mode pengguna
dan mode monitor. Beberapa perintah (seperti perintah M/K dan perintah
halt) adalah perintah
khusus, dan hanya dapat dijalankan dalam mode monitor. Memori juga harus
dilindungi dari
modifikasi oleh pengguna. Timer mencegah terjadinya pengulangan secara terus
menerus (infinite loop).
Hal-hal tersebut (dual mode, perintah khusus, pengaman memori, timer
interrupt) adalah blok
bangunan dasar yang digunakan oleh sistem operasi untuk mencapai operasi
yang sesuai.
4.2. Proteksi Fisik
Proteksi fisik merupakan
fungsi sistem operasi dalam menjaga, memproteksi fisik daripada
sumberdaya (perangkat
keras). Misal proteksi CUP dan proteksi hardisk. Contohnya adalah dalam
kasus dual-mode
operation (dibahas di sub-bab berikutnya).
4.3. Proteksi Media
Dalam keseharian kita
ada beberapa jenis media yang digunakan untuk penyimpanan data, antara
lain tape, disket, CD,
USB flash disk, dan lainnya. Untuk menjamin keamanan data yang tersimpan
dalam media-media
tersebut, maka perlu sebuah mekanisme untuk menanganinya. Mekanisme
proteksi antara satu
media dengan media yang lain tidak sama.
Sebagai contoh CD yang
sering kita kenal sebagai media untuk installer memiliki mekanisme untuk
menjamin CD perangkat
lunak yang digunakan oleh consumer ber-lisensi. mekanisme yang
digunakan yaitu dengan
menggunakan CD key number. Cara kerja dari mekanisme ini,
ketikapengguna ingin
menginstal program maka pengguna harus memasukkan kode dari key
number, jika tidak maka
program tersebut tidak akan bisa diinstal. Key number bisanya didapatkan
dilabel yang disertakan
pada CD atau pada dokumentasi program.
Konsep Mode Operasi
Ganda (Dual Mode Operation)
Membagi sumber daya
sistem yang memerlukan sistem operasi untuk menjamin bahwa program
yang salah tidak
menyebabkan program lain berjalan salah juga. Menyediakan dukungan perangkat
keras untuk membedakan
minimal dua mode operasi yaitu: User Mode - Eksekusi
dikendalikan oleh
pengguna; Monitor/Kernel/System
Mode - Eksekusi dikendalikan oleh sistem operasi. Instruksi
tertentu hanya berjalan
di mode ini (Privileged Instruction). Ditambahkan sebuah bit penanda
operasi. Jika
terjadi interrupt, maka perangkat keras berpindah ke monitor
mode.
4.5. Proteksi
Masukan/Keluaran
Semua instruksi
masukan/keluaran umumnya Privileged Instruction (kecuali pada
DOS, dan
program tertentu). Harus
menjamin pengguna program tidak dapat mengambil alih kontrol
komputer di monitor
mode.
4.6. Proteksi Memori
Harus menyediakan
perlindungan terhadap memori minimal untuk interrupt vector dan interrupt
service routine. Ditambahkan dua register yang menentukan di
mana alamat legal sebuah program
boleh mengakses,
yaitu base register untuk menyimpan alamat awal yang legal
dan limit register
untuk menyimpan ukuran
memori yang boleh diakses Memori di luar jangkauan dilindungi.
4.7. Proteksi CPU
Timer melakukan interrupt setelah
perioda waktu tertentu untuk menjamin kontrol sistem operasi.
Timer diturunkan setiap clock. Ketika timer mencapai
nol, sebuah Interrupt terjadi. Timer biasanya
digunakan untuk
mengimplementasikan pembagian waktu. Timer dapat juga digunakan untuk
menghitung waktu
sekarang walaupun fungsinya sekarang ini sudah digantikan Real Time
Clock
(RTC). System Clock
Timer terpisah dari Pencacah
Waktu. Timer sekarang secara perangkat keras
lebih dikenal
sebagai System Timer/CPU Timer. Load Timer juga Privileged
Instruction.
Bagian II. Konsep Dasar
SistemOperasi
Bab 5. Komponen Sistem
Operasi
5.1. Pendahuluan
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.
5.2. Managemen Proses
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.
5.3. Managemen Memori
Utama
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.
5.4. Managemen Berkas
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).
5.5. Managemen Sistem
Masukan/Keluaran
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.6. Managemen
Penyimpanan Sekunder
Sistem operasi
bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen disk
seperti:
• free-space
management.
• alokasi penyimpanan.
• penjadualan disk
5.7. 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.
5.8. 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.
5.9. 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.
Bab 6. Sudut Pandang
Alternatif
6.1. Layanan Sistem
Operasi
Layanan sistem operasi
dirancang untuk membuat pemrograman menjadi lebih mudah.
1. Pembuatan Program
2. 2. Eksekusi Program
3. Operasi Masukan/Keluaran
4. Manipulasi Sistem Berkas
5. Komunikasi
6. Deteksi Error
Disamping pelayanan di
atas, sistem operasi juga menyediakan layanan lain. Layanan ini bukan
untuk membantu pengguna
tapi lebih pada mempertahankan efisiensi sistem itu sendiri. Layanan
tambahan itu yaitu:
1. Alokasi Sumber Daya
2. Accounting
3. 3. Proteksi
6.2. 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.
Umumnya sistem operasi
dilengkapi oleh system-utilities atau program aplikasi yang di
dalamnya
termasuk web
browser, word prossesor dan format teks, sistem
database, games. System program
yang paling penting
adalah command interpreter yang mengambil dan menerjemahkan
user-specified
command selanjutnya.
6.3. System Calls
Jenis System
Calls
System calls yang berhubungan dengan kontrol proses antara
lain ketika penghentian
pengeksekusian program.
Baik secara normal (end) maupun tidak normal (abort). Selama
proses
dieksekusi kadang kala
diperlukan untuk me-load atau mengeksekusi program lain, disini
diperlukan lagi
suatu system calls. Juga ketika membuat suatu proses baru dan
menghentikan sebuah
proses. Ada juga system
calls yang dipanggil ketika kita ingin meminta dan merubah atribut
dari suatu proses.
6.4. System Calls Managemen Proses
System Call untuk
managemen proses diperlukan untuk mengatur proses-proses yang sedang
berjalan. Kita dapat
melihat penggunaan system calls untuk managemen proses pada Sistem Operasi
Unix. Contoh yang paling
baik untuk melihat bagaimana system call bekerja untuk managemen
proses adalah Fork. Fork
adalah satu satunya cara untuk membuat sebuah proses baru pada sistem
Unix. Fork membuat
duplikasi yang mirip dengan proses aslinya, termasuk file descriptor,
register,dan lainnya.
6.5. System
Calls Managemen Berkas
System calls yang berhubungan dengan berkas sangat
diperlukan. Seperti ketika kita ingin membuat
atau menghapus suatu
berkas. Atau ketika ingin membuka atau menutup suatu berkas yang telah
ada, membaca berkas
tersebut, dan menulis berkas itu. System calls juga diperlukan
ketika kita ingin
mengetahui atribut dari
suatu berkas atau ketika kita juga ingin merubah atribut tersebut. Yang
termasuk atribut berkas
adalah nama berkas, jenis berkas, dan lain-lain.
6.6. System
Calls Managemen Peranti
Program yang sedang
dijalankan kadang kala memerlukan tambahan sumber daya. Jika banyak
pengguna yang
menggunakan sistem, maka jika memerlukan tambahan sumber daya maka harus
meminta peranti terlebih
dahulu. Dan setelah selesai penggunakannnya harus dilepaskan kembali.
Ketika sebuah peranti
telah diminta dan dialokasikan maka peranti tersebut bisa dibaca, ditulis, atau
direposisi.
6.7. System
Calls Informasi Maintenance
Beberapa system
calls disediakan untuk membantu pertukaran informasi antara pengguna
dan sistem
operasi. Contohnya system
calls untuk meminta dan mengatur waktu dan tanggal. Atau meminta
informasi tentang sistem
itu sendiri, seperti jumlah pengguna, jumlah memori dan disk yang masih
bisa digunakan, dan
lain-lain. Ada juga system calls untuk meminta informasi
tentang proses yang
disimpan oleh sistem
dan system calls untuk merubah (reset) informasi
tersebut.
6.8. System
Calls Komunikasi
Dua model komunikasi:
• Message-passing
Pertukaran informasi
dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh
sistem operasi.
• Shared-memory
Proses menggunakan
memori yang bisa digunakan oleh berbagai proses untuk pertukaran
informasi dengan membaca
dan menulis data pada memori tersebut.
Bab 7. Struktur Sistem
Operasi
7.1. Struktur Sederhana
Banyak sistem yang tidak
terstruktur dengan baik, sehingga sistem operasi seperti ini dimulai
dengan sistem yang lebih
kecil, sederhana, dan terbatas. Kemudian berkembang dengan cakupan
yang original. Contoh
sistem seperti ini adalah MS-DOS, yang disusun untuk mendukung fungsi
yang banyak pada ruang
yang sedikit karena keterbatasan perangkat keras untuk menjalankannya.
7.2. Pendekatan Berlapis
Sistem operasi dibagi
menjadi sejumlah lapisan yang masing-masing dibangun diatas lapisan yang
lebih rendah. Lapisan
yang lebih rendah menyediakan layanan untuk lapisan yang lebih tinggi.
Lapisan yang paling
bawah adalah perangkat keras, dan yang paling tinggi adalah user-interface.
Salah satu kesulitan
besar dalam sistem terlapis disebabkan karena sebuah lapisan hanya bisa
menggunakan
lapisan-lapisan dibawahnya, misalnya: backing-store driver,
normalnya diatas
penjadual CPU sedangkan
pada sistem yang besar, penjadual CPU punya informasi tentang proses
yang aktif yang ada di
memori. Oleh karena itu, info ini harus dimasukkan dan dikeluarkan dari
memori, sehingga
membutuhkan backing-store driver dibawah penjadual CPU.
Kesulitan lainnya
adalah paling tidak
efisien dibandingkan tipe lain. Ketika pengguna mengeksekusi M/K, akan
mengeksekusi lapisan
M/K, lapisan managemen memori, yang memanggil lapisan penjadual CPU.
7.3. Kernel-mikro
Metode ini menyusun
sistem operasi dengan menghapus semua komponen yang tidak esensial dari
kernel, dan mengimplementasikannya sebagai program
sistem dan level pengguna. Hasilnya kernel
yang lebih kecil. Pada
umumnya mikrokernel mendukung proses dan menagemen memori yang
minimal, sebagai
tambahan utnuk fasilitas komunikasi.
Fungsi utama mikrokernel
adalah mendukung fasilitas komunikasi antara program klien dan
bermacam-macam layanan
yang juga berjalan di user space. Komunikasi yang dilakukan secara
tidak langsung, didukung
oleh sistem message passing, dengan bertukar pesan melalui
mikrokernel.
7.4. Boot
Jika komputer
dihidupkan, yang dikenal dengan nama booting, komputer akan
menjalankan
bootstrap program yaitu sebuah program sederhana yang disimpan
dalam ROM yang berbentuk
chip CMOS. (Complementary
Metal Oxide Semiconductor). Chip CMOS modern biasanya bertipe
Electrically Erasable
Programmable Read Only Memory (EEPROM), yaitu memori non-volatile
(tak terhapus jika power
dimatikan) yang dapat ditulis dan dihapus dengan pulsa elektronik. Lalu
bootsrap program ini lebih dikenal sebagai BIOS (Basic
Input Output System).
Bootstrap program utama, yang biasanya terletak pada motherboard akan
memeriksa perangkat
keras utama dan
melakukan inisialisasi terhadap program dalam hardware yang
dikenal dengan
nama firmware.
Bootstrap program utama kemudian akan mencari dan meload kernel sistem
operasi ke memori lalu
dilanjutkan dengan
inisialisasi sistem operasi. Dari sini program sistem operasi akan menunggu
kejadian tertentu.
Kejadian ini akan menentukan apa yang akan dilakukan sistem operasi berikutnya
(event-driven).
7.5. Tuning
Adalah mungkin untuk
mendesign, mengkode, dan megimplementasikan sebuah sistem operasi
khusus untuk satu mesin
di suatu site. Pada umumnya sistem operasi dibuat untuk berjalan
pada
beberapa kelas mesin di
berbagai site dan berbagai konfigurasi peripheral.
Kemudian, sistem
dikonfigurasikan untuk
masing-masing komputer, untuk site yang spesifik. Proses ini
terkadang
disebut sebagai System
Generation.
7.6. Kompail Kernel
Seperti yang telah
diketahui, kernel adalah program yang dimuat pada saat boot yang berfungsi
sebagai interface antara
user-level program dengan hardware. Secara teknis linux hanyalah sebuah
kernel. Pogram lain
seperti editor, kompilator dan manager yang disertakan dalam paket (SuSE,
RedHat, Mandrake, dll.)
hanyalah distribusi yang melengkapi kernel menjadi sebuah sistem operasi yang
lengkap. Kernel membutuhkan konfigurasi agar dapat bekerja secara optimal.
7.7. Komputer Meja
Titik fokus perancangan
sistem operasi jenis komputer meja agak berbeda dibadingkan dengan
sistem operasi "main-frame". Pertama,
kinerja serta derajat kerumitan komponen perangkat keras
komputer meja jauh lebih
sederhana (dan murah). Karena itu, "utilisasi" perangkat keras
tidak lagi
menjadi masalah
utama. Kedua, para pengguna komputer meja tidak selalu merupakan
"pakar",
sehingga kemudahan
penggunaan menjadi prioritas utama dalam perancangan sistem operasinya.
Ketiga, akibat dari
butir kedua di atas, "keamanan" dan "perlindungan" kurang
mendapatkan
perhatian. Dewasa ini
(2005), "virus" dan "cacing" (worm) telah menjadi
masalah utama yang
dihadapi para pengguna
sistem operasi komputer meja tertentu.
7.8. Sistem Prosesor
Jamak
Pada umumnya, setiap
komputer dilengkapi dengan satu buah prosesor (CPU). Namun, dewasa ini
(2005) mulai umum, jika
sebuat sistem komputer memiliki lebih dari satu prosesor (multi-procesor).
Terdapat dua jenis
sistem prosesor jamak, yaitu Symmetric MultiProcessing (SMP) dan Asymmetric
MultiProcessing
(ASMP). Dalam SMP setiap
prosesor menjalankan salinan identik dari sistem
operasi dan banyak job
yang dapat berjalan di suatu waktu tanpa pengurangan kinerja. Sementara itu
dalam ASMP setiap
prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor bertindak sebagai
Master processor yang bertugas menjadualkan dan mengalokasikan
pekerjaan pada prosesor lain
yang disebut slave
processors.
7.9. Sistem
Terdistribusi dan Terkluster
Sistem terdistribusi
merupakan kebalikan dari Sistem Operasi Prosesor Jamak. Pada sistem tersebut,
setiap prosesor memiliki
memori lokal tersendiri. Kumpulan prosesornya saling berinteraksi melalui
saluran komunikasi
seperti LAN dan WAN menggunakan protokol standar seperti TCP/IP. Karena
saling berkomunikasi,
kumpulan prosesor tersebut mampu saling berbagi beban kerja, data, serta
sumber daya lainnya.
Namun, keduanya berbagi keunggulan yang serupa seperti dibahas sebelum
ini.
7.10. Sistem Waktu Nyata
Sistem waktu nyata (Real
Time Systems) ialah suatu sistem yang mengharuskan suatu komputasi
selesai dalam jangka
waktu tertentu. Jika komputasi ternyata belum selesai maka sistem dianggap
gagal dalam melakukan
tugasnya Sistem waktu nyata memiliki dua model dalam pelaksanaannya:
hard real time
system dan soft real
time system.
Hard real time
system menjamin suatu proses
yang paling penting dalam sistem akan selesai dalam
jangka waktu yang valid.
Jaminan waktu yang ketat ini berdampak pada operasi dan perangkat keras
(hardware) yang
mendukung sistem.
Soft real time
system tidak memberlakukan
aturan waktu seketat hard real time system. Namun,
sistem ini menjamin
bahwa suatu proses terpenting selalu mendapat prioritas tertinggi untuk
diselesaikan diantara
proses-proses lainnya. Sama halnya dengan hard real time system,
berbagai
operasi dalam sistem
tetap harus ada batas waktu maksimum.
Bab 8. Mesin Virtual
Java
8.1. Konsep Mesin
Virtual
Dasar logika dari konsep
mesin virtual atau virtual machine adalah dengan menggunakan
pendekatan
lapisan-lapisan (layers) dari sistem komputer. Sistem komputer dibangun atas
lapisan-lapisan. Urutan
lapisannya mulai dari lapisan terendah sampai lapisan teratas adalah sebagai
berikut:
• Perangkat keras
• Kernel
• Sistem program
Kernel, yang berada pada
lapisan kedua, 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
seolah-olah pada level
yang sama. Meski sistem program berada di level tertinggi, namun program
aplikasi bisa melihat
segala sesuatu di bawahnya (pada tingkatan) seakan-akan mereka adalah
bagian dari mesin.
Pendekatan dengan lapisan-lapisan inilah yang kemudian menjadi kesimpulan
logis pada konsep mesin
virtual atau virtual machine (VM).
Kelemahan Mesin Virtual
Kesulitan utama dari
konsep VM adalah dalam hal sistem penyimpanan dan pengimplementasian\
Keunggulan Mesin Virtual
Pertama, dalam hal hal
keamanan, VM memiliki perlindungan yang lengkap pada berbagai sistem
sumber daya, yaitu
dengan meniadakan pembagian resources secara langsung, sehingga tidak ada
masalah proteksi dalam
VM.
Kedua, dimungkinkan
untuk mendefinisikan suatu jaringan dari mesin virtual, di mana tiap-tiap
bagian mengirim
informasi melalui jaringan komunikasi virtual.
8.2. Konsep Bahasa Java
Sistem Operasi JavaOS
JavaOS adalah
satu-satunya sistem yang mencoba untuk mengimplementasi fungsi sistem operasi
dalam bahasa Java secara
lengkap. JavaOS mengimplementasi platform Java agar dapat
menjalankan aplikasi
atau applet yang mengakses fasilitas dari beberapa objek. Selain itu, JavaOs
juga mengimplementasikan JVM dan lapisan fungsionalitas untuk windowing,
jaringan, dan sistem
berkas tanpa membutuhkan
dukungan dari sistem operasi lokal. JavaOS mendefinisikan platform
seperti halnya CPU,
memori, bus, dan perangkat keras lainnya. Platform independen dari sistem
operasinya disebut
JavaOS runtime, sedangkan bagian platform yang non-independen dari sistem
operasinya disebut
JavaOS kernel.
Kelemahan sistem operasi
berbasis bahasa pemrograman
Salah satu kesulitan
dalam mendesain sistem berbasis bahasa pemrograman adalah menyangkut
masalah proteksi,
khususnya proteksi memori. Sistem operasi tradisional menyandarkan pada fitur
perangkat keras untuk
menyediakan proteksi memori. Sistem berbasis bahasa pemrograman sendiri
memiliki ketergantungan
pada fitur type-safety dari bahasa pemrograman tersebut untuk
mengimplementasikan
proteksi memori. Hasilnya, sistem berbasis bahasa pemrograman
memerlukan perangkat
keras yang mampu menutupi kekurangan dalam hal fitur proteksi memori.
Bab 9. Sistem GNU/Linux
Linux adalah sebuah
sistem operasi yang sangat mirip dengan sistem-sistem UNIX, karena memang
tujuan utama rancangan
dari proyek Linux adalah UNIX compatible. Sejarah Linux dimulai pada
tahun 1991, ketika
mahasiswa Universitas Helsinki, Finlandia bernama Linus Benedict Torvalds
menulis Linux, sebuah
kernel untuk prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU
intel yang cocok untuk
PC.
Linux adalah sebuah
sistem operasi yang sangat mirip dengan sistem-sistem UNIX, karena memang
tujuan utama desain dari
proyek Linux adalah UNIX compatible. Sejarah Linux dimulai pada tahun
1991, ketika mahasiswa
Universitas Helsinki, Finlandia bernama Linus Benedict Torvalds menulis
Linux, sebuah kernel
untuk prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU intel
yang cocok untuk PC.
Dalam rancangan keseluruhan, Linux menyerupai implementasi UNIX
nonmicrokernel yang
lain. Ia adalah sistem yang multiuser, multitasking dengan seperangkat
lengkap alat-alat yang
compatible dengan UNIX. Sistem berkas Linux mengikuti semantik
tradisional UNIX, dan
model jaringan standar UNIX diimplementasikan secara keseluruhan. Ciri
internal desain Linux
telahdipengaruhi oleh sejarah perkembangan sistem operasi ini.
Kernel Linux
terdistribusi di bawah Lisensi Publik Umum GNU (GPL), di mana peraturannya
disusun oleh Free
Software Foundation (FSF). Implikasi utama terhadap peraturan ini adalah bahwa
siapa saja boleh
menggunakan Linux atau membuat modifikasi, namun tidak boleh membuatnya
menjadi milik sendiri.
Perkembangan sistem
operasi Linux sangat cepat karena didukung pengembang di seluruh dunia
yang akan selalu
memperbaiki segala fiturnya. Di negara-negara berkembang, Linux mengalami
kemajuan yang sangat
pesat karena dengan menggunakan Linux mereka dapat menghemat
anggaran. Linux juga
telah diterapkan pada supercomputer.
Prinsip rancangan Linux
merujuk pada implementasi agar kompatibel dengan UNIX yang
merupakan sistem
multiuser dan multitasking. Sistem Linux terdiri dari tiga bagian penting,
yaitu
kernel, perpustakaan,
dan utilitas. Kernel merupakan inti dari sistem operasi Linux. Perpustakaan
sistem Linux menyediakan
berbagai fungsi yang diperlukan untuk menjalankan aplikasi UNIX atau
POSIX.
Modul kernel Linux
adalah bagian dari kernel Linux yang dapat dikompilasi, dipanggil dan dihapus
secara terpisah dari
bagian kernel lainnya. Terdapat tiga komponen yang menunjang kernel Linux,
di antaranya adalah
Manajemen Modul Kernel Linux, Registrasi Driver, dan Resolusi Konflik.
Bagian III. Proses dan
Penjadualan
Bab 10. Konsep Proses
10.1. Definisi Proses
Secara tidak langsung,
proses merupakan program yang sedang dieksekusi. Menurut Silberschatz,
suatu proses adalah
lebih dari sebuah kode program, yang terkadang disebut text section.
Proses
juga mencakup program
counter, yaitu sebuah stack untuk menyimpan alamat
dari instruksi yang
akan dieksekusi
selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack
yang berisikan data-data
yang dibutuhkan selama proses dieksekusi seperti parameter metoda,
alamat return dan
variabel lokal, dan sebuah data section yang menyimpan
variabel global.
10.2. Pembuatan Proses
Sebuah proses dibuat
melalui system call create-process yang dilakukan oleh parent process. Setiap
proses anakan (child
process) dapat juga membuat proses baru.
Ketika sebuah proses dibuat
maka proses tersebut dapat memperoleh resource (waktu CPU,
memory, berkas atau
perangkat I/O) secara langsung dari sistem operasi atau proses tersebut berbagI
resource dengan resource orang tuanya. Orang tua proses tersebut dapat
membagi-bagi resource
yang dimilikinya atau
menggunakan secara bersama- sama resource yang dimilikinya dengan proses
anakannya.
10.3. Terminasi Proses
Suatu proses diterminasi
ketika proses tsb telah selesai mengeksekusi statement terakhir dan
meminta sistem operasi
untuk menghapus statement tsb dengan menggunakan system call exit. Pada
saat itu, proses dapat
mengembalikan data (output) kepada proses parent-nya (melalui system call
wait). Semua resource
yang digunakan oleh proses akan dialokasikan kembali ke tempat asalnya
oleh sistem operasi.
Suatu proses dapat
menyebabkan terminasi proses lain melalui system call abort. Biasanya hanya
parent dari proses yang
akan diterminasi yang dapat menjalankan system call abort ini. Parent
sebaiknya mengetahui
identitas dari children-nya. Pada saat suatu proses menciptakan sebuah proses
baru, identitas dari
proses yang baru diciptakan ini diperoleh dari parent-nya.
10.4. 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.
10.5. Process
Control Block
Tiap proses digambarkan
dalam sistem operasi oleh sebuah process control block (PCB)
- juga
disebut sebuah control
block. Sebuah PCB ditunjukkan dalam Gambar 10.1, “Process Control
Block”. PCB berisikan banyak bagian dari informasi
yang berhubungan dengan sebuah proses yang
Spesifik
Bab 11. Konsep Thread
Thread adalah sebuah alur kontrol dari sebuah proses.
Suatu proses yang multithreaded
mengandung beberapa
perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari
multithreaded meliputi
peningkatan respon dari pengguna, pembagian sumber daya proses,
ekonomis, dan kemampuan
untuk mengambil keuntungan dari arsitektur multiprosesor. Thread
tingkat pengguna adalah
thread yang tampak oleh programer dan tidak diketahui oleh kernel. Thread
tingkat pengguna secara
tipikal dikelola oleh sebuah library thread di ruang
pengguna. Thread
tingkat kernel didukung
dan dikelola oleh kernel sistem operasi. Secara umum, thread tingkat
pengguna lebih cepat
dalam pembuatan dan pengelolaan dari pada kernel thread. Ada 3
perbedaan
tipe dari model yang
berhubungan dengan pengguna dan kernel thread yaitu one-to one
model,
many-to-one model,
many-to-many model.
• Model many to one:
memetakan beberapa pengguna level thread hanya ke satu
buah kernel
thread.
• Model one to one:
memetakan setiap thread pengguna ke dalam satu kernel
thread berakhir.
• Model many to many:
mengijinkan pengembang untuk membuat thread pengguna sebanyak
mungkin, konkurensi
tidak dapat tercapai karena hanya satu thread yang dapat
dijadualkan oleh
kernel dalam satu waktu.
Thread
cancellation adalah tugas untuk
memberhentikan thread sebelum ia menyelesaikan
tugasnya. Thread yang
akan diberhentikan disebut target thread
Pemberhentian
target thread dapat terjadi melalui 2 cara yang berbeda
• Asynchronous
cancellation: suatu thread seketika itu juga
memberhentikan target thread.
• Deffered
cancellation: target thread secara periodik memeriksa apakah
dia harus berhenti, cara
ini memperbolehkan
target thread untuk memberhentikan dirinya sendiri secara
terurut.
Thread Pools adalah cara kerja dengan membuat beberapa thread pada
proses startup dan
menempatkan mereka ke
pools.
Keuntungan Thread
Pools
• Biasanya lebih cepat
untuk melayani permintaan dengan thread yang ada dibanding
dengan
menunggu thread baru
dibuat.
• Thread
pool membatasi jumlah thread yang ada pada suatu
waktu. Hal ini penting pada sistem
yang tidak dapat
mendukung banyak thread yang berjalan secara concurrent
Bab 12. Thread Java
Thread di Linux dianggap sebagai task. System
call yang dipakai antara lain fork dan clone.
Perbedaan antara
keduanya adalah clone selain dapat membuat duplikat dari proses induknya
seperti
fork, juga dapat berbagi
ruang alamat yang sama antara proses induk dengan proses anak. Seberapa
besar kedua proses
tersebut dapat berbagi tergantung banyaknya flag yang ditandai.
Java adalah unik karena
telah mendukung thread didalam tingkatan bahasanya. Semua
program
Java sedikitnya terdiri
dari kontrol sebuah thread tunggal dan mempermudah membuat
kontrol
untuk multiple
thread dengan program yang sama. JAVA juga menyediakan library berupa
API
untuk membuat thread,
termasuk method untuk suspend dan resume suatu thread, agar thread tidur
untuk jangka waktu
tertentu dan menghentikan thread yang berjalan. Sebuah
java thread juga
mempunyai empat
kemungkinan keadaan, diantaranya: New, Runnable, Blocked dan Dead.
Perbedaan API untuk
mengelola thread seringkali mengganti keadaan thread itu
sendiri.
Bab 13. 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.
13.1. Queue
Scheduling
Ketika sebuah proses
memasuki sistem, proses itu diletakkan di dalam job queue.
Pada antrian ini
terdapat seluruh proses
yang berada dalam sistem. Sedangkan proses yang berada pada memori
utama, siap dan menunggu
untuk mengeksekusi disimpan dalam sebuah daftar yang bernama ready
queue. Antrian ini biasanya disimpan sebagai linked
list. Header dari ready queue berisi pointer
untuk PCB pertama dan
PCB terakhir pada list. Setiap PCB memiliki pointer field yang
menunjuk
kepada PCB untuk proses
selanjutnya dalam ready queue.
13.2. Scheduler
Sebuah proses
berpindah-pindah di antara berbagai penjadualan antrian seumur hidupnya. Sistem
operasi harus memilih
dan memproses antrian-antrian ini berdasarkan kategorinya dengan cara
tertentu. Oleh karena
itu, proses seleksi ini harus dilakukan oleh scheduler yang
tepat.
Dalam sistem batch,
seringkali proses yang diserahkan lebih banyak daripada yang dapat
dilaksanakan dengan
segera. Proses-proses ini disimpan pada suatu mass-storage device (disk),
dimana proses tersebut
disimpan untuk eksekusi di lain waktu. Long-term scheduler,
atau job
scheduler, memilih proses dari tempat ini dan mengisinya
ke dalam memori. Sedangkan short-term
scheduler, atau CPU scheduler, hanya
memilih proses yang sudah siap untuk melakukan eksekusi,
dan mengalokasikan CPU
untuk proses tersebut.
13.3. Context
Switch
Mengganti CPU ke proses
lain memerlukan penyimpanan keadaan dari proses lama dan mengambil
keadaan dari proses yang
baru. Hal ini dikenal dengan sebutan context switch. Context
switch
sebuah proses
direpresentasikan dalam PCB dari suatu proses; termasuk nilai dari CPU
register,
status proses (dapat
dilihat pada Gambar 13.4, “Context Switch”) dan informasi managemen
memori. Ketika context
switch terjadi, kernel menyimpan data dari proses
lama ke dalam PCB nya
dan mengambil data dari
proses baru yang telah terjadual untuk berjalan. Waktu context switch
adalah murni overhead,
karena sistem melakukan pekerjaan yang tidak begitu berarti selama
melakukan pengalihan.
Kecepatannya bervariasi dari mesin ke mesin, bergantung pada kecepatan
memori, jumlah register
yang harus di-copy, dan ada tidaknya instruksi khusus (seperti instruksi
tunggal untuk mengisi
atau menyimpan seluruh register). Tingkat kecepatan umumnya berkisar
antara 1 sampai 1000
mikro detik.
Bab 14. Penjadual CPU
Penjadualan adalah
fungsi dasar dari suatu sistem operasi. Hampir semua sumber komputer
dijadualkan sebelum
digunakan. CPU salah satu sumber dari komputer yang penting yang menjadi
sentral dari sentral
penjadualan di sistem operasi.
Penjadualan CPU adalah
pemilihan proses dari antrian ready untuk dapat dieksekusi. Algoritma
yang digunakan dalam
penjadulan CPU ada bermacam-macam. Diantaranya adalah First Come
First Serve (FCFS),
merupakan algoritma sederhana dimana proses yang datang duluan maka dia
yang dieksekusi pertama
kalinya. Algoritma lainnya adalah Shorthest Job First (SJF), yaitu
penjadulan CPU dimana
proses yang paling pendek dieksekusi terlebih dahulu.
Kelemahan algoritma SJF
adalah tidak dapat menghindari starvation. Untuk itu diciptakan algoritma
Round Robin (RR).
Penjadulan CPU dengan Round Robin adalah membagi proses berdasarkan
waktu tertentu yaitu
waktu quantum q. Setelah proses menjalankan eksekusi selama q satuan waktu
maka akan digantikan
oleh proses yang lain. Permasalahannya adalah bila waktu quantumnya besar
sedang proses hanya
membutuhkan waktu sedikit maka akan membuang waktu. Sedang bila waktu
quantum kecil maka akan
memakan waktu saat context-switch.
Penjadualan FCFS adalah
nonpreemptive yaitu tidak dapat diinterupsi sebelum proses dieksekusi
seluruhnya. Penjadualan
RR adalah preemtive yaitu dapat dieksekusi saat prosesnya masih
dieksekusi. Sedangkan
penjadualan SJF dapat berupa nonpreemtive dan preemtive.
Bab 15.Algoritma
Penjadualan I
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.
Bab 16. Algoritma
Penjadualan II
Sistem hard real-time
biasa digunakan menyelesaikan critical task dengan jaminan waktu tertentu.
Jika kebutuhan waktu
tidak terpenuhi, maka aplikasi akan gagal. Sistem operasi menggunakan
mekanisme 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.
Bab 17. Managemen Proses
Linux
Kernel Linux mengawasi
dan mengatur proses berdasarkan nomor process identification number
(PID), sedangkan
informasi tentang setiap proses disimpan pada deskriptor proses. Deskriptor
proses merupakan
struktur data yang memiliki beberapa status, yaitu: TASK_RUNNING,
TASK_INTERRUPTIBLE,
TASK_UNINTERRUPTIBLE, TASK_STOPPED, dan
TASK_ZOMBIE.
Linux menyediakan dua
system call, yaitu fork dan clone. Fork memiliki fungsi untuk menduplikasi
proses di mana proses
anak yang dihasilkan bersifat independen. Sedangkan fungsi clone, selain
menduplikasi dari proses
induk, juga mengizinkan terjadinya proses berbagi ruang alamat antara
proses anak dengan
proses induk.
Sinkronisasi kernel
Linux dilakukan dengan dua solusi, yaitu:
• Dengan membuat normal
kernel yang bersifat code nonpreemptible. Akan muncul salah satu
dari tiga aksi, yaitu:
interupsi, page fault, atau kernel code memanggil penjadualannya sendiri.
• Dengan meniadakan
interupsi pada saat critical section muncul.
Penjadualan proses Linux
dilakukan dengan menggunakan teknik prioritas, sebuah alogritma yang
berdasarkan pada kupon,
dengan aturan bahwa setiap proses akan memiliki kupon, di mana pada
suatu saat kupon akan
habis dan mengakibatkan tertundanya proses tersebut.