tugasb marino
DESCRIPTION
tugas kuliahTRANSCRIPT
TUGAS
SISTEM OPERASI
PROSES,THREAD,
DAN
PENJADUALAN CPU
OLEH
MARINO L. WILLIEM
231 11 058
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS KATOLIK WIDYA MANDIRA
KUPANG
2013
A. PROSES
1. Sebutkan 5 Aktivitas Sistem Operasi yang merupakan contoh dari suatu
managemen proses?
Jawaban:
Pembuatan dan penghapusan proses pengguna dan sistem proses,
Menunda atau melanjutkan proses,
Menyediakan mekanisme untuk proses sinkronisasi,
Menyediakan mekanisme untuk proses komuniaksi,
Menyediakan mekanisme untuk penanganan deadlock.
2. Definisikan perbedaan antara penjadwalan short term, medium term dan long
term?
Jawaban:
Short term (penjadwalan jangka pendek)
Bertugas menjadwalkan alokasi pemroses diantara proses-proses ready
yang berada di memori utama. Sasaran utama penjadwal jangka pendek ini
adalah memaksimumkan kinerja sistem untuk memenuhi satu kumpulan
kriteria yang diharapkan. Hal ini dijalankan setiap terjadi pengalihan proses
untuk memilih proses berikutnya yang akan dijalankan.
Medium term (penjadwalan jangka menengah)
Memiliki fungsi untuk menangani proses-proses swapping. Proses-proses
yang mempunyai kepentingan kecil saat itu adalah proses yang ditunda.
Tetapi begitu proses yang membuat proses ditunda hilang dan proses
dimasukkan kembali ke memori utama dan Ready. Penjadwalan jangka
menengah menegndalikan transisi dari Suspended ke Ready dari proses-
proses yang mengalami swapping.
Long term (Pnejadwalan jangka panjang)
Bekerja terhadap antrian batch lalu memilih batch berikutnya yang harus
dieksekusi sistem. Batch biasanya berupa proses-proses dengan penggunaan
sumber daya yang intensif, program-program ini mempunyai prioritas yang
rendah, dan dapat digunakan sebagai pengisi selama berlangsung nya
aktivitas proses-proses interaktif rendah.
3. Jelaskan tindakan yang diambil oleh sebuah kernel ketika Contaks Switch antar
proses.
Jawaban:
Pengalihan konteks memiliki fungsi untuk pengalihan sementara yang
dilakukkan dengan singkat, contohnya untuk mengeksekusi interrupt handler.
Ketika proses Running diinterupsi atau memanggil system call maka konteks
pemroses dari proses ini disimpan dan kendali dilewatkan ke kernel.
4. Informasi apa saja yang disimpan pada tabel proses saat Contaxt Switch dari satu
proses ke proses lain.
Jawaban:
Informasi yang disimpan pada tabel saat pengalihan konteks adalah
pemroses penyimpanan konteks program kedalam stack. Stack tersebut berfungsi
saat penanganan interupsi konteks selesai program dapat dipanggil kembali dari
stack dan konteks program dapat kembali seperti semula tanpa adanya
pengalihan ke proses lain lagi.
5. Di sistem UNIX terdapat banyak status proses yang dapat timbul (transisi)
akibat event (eksternal) OS dan proses tersebut itu sendiri. Transisi state apa
sajakah yang dapat ditimbulkan oleh proses itu sendiri .Sebutkan.
Jawaban:
Proses yang baru diciptakan akan segera mempunyai state ready,
Proses pada state running akan menjadi blocked sebab sumber daya yang
diminta belum tersedia,
Proses state running menjadi ready karena penjadwal memutuskan agar
pemroses melakukkan eksekusi proses yang lain karena jatah waktu untuk
proses itu telah selesai (time out),
Proses dengan state blocked menjadi ready apabila sumber daya yang
diminta telah tersedia atau layanan perangkat I/O selesai,
Proses dengan state Ready menjadi running karena penjadwal memutuskan
penggunaan proses untuk proses itu karena proses yang telah dirunning
berubah menjadi ready atau blocked,
6. Apa keuntungan dan kekurangan dari:
Komunikasi simetrik dan asimetrik
Automatic dan explicit buffering
Send by copy dan send by reference
Fixed-size dan variable sized message
Jawaban:
Komunikasi simetrik dan asimetrik, Keuntungannya yaitu mengijinkan
bertemunya pengirim dan penerima. Namun Komunikasi ini juga mempunyai
kekurangan yaitu pada saat kedua belah pihak memerlukan nama proses lain,
sehingga membuat komunikasi asimetrik sulit untuk membangun server.
Automatic dan explicit buffering, keuntungannya yaitu menyediakan
antrian yang panjang. Pengirim tidak aka pernah memblokir ketika
menunggu untuk menyalin pesan. Tidak ada spesifikasi bagaimana
Automatic buffering disediakan. Satu skema mungkin disediakan memori
yang cukup besar, dimana akan banyak memori yang terbuang. Explicit
Buffering menentukan seberapa besar buffer ini, pengirim dapat di blokir
sambil memunggu ruang yang tersedia dalam antrian. Memori kecil
kemungkinan akan terbuang.
Send by copy dan send by reference, Send by copy memungkinkan
penerima untuk merubah parameter,send by reference tidak memungkinkan
hal itu. manfaat dari send by reference memungkinkan programmer untuk
menulis distributed version dari aplication center.
Fixed-size dan variable sized message, dengan fixed size message buffer
dengan ukuran tertentu dapat menampung sejumlah pesan. jumlah variable
sized message yang dipegang oleh buffer tidak diketahui. Fixed size
membuat program lebih mudah tetapi variable sized message lebih sulit
untuk membangun sistem.
7. Jelaskan perbedaan short term, medium term dan long term.
Jawaban:
Short term
Sasaran utama short term ialah memaksimumkan kinerja sistem untuk
memenuhi satu kumpulan kriteria yang diharapkan. Short term dijalankan
setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus
dijalankan.
Medium term
Berfungsi untuk menangani proses-proses swapping. proses-proses yang
mempunyai kepentingan kecil saat ini adalah proses yang tertunda, medium
term mengendalikan transisi dari suspend ke ready.
Long term
Bekerja terhadap antrian batch berikutnya yang harus dieksekusi sistem.
Batch biasanya berupa proses-proses dengan penggunaan sumber daya yang
intensif.
8. Jelaskan apa yang akan dilakukkan oleh kernel kepada Conteks Switch ketika
proses sedang berlangsung.
Jawaban:
Pertama kali yang dilakukan adalah pemroses menyimpan konteks program saat
itu yang sedang dieksekusi kedalam stack, selanjtnya pemroses melakukkan set
pada register PC dengan alamat awal program untuk interrupt handler.
9. Beberapa single user mikrokomputer sistem operasi seperti MS-DOS
menyediakan sedikit atau tidak sama sekali arti dari pemrosesan konkuren.
Diskusikan dampak yang paling mungkin ketika pemrosesan yang konkuren di
masukkan kedalam suatu sistem operasi.
Timeout
Submit
Event wait
CompletionDispatch
Event Occurs
Jawaban:
Dampaknya yaitu:
Mutual Exclusion
Deadlock
Starvation
Sinkronisasi
10. Perlihatkan semua kemungkinan keadaan dimana suatu proses dapat sedang
berjalan dan gambarkan diagram transisi keadaan yang menjelaskan bagaimana
proses bergerak diantara state.
Jawaban:
Running: Pemroses sedang mengeksekusi instruksi proses itu.
Ready: Proses siap (ready) dieksekusi tapi pemroses tidak mengeksekusi
proses ini
Blocked:Proses menunggu kejadian tertentu selesai. Contoh: proses
menunggu kejadian-kejadian seperti, selesainya operasi perangkat
masukkan/keluaran, tersedianya memori, tibanya pesan jawaban.
READY RUNNING
BLOCKED
11. Apakah suatu proses memberikan "issue" ke suatu disk I/O ketika proses tersebut
dalam"ready"state,jelaskan.
Jawaban:
Ya, karena tanpa diberikan issue akan terjadi deadlock karena terjadi perebutan
sumber daya antar proses.
12. Kernel menjaga suatu rekaman untuk setiap proses, disebut proses control block
(PCB).
Jawaban:
Informasi identifikasi proses: informasi-informasi yang berkaitan dengan
identitas proses yang unik. Dengan identifier ini, proses dikaitkan ke tabel-
tabel lain.
Informasi status pemroses: berisi informasi-informasi yang esensinya
merupakan nilai/isi dari register-register pemroses. Saat proses berstatus
running, informasi-informasi ini berada si register-register. Ketika proses
diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan
saat proses dieksekusi kembali.
informasi kendali proses, informasi-informasi lain yang diperlukan sistem
operasi untuk mengendalikan dan koordinasi beragam proses aktif.
B. THREAD
1. Tunjukkan 2 contoh pemrograman dari multithreading yang dapat meningkatkan
sebuah solusi thread tunggal.
Jawaban:
Dalam web browser yang multithreading, sebuah thread dapat melayani
permintaan pengguna sementara thread lain berusaha menampilkan image.
Dalam pembuatan sebuah proses banyak memerlukan pengalokasian memori
dan sumber daya. Caranya adalah dengan penggunaan thread, karena thread
berbagi memori dan sumber daya proses yang dimilikinya maka akan lebih
ekonomis untuk membuat dan context switch thread. Akan susah untuk
mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan
dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih
memerlukan waktu yg lebih lama dibandingkan thread. Pada Solaris,
pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan
context switch proses 5 kali lebih lama dibandingkan context switch thread.
2. Tunjukkan 2 contoh pemrograman dari multithreading yang tidak dapat
meningkatkan sebuah solusi thread tunggal.
Jawaban:
Program 1
class Thread2 implements Runnable
{
public void run()
{
for(int k = 0; k<4; k++){
System.out.println("Test Thread2");
Test.istirohat(7);
}
}
public class Test
{
public static void main (String[] args)
{
Thread x = new Thread1();
Thread y = new Thread (new Thread2());
x.start();
y.start();
for (int i = 0; i<8; i++){
System.out.println("Thread1");
istirohat(5);
}
}
public static void istirohat(int tunda)
{
try{
Thread.sleep(tunda*100);
} catch(InterruptedException e) {}
}
}
Program 2
Class Thread3 implements Runnable
{
public void run(){
while (true){
System.out.println("Test Thread3");
if (Thread.currentThread.isInterrupted()) //cek status
break;
}
}
}
3. Sebutkan 2 perbedaan antara user level thread dan kernel thread. Saat kondisi
bagaimana salah satu dari thread tersebut lebih baik
Jawaban:
User Level Thread
User thread didukung di atas kernel dan diimplementasi oleh thread
library pada user level. Library menyediakan fasilitas untuk pembuatan
thread, penjadualan thread, dan managemen thread tanpa dukungan dari
kernel. Karena kernel tidak menyadari user-level thread maka semua
pembuatan dan penjadualan thread dilakukan di user space tanpa intervensi
dari kernel. Oleh karena itu, user-level thread biasanya cepat untuk dibuat
dan diatur. Tetapi user thread mempunyai kelemahan yaitu apabila kernelnya
merupakan thread tunggal maka apabila salah satu user-level thread
menjalankan blocking system call maka akan mengakibatkan seluruh proses
diblok walaupun ada thread lain yang dapat jalan dalam aplikasi tersebut.
Contoh user-thread libraries adalah POSIX Pthreads, Mach C-threads, dan
Solaris threads.
Kernel Level Thread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan,
penjadualan, dan managemen thread dilakukan oleh kernel pada kernel space.
Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan
dan pengaturan kernel thread lebih lambat dibandingkan user thread. Maka
Kernel Level Thread dapat dikatakan lebih baik dari User Level Thread
adalah thread diatur oleh kernel, karena itu jika sebuah thread menjalankan
blocking system call maka kernel dapat menjadualkan thread lain di aplikasi
untuk melakukan eksekusi. Kemudian pada lingkungan multiprocessor,
kernel dapat menjadual thread-thread pada processor yang berbeda. Contoh
sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris,
Digital UNIX.
4. Jelaskan tindakan yang diambil oleh sebuah kernel saat alih konteks antara
kernel level thread.
Jawaban:
Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan
dan pengaturan kernel thread lebih lambat dibandingkan user thread. Maka
Kernel Level Thread dapat dikatakan lebih baik dari User Level Thread adalah
thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking
system call maka kernel dapat menjadualkan thread lain di aplikasi untuk
melakukan eksekusi. Kemudian pada lingkungan multiprocessor, kernel dapat
menjadual thread-thread pada processor yang berbeda.
5. Sumber daya apa sajakah yang digunakan ketika sebuah thread dibuat? Apa yang
membedakannya dengan pembentukan sebuah proses.
Jawaban:
Sumber daya yang digunakan saat thread dibuat yaitu berbagi memori
dan berbagi kode. Yang membedakan pembuatan thread dengan proses yaitu
dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan
sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread
berbagi memori dan sumber daya proses yang memilikinya maka akan lebih
ekonomis untuk dibuat dan context switch thread. Akan susah untuk mengukur
perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan,
tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan
thread.
6. Tunjukkan tindakan yang diambil oleh sebuah thread library saat alih konteks
antara user level thread.
Jawaban:
Thread Library menyediakan fasilitas untuk pembuatan thread,
penjadualan thread, dan managemen thread tanpa dukungan dari kernel. Karena
kernel tidak menyadari user-level thread maka semua pembuatan dan
penjadualan thread dilakukan di user space tanpa intervensi dari kernel. Oleh
karena itu, user-level thread biasanya cepat untuk dibuat dan diatur. Tetapi user
thread mempunyai kelemahan yaitu apabila kernelnya merupakan thread tunggal
maka apabila salah satu user-level thread menjalankan blocking system call
maka akan mengakibatkan seluruh proses diblok walaupun ada thread lain yang
dapat jalan dalam aplikasi tersebut. Contoh user-thread libraries adalah POSIX
Pthreads, Mach C-threads, dan Solaris threads.
C. PENJADUALAN CPU
1. Definisikan perbedaan antara penjadualan secara preemptive dan nonpreemptive!
Jawaban:
Pada penjadwalan secara preemptive (dihalangi)
Suatu task dapat disela oleh task lain yang lebih penting dan kemudian
lain waktu dapat menggunakan prosesor lagi(resumed). Pada umumnya jika
dimungkinkan suatu task yang kritis harus diizinkan untuk menyela task lain
yang kurang kritis agar dapat memenuhi batas – waktu (deadline). Suatu task
disebut dihalangi (preemptive) jika task tersebut dapat disela oleh permintaan
prosesor dari task yang berprioritas lebih tinggi. Pada jadwal dihalangi
(preemptive) akan dijamin pemrosesan task – task secara periodik dan
diperoleh jadwal yang layak, serta priority inversion dapat diminimalkan.
Priority inversion adalah situasi dimana eksekusi task yang berprioritas tinggi
ditunda oleh task berprioritas rendah.
Pada penjadwalan secara nonpreemptive(tanpa-dihalangi)
Sekali suatu task memulai, task tersebut harus dieksekusi (run) sampai
selesai atau sampai task diblokir karena menunggu/memerlukan sumber daya
(resource). Suatu task disebut tanpa-dihalangi(non preemptive) jika task
tersebut memperoleh jatah prosesor, diproses dan tidak dapat disela sampai
task berakhir atau memerlukan sumber-daya. Pada jadwal tanpa-dihalangi
(non-preemptive), dalam kebanyakan kasus, waktu kedatangan, waktu
pemrosesan dan batas – waktu (deadline) adalah sembarang serta tidak
diketahui oleh penjadwal sampai task tiba, tujuan algoritma tanpa-
dihalangi(non preemptive) adalah memaksimalkan adanya jaminan kepastian
pemrosesan, bisa saja tidak ditemukan jadwal yang layak (feksibel).
2. Jelaskan mengapa penjadualan strict nonpreemptive tidak seperti yang digunakan
di sebuah komputer pusat.
Jawaban:
Karena pada saat Proses digunakan diberi jatah waktu oleh pemroses,
maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu
selesai, sedangkan komputer pusat dalam pengeksekusian proses dimulai dengan
CPU Burst, setelah itu diikuti oleh I/O burst, lalu CPU Burst lagi lalu I/O Burst
lagi begitu seterusnya dan dilakukan secara bergiliran sampai CPU Burst
terakhir, proses akan berakhir dengan permintaan sistem untuk mengakhiri
pengeksekusian dari pada melalui I/O Burst lagi.
3. Apakah keuntungan menggunakan time quantum size di level yang berbeda dari
sebuah antrian sistem multilevel.
Jawaban:
Keuntungan menggunakan time quantum size di level yang berbeda
adalah dapat menjalankan proses lain saat prosesnya belum selesai dieksekusi.
Dengan menggunakan waktu quantum, proses mempunyai jatah waktu
pemrosesan yang sama dengan proses-proses yang lain.
Pertanyaan nomor 4 sampai dengan 5 dibawah menggunakan soal berikut:
Misal diberikan beberapa proses dibawah ini dengan panjang CPU burst ( dalam
milidetik)
Semua proses diasumsikan datang pada saat t=0
Tabel 2-1. Tabel untuk soal 4 — 5
proses Bursttime
prioritas
P1P2P3P5P4
101215
31342
4. Gambarkan 4 diagram Chart yang mengilustrasikan eksekusi dari proses-proses
tersebut menggunakan FCFS, SJF, prioritas nonpreemptive dan round robin.
Jawaban:
First Come First Served
Urutan Prosesnya adalah
P1 > P2 > P3 > P4 >P5
SJF (non-Preemptive)
Urutan prosesnya adalah:
P2 > P4 > P3 > P5 > P1 (berdasar burst time terkecil
Prioritas Non Preemptive
Berdasarkan prioritas
Urutan prosesnya adalah :
P2 > P5 > P1 > P3 > P4
Round Robin (Q=4)
Urutan Prosesnya adalah:
P1>P2>P3>P4>P5>P1>P5>P1
Time 4 5 7 8 12 16 17 19
Process P1 P2 P3 P4 P5 P1 P5 P1
5. Hitung waktu tunggu dari setiap proses untuk setiap algoritma penjadualan.
Jawaban:
First Come First Serve
Waiting Time-nya adalah:
P1 = 0
P2 = 10
P3 = 11
P4 = 13
P5 = 14
Maka,Average Waiting Time-nya adalah sebagai berikut:
AVG =( 0+10+11+13+14)/5
= 9.6 ms
SJF (non-Preemptive)
Waiting Time-nya adalah:
P1 = 9
P2 = 0
P3 = 2
P4 = 1
P5 = 4
Maka,Average Waiting Time-nya adalah sebagai berikut:
AVG = (9+0+2+1+4) / 5
= 3.2ms
Prioritas Non Preemptive
Waiting Time-nya adalah:
P1 = 6
P2 = 0
P3 = 16
P4 = 18
P5 = 1
Maka,Average Waiting Time-nya adalah sebagai berikut:
AVG = (6+0+16+18+1) / 5
= 8.2ms
Round Robin
Waiting Time-nya adalah:
P1 = 0
P2 = 4
P3 = 5
P4 = 7
P5 = 8
P1=12
P5=16
P1=17
Maka,Average Waiting Time-nya adalah sebagai berikut:
AVG =( 0+4+5+7+8+12+16+17)/8
= 11 ms
6. Jelaskan perbedaan algoritma penjadualan berikut:
Jawaban:
a. FCFS
Penjadwalan ini tidak berprioritas
Penjadualan ini tidak peduli apakah burst time-nya panjang atau
pendek, sebuah proses yang sedang dikerjakan diselesaikan terlebih
dahulu barulah proses berikutnya dilayani.
Penjadualan ini cukup adil dalam hal bahasa, karena proses yang
datang lebih dulu dikerjakan.
Penjadualan ini cocok digunakan untuk sistem batch yang sangat
jarang melakukan interaksi dengan user secara langsung, tapi tidak
cocok digunakan untuk sistem interaktif karena tidak member waktu
tanggap yang bagus, begitu juga dengan sistem waktu nyata.
b. Round Robin
Penjadwalan paling tua, sederhana, adil, banyak digunakan
algoritmanya dan mudah diimplementasikan.
Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh
penjadual berdasarkan lama waktu berjalannya proses (preempt by
time).
Penjadualan tanpa prioritas.
Berasumsi bahwa semua proses memiliki kepentingan yang sama,
sehingga tidak ada proiritas tertentu.
c. Antrian Multilevel Feedback
Penjadualan berproritas dinamis
Penjadualan ini untuk mencegah banyaknya swapping dengan proses-
proses yang sangat banyak menggunakan pemroses.
Diberi jatah waktu lebih banyak dalam satu waktu
Penjadualan ini juga menghendaki kelas-kelas prioritas bagi proses-
proses yang ada.
7. Penjadualan CPU mendefinisikan suatu urutan eksekusi dari proses terjadual.
Diberikan n buah proses yang akan dijadualkan dalam satu prosesor, berapa
banyak kemungkinan penjadualan yang berbeda? berikan formula dari n.
Jawaban:
misalkan, jika kita mengetahui rata-rata 5 proses datang setiap detik, dannormalnya ada 15 proses dalam antrian, maka kita bisa menghitung waktutunggu rata-rata proses dalam antrian (W) sebagai berikut:X = 5 proses/detik, N = 15 proses.MakaW = N/X = 15/5 = 3 detik per proses.
Maka Formula yang dapat kita gunakan adalah W =
8. Tentukan perbedaan antara penjadualan preemptive dan nonpreemptive
(cooperative). Nyatakan kenapa nonpreemptive scheduling tidak dapat
digunakan pada suatu komputer center. Di sistem komputer nonpreemptive,
penjadualan yang lebih baik digunakan
Jawaban:
Perbedaan:
Preemptive menggunakan konsep:
RR (Round Robin)
SRF (Shortest Remaining First)
PS (Priority Schedulling)
GS (Guaranteed Schedulling)
Non- Preemptive menggunakan konsep:
FIFO (First In First Out) atau FCFS (First Come First Server)
SJR (Shorters Job First)
HRN (Highest Ratio Next)
MFQ (Multiple Feedback Queues)
Pernyataan
Karena pada saat Proses digunakan diberi jatah waktu oleh pemroses,
maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu
selesai, sedangkan komputer pusat dalam pengeksekusian proses dimulai
dengan CPU Burst, setelah itu diikuti oleh I/O burst, lalu CPU Burst lagi
lalu I/O Burst lagi begitu seterusnya dan dilakukan secara bergiliran
sampai CPU Burst terakhir, proses akan berakhir dengan permintaan
sistem untuk mengakhiri pengeksekusian dari pada melalui I/O Burst
lagi.