Wednesday, November 13, 2013

Soal UTS Sistem Operasi

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

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. 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 Kolom 2 Kolom 3
aa. Bagian dari sistem operasi yang mengatur giliran
pemanfaatan prosesor kepada suatu proses ke
proses yang lain
D A. Swapping
bb. identifier, state, priority, program counter, memory
pointers, context data, I/O status
G B. Proses 7 status
cc. bounds violation, arithmatic error, I/O failure I C. Any state  exit
dd. memindahkan proses yang berada pada status
blocked dari memori ke harddisk
A D. Dispatcher
ee. ready/suspend state, blocked/suspend state B E. System mode
ff. mode saat program user sedang dieksekusi oleh
prossesor
J F. Blocked 
Blocked/Suspend
gg. interrupt, trapt, system call O G. Process control block
hh. Entitas yang dapat diberikan kepada prosesor untuk
dieksekusi
K H. Proses 2 status
ii. control mode E I. Process termination
INSTITUT TEKNOLOGI TELKOM
FAKULTAS INFORMATIKA
PROGRAM STUDI S1
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#3
jj. running, not running H J. Less-privileged mode
kk. Proses terpaksa berhenti karena sedang menunggu
suatu event terjadi
L K. Process
ll. program yang dieksekusi, PCB, stack system, data
user
N L. Blocked
mm. terjadi kesalahan, diterminasi proses induk, proses
telah selesai
C M. Proses 6 status
nn. time out, datang proses dengan prioritas lebih tinggi Q N. Process image
oo. Memindahkan proses yang ter-blok dari memori ke
harddisk sehingga tersedia ruang memori lebih
besar
F O. Process switching
P. Ready 
Ready/Suspend
Q. Running ready
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
INSTITUT TEKNOLOGI TELKOM
FAKULTAS INFORMATIKA
PROGRAM STUDI S1
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#4

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 */ void consumer()
const int sizeofbuffer = 5; {
semaphore n = 1; while (true)
semaphore s = 0; {
semaphore e = sizeofbuffer; 1 semWait (s);
void producer() 2 semWait (n);
{ 3 take ();
while(true) 4 semSignal (n);
{ 5 semSignal (e);
1 produce (); 6 consume ();
2 semWait (e); }
3 semWait (n); }
4 append ();
5 semSignal (n); void main ()
6 semSignal (s); {
} parbegin (producer, consumer);
} }


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.
/* program boundedbuffer */ void consumer()
const int { message cmsg;
capacity = 2; 1 while (true)
null = /*empty message*/ {
int i; 2 ???
void producer() 3 consume(cmsg);
{ message pmsg; 4 send (mayproduce, null);
1 while(true) }
{ }
2 receive (mayproduce, pmsg); void main()
3 pmsg = produce(); {
4 send (mayconsume, pmsg); 1 create_mailbox (mayproduce);
} 2 create_mailbox (mayconsume);
} 3 for (int i=1; i <= capacity; i++)
4 send(mayproduce, null);
5 parbegin (producer, consumer);
}
a. Baris program nomor 2 pada bagian consumer (tanda ???) seharusnya diisi dengan ...
(Nilai 0-2)
Jawab:
receive (mayconsume, cmsg)
INSTITUT TEKNOLOGI TELKOM
FAKULTAS INFORMATIKA
PROGRAM STUDI S1
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#6
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);
}
INSTITUT TEKNOLOGI TELKOM
FAKULTAS INFORMATIKA
PROGRAM STUDI S1
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#7
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 semuanilai=2; benar 2-3nilai=1; benar≤1nilai=0)
Pembaca 1 (R1) Pembaca 2 (R2) Penulis (W) x
read
count
wsem
Antrian
Blok
Inisialisasi 1 0 1 -
semWait (x); 0 0 1 -
readcount++; 0 1 1 -
semWait (x); -1 1 1 R2
semWait (wsem); -1 1 0 R2
WRITEUNIT(); -1 1 0 R2
if(readcount == 1)
semWait (wsem);
-1 1 -1 R2, R1
semSignal (wsem); -1 1 0 R2
semSignal (x); 0 1 0 -
readcount++; 0 2 0 -
semWait (wsem); 0 2 -1 W
if(readcount == 1)
semWait (wsem);
0 2 -1 W
semSignal (x); 1 2 -1 W
READUNIT(); 1 2 -1 W
READUNIT(); 1 2 -1 W
semWait (x); 0 2 -1 W
semWait (x); -1 2 -1 W dan R1
readcount--;
-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 -
INSTITUT TEKNOLOGI TELKOM
FAKULTAS INFORMATIKA
PROGRAM STUDI S1
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#8
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
INSTITUT TEKNOLOGI TELKOM
FAKULTAS INFORMATIKA
PROGRAM STUDI S1
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#9
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 Starting Address Length(bytes)
0 660 248
1 1752 422
2 222 198
a. 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.
INSTITUT TEKNOLOGI TELKOM
FAKULTAS INFORMATIKA
PROGRAM STUDI S1
UTS SisOp 2010-2011/EAR-END-FAZ-TBH/27 Oktober 2010/#10
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

0 comments:

Post a Comment