UJIAN TENGAH SEMESTER (UTS) - Pukako Media

51 downloads 606 Views 289KB Size Report
Jawaban soal pilihan ganda dikerjakan dengan ... Jawaban boleh ditulis dengan pensil. ... Seorang mahasiswa IT Telkom sedang membuat program dengan ...
INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1

Nama : …………………………. NIM

: 113-0…-…………….

Kelas : IF-32-0...

UJIAN TENGAH SEMESTER (UTS) Mata kuliah Kode MK/SKS Dosen Tanggal ujian Jam Waktu Sifat ujian

: Sistem Operasi (SisOp) : CS3613 / 3 SKS : EAR, END, FAZ, TBH : Rabu, 27 Oktober 2010 : 07.30 WIB : 120 menit : Buku tertutup

Petunjuk: 1. Berdoalah sebelum mengerjakan soal-soal ujian. 2. Periksalah kelengkapan lembar soal (soal terdiri dari 12 halaman). 3. Jawaban langsung dikerjakan pada lembar soa. Jawaban soal pilihan ganda dikerjakan dengan cara memberi tanda silang (X). 4. Kerjakan mulai dari soal yang paling mudah menurut anda. 5. Anda diperbolehkan membuat coretan/perhitungan pada lembar soal. 6. Jawaban boleh ditulis dengan pensil. Perhatian !!! 1. Semua jenis peralatan elektronik (kalkulator, HP, dsb) tidak boleh digunakan 2. Selama ujian berlangsung: - tidak boleh berbuat curang (mencontek, melihat jawaban teman, dsb) serta tidak boleh berkomunikasi dengan cara apapun dengan sesama peserta ujian - tidak boleh pinjam meminjam apapun (tipex, kalkulator, penghapus, alat tulis, dsb) 3. Pelanggaran terhadap hal-hal yang telah dilarang di atas bisa berakibat yang bersangkutan dinyatakan tidak lulus mata kuliah Sistem Operasi CS3613

Soal-soal berikut ini berkaitan dengan topik: OVERVIEW SISTEM KOMPUTER (Total nilai = 4) 1.

Seorang mahasiswa IT Telkom sedang membuat program dengan memanfaatkan pointer yang ada di dalam bahasa C. Ketika pogram sedang di-compile, muncullah pesan kesalahan bahwa telah terjadi ilegal akses. Uraikan urut-urutan yang terjadi sejak program di-compile hingga keluar pesan kesalahan. (Nilai 0-2) Jawab: - Program di-compile - Ada baris program yang mencoba mengakses alamat/lokasi milik proses lain - Sistem operasi memeriksa apakah alamat yang akan diakses program tersebut masih kepunyaan program yang di-compile atau tidak - Karena alamat yang akan diakses berada di luar batas alamat memori milik program tersebut, maka program tersebut dihentikan - Sistem operasi mengeluarkan pesan kesalahan ilegal akses

UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#1

INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 2.

Jelaskan apa yang terjadi di dalam komputer ketika anda menekan tombol power pada komputer yang sebelumnya telah dimatikan dengan cara hybernate ! (Nilai 0-2) Jawab: - Sistem operasi mengembalikan semua isi RAM yang telah disimpan di harddisk pada saat hybernate dijalankan menuju RAM

Soal-soal berikut ini berkaitan dengan topik: OVERVIEW SISTEM OPERASI (Total nilai = 12) 3.

Tuliskan 3 definisi dari sistem operasi ! (Nilai 0-6) Jawab: a. Adalah program yang mengatur eksekusi program aplikasi b. Merupakan penghubung (interface) antara aplikasi dengan perangkat keras c. Merupakan jembatan penghubung antara user dengan perangkat keras komputer

4.

Tuliskan 3 kemampuan yang harus dimiliki oleh sistem operasi ! (Nilai 0-6) Jawab: a. Mampu memberi kenyamanan bagi user dalam memanfaatkan resource komputer b. Mampu mengatur resource komputer (resource manager) c. Mampu berkembang (berevolusi)

Soal-soal berikut ini berkaitan dengan topik: DESKRIPSI dan KONTROL PROSES (Total nilai = 15) 5.

aa.

bb. cc. dd. ee. ff. gg. hh. ii.

Pasangkan isi setiap baris pada Kolom 1 dengan isi salah satu baris pada Kolom 3 dengan cara menuliskan huruf A, B, C, dst yang ada di awal setiap baris pada Kolom 3 dengan cara menuliskan huruf-huruf tersebut ke dalam Kolom 2, sehingga ada hubungan antara isi pada Kolom 1 dengan isi pada Kolom 3 ! (Setiap baris bernilai 0 ATAU 1) Kolom 1 Bagian dari sistem operasi yang mengatur giliran pemanfaatan prosesor kepada suatu proses ke proses yang lain identifier, state, priority, program counter, memory pointers, context data, I/O status bounds violation, arithmatic error, I/O failure memindahkan proses yang berada pada status blocked dari memori ke harddisk ready/suspend state, blocked/suspend state mode saat program user sedang dieksekusi oleh prossesor interrupt, trapt, system call Entitas yang dapat diberikan kepada prosesor untuk dieksekusi control mode

Kolom 2 D

A.

Kolom 3 Swapping

G

B.

Proses 7 status

I A

C. D.

Any state  exit Dispatcher

B J

E. F.

O K

G. H.

System mode Blocked  Blocked/Suspend Process control block Proses 2 status

E

I.

Process termination

UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#2

INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 jj. kk.

running, not running Proses terpaksa berhenti karena sedang menunggu suatu event terjadi ll. program yang dieksekusi, PCB, stack system, data user mm. terjadi kesalahan, diterminasi proses induk, proses telah selesai nn. time out, datang proses dengan prioritas lebih tinggi oo. Memindahkan proses yang ter-blok dari memori ke harddisk sehingga tersedia ruang memori lebih besar

H L

J. K.

Less-privileged mode Process

N

L.

Blocked

C

M. Proses 6 status

Q F

N. O.

Process image Process switching

P.

Ready  Ready/Suspend Running ready

Q. Soal-soal berikut ini berkaitan dengan topik: THREAD, SMP, dan MIKROKERNEL (Total nilai = 12) 6.

Jelaskan mengapa komunikasi antar thread dapat lebih efisien daripada komunikasi antar proses ! (Nilai 0-2) Jawab: Karena komunikasi antar thread tidak melibatkan kernel karena berada di dalam satu proses, sedangkan komunikasi antar proses harus melibatkan kernel

7.

Tuliskan 3 keunggulan KLT dibanding ULT ! (Nilai 0-6) Jawab: a. Thread-thread yang berasal dari sebuah proses dapat dieksekusi pada prosesor berbeda secara bersamaan b. Thread yang melakukan service call tidak menyebabkan proses terblok, thread lainnya dalam satu proses masih dapat dieksekusi c. Routine kernel dapat terdiri dari banyak thread

8.

Tuliskan model threat yang digunakan pada sistem operasi Windows 2000, kemudian tuliskan pengaruh penggunaan model thread tersebut bagi programer ! (Nilai 0-4) Jawab: - KLT - Programer tidak perlu memikirkan jumlah thread pada program yang dibuatnya

Soal-soal berikut ini berkaitan dengan topik: SINKRONISASI dan MUTUAL EXCLUTION (Total nilai = 42) 9.

Jelaskan pengertian critical section dan berikan contohnya (minimal 2) ! (Nilai 0-4) Jawab: Resource yang dalam satu saat hanya boleh diakses oleh satu proses saja Contoh: variabel global, printer, CPU, share memory, dll UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#3

INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 10. Jenis-jenis interaksi antar proses di dalam sebuah komputer adalah saling berkompetisi, saling bekerja sama melalui memori bersama, dan saling berkomunikasi dengan pesan. Jenis-jenis masalah yang bisa terjadi pada interaksi antar proses tersebut antara lain deadlock, data coherence, starvation, dan kegagalan mutual exclution. Tuliskan 2 jenis masalah yang bisa terjadi pada model interaksi antar proses melalui memori bersama, kemudian berikan contoh kasus yang bisa terjadi untuk setiap masalah ! (Nilai 0-8) Jawab: a. Mutual exclution gagal (Nilai 0-4) Contoh kasus: Dalam satu saat variabel global atau shared memory diakses oleh lebih dari satu proses b.

Starvation (Nilai 0-4) Contoh kasus: Variabel global atau shared memory akan diakses oleh lebih dari satu proses. Salah satu proses mengakses variabel global atau shared memory terus menerus sehingga proses yang lain menunggu terus menerus

11. Selain tidak boleh terjadi deadlock, starvation, dan race condition, tuliskan 3 syarat lainnya yang harus dipenuhi untuk membentuk mutual exclution ! (Nilai 0-6) Jawab: a. Dalam satu saat hanya ada satu proses yang dapat mengakses critical section b. Proses yang sedang tidak mengakses critical section boleh melakukan aktifitas yang lain c. Proses yang akan mengakses critical section yang sedang tidak diakses tidak boleh ditunda d. Waktu pengaksesan critical section adalah terbatas 12. Perhatikan contoh program solusi kasus Producer-Consumer dengan ukuran buffer terbatas menggunakan semaphore. Jawablah pertanyaan-pertanyaan di bawah ini ! /* program boundedbuffer */ const int sizeofbuffer = 5; semaphore n = 1; semaphore s = 0; semaphore e = sizeofbuffer; void producer() { while(true) { 1 produce (); 2 semWait (e); 3 semWait (n); 4 append (); 5 semSignal (n); 6 semSignal (s); } }

1 2 3 4 5 6

void consumer() { while (true) { semWait (s); semWait (n); take (); semSignal (n); semSignal (e); consume (); } } void main () { parbegin (producer, consumer); }

UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#4

INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 a.

Apa yang akan terjadi jika inisialisasi variabel semaphore s = 1 ? (Nilai 0-2) Jawab: Consumer dapat mengakses buffer yang sudah kosong

b.

Apa yang akan terjadi jika inisialisasi variabel semaphore n = 0 ? (Nilai 0-2) Jawab: Program tidak dapat berjalan, karena tidak ada proses yang dapat mengakses buffer

c.

Jika nilai sizeofbuffer = 1, tentukan apakah program bisa berjalan atau tidak, jika bisa berjalan tuliskan urut-urutan eksekusi Producer (P) dan Consumer (C) yang mungkin terjadi ! (Nilai 0-2) Jawab: Producer – Consumer – Producer – Consumer - dst

13. Tuliskan 2 kelebihan monitor dibanding penggunaan semaphore ! (Nilai 0-4) Jawab: a. Dapat mengurangi beban programmer dalam menangani sinkronisasi b. Pengecekan masalah yang berhubungan dengan mutex dapat terpusat hanya pada modul monitor, tidak tersebar di berbagai lokasi program c. Sekali program monitor telah benar, maka akses terhadap critical resource oleh berbagai proses akan selalu benar 14. Berikut ini merupakan program producer/consumer finite buffer dengan message passing.

1 2 3 4

/* program boundedbuffer */ const int capacity = 2; null = /*empty message*/ int i; void producer() { message pmsg; while(true) { receive (mayproduce, pmsg); pmsg = produce(); send (mayconsume, pmsg); } }

a.

void consumer() { message cmsg; 1 while (true) { 2 ??? 3 consume(cmsg); 4 send (mayproduce, null); } } void main() { 1 create_mailbox (mayproduce); 2 create_mailbox (mayconsume); 3 for (int i=1; i