BAB I
1. Sebutkan tiga
tujuan utama dari sistem operasi!
1) Untuk
User : Untuk dapat melakukan interaksi dengan komponen komputer melalui sistem
operasi.
2) Untuk
seleksi dari berbagai macam sistem operasi pada setiap instalasi computer
3) Untuk
penggunaan aplikasi tertentu, sistem operasi dapat menyesuaikan dengan
2. Sebutkan
keuntungan dari multiprogramming!
Satu
komputer mengerjakan banyak program yang ada pada memori utamapada satu waktu .Teknik
multiprogramming meningkatkan utilisasi CPU dengan mengorganisasikan job-job
yang ada dan mengurangi total waktu yang dibutuhkan untuk menyelesaikan
tugas-tugas tersebut .Multiprogramming, yang dibuat untuk meningkatkan
kemampuan, juga mengizinkan time sharing. Sistem operasi yang bersifat
time-shared memperbolehkan banyak pengguna untuk menggunakan komputer secara
interaktif pada saat yang bersamaan.
3. Sebutkan
perbedaan utama dari sistem operasi antara komputer mainframe dan PC?
Satu
komputer mengerjakan banyak program yang ada pada memori utamapada satu waktu .
Teknik multiprogramming meningkatkan utilisasi CPU dengan mengorganisasikan
job-job yang ada dan mengurangi total waktu yang dibutuhkan untuk menyelesaikan
tugas-tugas tersebut .Multiprogramming, yang dibuat untuk meningkatkan
kemampuan, juga mengizinkan time sharing. Sistem operasi yang bersifat
time-shared memperbolehkan banyak pengguna untuk menggunakan komputer secara
interaktif pada saat yang bersamaan.
4.
Sebutkan kendala-kendala yang harus diatasi oleh programmer dalam
menulis sistem operasi untuk lingkungan waktu nyata?
1)
Secondary storage sangat terbatas
2)
Terjadinya page faults tambahan selama
eksekusi
3)
Sistem yang mengharuskan suatu komputasi
selesai dalam jangka waktu tertentu
4)
Kemampuan untuk operasi, response dalam
batasan waktu tertentu
5)
Digunakan sebagai control device untuk
aplikasi khusus
5. Jelaskan perbedaan
antara symmetric dan asymmetric multiprocessing. Sebutkan
keuntungan dan kerugian dari sistem multiprosessor!
Perbedaan
antara symmetric multiprocessing(SMP) dan asymmetric multiprocessing( ASMP):
Dalam SMP setiap prosesor menjalankan salinan identik dari sistem operasi dan banyak job yang dapat berjalan di suatu waktu tanpa pengurangan performance.
Sementara itu dalam ASMP setiap prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor bertindak sebagai Master processor yang bertugas menjadwalkan dan mengalokasikan pekerjaan pada prosesor lain yang disebut slave processors.
Umumnya ASMP dipakai pada sistem yang besar.
Dalam SMP setiap prosesor menjalankan salinan identik dari sistem operasi dan banyak job yang dapat berjalan di suatu waktu tanpa pengurangan performance.
Sementara itu dalam ASMP setiap prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor bertindak sebagai Master processor yang bertugas menjadwalkan dan mengalokasikan pekerjaan pada prosesor lain yang disebut slave processors.
Umumnya ASMP dipakai pada sistem yang besar.
6. Apakah
perbedaan antara trap dan interrupt? Sebutkan penggunaan dari
setiap fungsi tersebut!
*Trap
adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian yang
dihasilkan proses yang running seperti usaha ilegal dalam mengakses file.
Dengan adanya trap,sistem operasi menentukan apakah kesalahan yang dibuat
merupakan kesalahan fatal.
Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses.
Jika kesalahan tidak fatal bergantung sifat kesalahan dan rancangan sistem operasi kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan pemakai
* Interupsi adalah suatu permintaan khusus kepada mikroprosessor untuk melakukan sesuatu bila terjadi interupsi,maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi
Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses.
Jika kesalahan tidak fatal bergantung sifat kesalahan dan rancangan sistem operasi kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan pemakai
* Interupsi adalah suatu permintaan khusus kepada mikroprosessor untuk melakukan sesuatu bila terjadi interupsi,maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi
7. Untuk jenis
operasi apakah DMA itu berguna?
Jelaskan jawabannya!
Operasi
penanganan I/O dimana device controller langsung berhubungan dengan memori
tanpa campur tangan CPU,DMA digunakan untuk perangkat I/O dengan kecepatan
tinggi hanya terdapat satu interupsi setiap blok.
Interrupt hanya terjadi tiap blok bukan tiap word atau byte data. Seluruh proses DMA dikendalikan oleh sebuah controller bernama DMA Controller (DMAC) . DMA Controller mengirimkan atau menerima signal dari memori dan I/O device. Prosesor hanya mengirimkan alamat awal data, tujuan data, panjang data ke DMA Controller . . Interrupt pada prosesor hanya terjadi saat proses transfer selesai. Hak terhadap penggunaan bus memory yang diperlukan DMA controller didapatkan dengan bantuan bus arbiter yang dalam PC sekarang berupa chipset Northbridge .
Interrupt hanya terjadi tiap blok bukan tiap word atau byte data. Seluruh proses DMA dikendalikan oleh sebuah controller bernama DMA Controller (DMAC) . DMA Controller mengirimkan atau menerima signal dari memori dan I/O device. Prosesor hanya mengirimkan alamat awal data, tujuan data, panjang data ke DMA Controller . . Interrupt pada prosesor hanya terjadi saat proses transfer selesai. Hak terhadap penggunaan bus memory yang diperlukan DMA controller didapatkan dengan bantuan bus arbiter yang dalam PC sekarang berupa chipset Northbridge .
8. Sebutkan dua
kegunaan dari memory cache! Problem apakah yang dapat dipecahkan dan
juga
muncul dengan adanya cache tersebut?
1)
Tempat penyimpanan sementara
(volatile)sejumlah kecil data
2)
Meningkatkan kecepatan pengambilan atau
penyimpanan data dari memori oleh prosessor berkecepatan tinggi
Masalah yang dipecahkan:
Kecepatan pengambilan atau penyimpanan
data di memori oleh CPU meningkat, karena tidak perlu mencari di disk fisik.
Masalah yang timbul:
tidak dapat menyimpan data dalam jumlah
besar (karena cache berdaya tampung lebih kecil).
9. Beberapa CPU menyediakan lebih dari dua mode
operasi. Sebutkan dua kemungkinan penggunaan dari mode tersebut?
Dual
mode sistem operasi
1. User -> Eksekusi dikendalikan oleh user.
2. Monior/kernel/Sistem Mode -> Eksekusi dikendalikan oleh sistem operasi.
Pada saat boot time,perangkat keras bekerja pada mode monitor dan stelah sistem operasi di-load maka akan mulai masuk ke mode pengguna.Ketika terjadi trap atau interupsi,perangkat keras akan menswitch lagi keadaan dari mode pengguna menjadi mode monitor(terjadi perubahan state menjadi bit 0) dan akan kembali menjadi mode pengguna jikalau sistem operasi menambil alih proses dan kontrol komputer (state akan berubah menjadi bit1 )
1. User -> Eksekusi dikendalikan oleh user.
2. Monior/kernel/Sistem Mode -> Eksekusi dikendalikan oleh sistem operasi.
Pada saat boot time,perangkat keras bekerja pada mode monitor dan stelah sistem operasi di-load maka akan mulai masuk ke mode pengguna.Ketika terjadi trap atau interupsi,perangkat keras akan menswitch lagi keadaan dari mode pengguna menjadi mode monitor(terjadi perubahan state menjadi bit 0) dan akan kembali menjadi mode pengguna jikalau sistem operasi menambil alih proses dan kontrol komputer (state akan berubah menjadi bit1 )
10. Sebutkan lima
kegiatan utama dari sistem operasi yang berhubungan dengan managemen proses!
1) Pembuatan
dan penghapusan proses pengguna dan sistem proses.
2) Menunda
autau melanjutkan proses.
3) Menyediakan
mekanisme untuk proses sinkronisasi.
4) Menyediakan
mekanisme untuk proses komunikasi.
5) Menyediakan
mekanisme untuk proses penanganan deadlock.
11. Sebutkan tiga
kegiatan utama dari sistem operasi yang berhubungan dengan managemen memori!
1) Menjaga
track dari memori yang sedang digunakan dan siapa yang menggunakannya.
2) Memilih
program yang akan di-load ke memori.
3) Mengalokasikan
dan meng-dealokasikan ruang memori sesuai kebutuhan.
12. Sebutkan
tiga kegiatan utama dari sistem operasi yang berhubungan dengan managemen
secondary-storage!
1)
Menyimpan data besifat sementara
2)
Memindahkan data dari satu tempat ke
tempat lain
3)
Alternatif pengganti memory (virtual
memory)
13. Sebutkan lima
kegiatan utama dari sistem operasi yang berhubungan dengan managemen berkas!
1) Pembuatan
dan penghapusan berkas.
2) Pembuatan
dan penghapusan direktori.
3) Mendukung
manipulasi berkas dan direktori.
4) Memetakan
berkas ke secondary storage.
5) Mem-backup
berkas ke media penyimpanan yang permanen (non-volatile)
14. Apakah tujuan dari command
interpreter? Mengapa biasanya hal tersebut terpisah dengan kernel?
Tujuan dari command
interpreter adalah agar pengguna dapat membuat permintaan tanpa menulis
program. Biasa terpisah karena Konsep mesin virtual menyediakan
proteksi yang lengkap untuk sumberdaya sistem, dikarenakan tiap mesin virtual
terpisah dari mesin virtual yang lain.
BAB II
2.11.1. Proses
1. Sebutkan lima aktivitas sistem operasi yang
merupakan contoh dari suatu managemen proses.
Jawaban
:
1)
Melanjutkan
atau menunda proses
2)
Pembuatan
dan juga penghapusan proses pengguna dan system proses
3)
Menyediakan
mekanisme untuk suatu proses sinkronisasi
4)
Menyediakan
mekanisme untuk suatu proses komunikasi
5)
Menyediakan
mekanisme untuk suatu proses deadlock
2. Definisikan perbedaan antara penjadualan short
term, medium term dan long term.
Jawaban
:
Short term :
-
Di dalam short term ini digunakan
utk memilih diantara proses – proses yang siap dieksekusi & satu
diantaranya dialokasikan ke CPU.
-
Penjadwalan short term biasa
digunakan untuk CPU, proses dieksekusi dan hanya beberapa milidetik saja sebelum
menunggu I/O.
Medium term :
Dalam penjadwalan
medium term ini, beberapa OS seperti contoh time-sharing harus membutuhkan penjadwalan dengan level
tambahan.
Long term :
-
Jika pada long term ini tiding
sering mengeksekusi, dan digunakan jika proses meninggalkan suatu system.
-
Digunakan utk memilih suatu proses
dari pool & menyimpan pada memory.
3. Jelaskan tindakan yang diambil oleh sebuah kernel
ketika alih konteks antar proses.
Jawaban
:
Perpindahan
diantara proses melibatkan penyimpanan konteks dari proses yang sebelumnya dan
proses berikutnya. hal ini harus dapat dilakukan dengan cepat untuk mencegah
terbuangnya waktu CPU, versi. baru dari linux mengganti perpindahan konteks
perangkat keras ini menggunakan piranti lunak yang mengimplementasikan sederet
instruksi mov untuk menjamin validasi data yang disimpan serta potensi untuk
melakukan optimasi. untuk mengubah konteks proses digunakan makro switch. makro
tersebut akan mengganti proses dari proses yang ditunjuk oleh prev task menjadi
next task .makro switch di jalankan oleh schedule dan merupakan salah satu
rutin kernel yang sangan tergantung pada perangkat keras.
4.
Informasi apa saja yang disimpan pada tabel proses saat alih konteks dari satu
proses ke proses lain.
Jawaban
:
Waktu alih
konteks sangat begantung pada dukungan perangkat keras. Sebagai contoh,
prosesor seperti UltraSPARC menyediakan dua rangkap register. Sebuah alih
konteks hanya memasukkan perubahan pointer ke perangkat register yang ada.
Tentu saja, jika ada lebih proses-proses aktif yang ada dari pada yang ada di
perangkat register, sistem menggunakan bantuan untuk meng-copy data register
pada dan dari memori, sebagaimana sebelumnya. Semakin sistem operasi kompleks,
makin banyak pekerjaan yang harus dilakukan selama alih konteks. teknik
managemen memori tingkat lanjut dapat mensyaratkan data tambahan untuk diganti
dengan tiap konteks. Sebagai contoh, ruang alamat dari proses yang ada harus
dijaga sebagai ruang pada pekerjaan berikutnya untuk digunakan. Bagaimana ruang
alamat di jaga, berapa banyak pekerjaan dibutuhkan untuk menjaganya, tergantung
pada metoda managemen memori dari sistem operasi. alih konteks telah menjadi
suatu keharusan, bahwa programmer menggunakan struktur (threads) untuk menghindarinya
kapan pun memungkinkan.
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
:
1)
Proses
yang baru diciptakan akan segera mempunyai state ready.
2)
Proses
dengan state running menjadi blocked karena sumber daya yang diminta belum
tersedia.
3)
Proses
dengan state running menjadi ready karena penjadwal memutuskan agar pemroses
melakukan eksekusi proses yang lain karena jatah waktu untuk proses itu telah
habis. ( time out ).
4)
Proses
dengan state blocked menjadi ready saat sumber daya yang diminta telah tersedia
atau layanan perangkat I/O selesai ( event occurs ).
5)
Proses
dengan state ready menjadi running karena penjadwal memutuskan penggunaan
pemroses untuk proses itu karena proses yang telah running berubah state
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 messages
Jawaban
:
1)
Symmetric
komunikasi langsung adalah rasa sakit karena kedua belah pihak memerlukan nama
proses lain. Hal ini membuat sulit untuk membangun sebuah server.
2)
Otomatis
membuat pemrograman lebih mudah tapi adalah sebuah sistem sulit untuk
membangun.
3)
Kirim
oleh copy jaringan yang lebih baik bagi generalisasi dan masalah sinkronisasi.
Kirim dengan referensi yang lebih efisien untuk besar struktur data tetapi sulit
kode karena memori bersama implikasi.
4)
Variabel
ukuran membuat pemrograman lebih mudah tapi adalah sistem lebih sulit untuk
membangun.
7. Jelaskan perbedaan short-term, medium-term dan
long-term?
Jawaban
:
Short-term, memilih proses-proses yang siap
untuk dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses
tersebut.
longterm pada sisi lain, mengeksekusi jauh lebih sedikit. Mungkin ada beberapa menit antara pembuatan proses baru dalam sistem. Penjadualan longterm mengkontrol derajat multiprogramming (jumlah proses dalam memori). Jika derajat multiprogramming stabil, lalu tingkat rata-rata dari penciptaan proses harus sama dengan tingkat kepergian rata rata dari proses yang meninggalkan sistem. Maka penjadualan longterm mungkin diperlukan untuk dipanggil hanya ketika suatu proses meninggalkan sistem.
medium term adalah kadang kala akan menguntungkan untuk memindahkan proses dari memori (dan dari pengisian aktif dari CPU), dan maka untuk mengurangi derajat dari multiprogramming. Dikemudian waktu, proses dapat diperkenalkan kedalam memori dan eksekusinya dapat dilanjutkan dimana proses itu di tinggalkan/ diangkat. Skema ini disebut swapping. Proses di swapped out, dan lalu di swapped in, oleh penjadual jangka menengah.
longterm pada sisi lain, mengeksekusi jauh lebih sedikit. Mungkin ada beberapa menit antara pembuatan proses baru dalam sistem. Penjadualan longterm mengkontrol derajat multiprogramming (jumlah proses dalam memori). Jika derajat multiprogramming stabil, lalu tingkat rata-rata dari penciptaan proses harus sama dengan tingkat kepergian rata rata dari proses yang meninggalkan sistem. Maka penjadualan longterm mungkin diperlukan untuk dipanggil hanya ketika suatu proses meninggalkan sistem.
medium term adalah kadang kala akan menguntungkan untuk memindahkan proses dari memori (dan dari pengisian aktif dari CPU), dan maka untuk mengurangi derajat dari multiprogramming. Dikemudian waktu, proses dapat diperkenalkan kedalam memori dan eksekusinya dapat dilanjutkan dimana proses itu di tinggalkan/ diangkat. Skema ini disebut swapping. Proses di swapped out, dan lalu di swapped in, oleh penjadual jangka menengah.
8. Jelaskan apa yang akan dilakukan oleh kernel
kepada alih konteks ketika proses sedang
berlangsung?
Jawaban
:
Yang dilakukan pertama kali adalah : Pemroses menyimpan konteks program
saat itu yang sedang dieksekusi ke dalam stack, selanjutnya Pemroses menge-set
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 yang konkuren. Diskusikan dampak yang paling
mungkin
ketika
pemrosesan yang konkuren dimasukkan ke dalam suatu sistem operasi?
Jawaban
:
System
tersebut akan sering terganggu dan sehingga akan terjadi nghank.
10. Perlihatkan semua kemungkinan keadaan dimana
suatu proses dapat sedang berjalan, dan
gambarkan
diagram transisi keadaan yang menjelaskan bagaimana proses bergerak diantara
state.
Jawaban:
o
State dalam
proses yaitu:
·
Running:
pemroses sedang mengeksekusi instruksi proses itu
·
Ready:
proses siap (ready) dieksekusi tapi pemroses mengeksekusi proses ini
·
Blocked:
proses menunggu kejadian tertentu selesai
·
SuspendedReady
·
SuspendedBlocked
o
Diagram Transisi
11. Apakah suatu proses memberikan ’issue’ ke suatu
disk I/O ketika, proses tersebut dalam ’ready’
state,
jelaskan?
Jawaban:
menurut saya iya, karena issue menyampaikan informasi
kedalam state
12. Kernel menjaga suatu rekaman untuk setiap
proses, disebut Proses Control Blocks (PCB). Ketika
suatu proses sedang tidak berjalan, PCB berisi
informasi tentang perlunya melakukan restart suatu
proses
dalam CPU. Jelaskan dua informasi yang harus dipunyai PCB.
2.11.2. Thread
1. Tunjukkan
2 contoh pemrograman dari multithreading yang dapat meningkatkan sebuah solusi
thread tunggal.!
Jawaban :
a.
Dalam web browser yang multithreading, sebuah thread dapat melayani permintaan
pengguna sementara thread lain berusaha menampilkan image
b.
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 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 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 penrograman dari multithreading yang tidak dapat meningkatkan sebuah solusi thread tunggal.
Jawaban :
• Program 1
class CobaThread2 implements Runnable
{
public void run()
{
for(int ii = 0; ii<4; ii++){
System.out.println("Ini CobaThread2");
Test.istirohat(7);
}
}
public class Test
{
public static void main (String[] args)
{
Thread t1 = new CobaThread1();
Thread t2 = new Thread (new CobaThread2());
t1.start();
t2.start();
for (int ii = 0; ii<8; ii++){
System.out.println("Thread UTAMA");
istirohat(5);
}
}
public static void istirohat(int tunda)
{
try{
Thread.sleep(tunda*100);
} catch(InterruptedException e) {}
}
}
• Program 2
class CobaThread3 implements Runnable
{
public void run(){
while (true){
System.out.println("saya thread CobaThread3");
if (Thread.currentThread.isInterrupted()) //cek status
break;
}
}
}
class CobaThread2 implements Runnable
{
public void run()
{
for(int ii = 0; ii<4; ii++){
System.out.println("Ini CobaThread2");
Test.istirohat(7);
}
}
public class Test
{
public static void main (String[] args)
{
Thread t1 = new CobaThread1();
Thread t2 = new Thread (new CobaThread2());
t1.start();
t2.start();
for (int ii = 0; ii<8; ii++){
System.out.println("Thread UTAMA");
istirohat(5);
}
}
public static void istirohat(int tunda)
{
try{
Thread.sleep(tunda*100);
} catch(InterruptedException e) {}
}
}
• Program 2
class CobaThread3 implements Runnable
{
public void run(){
while (true){
System.out.println("saya thread CobaThread3");
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 membedakannnya dengan
pembentukan sebuah proses.
Jawaban :
6. Tunjukkan
tindakan yang diambil oleh sebuah thread library saat alih konteks antara user
level thread.
Jawaban :
User thread didukung oleh kernel dan
diimplementasikan oleh thread library ditingkat pengguna. Library mendukung
untuk pembentukan thread, penjadualan dan managemen yang tidak didukung oleh
kernel.
2.11.3. Penjadualan CPU
1. Definisikan perbedaan antara
penjadualan secara preemptive dan nonpreemptive!
Penyelesaian
a. Penjadualan preemptive
Proses diberi jatah waktu oleh
pemroses, maka pemroses dapat diambil alih oleh proses lain, sehingga proses
disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba
kembali pada proses itu.
b. Penjadualan nonpreemptive
Proses diberi jatah waktu oleh
pemroses, maka pemroses tidak dapat diambil alih oleh proses lain sampai proses
itu selesai.
2. Jelaskan mengapa penjadualan strict
nonpreemptive tidak seperti yang digunakan di sebuah komputer pusat.
Penyelesaian
3. Apakah keuntungan menggunakan time
quantum size di level yang berbeda dari sebuah antrian sistem multilevel?
Penyelesaian
Pertanyaan
nomor 4 sampai dengan 5 dibawah menggunakan soal berikut:
Misal
diberikan beberapa proses dibawah ini dengan panjang CPU burst (dalam mili
detik). Semua proses diasumsikan datang pada saat t=0.
Tabel
2-1. Tabel untuk soal 4-5
Proses
|
Burst Time
|
Prioritas
|
P1
|
10
|
3
|
P2
|
1
|
1
|
P3
|
2
|
3
|
P4
|
1
|
4
|
P5
|
5
|
2
|
4. Gambarkan 4 diagram chart yang mengilustrasikan
eksekusi dan proses-proses tersebut menggunakan FCFS, SJF, prioritas
nonpreemptive dan round robin.
Penyelesaian
a. Gantt chart untuk FCFS
0
10 11
13 14
19
b. Gantt chart untuk SJF
5. Hitung waktu tunggu dari setiap
proses untuk setiap algoritma penjadualan.
Penyelesaian
a. FCFS
· Waiting time for P1=0; P2=10; P3=11;
P4=13; P5=14
· Average waiting time:
(0+10+11+13+14)/5=9,6
b. SJF
6. Jelaskan perbedaan algoritma
penjadualan berikut:
a. FCFS
Penyelesaian
·
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
Penyelesaian
· 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
Penyelesaian
·
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.
Penyelesaian
8. Tentukan perbedaan antara
penjadualan preemptive dan penjadualan nonpreemptive (cooperative). Nyatakan
kenapa nonpreemptive scheduling tidak dapat digunakan pada suatu komputer
center. Di sistem komputer nonpreemptive, penjadualan yang lebih baik
digunakan.
Penyelesaian
BAB III
1.
Proses
dapat meminta berbagai kombinasi dari sumber daya dibawah ini: CDROM, soundcard
dan floppy. Jelaskan tiga macam pencegahan
deadlock skema yang meniadakan:
• Hold and Wait
• Circular Wait
•
No Preemption
Jawaban :
·
Hold and Wait
Untuk
mencegah hold and wait, sistem harus menjamin bila suatu proses meminta
sumber
daya, maka proses tersebut tidak sedang memegang sumber daya yang lain.
Proses
harus meminta dan dialokasikan semua sumber daya yang diperlukan
sebelum
proses memulai eksekusi atau mengijinkan proses meminta sumber daya
hanya
jika proses tidak membawa sumber daya lain. Model ini mempunyai utilitas
sumber
daya yang rendah dan kemungkinan terjadi starvation jika proses
membutuhkan
sumber daya yang popular sehingga terjadi keadaan menunggu yang tidak terbatas
karena setidaknya satu dari sumber daya yang dibutuhkannya
dialokasikan
untuk proses yang lain.
·
Circular Wait
Sistem
mempunyai total permintaan global untuk semua tipe sumber daya. Proses
dapat
meminta proses kapanpun menginginkan, tapi permintaan harus dibuat terurut
secara
numerik. Setiap proses yang membutuhkan sumber daya dan memintanya
maka
nomor urut akan dinaikkan. Cara ini tidak akan menimbulkan siklus.
Masalah
yang timbul adalah tidak ada cara pengurutan nomor sumber daya yang
memuaskan
semua pihak.
·
No Preemption
Peniadaan
non preemption mencegah proses-proses lain harus menunggu. Seluruh
proses
menjadi preemption, sehingga tidak ada tunggu menunggu. Cara mencegah
kondisi
non preemption :
o
Jika suatu proses yang membawa beberapa sumber daya meminta sumber daya
lain
yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut,
maka
semua sumber daya yang sedang dibawa proses tersebut harus
dibebaskan.
o
Proses yang sedang dalam keadaan menunggu, sumber daya yang dibawanya
ditunda
dan ditambahkan pada daftar sumber daya.
o
Proses akan di restart hanya jika dapat memperoleh sumber daya yang lama dan
sumber daya baru yang diminta.
2. Diasumsikan
proses P0 memegang sumber daya R2 dan R3, meminta sumber daya R4; P1
menggunakan R4 dan meminta R1; P2
menggunakan R1 dan meminta R3 . Gambarkan Wait- for Graph. Apakah sistem terjebak dalam deadlock?
Jika ya, tunjukkan proses mana yang menyebabkan deadlock. Jika tidak,
tunjukkan urutan proses untuk selesai.
Jawaban :
3. User x telah
menggunakan 7 printer dan harus menggunakan 10 printer. User y telah
menggunakan 1 printer dan akan memerlukan paling banyak 4 printer. User z telah
menggunakan 2 printer dan akan menggunakan paling banyak 4 printer. Setiap user
pada saat ini meminta 1 printer. Kepada siapakah OS akan memberikan grant
printer tersebut dan tunjukkan "safe sequence" yang ada sehingga
tidak terjadi deadlock.
Jawaban :
4. Pernyataan manakah
yang benar mengenai deadlock:
i. Pencegahan deadlock lebih sulit
dilakukan (implementasi) daripada menghindari deadlock.
ii. Deteksi deadlock dipilih karena
utilisasi dari resources dapat lebih optimal.
iii. Salah satu prasyarat untuk
melakukan deteksi deadlock adalah: hold and wait.
iv. Algoritma Banker’s (Djikstra) tidak
dapat menghindari terjadinya deadlock.
v. Suatu sistem jika berada dalam
keadaan tidak aman: "unsafe", berarti telah terjadi deadlock.
Jawaban :
·
Salah satu prasyarat untuk melakukan
deteksi deadlock adalah: hold and wait.
·
Suatu sistem jika berada dalam keadaan
tidak aman: "unsafe", berarti telah terjadi deadlock.
·
Pencegahan deadlock lebih sulit
dilakukan (implementasi) daripada menghindari deadlock.
5. User 1 sedang
menggunakan x printers dan memerlukan total n printers. Kondisi umum adalah:
Jawaban :
Semua statement diatas
menjamin: safe state.
BAB
V
- Sebutkan macam-macam atribut pada berkas!
Jawaban :
·
Nama, penulisan nama pda berkas ditulis
secara simbolik dan informasi disimpan dalam bentuk yang dapat dibaca oleh kita
·
Lokasi, informasi yang berisi pointer ke
device dan lokasi dari berkas dalam device tersebut
·
Jenis (Type), informasi yang medukung
bermacam-macam tipe berkas yang berbeda
·
Identifier, biasanya berupa angka, yang
mengidentifikasikan berkas dalam sistem berkas dan identifier ini tidak dapat
dibaca oleh kita
·
Waktu, tanggal dan identifikasi
pengguna; informasi yang tersimpan untuk pembuatan, modifikasi terakhir dan
kapan berkas terakhir digunakan. Sehingga berguna dalam keamanan dan pemantauan
penggunaan berkas
·
Ukuran (Size), ukuran dari berkas yang
ada dan kemungkinan ukuran maksimum berkas juga disimpan dalam atribut ini.
·
Proteksi, yang berisi informasi mengenai
kontrol akses, contohnya siapa saja yang boleh menulis, mengakses, membaca dan
bengeksekusi berkas.
- Operasi apa sajakah yang dapat diterapkan pada sebuah berkas?
Jawaban :
create file,write file,read file,reposition dalam
file,delete file,truncate file.
- Sebutkan informasi yang terkait dengan pembukaan berkas!
Jawaban :
.name, type,address,current
length,maximum length,date last accessed,date last updated,owner ID,protection
information
- Sebutkan dan jelaskan metode alokasi pada sistem berkas!
Jawaban :
Alokasi Secara Berdampingan
Metode ini menempatkan setiap berkas
pada satu himpunan blok yang berurut di dalam disk. Alamat disk menyatakan
sebuah urutan linier. Dengan urutan linier ini maka head disk hanya bergerak
jika mengakses dari sektor terakhir suatu silinder ke sektor pertama silinder
berikutnya.
Alokasi Secara Berangkai
Metode ini menyelesaikan semua masalah
yang terdapat pada contiguous allocation. Dengan metode ini, setiap berkas
merupakan linked list dari blok-blok disk, dimana blok-blok disk dapat tersebar
di dalam disk. Setiap direktori berisi sebuah penunjuk (pointer) ke awal dan
akhir blok sebuah berkas
Alokasi Dengan Indeks
Metode alokasi dengan berangkai dapat
menyelesaikan masalah fragmentasi eksternal dan pendeklarasian ukuran dari
metode alokasi berdampingan. Bagaimana pun tanpa FAT, metode alokasi berangkai
tidak mendukung keefisiensian akses langsung, karena penunjuk ke bloknya
berserakan dengan bloknya didalam disk dan perlu didapatkan secara berurutan.
- Sebutkan dan jelaskan operasi pada direktori?\
Jawaban :
efficiency=menempatkan file secara
cepat, naming=kenyamanan pengguna, frouping=pengelompokan file secara logic.
Ø Mencari
berkas, kita dapat menemukan sebuah berkas didalam sebuah struktur direktori.
Karena berkas-berkas memiliki nama simbolik dan nama yang sama dapat
mengindikasikan keterkaitan antara setiap berkas-berkas tersebut, mungkin kita
berkeinginan untuk dapat menemukan seluruh berkas yang nama-nama berkas
membentuk pola khusus.
Ø Membuat
berkas, kita dapat membuat berkas baru dan menambahkan berkas tersebut kedalam
direktori.
Ø Menghapus
berkas, apabila berkas sudah tidak diperlukan lagi, kita dapat menghapus berkas
tersebut dari direktori.
Ø Menampilkan
isi direktori, kita dapat menampilkan seluruh berkas dalam direktori, dan
kandungan isi direktori untuk setiap berkas dalam daftar tersebut.
Ø Mengganti
nama berkas, karena nama berkas merepresentasikan isi dari berkas kepada user,
maka user dapat merubah nama berkas ketika isi atau penggunaan berkas berubah.
Perubahan nama dapat merubah posisi berkas dalam direktori.
Ø Melintasi
sistem berkas, ini sangat berguna untuk mengakses direktori dan berkas didalam
struktur direktori.
- Sebutkan dan Jelaskan tentang tipe akses pada berkas?
Jawaban :
a. Read:
Membaca dari berkas
b. Write:
Menulis berkas
c. Execute:
Meload berkas kedalam memori untuk dieksekusi.
d. Append:
Menambahkan informasi kedalam berkas di akhir berkas.
e. Delete:
Menghapus berkas.
f. List:
Mendaftar properti dari sebuah berkas.
g. Rename:
Mengganti nama sebuah berkas.
h. Copy:
Menduplikasikan sebuah berkas.
i.
Edit: Mengedit sebuah berkas.
- Sebutkan dan jelaskan bagaimana cara mengatur free space?
Jawaban :
a. berkas
disimpan dalam satuan per blok.
b. blok
disk.
c. free
block
- Bagaimanakah implementasi dari sebuah direktori dalam disk
Jawaban :
a. Disk
quota(multi-user)
b. Kehandalan
:
· Manajemen bad block
· Backup
· Konsistensi:
c. Blok:
membandingkan list blok digunakan dan yang bebas.
d. Direktori/file
: membandingkan entry di rektori dan i-node/ awal blok.
e. File
system check
f. Unjuk
Kerja :
Ø Cache
:
Ø Write-through
cache (MS-DOS)
Ø Write-back/delay
cache (UNIX)
- Sebutkan keunggulan dari sistem berkas dalam UNIX dengan sistem berkas pada WINDOWS?
Jawaban :
Penggunaan back slash (\) digunakan untuk memisahkan direktori-direktori dalam Windows, tetapi hal ini tidak ada dalam UNIX. Sistem UNIX menggunakan case sensitive, yang artinya nama suatu berkas yang sama jika dibaca, tetapi penulisan namanya berbeda dalam hal ada satu file yang menggunakan huruf kapital dalam penamaan dan satu tidak akan berbeda dalam UNIX. Contohnya ada berkas bernama berkasdaku.txt dan BerkasDaku.txt, jika dibaca nama berkasnya sama tetapi dalam UNIX ini merupakan dua berkas yang jauh berbeda. Jika berkas-berkas ini berada di sistem Windows, mereka menunjuk ke berkas yang sama yang berarti Windows tidak case sensitive.
- Bagaimanakah langkah-langkah dalam proses back-up?
Jawaban :
klik kana pada drive. Pilih properties. Lalu pilih tools, lalupilih back-up klik backup now.
BAB VI
Perangkat Keras I/O
1. Gambarkan diagram dari Interrupt Driven I/O Cycle.
1. Gambarkan diagram dari Interrupt Driven I/O Cycle.
2. Sebutkan langkah-langkah dari
transfer DMA!
3. Apakah perbedaan dari polling dan interupsi?
4. Apa hubungan arsitektur kernel yang di-thread dengan implemen tasi interupsi?
3. Apakah perbedaan dari polling dan interupsi?
4. Apa hubungan arsitektur kernel yang di-thread dengan implemen tasi interupsi?
Jawaban :
1.
1.
2. langkahnya:
- Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari device, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang di transfer.
- DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
- DMA controller meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
3. polling adalah ketika host
mengalami looping yaitu membaca status register secara terus-menerus sampai
status busy di-clear. Interupsi dalam teknologi informasi merujuk kepada sebuah permintaan terhadap layanan dari CPU yang dibuat baik secara eksternal oleh sebuah perangkat keras
(sebagai contoh: oleh disk drive,
atau port I/O) atau secara internal oleh CPU itu
sendiri.
4. Perangkat dapat menghasilkan
interrupt signal. Setiap signal interrupt mempunyai hubungan dengan program
kernel yang disebut dengan interrupt handler
Interface
Aplikasi I/O
1. Kenapa dibutuhkan interface pada aplikasi I/O?
1. Kenapa dibutuhkan interface pada aplikasi I/O?
- Ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk, sebenarnya aplikasi tersebut harus dapat membedakan jenis disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi melakukan standarisasi cara pengaksesan pada peralatan I/O. Pendekatan inilah yang dinamakan interface aplikasi I/O.Interface aplikasi I/O melibatkan abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan membagi-bagi detail peralatan-peralatan I/O ke dalam kelas-kelas yang lebih umum.
2. Apa tujuan adanya device driver?
Berikan contoh keuntungan yang kita dapatkan dengan adanya hal ini!
- Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada kernel. Karena hal ini, subsistem I/O dapat bersifat independen dari hardware.
Kernel
I/O Subsystem
1. Apakah yang dimaksud dengan proses pooling? (jelaskan dengan jelas)
1. Apakah yang dimaksud dengan proses pooling? (jelaskan dengan jelas)
- Busy-waiting/ polling adalah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear. Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya menemukan sedikit device yang siap untuk men-service, karena CPU processing yang tersisa belum selesai.
2. Mengapa
diperlukan proses pooling?
- Untuk mengatasi device yang tidak dapat me-multiplex permintaan I/O dari beberapa aplikasi.
3. Apakah
yang dimaksud dengan buffer?
- Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi.
4.
Jelaskan dengan singkat mengenai I/O Scheduling!
- Untuk menjadualkan sebuah set permintaan I/O, kita harus menetukan urutan yang bagus untuk mengeksekusi permintaan tersebut. Scheduling dapat meningkatkan kemampuan sistem secara keseluruhan, dapat membagi device secara rata di antara proses-proses, dan dapat mengurangi waktu tunggu rata-rata untuk menyelesaikan I/O. Ini adalah contoh sederhana untuk menggambarkan definisi di atas. Jika sebuah arm disk terletak di dekat permulaan disk, dan ada tiga aplikasi yang memblokir panggilan untuk membaca untuk disk tersebut. Aplikasi 1 meminta sebuah blok dekat akhir disk, aplikasi 2 meminta blok yang dekat dengan awal, dan aplikasi 3 meminta bagian tengah dari disk. Sistem operasi dapat mengurangi jarak yang harus ditempuh oleh arm disk dengan melayani aplikasi tersebut dengan urutan 2, 3, 1. Pengaturan urutan pekerjaan kembali dengan cara ini merupakan inti dari I/O scheduling. Sistem operasi mengembangkan implementasi scheduling dengan menetapkan antrian permintaan untuk tiap device. Ketika sebuah aplikasi meminta sebuah blocking sistem I/O, permintaan tersebut dimasukkan ke dalam antrian untuk device tersebut. Scheduler I/O mengatur urutan antrian untuk meningkatkan efisiensi dari sistem dan waktu respon rata-rata yang harus dialami oleh aplikasi. Sistem operasi juga mencoba untuk bertindak secara adil, seperti tidak ada aplikasi yang menerima service yang buruk, atau dapat seperti memberi prioritas service untuk permintaan penting yang ditunda. Contohnya, pemintaan dari subsistem mungkin akan mendapatkan prioritas lebih tinggi daripada permintaan dari aplikasi. Beberapa algoritma scheduling untuk disk I/O akan dijelaskan ada bagian Disk Scheduling.
Penanganan
Permintaan I/O
1. Apakah kegunaan dari Streams pada Sistem V UNIX?
1. Apakah kegunaan dari Streams pada Sistem V UNIX?
- Stream dapat digunakan untuk interproses dan komunikasi jaringan. Faktanya, di Sistem V, mekanisme soket diimplementasikan dengan stream.
2.
Jelaskan lifecycle dari permintaan pembacaan blok!
- 1.Sebuah proses mengeluarkan sebuah blocking read system call ke sebuah file deskriptor dari berkas yang telah dibuka sebelumnya.
2.Kode
system-call di kernel mengecek parameter untuk kebenaran. Dalam kasus input,
jika data telah siap di buffer cache, data akan dikembalikan ke proses dan
permintaan I/O diselesaikan.
3.Jika
data tidak berada dalam buffer cache, sebuah physical I/O akan bekerja,
sehingga proses akan dikeluarkan dari antrian jalan (run queue) dan diletakkan
di antrian tunggu (wait queue) untuk alat, dan permintaan I/O pun dijadwalkan.
Pada akhirnya, subsistem I/O mengirimkan permintaan ke device driver. Bergantung
pada sistem operasi, permintaan dikirimkan melalui call subrutin atau melalui
pesan in-kernel.
4.Device
driver mengalokasikan ruang buffer pada kernel untuk menerima data, dan
menjadwalkan I/O. Pada akhirnya, driver mengirim perintah ke device controller
dengan menulis ke register device control.
5.
Device controller mengoperasikan piranti keras device untuk melakukan transfer
data.
6.Driver
dapat menerima status dan data, atau dapat menyiapkan transfer DMA ke memori
kernel. Kita mengasumsikan bahwa transfer diatur oleh sebuah DMA controller,
yang meggunakan interupsi ketika transfer selesai.
7.Interrupt
handler yang sesuai menerima interupsi melalui tabel vektor-interupsi,
menyimpan sejumlah data yang dibutuhkan, menandai device driver, dan kembali
dari interupsi.
8.
Device driver menerima tanda, menganalisa permintaan I/O mana yang telah
diselesaikan, menganalisa status permintaan, dan menandai subsistem I/O kernel
yang permintaannya telah terselesaikan.
9.Kernel
mentransfer data atau mengembalikan kode ke ruang alamat dari proses
permintaan, dan memindahkan proses dari antrian tunggu kembali ke antrian siap.
10.Proses
tidak diblok ketika dipindahkan ke antrian siap. Ketika penjadwal (scheduler)
mengembalikan proses ke CPU, proses meneruskan eksekusi pada penyelesaian dari
system call.
Performa
I/O
1. Gambarkan bagan mengenai komunikasi antar komputer
1. Gambarkan bagan mengenai komunikasi antar komputer
- 1.Menurunkan jumlah alih konteks.2.Mengurangi jumlah pengkopian data ke memori ketika sedang dikirimkan antara device dan aplikasi.
3.Mengurangi
frekuensi interupsi, dengan menggunakan ukuran transfer yang besar, smart
controller, dan polling.
4.Meningkatkan
concurrency dengan controller atau channel yang mendukung DMA.
5.Memindahkan
kegiatan processing ke perangkat keras, sehingga operasi kepada device
controller dapat berlangsung bersamaan dengan CPU.
6.Menyeimbangkan
antara kinerja CPU, memory subsystem, bus, dan I/O.
3. Jelaskan
mengenai implementasi dari fungsi I/O
- Pada dasarnya kita mengimplementasikan algoritma I/O pada level aplikasi. Hal ini dikarenakan kode aplikasi sangat fleksible, dan bugs aplikasi tidak mudah menyebabkan sebuah sistem crash. Lebih lanjut, dengan mengembangkan kode pada level aplikasi, kita akan menghindari kebutuhan untuk reboot atau reload device driver setiap kali kita mengubah kode. Implementasi pada level aplikasi juga bisa sangat tidak efisien. Tetapi, karena overhead dari alih konteks dan karena aplikasi tidak bisa mengambil keuntungan dari struktur data kernel internal dan fungsionalitas dari kernel (misalnya, efisiensi dari kernel messaging, threading dan locking.Pada saat algoritma pada level aplikasi telah membuktikan keuntungannya, kita mungkin akan mengimplementasikannya di kernel. Langkah ini bisa meningkatkan kinerja tetapi perkembangannya dari kerja jadi lebih menantang, karena besarnya kernel dari sistem operasi, dan kompleksnya sistem sebuah perangkat lunak. Lebih lanjut , kita harus men-debug keseluruhan dari implementasi in-kernel untuk menghindari korupsi sebuah data dan sistem crash.
Kita
mungkin akan mendapatkan kinerja yang optimal dengan menggunakan implementasi
yang special pada perangkat keras, selain dari device atau controller. Kerugian
dari implementasi perangkat keras termasuk kesukaran dan biaya yang ditanggung
dalam membuat kemajuan yang lebih baik dalam mengurangi bugs, perkembangan
waktu yang maju dan fleksibilitas yang meningkat. Contohnya, RAID controller
pada perangkat keras mungkin tidak akan menyediakan sebuah efek pada kernel
untuk mempengaruhi urutan atau lokasi dari individual block reads dan write,
meski pun kernel tersebut mempunyai informasi yang spesial mengenai workload
yang dapat mengaktifkan kernel untuk meningkatkan kinerja dari I/O.
Struktur
Disk
1. Sebutkan bagian-bagian dari disk
1. Sebutkan bagian-bagian dari disk
- Disk menyediakan penyimpanan sekunder bagi sistem komputer modern. Magnetic tape sebelumnya digunakan sebagai media penyimpanan sekunder, tetapi waktu aksesnya lebih lambat dari disk. Oleh karena itu, sekarang tape digunakan terutama untuk backup, untuk penyimpanan informasi yang tidak sering, sebagai media untuk mentransfer infromasi dari satu sistem ke sistem yang lain, dan untuk menyimpan sejumlah data yang terlalu besar untuk sistem disk. Disk drive modern dialamatkan sebagai suatu array satu dimensi yang besar dari blok lojik, dimana blok lojik merupakan unit terkecil dari transfer. Ukuran dari blok lojik biasanya adalah 512 bytes, walau pun sejumlah disk dapat diformat di level rendah (low level formatted) untuk memilih sebuah ukuran blok lojik yang berbeda, misalnya 1024 bytes. Array satu dimensi dari blok lojik dipetakan ke bagian dari disk secara sekuensial. Sektor 0 adalah sektor pertama dari trek pertama di silinder paling luar (outermost cylinder).
2. Apa
keuntungan penggunaan pemetaan pada disk?
- Dengan menggunakan pemetaan, kita dapat minimal dalam teori mengubah sebuah nomor blok logikal ke sebuah alamat disk yang bergaya lama (old-style disk address) yang terdiri atas sebuah nomor silinder, sebuah nomor trek di silinder tersebut, dan sebuah nomor sektor di trek tersebut.
Penjadualan
Disk
1. Buatlah dengan pemikiran Anda sendiri, strategi penjadualan disk yang tepat dan efisien menurut Anda
1. Buatlah dengan pemikiran Anda sendiri, strategi penjadualan disk yang tepat dan efisien menurut Anda
- Teknik penjadwalan merupakan teknik yang memiliki tujuan memaksimalkan penggunaan disk
2. Menurut
Anda, diantara algoritma-algoritma penjadualan disk diatas manakah yang paling
cepat, manakah yang paling efisien (hemat/tidak mahal), dan manakah yang paling
lambat dan tidak efisien? Jelaskan!
- SSTF lebih umum dan memiliki prilaku yang lazim kita temui. SCAN dan C-SCAN memperlihatkan kemampuan yang lebih baik bagi sistem yang menempatkan beban pekerjaan yang berat kepada disk, karena algoritma tersebut memiliki masalah starvation yang paling sedikit. Untuk antrian permintaan tertentu, mungkin saja kita dapat mendefinisikan urutan akses dan pengambilan data dari disk yang optimal, tapi proses komputasi membutuhkan penjadualan optimal yang tidak kita dapatkan pada SSTF atau SCAN.Dengan algoritma penjadualan yang mana pun, kinerja sistem sangat tergantung pada jumlah dan tipe permintaan. Sebagai contoh, misalnya kita hanya memiliki satu permintaan, maka semua algoritma penjadualan akan dipaksa bertindak sama, karena algoritma-algoritma tersebut hanya punya satu pilihan dari mana menggerakkan disk head: semuanya berprilaku seperti algoritma penjadualan FCFS.
Perlu
diperhatikan pula bahwa pelayanan permintaan disk dapat dipengaruhi pula oleh
metode alokasi file. Sebuah program yang membaca alokasi file secara terus
menerus mungkin akan membuat beberapa permintaan yang berdekatan pada disk,
menyebabkan pergerakan head menjadi terbatas. File yang memiliki link atau
indeks, dilain pihak, mungkin juga memasukkan blok-blok yang tersebar luas pada
disk, menyebabkan pergerakan head yang sangat besar.
Lokasi
blok-blok indeks dan directory juga tidak kalah penting. Karena file harus
dibuka sebelum digunakan, proses pembukaan file membutuhkan pencarian pada
struktur directory, dengan demikian directory akan sering diakses. Kita anggap
catatan directory berada pada awal silinder, sedangkan data file berada pada
silinder terakhir. Pada kasus ini, disk head harus bergerak melewati sepanjang
lebar disk. Membuat tempat penyimpanan sementara dari blok-blok indeks dan
directory ke dalam memori dapat membantu mengurangi pergerakan disk arm,
khususnya untuk permintaan membaca disk.
Karena
kerumitan inilah, maka algoritma penjadualan disk harus ditulis dalam modul
terpisah dari sistem operasi, jadi dapat saling mengganti dengan algoritma lain
jika diperlukan. Baik SSTF mau pun LOOK keduanya merupakan pilihan yang paling
masuk akal sebagai algoritma yang paling dasar.
Pemesanan Jaket kaskus (13/3/12 - 1/4/12)
Bagian yang hurufnya tebal harus di isi