MATERI SISTEM OPERASIMODUL 1A. Kategori Program Komputer
Program komputer dibagi menjadi dua (2) kategori : Program
system berfungsi mengatur operasi dari komputer itu sendiri.
Program aplikasi berfungsi membantu menyelesaikan masalah untuk
user.
B. Blok Diagram Komputer
Yang paling penting dari semua program system adalah operating
system (OS) yang mengontrol semua sumber daya komputer dan
menyediakan landasan sehingga program aplikasi dapat ditulis atau
dijalankan.
C. Komponen Sistem Komputer
D. Pengertian Sistem Operasi
Seperangkat program yang mengatur pemakaian sumber daya komputer
(processor, i/o device dsb) Penghubung antar user (program user)
dengan hardware.
E. Fungsi OS
Sebagai resource manager komputer Mengefisienkan penggunaan
sumber daya komputer Tugas utama : Memonitor penggunaan all
resource Menerapkan aturan Mengalokasikan resource Dealokasi
resource Sebagai extended machine (virtual machine) penyedia
layanan Menyembunyikan kerumitan pemrograman hardware Menyajikan
fasilitas yang mudah dan sederhana untuk menggunakan hardware
F. Konsep OS
Proses -> program yang sedang di eksekusi. Terdiri dari :
executable program, program data dan stack, program counter dsb.
Pada system timesharing secara periodic OS menggilir eksekusi
proses yang ada (berdasarkan porsi waktu CPU). Ketika proses
dihentikan sementara, proses tersebut harus dimulai kembali pada
state yang sama dengan state ketika dihentikan. System call utama
dalam pengaturan proses adalah yang berkaitan dengan pembuatan dan
pemberhentian suatu proses. Files Terdiri dari : pathname, working
directory, rwx (read, write, execute), bits protection code, file
handle, special file (block and character), standard output,
standard error, pipe, OS mendukung konsep direktori. Model struktur
file :
System Calls / API (Application Programming Interface) Set tata
cara pemanggilan di program aplikasi u/ memperoleh layanan OS.
Berupa extended instruction yang merupakan interface antara program
dengan OS. Dapat mengcreate, delete dan menggunakan objek yang
diatur oleh OS seperti proses dan file. Library procedure
meletakkan parameter system call pada tempat tertentu dan memberi
instruksi trap untuk mulai OS. Trap instruksi (ketika diterima
OS,system memeriksa apakah parameter valid atau tidak. Return form
trap (OS mengembalikan kontrol ke library procedure).
MANAJEMEN PROSESA. Konsep Dasar
Multiprogramming (Melakukan proses satu per satu secara
bergantian dalam waktu bersamaan (hardware level). Setiap proses
memiliki 1 virtual CPU). Pseudoparallelism (Melakukan lebih dari
satu pekerjaan dalam waktu bersamaan (user level)).
B. Model Proses
Sequential process (bergantian) Multiprogramming CPU Switching
(peralihan prosedur dalam mengolah 1 proses ke proses lain).
Secara konsep proses memiliki 1 virtual CPU, kenyataannya
multiprogramming. Jadi anggaplah kumpulan proses berjalan secara
parallel.
C. Hirarki Proses
Create and destroy process Fork System Call (Mekanisme create
proses identik dengan proses yang memanggil) Contoh : pada unix
parent and child proses running secara parallel , sedangkan DOS
parent and child proses secara sequential. (DOS sbg parent and
software sbg child). Terdapat 3 keadaan proses : Running / kerja
(benar menggunakan CPU (sedang mengeksekusi instruksi proses)).
Blocked / terhenti (tidak berjalan sampai kegiatan eksternal
terlaksana (proses menunggu kejadian u/ melengkapi tugas)). Proses
menunggu (selesai operasi perangkat I/O, tersedia memori dan
tibanya pesan jawaban) Ready / siap (proses siapdikerjakan tapi
menunggu giliran dengan proses lain yang sedang dikerjakan).
D. Implementasi Proses
OS menggunakan suatu table atau array (table proses dengan 1
entry per proses) Setiap entry berisi status proses, program
counter, stack pointer, alokasi memori, status file, information
schedulling dsb dari status kerja ke status siap.
Interupsi : Kerja prosesor pada suatu proses terhenti oleh
pensaklaran konteks. Cara Interupsi1. Interupsi LangsungBerasal
dari luar prosesor (peripheral / alat mengirim sinyal kepada
prosesor untuk meminta pelayanan)
2. Interupsi Tanya / pollingBerasal dari prosesor (prosesor
secara bergiliran mengecek apakah ada peripheral yang memerlukan
pelayanan atau tidak)
Langkah yang dilakukan OS saat terjadi interupsi1. hardware
memasukkan program counter dll2. memasukkan ke dalam stack pencacah
program3. Hardware memuatkan (load) program counter baru dari
vector interrupsi 4. Prosedur bahasa rakitan menyimpan isi register
5. Prosedur bahasa rakitan men-set stack yang baru 6. Prosedur C
menandai proses servis siap (ready)7. Scheduler / penjadwalan
menentukan proses mana yang akan jalan berikutnya 8. Prosedur C
kembali ke modus bahasa rakitan 9. Prosedur bahasa rakitan memulai
proses yang sedang dilaksanakan.
Pensaklaran konteks : perubahan kegiatan prosesor dari proses ke
proses yang terjadi diantara proses sistem / proses aplikasi
Konteks : kegiatan prosesor terhadap sesuatu hal, berasal dari
sistem operasi, sistem bahasa dan sistem utilitas. Blok kendali
proses : suatu bagian memori untuk mencatat keadaan proses, yang
terbagi atas wilayah dimana setiap wilayah untuk mencatat informasi
yang berbeda.
E. Komunikasi Antar Proses
Contoh pada shell pipe line : output dari proses pertama harus
diberikan pada proses kedua dan seterusnya. Pada beberapa OS,
proses yang bekerja bersama sering sharing media penyimpanan.
Dimana suatu proses dapat membaca dan menulis pada shared storage
(main memory or files).
F. Masalah Pada IPC
Race condition : Kondisi dimanadua atau lebih proses mengakses
shared memory / data saat bersamaan dan hasil akhir tidak sesuai
dengan yang diinginkan. Contoh : print spooler (kumpulan data yang
akan dicetak), spooler directory. Critical section : Bagian dari
program yang mengakses shared memory yang bisa menyebabkan terjadi
race condition. 4 kondisi untuk mencegah race condition : Tidak ada
2 proses yang memasuki critical section secara bersamaan Tidak ada
asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU
Tidak ada proses yang berjalan diluar critical section-nya yang
bisa memblokir proses lain Tidak ada proses yang menunggu selamanya
untuk masuk ke critical section. Mutual exclusion (Mutex) with busy
waiting : Jika suatu proses sedang mengakses shared memory di
critical section, tidak ada satu proses pun yang bisa memasuki
critical section (mutual exclusion) dan menyebabkan masalah.
G. Jenis Mutual Exclusion
Disabling interrupt (mematikan interupsi) Mematikan interupsi
yang masuk saat proses sedang berada pada critical section-nya.
Lock Variables Setiap proses yang akan mengakses critical section
harus meng-clock variable. Jika 0, proses dapat memasuki critical
section dan jika 1, proses harus menunggu sampai lock variable = 0.
Strict alternation Dengan mengamati variable turn untuk menentukan
siapa yang akan memasuki critical section-nya bukanlah ide yang
baik jika proses lebih lambat dari yang lain. Petersons solution
Proses tidak akan diteruskan sampai while terpenuhi, bila
interested[other] = TRUE, maka proses akan menunggu sampai FALSE.
Test and set lock instruction / instruksi TSL Dengan bantuan
hardware, menentukan siapa yang berhak memasuki critical_region
(section) Sleep and wake up Mekanismenya : proses akan di blok /
tidur (sleep) apabila tidak bisa memasuki critical_section-nya dan
akan dibangunkan (wake up) / ready apabila resource yang diperlukan
telah tersedia. Semaphore Mekanisme-nya menggunakan : variabel
integer untuk menghitung jumlah wake up yang disimpan / tertunda
bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif
bila ada wake up yang tertunda Event counters Tiga operasi terhadap
event counter (E) : Read (E) : return current value of E Advance
(E) : Atomically increment E by 1 Wait until E has a value of v or
more Monitor Higher level synchronization primitive. Kumpulan
prosedur, variabel dan struktur data yang dipaket menjadi satu
modul atau paket. Proses bisa memanggil prosedur dalam monitor,
tetapi tidak dapat mengakses langsung struktur data internal dari
monitor.
Message passing Menggunakan 2 primitive : send (destination,
&message) receive (source, &message) Beberapa isu pada
message passing system : message lost; acknowledgement; domains;
authentication; performance
H. 3 Model Proccess Pada Server
thread di ciptakan untuk dapat melakukan paralelisme yang
dikombinasikan dengan eksekusi sekuensial dan blocking system calls
single treads server, menggunakan blocking system calls, tetapi
kinerja sistem tidak baik finite-state machine, kinerja baik dengan
melakukan parallelisme, tetapi menggunakan nonblocking calls,
sehingga sulit dalam memprogram
I. Status Proses Terhadap Prosessor
TEKNIK PENJADWALAN PROSESORA. Istilah
Pekerjaan / job -> user menyerahkan pekerjaan (panjang,
sedang, pendek) pada komputer untuk diolah oleh komputer (analisis
untuk mengetahui bagaimana sebaiknya pekerjaan dilakukan) Terobosan
/ troughput -> pekerjaan yang dilakukan langkah demi langkah
sehingga banyak pekerjaan yang dapat diselesaikan oleh system
komputer dalam satu satuan waktu. Tugas / task -> program yang
terdiri dari banyak bagian program yang dikerjakan merupakan tugas
bagi OS. Terbagi menjadi : Tugas sedang dilaksanakan (tugas yang
menemukan semua resource termasuk prosessor) Tugas siap
dilaksanakan (tugas yang menemukan semua resource yang diperlukan
kecuali prosesor) Tugas belum dilaksanakan (tugas yang belum
menemukan resource yang diperlukan. Proses -> tugas yang telah
dijadwalkan untuk menemukan prosessor (tugas yang telah diterima
oleh penjadwalan.
B. Gambar prosessor
C. 2 siklus kerja prosessor
Siklus Jemput PT berisi alamat awal program pada memori kerja
yang disesuaikan dengan isinya di memori kerja RA = PT, alamat
memori PT diteruskan ke RA RA RD, isi program diambil dari memori
kerja dan diletakkan di RD RI = RD, dari RD program diteruskan ke
RI PT= PT + 1, pencacah untuk melanjutkan siklus berikutnya Go to
point b Siklus Kerja RI = SK, isi program di RI akan diteruskan ke
SK, RI berisi instruksi untuk melaksanakan sesuatu SK seluruh
kegiatan di dalam prosesor dikendalikan sehingga kerja yang
dimaksud oleh bagian program itu dirampungkan.
D. 2 jenis kerja / proses
Tugas / proses system, berasal dari program system yaitu dari
system bahasa, utilitas, operasi, dimana prosesor melayani system
(prosesor dikuasai system / konteks system) Tugas / proses
aplikasi, berasal dari program aplikasi, dimana prosesor melayani
aplikasi (prosesor dikuasai aplikasi / kontek aplikasi)
E. Proses serentak
Multiprogramming, sistem komputer lebih dari 1 program sekaligus
dalam pelaksanaan proses. Multitasking, banyak bagian program yang
dipersiapkan untuk diolah oleh prosesor namun belum sempat
dijadwalkan untuk memperoleh prosesor. Multiprocessing, sejumlah
tugas yang telah dijadwalkan untuk menggunakan prosesor.
Multiplexing, menggunakan pertukaran kendali dalam selang waktu
terpisah-pisah. Time sharing / rentang waktu, secara bersamaan
sejumlah pemakai dapat menggunakan 1 sistem komputer, sehingga
setiap pemakai merasa bahwa seluruh sistem komputer seolah-olah
untuk dirinya.
F. Proses berurutan Proses yang berlangsung secara berselingan
dan diantara mereka tidak ada yang bertumpang tindih waktu sebelum
1 proses selesai, proses berikutnya belum bekerja.
G. Proses parallel
Proses tunggal, proses yang dilakukan serentak bukan parallel
karna proses ini sepenggal demi sepenggal. Proses jamak, proses
yang dilakukan serempak diantara banyak prosessor sehingga disebut
proses parallel
H. Proses serentak berpenggalan
Ada 1 proses berselingan dengan penggalan dari proses lain Ada
penggalan dari proses pertama yang bertumpang tindih waktu dengan
penggalan proses kedua.
MODUL 2TOPIC : THREAD
A. Thread
Program yang dieksekusi : Proses berat (heavy weight) ->
proses tradisional Proses ringan (light weight) -> thread
Terdiri dari ID thread, program counter, himpunan register dan
stack. Bisa melakukan lebih dari satu pekerjaan pada waktu yang
sama.
B. Keuntungan
Tanggap Resource sharing Economics Pemberdayaan arsitektur
multiprocessor
C. User thread
Pengelolaan thread dilakukan oleh user level. Contoh : Posic
P-Threads, Mach C-Threads, Solaris threads.
D. Kernel thread
Didukung oleh kernel. Contoh : windows 95/98/NT/2000, Solaris,
Tru64 Unix, BeOS, Linux.
E. Model multithreading
Many To One Beberapa thread user level dipetakan dalam single
kernel thread Penggunaannya pada system tidak memerlukan dukungan
kernel thread
One To One Setiap user level thread dipetakan ke kernel thread.
Contoh : windows 95/98/NT/2000, OS/2
Many To Many
Mengizinkan setiap user level thread dipetakan ke banyak kernel
thread Mengizinkan OS membuat sejumlah kernel thread. Contoh :
Windows NT/2000 dengan paket thread fiber, solaris 2
F. Isu threading
Semantik dari fork() dan exec() system calls. Pembatalan thread.
Penanganan signal Pengelompokan thread Thread untuk data
spesifik
G. Pthreads
Suatu POSIX standard (IEEE 1003.1c) API untuk pembuatan thread
dan sinkronisasi synchronization. API menentukan perlakuan terhadap
thread library, dan implementasi pembangunan library. Ditemui pada
sistem operasi UNIX.
H. Windows 2000 threads
Implementasi menggunakan pemetaan one-to-one Setiap thread
terdiri dari :1. thread id2. register set3. pembagian user dan
kernel stacks4. private data storage area
I. Linux threads
Linux lebih mengacu pada tasks dibandingkan threads. Pembuatan
thread dilakukan menggunakan sistem clone() system call. Clone()
membolehkan child task untuk berbagi ruang alamat pada parent task
(proses)
J. Java Threads
Java threads dibuat melalui : Extending Thread class
Implementasi Runnable interface Java threads dikelola oleh JVM.
MODUL 3TOPIC : PENJADWALAN CPU
A. Konsep dasar
Memaksimalkan kinerja CPU melalui multiprogramming CPU, I/O
burst cycle, eksekusi proses terdiri dari siklus eksekusi CPU dan
I/O wait. Pendistribusian CPU burst.
Penjadwalan CPU
Algoritma schedulling (memilih dari proses yang berada di memori
(ready to execute) dan member jatah CPU ke salah satu proses itu).
Keputusan untuk algoritma dilakukan ketika : Saat suatu proses :1.
Switch dari status running ke waiting (non-preemptive)2. Switch
dari status running ke ready (preemptive)3. Switch dari status
waiting ke ready (preemptive)4. Terminates (non-preemptive)
Jenis Penjadwalan
Preemptive (OS dapat mengambil (secara interrupt, preempt) CPU
dari 1 proses setiap saat. Non preemptive (setiap proses secara
sukarela member CPU ke OS. Contoh :1. Penjadwalan u/ switch dari
running ke wait atau terminate : non preemptive2. Penjadwalan
proses dari running ke ready : preemptive. (prasyarat u/ OS real
time sharing).Dispatcher Modul dispatcher (mengatur dan member
kontrol CPU pada proses yang dipilih oleh short term scheduler.
Contoh : switching context, switching ke user mode, melompat ke
lokasi yang lebih tepat dari user program u/ mulai kembali program)
Dispatcher latency (terdapat waktu yang terbuang, dimana dispatcher
menghentikan satu proses dan menjalankan proses lain. Contoh : save
(proses lama) dan restore (proses baru))
B. Criteria penjadwalan
Memaksimumkan Utilisasi CPU (menjadikan CPU terus menerus sibuk
(menggunakan CPU maksimal)) Memaksimumkan Throughput (memaksimalkan
jumlah proses yang selesai dijalankan (per satuan waktu))
Meminimumkan Turn around time (minimal waktu selesai eksekusi suatu
proses (sejak di submit hingga selesai)) Meminimumkan Waiting time
(jumlah waktu yang dihabiskan u/ menunggu di ready queue)
Meminimumkan Response time (minimalkan waktu response dari system
terhadap user)
C. Algoritma penjadwalan
First come first served (FCFS) Algoritma: Proses yang request
CPU pertama kali akan mendapatkan jatah CPU. Sederhana algoritma
maupun struktur data: menggunakan FIFO queue (ready queue). FIFO:
Non preemptive Timbul masalah waiting time terlalu lama jika
didahului oleh proses yang waktu selesainya lama.1. Tidak cocok
untuk time-sharing systems.2. Digunakan pada OS dengan orientasi
batch job.
Shortest job first (SJF)
Penggabungan setiap proses merupakan panjang dari burst CPU
berikutnya. Panjang tersebut digunakan untuk penjadualan proses
pada waktu terpendek Terdapat 2 skema : Non-preemptive > CPU
hanya satu kali diberikan pada suatu proses, maka proses tersebut
tetap akan memakai CPU hingga proses tersebut melepaskannya
preemptive > jika suatu proses tiba dengan panjang CPU burst
lebih kecil dari waktu yang tersisa pada ekseksusi proses yang
sedang berlangsung, maka dijalankan preemtive. Skema ini dikenal
dengan Shortest-Remaining-Time-First (SRTF). SJF akan optimal,
keteika rata-rata waktu tunggu minimum untuk set proses yang
diberikan
Priority
Algoritma: Setiap proses akan mempunyai prioritas (bilangan
integer). CPU diberikan ke proses dengan prioritas tertinggi
(smallest integer highest priority). Preemptive: proses dapat di
interupsi jika terdapat prioritas lebih tinggi yang memerlukan CPU.
Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada
saat pemakain time-slice habis. SJF adalah contoh priority
scheduling dimana prioritas ditentukan oleh waktu pemakaian CPU
berikutnya. Problem = Starvation Proses dengan prioritas terendah
mungkin tidak akan pernah dieksekusi Solution = Aging Prioritas
akan naik jika proses makin lama menunggu waktu jatah CPU.
Round Robin (RR)
Setiap proses mendapat jatah waktu CPU (time slice/quantum)
tertentu misalkan 10 atau 100 milidetik. Setelah waktu tersebut
maka proses akan di-preempt dan dipindahkan ke ready queue. Adil
dan sederhana. Jika terdapat n proses di ready queue dan waktu
quantum q (milidetik), maka: Maka setiap proses akan mendapatkan
1/n dari waktu CPU. Proses tidak akan menunggu lebih lama dari:
(n-1) q time units. Performance q besar FIFO q kecil q harus lebih
besar dengan mengacu pada context switch, jika tidak overhead akan
terlalu besar
Multilevel Queue
Kategori proses sesuai dengan sifat proses: Interaktif (response
cepat) Batch dll Partisi ready queue dalam beberapa tingkat
(multilevel) sesuai dengan proses: Setiap queue menggunakan
algoritma schedule sendiri Foreground proses (interaktif, high
prioritiy): RR Background proses (batch, low priority): FCFS Setiap
queue mempunyai prioritas yang fixed.
Multilevel feedback queue
Suatu proses dapat berpindah diantara beragam antrian. Perlu
feedback untuk penentuan proses naik/turun prioritasnya (dinamis):
Aging dapat diimplementasikan sesuai dengan lama proses pada satu
queue. Suatu proses yang menggunakan CPU sampai habis (tanpa I/O
wait) => CPU-bound (bukan proses interaktif) dapat dipindahkan
ke queue dengan prioritas lebih rendah
D. Penjadwalan multiple processor
Penjadwalan CPU lebih kompleks ketika ada multiple processor
Processor yang homogen termasuk dalam multiprocessor Load sharing
Asymmetric multiprocessing (only one processor can accesses
structure the system data structures sehingga meringankan kebutuhan
sharing data)
E. Penjadwalan real time
Hard real-time systems Task kritis harus selesai dengan garansi
waktu tertentu OS akan melacak lamanya task tersebut dieksekusi
(real time): Mengetahui lama waktu system call, fungsi dan response
dari hardware Melakukan prediksi apakah task tersebut dapat
dijalankan. Mudah dilakukan untuk OS khusus pada peralatan/
pemakaian khusus (single task: control system) Sulit untuk
time-sharing sistim, virtual memory (faktor latency sebagian
program aktif ada di disk). Soft real-time systems Membutuhkan
penggunaan skema prioritas Multimedia, highly interactive graphics
Prioritas tidak menurunkan over time Dispancy latency yang rendah :
Penyisipan point preemsi sepanjang waktu system calls Membuat
keseluruhan kernel preemptable F. Evaluasi algorithm