Jumat, 03 Januari 2014

TUGAS SISTEM OPERASI

BAB 1 (Penengalan Sistem Operasi)
Latihan soal 1 :
1. Apa yang dimaksud sistem
a. Batch sistem
b. Multiprogramming
c. Time Sharing
d. Paralel (Multiprocessor)
e. Terdistribusi
f. Cluster
g. Real Time
h. Handheld
2. Apa perbedaan sistem single programming dan multiprogramming?
3. Apa perbedaan symmetric dan asymmetric multiprocessing?
4. Apa perbedaan sistem paralel dan sistem terdistribusi?
5. Apa perbedaan sistem terdistribusi dan sistem terklaster?
6. Apa yang dimaksud symmetric dan asymmetric clustering?
7. Sebutkan keuntungan menggunakan sistem terdistribusi?
Jawaban
1. a. Batch sistem adalah dimana job-job yang mirip dikumpulkan dan dijalankan secara kelompok kemudian setelah kelompok yang dijalankan tadi selesai, maka secara otomatis kelompok lain dijalankan.
b. Multiprogramming adalah kegiatan menjalankan beberapa program pada memori pada satu waktu.
c. Time Sharing adalah pengembangan dari sistem multiprogram beberapa job yang berasa pada memori utama
d. Paralel (Multiprocessor) adalah kemampuan pemrosesan komputer yang dilakukan secara serentak, hal ini memungkinkan dengan menggunakan dua CPU atau lebih dalam sebuah sistem komputer.
e. Terdistribusi yaitu mendistribusikan komputasi diantara beberapa prosessor.
f. Cluster adalah pengembangan dari sistem terdistribusi, pada sistem ini memungkinkan dua atau lebih sistem untuk membagi penyimpan sekunder (storage) bersama-sama.
g. Real Time adalah kondisi pengoperasian dari suatu sistem perangkat keras dan perangkat lunak yang dibatasi oleh rentang waktu dan memiliki tenggang waktu (deadkine) yang jelas, relatif terhadapp waktu suatu peristiwa atau operasi terjadi.
h. Handheld adalah sistem yang lebih kecil dari milrokomputer dalam bentuk personal digital assistans (PDA).
2.  Pada single programming, suatu processor mengerjakan satu program yang ada di memori utama, sedangkan pada multi programming satu prosessor dapat mengerjakan banyak program yang ada di memori utama.
3. Pada symmetric multiprocessing tiap prosessor mempunyai sistem operasi yang sama dan dapat melakukan komunikasi antar prosessor berfungsi sebagai master prosessor, sedangkan pada asymmtric multiprocessing satu prosessor berfungsi sebagai master prosessor yang bertugas mengatur penjadwalan dan mengalokasikan kerja tiap prosessor dan prosessor lain berfungsi sebagai salave.
4. Pada sistem paralel tiap prosessor dapat menggunakan memori atau time bersama-sama, sedangkan pada sistem terdistribusi kumpulan prosessor tidak dapat digunakan secara bersamaan.
5. Pada sistem terklaster memungkinkan dua atau lebih sistem untuk membagi penyimpan sekunder (storage) bersama-sama, sistem terklanser mempunyai kehandalan sistem yang tinggi pada sistem terdistribusi.
6.  a. Symmetric clustering adalah dimana semua host menjalankan aplikasi.
b. Asymmetric clustering adalah dimana suatu server menjalankan aplikasi sementara server lainnya satndby.
7.  Keuntungan Menggunakan Sistem Terdistribusi
a. Resorce Sharing
Jika sejumlah site yang berbeda dihubungkan, maka user pada site satu dapat menggunakan sumber daya dari site lainnya. Sebagai contoh, user pada site A dapat menggunakan printer laser dari site B. Sebaliknya user B dapat mengakses file user A.
b. Meningkatkan Kecepatan Komputasi
Jika komputasi tertentu dapat dipartisi dalam sejumlah sub komputasi yang dapat berjalan secara konkuren, maka sistem terdistrbusi dapat mendistribusikan komputasi pada beberapa site untuk menjalankan komputasi secara konkuren.
c. Lebih Handal
Jika satu site gagal pada sistem terdistribusi, sisa site dapat melanjutkan operasinya. Jika sistem dibagi sejumlah intalasi besar, maka kegagalan salah satunya tidak berakibat pada sisa sistem. Sebaliknya, jika sistem dibagi dalam sejumlah mesin kecil, masing-masing bertanggung jawab pada fungsi sistem yang penting (misal terminal karakter I/O atau sistem file), maka satu kegagalan dapat menghentikan operasi dari keseluruhan sistem. Secara umum, jika terjadi redudansi pada sistem (baik perangkat keras maupun perangkat lunak), sistem dapat menjalankan operasinya meskipun beberapa site gagal.
d. Komunikasi
Terdapat beberapa anggota program yang memerlukan mengganti data dengan data lain pada satu sistem. Sistem windows contohnya, sering terjadi membagi data atau transfer data antara display. Jika beberapa site dihubungkan dengan lainya dengan jaringan komunikasi, prosesoor pada site yang berbeda dapat menukar informasi. User melakukan transfer file atau komunikasi dengan user lain melalui elektronic mail. Seorang user dapat mengirim mail ke user lain pada site yang sama atau site yang berbeda.
Sistem terdistribusi memerlukan infrastruktur jaringan, berupa local area network (LAN) atau wide area networking (WAN). Sistem terdistribusi biasanya disebut dengan sistem client-server atau peer to peer.
BAB 2 (Struktur Sistem Operasi)
Latihan Soal 2 :
1. Aktifitas apa yang dilakukan Sistem Operasi berhubungan dengan :
a. Manajemen Proses
b. Manajemen Memory Utama
c. Manajemen File
2. Apa kegunaan sistem command interpreter?
3. Apa yang dimaksud dengan system calls? Sebutkan contohnya.
4. Apa yang dimaksud dengan sistem program?
5. Apa keuntungan dan kelemahan sistem layer?
6. Apa keuntungan dan kerugian sistem virtual memory?
Jawaban
1.  a.  Aktifitas – aktifitas Manajemen Proses
1. Pembuatan dan penghapusan proses yang dibuat oleh user atau sistem.
2. Menghentikan proses sementara dan melanjutkan proses.            
3. Menyediakan kelengkapan mekanisme untuk sirkonisasi proses dan komunikasu proses.
b. Aktifitas – aktifitas Manajemen Memory Utama
1. Menjaga dan memelhara bagian – bagian memory yang sedang digunakan dan dari yang menggunakan.
2. Memutuskan proses – proses mana saja yang harus di panggil ke memori jika tersedia ruang di memori.
3. mengalokasikan dan mengalokasikan ruang memori jika diperlukan.
c. Aktifitas – aktifitas Manajemen File
1. Pembuatan dan Penghapusan File.
2. Pembuatan dan Penghapusan Direktori.
3. Primitif – primitif yang mendukung untuk manipulasi file ke direktori.
4. Pemetaan file ke memori sekunder.
5. Backup file ke media penyimpanan yang stabil (nonvolatile).
2. Kegunaan command interpenter :
a. Eksekusi Program
Sistem harus dapat memanggil program ke memori dan menjalankannya. Program tersebut harus dapat mengakhiri eksekusinya dalam bentuk normal atau abnormal (indikasi errior).
b.  Operasi – operasi I/O
Pada saat running program kemungkinan dibutuhkan I/O, mungkin berupa file atau peralatan I/O. Agar efisisen dan aman, maka user tidak boleh mengontrol I/O secara langsung, pengontrolan dilakukan oleh sistem operasi.
c. Manipulasi sistem file
Kapabilitas program untuk membaca, menulis, membuat dan menghapus file.
d. Komunikasi
Komunikasi dibutuhkan jika beberapa proses yang sedang dieksekusi saling tukar – menukar informasi. Penukaran informasi dapat dilakukan oleh beberapa proses dalam satu komputer yang berbeda melalui sistem jaringan. Komunikasi dilakukan dengan cara berbagi memori (shared memori) atau dengan cara pengiriman pesan (message passing).
e. Mendeteksi Kesalahan
Sistem ini harus menjamin kebenaran dalam komputasi dengan melakukan pendeteksian error pada CPU dan memori, perangkat I/O atau pada user program.
Beberapa fungsi tambahan yang ada tidak digunakan untuk membantu user, tetapi lebih digunakan untuk menjamin operasi sistem yang efisien yaitu :
a. Mengalokasikan sumber daya (resource).
Sistem harus dapat menglokasikan resource untuk banyak job yang dijalankan dalam waktu yang sama.
b. Akuntansi
Sistem membuat catatan daftar berapa resource yang digunakan user dan resource apa saja yang digunakan untuk menghtung secara statistik akuntansi penggunaan resource.
c. Proteksi
sistem operasi harus menjamin bahwa semua akses ke resource terkontrol dengan baik.
3. System call yaitu menyadiakan interface antar program (program pengguna yang sedang berjalan) dengan sistem operasi. System call menjadi jembatan antara proses dan sistem operasi,system call ditulis dalam bahasa assembly atau bahasa tingkat tinggi yang dapat mengendalikan mesin. Contoh : UNIX menyediakan system call : read, write (operasi I/O untuk berkas).
4. Sistem Program adalah segala jenis perangkat lunak yang dibutuhkan untuk pembentukan suatu sistem baru atau perangkat lunak yang dbutuhkan untuk menjalankan program aplikasi tetapi tidak ditunjukan untuk satu aplikasi khusus.
5. a. Dibuat dengan menggunakan pendekatan top down semua fungsi ditentukan dan dibagi menjadi komponen – komponen.
b. Modularisistem dilaksanakan dengan cara memecah sistem operasi menjadi beberapa lapis. Dengan sistem modularisasi setiap lapisan mempunyai fungsi operasi tertentu dan melayani lapisan yang lebih rendah.
c. Lapisan terendah layer 0 adalah perangkat keras lapisan teratas layer n adalah user interface.
·        Keuntungan menggunakan sistem layer
a. Memiliki rancangan modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang secara independen.
b.  Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.
·        Kerugian menggunakan sistem layer
a.  fungsi – fungsi sistem operasi diberikan ke tiap lapisan secara hati – hati.
6. keuntungan dan kerugian konsep mesin virtual memory adalah sebagai berikut :
a. Konsep mesin virtual menyediakan proteksi yang lengkap untuk sumber daya sistem sehingga masing – masing mesin virtual dipisahkan dengan mesin virtual yang lain, isolasi ini tidak memperbolehkan pembagian sumber daya secara langsung.
b. Sistem mesin virtual adalah mesin yang sempurna untuk riset dan pengembangan sistem operasi. Pengembangan sistem dikerjakan pada mesin virtual,  termasuk di dalamnya mesin fisik dan tidak mengganggu operasi sistem yang normal.
c. Konsep mesin virtual sangat sulit untuk mengimplementasikan kebutuhan dan duplikasi yang taat pada mesin yang sebenarnya.
BAB 3 (Proses Proses)
Latihan soal 3:
1. Sebutkan state pada proses dan jelaskan diagram proses
2. Apa yang dimaksud dengan short term scheduler dan long term scheduler?
3. Jelaskan 4 alasan mengapa proses harus bekerja sama.
4. Tuliskan kode program untuk penyelesaian permasalahan producer consumer dengan menggunakan shared memory.
5. Diketahui skema komunikasi antar proses menggunakan mailbox
a. Proses P ingin menunggu 2 pesan, satu dari mailbox A dan satu dari mailbox B.
Tunjukan urutan send dan receive yang diekskusi
b. Bagaimana urutan send and receive yang dieksekusi P jika P ingin menunggu satu pesan dari mailbox A atau mailbox B (salah satu atau keduaya)
6. Jelaskan apa yang dimaksud dengan thread dan struktur dari thread
7. Jelaskan empat keuntungan menggunakan threads pada multi process
8. Apakah perbedaan antara user – level thread dan kernel – supported threads?
9. Ada 3 model multithreading, jelaskan
10. Jelaskan state pada java thread
Jawaban
1.  a. New adalah proses sedang dibuat.
b. Running adalah proses sedang dieksekusi.
c. Waiting adalah proses ssedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
d. Ready adalah proses menunggu jatuh waktu dari CPU untuk di proses.
e. Terminated adalah proses telah selesai dieksekusi.

  .
Gambar Perubahan status proses




Gambar Proses Control Block
Penjelasan Diagram Proses :
a. Status Proses : new, ready, running, waitting dan terminated.
b. Program Counter : menunjukan alamat berikutnya yang akan dieksekusi oleh proses tersebut.
c. CPU Register : Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register – register tersebut terdiri atas : accumulator, index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi. Selama program counter berjalan, status informasi harus disimpan pada saat terjadi interrupt.
d. Informasi Penjadwalan CPU : informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.
e. Informasi Manajemen Memori : informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memori yang digunakan oleh sistem operasi.
f. Informasi Accounting : informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses dan lain – lain.
g. Informasi Status I/O : Informasi tersebut berisi deretan I/O device (seperti tape driver) yang dialokasikan untuk peroses tersebut, deretan file yang dibuka dan lain – lain.
2.  a. long term schenduler (job Scheduler) : menyeleksi proses – proses mana yang harus di bawa ke ready queue.
b. short term scheduler (CPU Scheduler): memilih proses – proses yang siap untuk dieksekusi, dan mengalokasikan CPU ke salah  satu dari proses – proses tersebut.
3. Alasan mengapa proses harus bekerja sama:
1. Pembagian informasi
2. Meningkatkan kecepatan komputasi.
3. Proses dapat dibagi dalam modul – modul
4. Lebih memberikan kenyamanan pada programer.
4. #define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
Item buffer[BUFFER_SIZE];
Int in= 0;
Int out= 0;
Proses Produced :
Item nextProduced;
While (1) {
While (((in + 1) % BUFFER_SIZE) == out)
;/* do nothing */
Buffer[in] = nextProduced;
In = (in + 1) % BUFFER_SIZE;
}
Proses Consumer :
Item nextconsumed;
While (1) {
While (in == out)
;/* do nothing */
Nextconsumed = buffer[out];
Out = (out + 1 )% BUFFER_SIZE;
}
5. a. Send (A pesan) ; mengirim pesan ke mailbox A,
Receive (A pesan); proses P menerima pesan dari mailbox A
Send (B pesan); mengirim pesan ke mailbox B
Receive (B pesan); proses P menerima pesan dari mailbox B
b. Hanya bisa menerima satu pesan :
caranya:
Receive (P pesan); menerima pesan dari mailbox A
Receive (P pesan); menerima pesan dari mailbox B
6. a. Pengertian thread
Thread adalah suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register dan ruang stack disebut process (LWP). Thread akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.
b. Struktur Thread
Seperti halnya proses, thread memiliki status : ready, blocked, running dan terminated, dan hanya satu thread yang aktiv dalam satu waktu. Thread dapat membuat child thread, jika satu thread dalam keadaan blocked, maka thread yang lainnya dapat dijalankan. Namun, tidak saling bebas, sebab semua thread dapat mengakses setiap alamat dalam satu task, thread dapat membaca dan menulis stack dari thread yang lainnya. Sehingga tidak ada proteksi antara satu thread terhadap thread yang lainnya. Suatu proses dapat terdiri dari satu thread (single thread) dan beberapa thread (multi thread).
7. Empat Keuntungan menggunakan threads pada multi process:
1. Respon lebih cepat.
2. Menggunakan resource bersama – sama.
3. Lebih ekonomis.
4. Meningkatkan utilitas arsitektur mikroprosessor.
8. a. User thread adalah thread yang diatur dengan menggunakan pustaka user level thread. Contoh sistem yang menggunakan user thread adalah POSIX Pthreads, Mach C-threads dan Solaris thread.
b. Sedangkan Kernel thread adalah thread yang didukung oleh kernel. Contoh sistem yang menggunakan kernel thread adalah Windows 95/98/NT/2000, solaris, Tru64 UNIX, BeOS dan Linux.
9. Tiga model multithreading :
1. Many-to-One : beberapa user level thread dipetakan ke satu kernel thread dan digunakan pada sistem yang tidak mendukung kernel threads.
2. One-to-One : setiap user level thread dipetakan ke kernel thread.
3. Many-to-Many : user level thread dipetakan ke beberapa kernel threads.
10. Bahasa pemograman java menggunakan java thread yang dibuat dengan menggunakan class thread dan mengimplementasikan antar muka yang bersifat runnable (dapat dijalankan). Java thread diatur oleh java virtual mashine (JVM). Java terdiri dari satate new, runnable, blocked dan dead.
Gambar. State pada java thread
BAB 4 (PENJADWLAN CPU)
Latihan Soal 4 :
1. Sebutkan perbedaan antara penjadwalan preemptive dan nonpreemptive.
2. Terdapat 5 job yang datang hampir pada saat yang bersamaan. Estimasi waktu eksekusi (burst time) masing – masing 10, 6, 2, 4, dan 8 menit dengan prioritas masing – masing 3, 5, 2, 1 dan 4, dimana 5 merupakan prioritas tertinggi. Tentukan rata – rata waktu turn around untuk penjadwalan CPU dengan menggunakan algoritma.
a. Round Robin (quantum time = 2)
b. Priority
c. Shortest job first
3. Diketahui proses berikut :
Proses             Ariival Time                  Burst Time
P1                                0.0                               8         
P2                                0.4                               4
P3                                1.0                               1
Tentukan rata – rata waktu turn around dengan algoritma penjadwalan
a. FCFS
b. SJF non preemptive
c. SJF preemptive / STRF
d. Round Robin dengan quantum time = 1
4. Suatu algoritma penjadwalan CPU kemungkinan melibatkan algoritma yang lain, contohnya algoritma FCFS adalah algoritma RR dengan waktu quantum tertentu. Apakah ada hubungan antara pasangan algoritma berikut ?
a. Priority dan SJF
b. Priority danFCFS
c.RR dan SJF
Jawaban
1. Pada non – preemptive yaitu jika proses sedang menggunakan CPU, maka proses tersebut akan tetap membawa CPU sampai proses tersebut melepaskannya (berhenti atau dalam keadaan waiting). Sedangkan pada Preemptive schenduling memiliki kelemahan yaitu biaya yang dibutuhkan sangat tinggi, antara lain harus selalu dilakukan perbaikan data. Hal ni terjadi karena jika suatu proses ditinggalkan dan akan segera dikerjakan proses yang lainnya.
2. Diketahui :
Burs time = 10, 6, 2, 4, 8
Priority = 3, 5, 2, 1, 4 (5  adalah prioritas tertinggi)
a. Menggunakan Algoritma Round Robin (quntum time = 2)
P          P          P          P          P          P          P          P          P          P          P          P          P            P          P
1          2          3          4          5          1          2          4          5          1          2          5          1            5          1

0                      2                      4                      6                      8
            10                    12                    14                    16
18                    20                    22                    24
26                    28                    30
a) Waktu tunggu untuk P1 = 5, P2 = 3, P3 = 4, P4 = 2, P5 = 4
b) Rata –rata tunggu (turn around) = (5 + 3 + 4 + 2 + 4)/5  = 3,6
b. Menggunakan Algoritma Priority
P2   P5        P1        P          P4
                               1

0
6
14
       24        26
30
a) Waktu tunggu untuk P1 = 14, P2 = 0, P3 = 24, P4 = 26, P5 = 6
b) Rata –rata tunggu (turn around) = (14 + 0 + 4 + 24 + 26 + 6)/5  = 14
c. Menggunakan algoritma shortest job first
a) Waktu tunggu untuk P1 = 0, P2 = 16, P3 = 10, P4 = 12, P5 = 22
b) Rata –rata tunggu (turn around) = (0 + 16 + 10 + 12 + 22 )/5  = 12

3. a. menggunakan Algoritma FCFS
P1
P2
P3
0                                  8          12                    13
Waktu tunggu   P1= 0, P2 = 8, P3 = 12
Rata – rata waktu tunggu (turn around) = (0 + 8 + 12) / 3 = 6,6
b. menggunakan Algoritma SJF non preemptive
P1
P2
P3
0                                  8          9                      13
Waktu tunggu P1 = 0
P2 = 9 -0,4 = 8,6
P3 = 8 -1 = 7
Rata – rata waktu tunggu (turn around) = (0 + 8,6 + 7) / 3 = 5,2
c. Menggunakan algoritma SJF preemptive / STRF
P1
P2
P3
P2
P1
0          0,4       1          2          5,4       13
Waktu tunggu untuk P1 = 5 – 0 = 5
P2 = 4,8 – 0,4 = 4,4
P3 = 1 – 1 = 0
Rata – rata waktu tunggu (turn around) = (5 + 4,4+ 0) / 3 = 3,13
d. Menggunakan Algoritma Round Robin(quantum time = 1)
P1
P2
P3
P1
P2
P1
P2
P1
P2
P1
P1
P1
P1
0          1          2          3          4          5          6          7          8          9          10        11        12            13
Waktu tunggu untuk P1 = 8, P2 = 4, P3 =2
Rata – rata waktu tunggu (turn around) = (8 + 4+ 2) / 3 = 4,6


4. Hubungan antara pasangan algoritma
a.  Priority dan SJF
Algoritma SJF adalah algoritma priority untuk menyelesaikan suatu kasus khusus.
b. Priority dan FCFS
Algoritma FCFS adalah algoritma priority yang memiliki prioritas sama.
c.Round Robin dan FCFS
Algoritma Round Robin adalah algoritma FCFS yang bersifat preemptive dan menggunakan time – sharing.
BAB 5 (SIRKONISASI PROSES)
Latihan Soal 5 :
1. Apa yang dimaksud dengan race condition?
2. Apakah yang dimaksud dengan critical section? Untuk menyelesaikan masalah critical section, ada tiga hal yang harus dipenuhi, sebutkan dan jelaskan!
3. Bagaimana algoritma Bakery untuk sirkonisasi banyak proses (n proses) ?
4. Apa yang dimaksud dengan semaphore dan sebutkan operasi pada semaphore
5. Bagaimana struktur semaphore yang digunakan untuk menyelesaikan permasalahan :
a. bounded buffer problem.
b. reader and writer problem.
c. dining philosophers problem.
Jawaban
1. Race Condition adalah suatu kondisi dimana beberapa proses mengakses dan memanipulasi suatu data secara konkuren. Nilai akhir dari data tersebut tergantung dari proses mana yang terakhir selesai dieksekusi.
2. critical section adalah bagian dari code proses yang berisi code – code untuk memanipulasi suatu data.
Solusi yang baik harus memenuhi 3 syarat berikut:
1. Mutual Exclution 
Tidak ada proses yang menjalankan critical section bersamaan.
2. Terjadi kemajuan (Progress)
Proses yang sedang menjalakan remainder sectionnya, tidak boleh menjalankan critival secton berikutnya sebelum proses lain menyelesaikan critical sectionnya.
3. Ada batas waktu (Bounded Waiting)
Ada batas waktu suatu proses dapat menjalankan critical sectionnya.
3. Algoritma Bakery adalah algoritma yang digunakan untuk pemecahan yang digunakan untuk pemecahan permasalahan cricial section pada n proses. Sebelum memasuki critical section, proses menerima nomor. Proses yang mempunyai nomor terkecil dapat memasuki critical section. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j maka Pi dilayani terlebih dahulu, sebaliknya Pj akan dilayani lebih dahulu. Skema pemberian nomor selalu membangkitkan nomor dengan menaikan nilai urut misalnya 1, 2, 3, 3, 3, 3, 4, 5,.... pada algoritma bakery terdapat notasi <= untuk urutan nomor (ticket #, process id #) sebagai berikut :
(a,b) < (c,d) if a < c pr if a = c and b < d
Max (a0,..., an -1) is a number. K, such that k ≥ ai for i – 0,
.....,n – 1
Variable umum yang digunakan adalah :
Boolean cloosing [n];
Int number [n];
Struktur data diatas diinisialisasi falsedan 0. Struktur dari proses Pi adalah :
D0 {
Cloosing[i] = true;
Number[i] = max(number[0],
Number[1], ..., number [n – 1])+1;
Cloosing[i] = false;
For (j=0; j < n; j++) {
While (cloosing[j]) ;
While ((Number[j]  ! = 0 )&& (Number[j] ,j < (Number[i],i)) ;
}
Critical section
Number[i] = 0;
Remainder section
} while (1);
  4. Semaphore adalah sebuah struktur data komputer yang digunakan untuk sikronisasi proses, yaitu untuk memecahkan masalah dari mana lebih dari satu proses atau thread dijalankan secara bersamaan dan harus diatur urutan kerjanya.
Operasi pada semaphore:
1. Operasi Down (P)
a. Operasi ini menurunkan nilai semaphore.
b. Jika nilai semaphore menjadi non positif maka proses yang mengeksekusinya diblocked.
2. Operasi Up (V)
a. Operasi ini menaikan nilai semaphore.
b. Jika suatu proses atau lebih telah di blocked pada suatu semaphore tak dapat menyelesaikan operasi Down. Maka salah satu dipilih oleh sistem dan dibolehkan menyelesaikan operasi Down-nya.
c. Urutan proses yang dipilih tidak ditentukan oleh Dijkstra dapat dipilih secara acak, FIFO dan lain – lain sesuai kepentingan.
d. Operasi UP menaikan nilai semaphore. Memindahkan dari antrian dan menempatkan proses ke antrian.
5.  a. Bounded Buffer Problem
Untuk menyelesaikan permasalahan bounded buffer menggunakan semaphore menggunakan variable umum berikut:
Semaphore full, empty, mutex ;
Inisialsisasi untuk variable diatas.
Full = 0, empty = n , mutex = 1.
Struktur untuk produsen adalah
Do {
...
Menghasilkan item pada nextp
...
Wait (empty);
Wait (mutex);
...
Menambah nextp ke buffer
...
Signal (mutex);
Signal (full);
} while (1);


Sedangkan struktur program untuk konsumen adalah
D0 {
Wait (full);
Wait (mutex);
...
Mengambil item dari buffer ke nextc
....
Signal (mutex);
Signal (empty);
....
Menambahkan item pada nextc
...
} while (1);
b. Reader and writer problem
variable umum yang digunakan adalah semaphore mutex, wrt;
inisialisasi variable diatas adalah mutex = 1, wrt = 1, readcount = 0.
Struktur proses writer adalah
Wait(wrt);
...
Menulis
...
Signal(wrt);
Sedangkan struktur proses reader adalah
Wait(mutex);
Readcount++;
If (readcount == 1)
Wait(rt);
Signal(mutex);
...
Membaca
...
Wait(mutex);
Readcount--;
If (readcount == 0)
Signal (wrt);
Signal(mutex):
c. Dining philosophers problem
struktur data yang digunakan untuk menyelesaikan permasalahan ini dengan semaphore adalah
semaphore chopstick[5];
dimana semua nilai array dinisialisasi 1. Struktur program untuk filosof ke i adalah
do {
wait (chopstick[i])
wait (chopstick[(i+1) % 5])
...
Makan
...
Signal  (chopstick[i]);
Signal (chopstick[(i+1) % 5]);
....
Berfikir
...
} while (1);
BAB 6 (Deadlock)
Latihan Soal 6 :
1. Apa yang dimaksud dengan sumber daya? Berikan contohnya
2. Apa yang dimaksud deadlock?
3. Sebutkan 4 kondisi yang menyebabkan deadlock
4. Sebutkan cara mencegah deadlock dari 4 kondisi tersebut pada soal 3.
5. Diketahui snapshot dari suatu sistem :
                   Allocation                     Max                  Avaiable
                        A B C D                        A B C D            A B C D
P0                    0 0  1 2                         0 0 1 2              1 5 2 0
P1                    1 0 0 0                          1 7 5 0
P2                    1 3 5 4                          2 3 5 6
P3                    1 6 3 2                          1 6 5 2
P4                    0 0 1 4                          0 6 5 6
Jawablah pertanyaan berikut :
a. Bagaimana isi matrik Need?
b. Apakah sistem dalam state selamat?
c. Jika proses P1 meminta (0,4,2,0) dapatkah permintaan dipenuhi segera?
Jawaban
1. Sumber daya adalah suatu nilai potensi yang dimiliki oleh suatu materi atau unsur tertentu dalam kehidupan. Sumber daya tidak selalu bersifat fisik, tetap juga non – fisik. Sumber daya yang dapat pulih atau terbarukan (renewable resources) dan sumber daya tak terbarukan ( non - renewable resources).
Contohnya : sumber daya berulang – ulang dan sumber daya sekali pakai.
2. Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melapaskan resource yang sedang dipakai. Deadlock juga diartikan sebagai masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
3. 4 kondisi yang menyebabkan deadlock :
1. Mutual Exclusion : hanya satu proses pada satu waktu yang dapat menggunakan sumber daya.
2. Genggam dan Tunggal (hold and wait) : suatu proses membawa sedikitnya satu sumber daya menunngu mendapatkan tambahan sumber daya baru yang dibawa oleh proses.
3. Non – Preemption : sebuah sumber daya dapat dibebaskan dengan sukarela oleh proses yang memegangnya setelah proses menyelesaikan task.
4. Mengunggu secara sirkuler (circualwait) : terdapat sekumpulan proses {P0, P1,...., P0} yang menunggu sumber daya dimana P0 menunggu sumber daya yang dibawa P1, P1 mengunggu sumber daya dimana P2 dan seterusnya, Pn-1 menunggu sumber daya yang dibawa oleh Pn, dan Pn menunggu sumber daya dibawa Po.
4. mencegah deadlock dilakukan dengan meniadakan salah satu dari syarat perlu sebagai berikut :
1. Mencegah Mutual Exclusion
Mutual Exclusion benar – benar tak dapat dihindari. Hal ini dikarenakan tidak ada sumber daya yang dapat digunakan bersama – sama, jadi sistem harus membawa sumber daya yang tidak dapat digunakan bersama – sama.


2. Mencegah 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.
3. Mencegah Non Preemption
Peniadaan non preemption mencegah proses – proses lain harus menunggu. Seluruh proses menjadi preemption, sehingga tidak ada tunggu menunggu. Cara mencegah kondisi non preemption :
a. 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.
b. Proses yang sedang dalam keadan menungggu, sumber daya yang dibawanya ditunda dan ditambahkan pada daftar sumber daya.
c. Proses akan direstart kembal hanya jika dapat memperoleh daya yang lama dan sumber daya baru yang diminta.
4. Mencegah Kondisi Menunggu Sirkular
Sistem mempunyai total permintaan global untuk setiap tipe sumber daya. Proses dapat meminta proses kapanpun menginginkannya, tapi permintaan harus dibuat terurut secara numerik. Setiap proses yang membutuhkan sumber daya dan memintanya maka nomor urut akan dinaikan. Cara ini tidak akan menimbulkan siklus, masalah yang timbul adalah tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak.
5. a. isi matrik need didefinisikan dengan max – allocation
Need
               A          B          C
P0                       7          4          3
P1                       1          1          2
P2                       6          0          0
P3                       0          1          1
P4                       4          3          1
Sistem dalam keadaan state selamat dengan urutan <P1, P3, P4, P2, P0> yang memenuhi kriteria algoritma safety. Misalnya proses P1 meminta tambahan anggota tipe sumber daya C sehingga Request1 = (1, 0, 2). Untuk menentukan apakah permintaan dapat segera dipenuhi, pertama harus diperiksa apakah request1 ≤ avaiable ((1, 0, 2) ≤ (3, 3, 2)) ternyata benar. Maka akan diperoleh state baru berikut :






Allocation need avaiable
   A          B          C          A          B          C          A          B          C
                                       P0        0          1          0          7          4          3          2
30
                                       P1        3          0          2          0          2          0
                                       P2        3          0          1          6          0          0
                                       P3        2          1          1          0          1          1
                                       P4        0          0          2          4          3          1
Kemudian harus ditentukan apakah sistem berada dalam state selamat , setelah mengeksekusi algoritma safety ternyata urutan memenuhi criteria safety. Setelah sistem berada pada state diatas, permintaan (3, 3,0) oleh P4 tidak dapat dipenuhi karena sumber daya tidak tersedia. Permintaan (0, 2, 0) oleh P1 juga tidak dapat dipenuhi karena meskipun sumber daya tersedia, state hasil tak selamat.
b. Sistem dalam state tidak selamat
c. Dapat
BAB 7 (MANAJEMEN MEMORY)
Latihan Soal 7 :
1. Terdapat partisi memori 100K, 500K, 200K, 300K dan 600K, bagaimana algoritma First-fit, Best-fit dan Worst-fit menempatkan proses 212K, 417K, 112 K dan 426K (berurutan) ? Algoritma mana yang menggunkan memori secara efisien?
2. Apa yang dimaksud dengan fragmentasi eksternal dan fragmentasi internal ?
3. Diketahui ruang alamat logika dengan 8 page masing – masing 1024 word dipetakan ke memori fisik 32 frame.
4. Berapa bit logika alamat ?
5. Berapa bit alamat  fisik?
6. Diketahui sistem paging dengan page table disimpan di memori.
7. Jika acuan ke memori membutuhkna 200 nanosecond, berapa lama waktu melakukan paging ?
8. Jika ditambahkan associative register, dan 75 persen dari semua acuan ke page – table ditemukan dalam associative register, berapa efective access time (EAT) acuan ke memori ? (diasumsikan bahwa menemukan entri pada page table di associative register membutuhkan waktu 0, jika entri ada).
Jawaban
1. First – fit : alokasi lubang pertama yang cukup untuk proses.
Best – fit :alokasi lubang terkecil yang cukup untuk proses. Strategi ini memerlukan pencarian keseluruhan lubang, kecuali bila ukuran sudah terurut.
Worst – fit : alokasi lubang terbesar yang cukup untuk proses. Strategi ini memerlukan pencarian keseluruhan lubang, kecuali disimpan berdasarkan urutan ukuran.
Diantara algoritma diatas, first-fit dan best-fit lebih baik dibandingkan worst-fit dalam hal menurunkan waktu dan utilitas penyimpanan. Tetapi first-fit dan best-fit lebih baik dalam hal utilitas penyimpanan tetapi first-fit lebih cepat.
2. a. fragmentasi eksternal
Terjadi pada situasi dimana terdapat cukup ruang memori untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan. Fragmentasi eksternal dilakukan pada algoritma alokasi dinamis, terutama strategi first- dan berst-fit.
b. fragmentasi Internal
Terjadi pada situasi dimana memori yang dialokasikan lebih besar dari pada memori yang diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak digunakan. Pada multiple parition, fragmentasi internal mungkin terjadi pada situasi berikut. Misalnya terdapat lubang 18464 byte, dan proses meminta 18462 byte. Alokasi dilakukan sesuai permintaan maka sisa lubang 2 byte. Penyimpanan lubang ini akan memerlukan memori lebih besar dari lubang itu sendiri. Pendekatannya adalah dengan mengalokasikan lubang yang sangat kecil sebagai bagian dari permintaan yang besar.
3. Ruang alamat logika dari suatu proses dibagikan kedalam 2 partisi :
Partisi 1 terdiri dari 8k segmen yang pribadi (private) untuk proses tersebut.
Partisi 2 terdiri dari 8k segmen yang digunakan bersama untuk semua proses.
Informasi mengenai partisi pertama disimpan dalam local descriptor table (LDT) sedangkan informasi mengenai partisi kedua disimpan dalam global descriptor table (GDT). Setiap entry pada tabel LDT dan GDT terdiri dari 8 byte, dengan informasi detail tentang segmen tertentu termasuk lokasi basis dan panjang segmen. Alamat logika adalah pasangan (selector, offset), dimana selector sebanyak 16 bit. 1 page = 64 byte, jadi page 0 akan dipetakan ke frame 8, maka alamat logika 0 akan dipetakan ke alamat fisik (8 * 64)+0 = 512. Keadaan memori logika dapat dilihat sebagai berikut :
Alamat logika 50 berada di page 0, offset 50 sehingga alamat fisiknya  (8 * 64) + 50 = 562.
Alamat logika 121 berada di page 1, offset 57 sehingga alamat fisiknya (2 * 64) + 57 = 185.
Alamat logika 380 berada di page 5, offset 60  sehingga alamat fisiknya (1 * 64) + 60 = 124.
4. alamat logika : Bit alamat logika dapat dipecah atas nomor segmen dan alamat offset. Misalnya, nomor segmen menggunakan 4 bit atas alamat logika, yang berarti terdapat maksimal 212 = 4 kbyte.
5.  alamat fisik : Bit alamat fisik pada memori fisik pada alamat awal 8224 sehingga pada saat dieksekusi alamat 4848 akan ditranlasi menjadi 8224 + 752 = 8976.
6. paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan, mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia, semua daftar frame yang bebas disimpan untuk menjalankan program dengan ukuran n page, perlu menemukan n frame bebas dan meletakan program pada frame tersebut. Tabel page digunakan untuk menterjemahkan alamat logika ke alamat fisik.
7. lama waktu melakukan paging adalah 40ms.
8. Waktu akses afektif = 0,75_(200 nanodetik) + 0,25_(400 nanodetk) = 250 nanodetik.
BAB 8 (VIRTUAL MEMORY)
Latihan Soal 8 :
1. Diketahui sistem memory demand paging. Page table menggunakan register. Membutuhkan 8 milisecond untuk melayani page fault jika frame kosong tersedia atau page yang di replace tidak dimodifikasi dan 20 milisecond jika page yang di-replace dimodifikasi. Waktu akses memory adalah 100 nanosecond. Diasumsikan page yang di-replace akan dimodifikasi adalah 70 persen dari waktu. Berapa rata-rata page fault yang diterima untuk affective acces time tidak lebih dari 200 nanosecond?
2. Diketahui string acuan dari page
                   1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
Berapa banyak page fault yang terjadi untuk algoritma page replacement berikut dengan satu, dua, tiga , empat, lima, enam atau tujuh frame? Ingat bahwa semua frame diinisialisasi kosong, sehingga page unik pertama akan bernilai masing – masing satu fault
a. LRU
b. FIFO
c. Optimal
3. Diketahui array 2 dimensi A sebagai berikut :
Var A : array[1..10] of array[1..100] of integer
Dimana A[1][1]berada pada lokasi 200 pada sistem page memory dengan page-page berukuran 200. Suatu proses kecil pada page 0 (lokasi 0 s/d 199) untuk manipulasi matriks, sehingga setiap intruksi dimulai dari page 0.
Untuk 3 frame page, berapa banyak page falut yang dibangkitkan oleh loop inisialisasi array berikut menggunakan LRU dan asumsi frame page 1 sudah terdapat proses dan 2 frame page lainnya diinisialisasi kosong.
a. for (j =1; j <=100; j++)
       for (i =1; i <=100; i++)
       A[i] [j] = 0;
b. for (in=1; i <=100; i++)
       for (j =1; j <=100; j++)
       A[i] [j] := 0;
4. Diketahui sistem demand paging dengan paging disk mempunyai waktu akses dan transfer rata-rata 20 milisec. Alamat ditranslasikan melalui page table di memory. Dengan waktu akses 1 microsec per akses memory. Sehingga acuan memory melalui page table sama dengan 2 kali akses memory. Untuk memperbaiki waktu, ditambahkan associative memory yang menurunkan waktu akses menjadi satu acuan memori. Jika entri page table berada di associative memory. Diasumsikan 80 % akses pada associative memory dan sisanya (20%). 10%nya (atau 2 persen dan total) menyebabkan page fault. Berapakah effective access time-nya?
Jawab
1. Waktu akses memory = 200 nanosecond
Rata-rata waktu page-fault service time = 8 miliseconds
1ms = 106 ns
EAT = ((1 – p) x 200) + (p x (8 miliseconds))
= ((1 – p) x 200) + (p x (8,000,000))
= 200 + (p x 7,999,800)
Jika 1 dari 1.000 kali akses terjadi fault, maka EAT = 8.2 microseconds

2. a. Lebih baik dari pada FIFO (15), tetapi lebih buruk dari OPT(9)
Halaman 7 kesalahan : 1 frame : 7 -1 -1 waktu : 1
0                  2          7          0          -1         1          2
1                  3          7          0          1          1          2          3
2                  4          2          0          1          4          2          3
0                  4          2          0          1          4          5          3
3                  5          2          0          3          4          5          6
0                  5          2          0          3          4          7          6
2                  7          4          0          2          8          7          9
3                  8          4          3          2          8          10        9
0                  9          0          3          2          11        10        9
3                  9          0          3          2          11        12        9
2                  9          0          3          2          11        12        13
1                  101       3          2          14        12        13
2                  101       3          2          14        12        15
0                  111       0          2          14        16        15
1                  111       0          2          17        16        15
7                  121       0          7          17        16        18
0                  121       0          7          17        19        18
1                  121       0          7          20        19        18
b. mem> alg 0
mem > mode 1
mem> init 8 3
mem> r 7 r 0 r 1 r 2 r 0 r 3 r 0 r 4 r 2 r 3 r 0 r  3 r 2 r 1 r 2 r 0 r 1 r 7 r 0 r 1
page 7 faults : 1 frames : 7 -1 -1 time : 1
0      2          7          0          -1         1          2
1      3          7          0          1          1          2          3
2      4          2          0          1          4          2          3
0      4          2          0          1          4          2          3
3      5          2          3          1          4          6          3
0      6          2          3          0          4          6          7
4      7          4          3          0          8          6          7
2      8          4          2          0          8          9          7
3      9          4          2          3          8          9          10
0      10        0          2          3          11        9          10       
3      10        0          2          3          11        9          10
2      10        0          2          3          11        9          10
1      11        0          1          3          11        14        10
2      12        0          1          2          11        14        15
0      12        0          1          2          11        14        15
1      12        0          1          2          11        14        15
7      13        7          1          2          18        14        15
0      14        7          0          2          18        19        15
1      15        7          0          2          18        19        20
c. mem> nogo
mem>
 r 7  r 0 r 1 r 2 r 0 r 3 r 0 r 4 r 2 r 3 r 0 r  3 r 2 r 1 r 2 r 0 r 1 r 7 r 0 r 1
mem> go
page: 7 faults: 1 frames : 7 -1 -1
0      2          7          0          -1
1      3          7          0          1
2      4          2          0          1
0      4          2          0          1
3      5          2          0          3
0      5          2          0          3
4      6          2          4          3
2      6          2          4          3
3      6          2          4          3
0      7          2          0          3
3      7          2          0          3
2      7          2          0          3
1      8          2          0          1
2      8          2          0          1
0      8          2          0          1
1      8          2          0          1
7      9          7          0          1
0      9          7          0          1
1      9          7          0          1
4. Diketahui : waktu akses 20ms rata – rata transfer 20 ms,memory access = 400 ns
            EAT = (1-p) x (400) + p x (20ms)
                        = (1-p) x (400) + p x 20000000
                        = 400 + 19999600 x p
            410>400 + 20000000 x p
            10 > 20000000 x p
            P< 0,0000005
BAB 9 (SISTEM FILE)
Latihan 9 :
1. Apakah keuntungan dan kerugian menyimpan nama pembuat program pada atribut file (seperti pada so machintosh)
2. Terdapat beberapa metode akses misalnya sequential access dan direct acces. Jelaskan!
3. Sebutkan dan jelaskan tree-structured directory dan acyclic-graph directory.
4. Diketahui sebuah system mendukung 5000 user. Misalnya akan mengijinkan 4990 user dapat mengakses sebuah file. Bagaimana spesifikasi proteksi pada UNIX?
Jawaban
1. misalnya sistem operasi membutuhkan file executable yang mempunyai struktur khusus sehingga dapat menentukan dimana letak memory dan lokasi dari intruksi pertama. Beberapa sistem operasi menggunakan sekumpulan sistem pendukung struktur file dengan sejumlah operasi khusus untuk menipulasi file dengan struktur tersebut. Hal ini menjadi kelemahan pada sistem operasi yang mendukung struktur file lebih dari satu. Jika sistem operasi menentukan 10 struktur file berbeda, maka perlu menyertakan kode untuk mendukung struktur file tersebut. Setiap file perlu dapat didefinisikan sebagai satu dari tipe file yang didukung oleh sistem operasi.
Beberapa sstem operasi seperti UNIX dan MS-DOS hanya mendukung sejumlah struktur file. UNIX menentukan setiap file merupakan deret 8 bit byte dan bit tersebut tidak diterjemahkan oleh sistem operasi. Skema ini mempunyai fleksibilitasi maksimum, tetapi sedikit dukungan. Setiap program aplikasi harus menyertakan kode sendiri untuk menerjemahkan file input ke dalam struktur yang tepat. Setidaknya menjalankan program semua SO  harus mendukung sedikitnya satu struktur file executable sehingga sistem dapat load.
2. a. Sequential access (Akses Berurutan)
Akses berurutan merupakan metode akses paling sederhana. Informasi pada file diproses secara berurutan, satu record diakses setelah record yang lain. Metode akses ini berdasarkan model tape dari suatu file yang bekerja dengan perangkat sequential-access atau random access.
Operasi pada akses berurutan terdiri dari:
Read text
Write text
Reset
No read after last write (rewrite)
Operasi read membaca bagian selanjutnya dari file dan otomatis menambah file pointer yang melacak lokasi I/O. Operasi write menambah ke akhir file dan ke akhir material pembacaan baru (new end of file). File dapat direset ke awal dan sebuah program untuk meloncat maju atau mundur ke n record.
b. Direct Access (Akses Langsung)
Metode akses langsung berdasarkan model disk daru suatu file, memungkinkan acak ke sembarang blok file, memungkinkan blok acak tersebut dibaca atau ditulis.
Operasi pada akses langsung ini terdiri dari:
Read n
Write n
Position to n
Read next
Write next
Rewrite n
Operasi file dimodifikasi untuk memasukan nomor blok sebagai parameter. Nomor blok ditentukan user yang merupakan nomor blok relatif, misalnya indeks relatif ke awal dari file. Blok relatif pertama dari file adalah 0, meskipun alamat disk absolut aktual dari blok misalnya 17403 untuk blok pertama. Metode ini mengijinkan sistem operasi menentukan dimana file ditempatkan dan mencegah user mengakses posisi dari sistem file yang bukan bagian file tersebut.
3. a. Tree-structured directory
Dalam struktur ini, setiap pengguna dapat membuat subdirektori sendiri dan mengorganisasikan berkas – berkasnya. Dalam penggunaan normal, tiap pengguna memiliki apa yang disebut current directory. Current directory mengandung berkas – berkas yang baru – baru ini digunakan oleh pengguna.
b. Acyclic-graph directory
pada diektory acyclic graph memungkinkan direktori mempunyai subdirektor dan file yang digunakan bersama – sama. File dan subdirektori yang sama mungkin berada pada dua direktori yang berbeda. Dan struktur ini menyadiakan fasilitas sharing.
4. Pada sistem UNIX, proteksi direktori ditangani sama dengan proteksi file, misalnya, diasosiasikan dengan setiap subdirektory menggunakan owner, group dan universe (others) sebagai 3 bit RWX. Informasi yang terdapat pada file dari kiri ke kanan terdiri dari proteksi file atau direktory, jumlah link ke file, nama pemliki, nama group, ukuran file dalam byte, tanggal membuat, nama file.
-rw-rw-r--          1          pbg      staff                 31200               Sep      3          08:30                intro.ps
drwx------          5          pbg      staff                 512                   Jul        8          09:33                private/
drwxrwxr-x       2          pbg      staff                 512                   Jul        8          09:35                doc/
drwxrwx---        2          pbg      student                         512                   Aug      3          14:13                student-proj/
-rw-r—-r--         1          pbg      staff                 9423                 Feb      24        1993                 program.c
-rwxr-xr-x         1          pbg      staff                 20471               Feb      24        1993                 program
drwx—-x--x      4          pbg      faculty              512                   Jul        31        10:31                lib/
drwx------          3          pbg      staff                 1024                 Aug     29        06:52                mail/
drwxrwxrwx      3          pbg      staff                 512                   Jul        8          09:35                test/
BAB 10 (IMPLEMENTASI SISTEM FILE)

Latihan 10:
1. Sistem file biasanya diimplementasikan dalam struktur layer atau modular. Jelaskan struktur layer pada system file.
2. Ada beberapa cara file dialokasikan pada ruang disk, yaitu contigous, linked atau berindeks. Jelaskan ketiga cara alokasi file diatas dan berikan contoh.
3. Sebutkan dan jelaskan cara untuk memperbaiki sistem dari kegagalan sehingga tidak kehilangan data atau data inconsistency.
4. Apakah permasalahan yang timbul bila sebuah system memperbolehkan system file di mount secara simultan lebih dari satu lokasi.
Jawaban
1.
Gambar. Layer system file
a. Pada level terendah I/O control device driver dan interrupt handler untuk mengirim informasi antara memori dan sistem disk.
b. Basic file system beris perintah bagi device driver untuk membaca dan meulis blok fisik pada disk.
c. File organization module berisi modul untuk mengetahui blok logika pada blok fisik.
d. Logical file system menggunakan struktur direktori untuk memberikan ke file organization module informasi tentang kebutuhan terakhir.
2.  a. Alokasi Berurutan (Contigous Allocation)
Pada alokasi berurutan, setiap file menempati sekumpulan blok yang berurutan pada disk. Model ini sangat sederhana karena hanya membutuhkan lokasi awal (blok#) dan panjang (jumlah blok). Akses pada blok disk dilakukan secara random dan memakan banyak ruang (permasalahan dynamic storage-allocation). File yang disimpan secara berurutan tidak dapat berkembang. Beberapa sistem file yang baru (misalnya Veritas File System) menggunakan skema alokasi berurutan yang dimodifikasi. File sistem extend-based mengalokasikan blok pada disk secara berkembang (extent). Extent adalah blok berurutan pada disk. Extent dialokasikan untuk alokasi file. Sebuah file terdiri dari satu atau lebih extent.
b. Alokasi Berhubungan (Linked Allocation)
Pada alokasi berhubungan, setiap file adalah sebuah linked list dari blok – blok terpisah pada disk. Pada setiap blok terdapat satu pointer yang menunjuk ke blok lain. Alokasi berhubungan mempunyai bentuk yang sederhana, hanya memerlukan alamat awal. Sistem manajemen ruang bebas pada alokasi berhubungan tidak memakan banyak ruang. Model ini tidak menggunakan random access. Blok yang diakses adalah blok ke-q pada rantai link dari blok pada file. Perpindahan ke blok = R+1. Contoh sistem file yang menggunakan alokasi berhubugan adalah file-allocation table (FAT) yang digunakan MS-DOS dan OS/2.
c. Alokasi Berindeks (Indexed Allocation)
Pada alokasi berindeks, terdapat satu blok yang berisi pointer ke blok-blok file. Alokasi berindeks berupa bentuk logika. Pada alokasi berindeks, memerlukan tabel indeks yang membawa ponter ke blok-blok file yang lain. Akases dilakukan secara random.
3. Untuk  memperbaiki sistem file dilakukan dengan memeriksa konsistensi dengan cara membandingkan data pada struktur direktori dengan blok data pada disk dan mencoba memperbaiki inkonsistensi. Selain itu juga dapat menggunakan program sistem untuk back up data dari disk ke penyimpanan lain (floopy disk, magnetic tape). Perbaikan akan recover menghilangkan file atau disk dengan restoring data dari beckup.
4. Mounting Sistem Berkas
Seperti halnya sebuah berkas yang harus dibuka terlebih dahulu sebelum digunakan, sistem berkas harus dimount terlebih dahulu sebelum sistem berkas tersebut siap untuk memproses dalam sistem. Sistem operasi diberikan sebuah alamat mounting (mount poin) yang berisi nama device yang bersangkutan dan lokasi dari device tersebut.