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 <= capacity; i++) 4 send(mayproduce, null); 5 parbegin (producer, consumer); } Baris program nomor 2 pada bagian consumer (tanda ???) seharusnya diisi dengan ... (Nilai 0-2) Jawab: receive (mayconsume, cmsg)
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#5
INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 b.
Tuliskan semua urut-urutan eksekusi Producer (P) dan Consumer (C) yang mungkin terjadi ! (Nilai 0-2) Jawab: PPCC, PCPC, PPCPCCP, dll
15. Di bawah ini merupakan contoh program reader/writer dengan semaphore dimana pembaca (reader) diutamakan. /* program readerswriters */ int readcount; semaphore x = 1, wsem = 1; void reader() { while (true) { semWait (x); readcount++; if (readcount == 1) semWait (wsem); semSignal (x); READUNIT(); semWait (x); readcount--; if (readcount ==0) semSignal (wsem); semSignal (x); } } void writer() { while (true) { semWait (wsem); WRITEUNIT(); semSignal (wsem); } } void main() { readcount = 0; parbegin (reader, writer); }
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#6
INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 Terdapat 2 pembaca (R1 dan R2) dan 1 penulis (W) yang dieksekusi secara acak dengan urutan seperti pada tabel di bawah. Program dieksekusi pada sistem prosesor tunggal. Bagian program yang ditulis pada tabel hanya baris-baris program di dalam loop while (true). Tabel berikut berisi nilai dari beberapa variabel digunakan pada program di atas serta isi antrian yang digunakan untuk menampung proses yang ter-blok akibat memanggil prosedur semaphore. Lengkapilah titik-titik pada kolom variabel x, readcount, wsem, dan kolom Antrian Blok di bawah ini ! (Untuk setiap baris: benar semuanilai=2; benar 2-3nilai=1; benar≤1nilai=0) Pembaca 1 (R1)
Pembaca 2 (R2)
Penulis (W)
x
read wsem count
Antrian Blok
Inisialisasi
1
0
1
-
semWait (x);
0
0
1
-
readcount++;
0
1
1
-
-1
1
1
R2
semWait (wsem);
-1
1
0
R2
WRITEUNIT();
-1
1
0
R2
-1
1
-1
R2, R1
-1
1
0
R2
0
1
0
-
0
2
0
-
0
2
-1
W
if(readcount == 1) semWait (wsem);
0
2
-1
W
semSignal (x);
1
2
-1
W
READUNIT();
1
2
-1
W
1
2
-1
W
0
2
-1
W
-1
2
-1
W dan R1
-1
1
-1
W dan R1
if (readcount ==0) semSignal (wsem);
-1
1
-1
W dan R1
semSignal (x);
0
1
-1
W
readcount--;
0
0
-1
W
if (readcount ==0) semSignal (wsem);
0
0
0
-
semSignal (x);
1
0
0
-
WRITEUNIT();
1
0
0
-
semSignal (wsem);
1
0
1
-
semWait (x);
if(readcount == 1) semWait (wsem); semSignal (wsem); semSignal (x); readcount++; semWait (wsem);
READUNIT(); semWait (x); semWait (x); readcount--;
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#7
INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1
Soal-soal berikut ini berkaitan dengan topik: MANAJEMEN MEMORI (Total nilai = 30) Setiap nomor soal pilihan ganda bernilai 0 ATAU 2. 16. Sebuah memori berukuran 64 MB digunakan untuk menaruh sistem operasi 8 MB dan sisanya untuk menaruh program user. Ada 4 proses yang dieksekusi dengan urut-urutan kedatangan sbb: masuk proses A (25 MB), masuk proses B (15 MB), proses A selesai, masuk proses C (18 MB), masuk proses D (16 MB). Jika model manajemen memori yang digunakan adalah partisi dinamis, maka: a.
Terjadi fragmentasi internal sebesar 7 MB
b.
Terjadi fragmentasi eksternal sebesar 9 MB
c.
Terjadi fragmentasi eksternal sebesar 7 MB
d.
Terjadi fragmentasi internal sebesar 9 MB
e.
Tidak terjadi fragmentasi eksternal maupun internal
17. Sebuah memori dipartisi secara dinamis dengan kondisi terakhir partisi seperti pada gambar di bawah ini dimana partisi A merupakan awal memori. Semua partisi kosong kecuali partisi D. Sebuah proses berukuran 8 MB akan ditaruh ke memori. Jika lokasi penempatan memori terakhir sebesar 25 MB ada di partisi D, pilihlah pernyataan di bawah ini yang paling benar ! 20 (A)
15 (B)
10 (C)
25 (D)
58 (E)
Jika algoritma penempatan yang digunakan adalah: a. Best-fit, maka proses tersebut akan ditempatkan pada lokasi B b. Next-fit, maka proses tersebut akan ditempatkan pada lokasi A c. First -fit, maka proses tersebut akan ditempatkan pada lokasi E d. First-fit, maka proses tersebut akan ditempatkan pada lokasi A e. Worst-fit, maka proses tersebut akan ditempatkan pada lokasi C 18. Misal dinotasikan alokasi memori sebesar x dinyatakan sebagai Ax dan dealokasi memori sebesar y dinotasikan Dy, dan algoritma alokasi yang digunakan adalah First Fit. Pada gambar di bawah ini partisi yang kosong adalah partisi A dan E. Jika urut-urutan operasi yang terjadi adalah D10, A8, A30, maka ruang kosong (dalam MB) yang terjadi adalah ... 20 (A)
15 (B)
10 (C)
25 (D)
58 (E)
a. 12, 10, dan 28
d. 20 dan 58
b. 20, 10, dan 58
e. tidak ada ruang kosong
c. 37 dan 28 19. Teknik untuk menempatkan bagian modul/program pada area memori yang sama secara bergantian, dimana main programlah yang bertanggungjawab untuk melakukan switching, disebut sebagai ... a.
Partisi tetap
d. Segmentasi sederhana
b.
Partisi dinamik
e. Overlay
c.
Paging sederhana
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#8
INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 20. Buddy system digunakan untuk mengatur penggunaan memori sebesar 128 MB, dan urut-urutan alokasi proses adalah sbb: masuk proses A (35 MB), masuk proses B (25 MB), masuk proses C (5 MB), keluar proses B (25 MB), dan masuk proses D (35 MB). Gambarkan alokasi/dealokasi memori yang terjadi (tuliskan ukuran partisi dan proses yang menempatinya) ! (Nilai 0-8)
Jawab: masuk proses A (35 MB): 64 MB (A) masuk proses B (25 MB): 64 MB (A)
32 MB (B)
masuk proses C (5 MB): 64 MB (A)
32 MB (B)
8 MB C)
keluar proses B (25 MB): 64 MB (A)
8 MB C)
masuk proses D (35 MB): Proses D tidak bisa dimasukkan ke memori karena partisi yang ada tidak mencukupi.
21. Manajemen memori dengan segmentasi sederhana yang memiliki tabel segmen sebagai berikut: Segment 0 1 2 a.
Starting Address 660 1752 222
Length(bytes) 248 422 198
Untuk alamat lojik dengan segment = 2 dan offset = 198, tentukan apakah terjadi segment fault atau tidak. Jika tidak terjadi segment fault, tentukan alamat fisiknya (cara harus dituliskan) ? (Nilai 0-2) Jawab: Terjadi segment fault, karena offset yang valid untuk segmen 2 adalah 0 – 197.
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#9
INSTITUT TEKNOLOGI TELKOM FAKULTAS INFORMATIKA PROGRAM STUDI S1 b.
Sebuah komputer mengalokasikan 6 bit untuk nomor segmen dan 10 bit untuk offset. Jika data pada alamat relatif 352 akan diakses, tentukan apakah terjadi segment fault atau tidak. Jika tidak terjadi segment fault, tentukan alamat fisiknya dalam heksadesimal (cara harus dituliskan) ? (Nilai 0-2) Jawab: Terjadi segment fault, karena offset yang valid untuk segmen 0 adalah 0 – 247.
22. Sebuah memori menggunakan pengalamatan 32 bit dan dipartisi dengan model paging sederhana dimana ukuran setiap page adalah 4 kB. Jika isi tabel page suatu proses seperti pada tabel di bawah, maka jawablah pertanyaan-pertanyaan berikut dan tuliskan perhitungannya !
a.
Berapakah jumlah bit offset-nya ? (Nilai 0-2) Jawab: 1 page = 4 kB = 212, maka jumlah bit offset = 12 bit
b.
Berapakah jumlah bit untuk nomor page-nya ? (Nilai 0-2) Jawab: Jumlah bit nomor page = 32 – 12 = 20 bit
c.
Jika diberikan alamat relatif 3456 (desimal), berapakah nilai offset-nya (dalam desimal) ? (Nilai 0-2) Jawab: 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 0
1
1
0
1
1
0 0 0 0 0 0 0
3456 = 110110000000 Bit-bit offset (12 bit) = 110110000000 = 3456 (desimal) d.
Berdasarkan soal c di atas, berapa nomor page-nya (dalam desimal) ? (Nilai 0-2) Jawab: Bit-bit page (20 bit) = 00 ... 0 (20 bit), maka nomor page-nya = 0 (desimal)
e.
Berapakah alamat fisik (dalam heksa desimal) dari alamat relatif 3456 ? (Nilai 0-2) Jawab: Page 0 ditaruh pada frame 7 (111) Alamat fisik = gabungan bit-bit nomor frame dengan bit-bit offset = 00 ... 0111 (jumlah bit 0 = 17 bit) digabung dengan 110110000000 = 00 ... 0111 1101 1000 0000 (total 32 bit) = 0x00007B80
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#10