tugasb marino

19
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

Upload: vera-lake

Post on 28-Nov-2015

13 views

Category:

Documents


0 download

DESCRIPTION

tugas kuliah

TRANSCRIPT

Page 1: TugasB Marino

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

Page 2: TugasB Marino

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

Page 3: TugasB Marino

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),

Page 4: TugasB Marino

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

Page 5: TugasB Marino

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.

Page 6: TugasB Marino

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

Page 7: TugasB Marino

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.

Page 8: TugasB Marino

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

Page 9: TugasB Marino

{

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;

}

}

}

Page 10: TugasB Marino

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.

Page 11: TugasB Marino

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

Page 12: TugasB Marino

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

Page 13: TugasB Marino

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.

Page 14: TugasB Marino

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

Page 15: TugasB Marino

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

Page 16: TugasB Marino

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.

Page 17: TugasB Marino

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 =

Page 18: TugasB Marino

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.

Page 19: TugasB Marino