Anda di halaman 1dari 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

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 prosesproses 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.

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:
Timeout

Submit

READY

Dispatch

RUNNING

Completion

Event Occurs BLOCKED

Event wait

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.

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 tabeltabel 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 tanpadihalangi(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 P1 P2 P3 P5 P4

Burst time 10 1 2 1 5

prioritas 3 1 3 4 2

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 Process

4 P1

5 P2

7 P3

8 P4

12 P5

16 P1

17 P5

19 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 prosesproses yang sangat banyak menggunakan pemroses. Diberi jatah waktu lebih banyak dalam satu waktu Penjadualan ini juga menghendaki kelas-kelas prioritas bagi prosesproses 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, dan normalnya ada 15 proses dalam antrian, maka kita bisa menghitung waktu tunggu rata-rata proses dalam antrian (W) sebagai berikut: X = 5 proses/detik, N = 15 proses.Maka W = 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.

Anda mungkin juga menyukai