SISTEM OPERASI BAB V a SISTEM FILE


SISTEM FILE



Pada proses penyimpanan dan pembacaan data bisa timbul masalah:
1.     Kapasitas media penyimpanan tidak cukup (terbatas).
2.     Ketika proses dihentikan, data hilang.
3.     Kebutuhan mengakses data atau sebagiannya dalam waktu bersamaan.

Oleh karena itu diperlukan media penyimpanan yang :
1.     Mampu menyimpan data yang besar.
2.     Mampu menjaga data walaupun proses yang mengaksesnya dihentikan.
3.     Proses yang bersamaan dapat mengakses data secara bersama-sama, tanpa ada yang terganggu.

Solusi untuk semua masalah tsb adalah dengan menyimpan data pada disk atau media lain dalam bentuk unit-unit yang disebut FILE. Data yang disimpan dalam bentuk file harus tetap tidak berubah ketika proses dibentuk atau dihentikan. File bisa hilang hanya ketika dihapus saja.
Sistem File adalah bagian sistem operasi yang menangani masalah file.

1.         FILE
1.1        Penamaan File
File merupakan bentuk mekanisme abstrak. Karakteristik yang paling penting dari mekanisme abstrak adalah cara pemberian nama suatu obyek. Ketika proses membuat suatu file, proses akan memberi sebuah nama kepada file. Ketika proses selesai, file masih ada dan bisa diakses oleh proses lain dengan menggunakan nama file tsb.
Semua sistem operasi menerima bentuk nama file yang terbuat dari 1 sampai 8 karakter. Tetapi ada beberapa sistem operasi yang membedakan huruf besar dan huruf kecil, seperti UNIX. Contoh :
BARBARA, BARbara, BarBaRa ----> UNIX membedakannya
                                                            ----> DOS menganggap sama
                                                            ----> WINDOWS  ???
                                                            ----> LINUX  ???
Kebanyakan sistem operasi mampu menangani dua bagian bentuk nama file yang dipisah dengan titik (period), bagian yang terletak setelah tanda titik disebut extension, yang biasanya menggambarkan ciri khusus dari file ybs. Contoh :
- DOS nama file            ----> [1 sampai 8 karakter].[1 sampai 3] 
- UNIX                           ----> [1 sampai ? karakter].[1 sampai ?].[....].[....] .....sampai ?

Beberapa extension file yang biasa ditemukan tampak pada tabel berikut :


Extension
Artinya
*.bak
File Backup
*.bas
Program source Basic
*.bin
Program executable binary
*.c
Program source C
*.dat
File Data
*.doc
File Dokumentasi
*.ftn
Program source Fortran
*.hlp
File Teks untuk HELP command
*.lib
Library dari file .obj yang digunakan linker
*.man
Online manual page
*.obj
File object
*.pas
Program source Pascal
*.tex
Teks masukan untuk format program TEX
*.txt
File teks umum

Pada kasus khusus, extension ini hanya berupa Konvensi, seperti :
-       data03.txt, menyatakan file dalam bentuk file teks.
-       program05.c menyatakan file berupa file code bahasa C, C compiler hanya mengcompile extension *.C.

1.2        Struktur File
Beberapa kemungkinan bentuk struktur file tampak pada gambar 1.

Gambar 1. Tiga macam file. (a) Urutan byte. (b) Urutan record. (c) Tree.

a.     File dibentuk dari urutan byte yang tidak terstruktur.
Akibatnya : Sistem operasi tidak tahu apa yang ada didalamnya. DOS dan UNIX menerapkan bentuk ini, LINUX ?, WINDOWS ?
Cara mengambil isi file dengan program.
b.    File dibentuk dari urutan record dengan panjang yang sama dan struktur internal didalamnya.
Operasi read akan membaca satu record.
Operasi write akan overwrite/append satu record.
Cocok untuk sistem operasi yang menerapkan Punch Card, karena ukurannya tetap.
c.     File dibentuk dari struktur organisasi tree record, ukuran record tidak harus sama, setiap record mengandung field Key pada posisi yang sama. Tree record diurutkan berdasarkan Key nya.
Operasinya dengan melihat Key.
Banyak diterapkan pada sistem operasi Mainframe untuk pemrosesan data komersial.

1.3        Jenis File
UNIX dan DOS memiliki jenis file :
a.     Regular File : jenis file yang mengandung informasi user. Contoh gambar 1.
b.    Directory : file sistem yang mengatur struktur sistem file.
c.     Character Special File : File yang berhubungan dengan peralatan I/O dan memodelkan peralatan serial, seperti Terminal, Printer, NIC.
d.    Block Special File : File yang digunakan untuk memodelkan disk.

Regular File bisa berbentuk ASCII maupun binary. Keuntungan bentuk ASCII adalah dapat ditampilkan dan dicetak seperti apa adanya dan dapat diedit menggunakan editor yang biasa dipakai. File Binary memiliki struktur internal sendiri, contoh dalam UNIX pada gambar 2.








Gambar 2. (a) File executable. (b) Archive.

Magic Number : menyatakan bahwa file berupa file executable.
Binary file dalam bentuk archive mengandung kumpulan library procedure (module) yang telah dicompile tapi tidak dilink.

Seluruh sistem operasi paling tidak harus mengenal satu jenis file executable, miliknya sendiri. Bahkan jika file source codenya diubah, mampu melakukan compile ulang secara otomatis. Contoh perintah UNIX : make, berada didalam shellnya.

1.4        Pengaksesan File
Ada dua cara :
a.     Sequential Access, proses dapat membaca seluruh byte/record dalam suatu file, mulai dari awal, tidak boleh melompat atau keluar dari urutannya.
Cocok untuk file yang disimpan pada media Magnetic Tape.
b.    Random Access, bisa membaca byte/record untuk berbagai macam urutan pengaksesan.
Cocok untuk file yang disimpan pada media Disk.
Jenis ini lebih sesuai untuk berbagai aplikasi, seperti sistem database airport.

Sistem operasi Mainframe lama banyak menggunakan kedua cara, karena memiliki dua bentuk media penyimpanan tsb.
Sedangkan sistem operasi modern tidak membedakannya, otomatis semua file diakses secara acak (Random access).

1.5        Atribut File
Jenis-jenis atribut file tampak pada Tabel berikut.

Field
Artinya
Protection
Who can access the file and in what way
Password
Password needed to access the file
Creator
Id of person who created the file
Owner
Current owner
Read Only flag
0 for read/write, 1 for read only
Hidden flag
0 for normal, 1 for do not display in listings
System flag
0 for normal file, 1 for system file
Archive
0 has been backed up, 1 for needs to be backed up
ASCII/binary flag
0 for ASCII file, 1 for binary file
Random access flag
0 for sequential access only, 1 for random access
Temporary flag
0 for normal, 1 for delete on process exit
Lock flag
0 for unlocked, nonzero for locked
Record length
Number of bytes in a record
Key position
Offset of the  key within each record
Key length
Number of  bytes in the key field
Creation time
Date and Time file was created
Time of last access
Date and Time file was last accessed
Time of last change
Date and Time file was last changed
Current size
Number of bytes in the file
Maximum size
Maximum size file may grow ro


1.6        Operasi File
Sistem Call yang biasa digunakan dalam hubungan dengan file :
a.     Create : File dibuat dan tidak berisi data.
b.    Delete : File dihapus karena tidak diperlukan lagi dan untuk memperbesar ruang disk sisa.
Beberapa sistem operasi akan menghapus file jika tidak digunakan dalam jangka waktu tertentu.
c.     Open : Sebelum menggunakan file, file harus diOpen dulu. Open akan menjadikan sistem mengambil atribut dan daftar alamat disk dan meletakkan didalam memori kerja agar diperoleh akses yang cepat.
d.    Close : Jika akses file selesai, atribut dan alamat disk tidak diperlukan lagi, sehingga harus ditutup dan untuk memperbesar ruang tabel daftar alamat disk internal.
e.     Read : Data dibaca dari file. Sistem menentukan banyaknya data dan menyediakan buffer untuk menampungnya.
f.     Write : Data disimpan kedalam file. Jika posisi berada diakhir file, maka ukuran file bertambah. Jika posisi ditengah, data yang ada akan ditimpa.
g.    Append : Menambah data setelah data terakhir.
h.     Seek : Mengatur posisi pointer saat itu menuju posisi yang ditentukan.
i.      Get Attribute : Pada UNIX, program make perlu melihat atribut file, terutama waktu modifikasinya yang terakhir.
j.      Set Attribute : Mengubah status atribut file.
k.     Rename : Merubah nama file.


1.7        Memory-Mapped File

Sistem operasi melakukan pemetaan file kedalam ruang alamat disk pada alamat virtual. Pemetaan ini sangat cocok pada Segmentasi. Contoh pada gambar 3.

Gambar 3 (a) Proses segmentasi sebelum memetakan file ke ruang alamatnya. (b) Proses setelah memetakan file abc ke satu segmen dan membuat segmen baru untuk file xyz.


Proses memiliki dua segmen, teks dan data. Proses melakukan sistem call COPY. Pertama, memetakan file sumber (abc) ke sebuah segmen. Kemudian membuat segmen kosong dan memetakannya ke file tujuan (xyz). Proses dapat mengcopy segmen sumber ke dalam segmen tujuan menggunakan loop copy biasa, bukan Read dan Write.

Kelebihan Pemetaan File :
-       Menghilangkan kebutuhan I/O sehingga mempermudah pemrograman.

Kekurangan Pemetaan File :
-       Sistem sulit untuk mengetahui panjang sebenarnya dari file output (xyz).
-       Hasil pemetaan belum tentu sama dari sumbernya, jika terjadi modifikasi sumber, outputnya belum tentu dimodifikasi juga.
-       Tidak bisa memetakan ukuran file yang lebih besar dari ukuran segmen.

2.         DIRECTORY
Untuk menjaga agar file tetap pada jalurnya dan diketahui, maka sistem file menyediakan DIRECTORY.
2.1        Sistem Directory Hirarki

Diantara bentuk sistem directory tampak pada gambar 4
Gambar 4. Directory. (a) Atribut pada directory entry. (b) Atribut di tempat lain.

Ketika file diOpen, sistem operasi mencari directorynya sampai ditemukan nama file ybs, kemudian mengekstrak atribut dan alamat disk langsung dari daftar directory atau dari struktur data yang menunjukkannya, lalu meletakkan kedalam tabel didalam memory kerja.

Bentuk disain sistem file tampak pada gambar 5.


Gambar 5. Tiga disain sistem file. (a) Satu directory dipakai bersama oleh semua user. (b) Satu directory per user. (c) Sembarang tree per user. Huruf-huruf menyatakan pemilik directory atau file.

2.2        Nama Path
Penamaan Path ada dua cara :
a.     Absolute Path Name : mengandung path dari directory root sampai file.
Selalu dimulai dari Root dan bersifat Unik.
Di UNIX, directory dipisah dengan tanda /, DOS dengan \. Jika karakter pertama dari nama path dimulai dengan tanda tsb, maka path termasuk jenis absolut ini.

Contoh : /usr/ast/mailbox

root directory mengandung subdirectory usr,
dimana didalamnya ada subdirectory ast,
dimana didalamnya lagi ada subdirectory mailbox.
b.    Relative Path Name : Untuk seluruh kasus path yang tidak dimulai dari root, diambil secara relatif ke directory kerja (working directory/current directory).
Contoh : Directory kerja /usr/ast, file yang mempunyai path absolut /usr/ast/mailbox dapat diwakili dengan mailbox saja. Seperti perintah :
cp /usr/ast/mailbox  /usr/ast/mailbox.bak
dan
cp mailbox  mailbox.bak
adalah perintah UNIX yang menghasilkan efek yang sama.

Kebanyakan sistem operasi mempunyai dua directory khusus, "." dan "..", dot dan dotdot. Dot menunjukkan directory saat itu dan Dotdot menunjukkan parent directory. Contoh gambar 6


Gambar 6. UNIX directory tree

Directory kerja /usr/ast, copy file /usr/lib/dictionary ke directorynya sendiri dengan :
cp ../lib/dictionary  .
    
2.3        Operasi Directory
Beberapa operasi directory :
a.     Create, membuat directory yang kosong kecuali dot dan dotdot yang otomatis dimasukkan oleh sistem.
b.    Delete, menghapus directory, Hanya directory yang kosong yang dapat dihapus.
c.     OpenDir, Mendaftar seluruh file yang ada di directory ybs.
d.    CloseDir, Setelah selesai membaca directory, maka harus ditutup untuk memperbesar ruang tabel internal.
e.     ReadDir, Menghasilkan daftar directory pada directory yang sedang dibuka.
f.     Rename, Mengubah nama directory.
g.    Link, Cara agar file dapat muncul dibeberapa lokasi directory.
h.     UnLink, Menghilangkan Link.

3.         IMPLEMENTASI SISTEM FILE
Menjelaskan cara file dan directory disimpan, ruang disk diatur dan membuat segalanya efisien dan reliable.
3.1        Mengimplementasikan File
Kunci masalah implementasi penyimpanan file adalah selalu mengetahui perubahan blok disk akibat ada tidaknya file.
a.     Contiguous Allocation
Ini merupakan alokasi paling sederhana dengan menyimpan setiap file kedalam blok data yang berurutan didalam disk.
Kelebihannya :
-       Mudah implementasinya, karena untuk mengetahui letak blok file hanya cukup mengingat satu nomor, blok yang pertama saja.
-       Kinerjanya sangat bagus, karena seluruh file dapat dibaca dari disk dalam satu operasi saja.
Kekurangannya :
-       Tidak bisa dialokasikan jika ukuran maksimum file tidak diketahui.
-       Mudah terjadi fragmentasi, sisa blok yang tidak digunakan.
b.     Linked List Allocation
Menyimpan file dalam skema Linked List, seperti tampak pada gambar 7.


Gambar 7. Menyimpan file sebagai linked list dari blok-blok disk.


Kelebihannya :
-       Seluruh blok dapat dipakai, tidak terjadi fragmentasi.
Kekurangannya :
-       Pengaksesan file secara acak akan lambat.
-       Kebutuhan ukuran blok data meningkat karena pointer juga memerlukan beberapa byte.
c.     Linked List Allocation menggunakan Indeks
Caranya sama seperti point b tetapi menambahkan tabel berindeks kedalam memory, seperti pada gambar 8 berikut.

Gambar 8. Alokasi linked list dengan menggunakan tabel di main memory.

File A menggunakan blok 4,7,2,10 dan 12. Sedangkan file B menggunakan 6,3,11 dan 14.
DOS menggunakan metode alokasi ini.
Kelebihannya :
-       Pengaksesan file secara acak akan lebih cepat.
Kekurangannya :
-       Seluruh tabel harus selalu ada didalam memory, sehingga mengurangi kapasitas memory.
d.     I-node
alokasi file dengan menerapkan tabel yang berukuran kecil yang disebut i-node (index-node) yang mendaftar atribut dan alamat disk dari blok file. Tampak pada gambar 9.

Gambar 9. I-node.

Untuk file-file yang berukuran besar, dipetakan ke blok yang disebut Single Indirect Block (SIB) yang mengandung alamat disk tambahan. Jika masih tidak cukup maka alamat lain dipetakan ke Double Indirect Block (DIB) yang mengandung alamat blok yang mendaftar SIB. Setiap SIB menunjuk ke beberapa ratus blok data. Jika ternyata masih kurang lagi, Triple Indirect Block (TIB) bisa digunakan.     
-       UNIX menggunakan metode alokasi ini.
-       WINDOWS ???
-       OS/2  ???

3.2        Mengimplementasikan Directory
a.     Directory pada sistem CP/M

Sistem ini hanya memiliki satu directory saja, sehingga semua file harus dicari dan dilihat dari directory ini. Tampak pada gambar 10.
Gambar 10. Directory yang berisi nomer blok disk untuk setiap file.

-       User code digunakan untuk mengetahui nama pemilik file ybs.
-       Extent akan diperlukan bila ukuran file lebih besar dari 16 blok, sehingga memerlukan beberapa directory. Extent berisi nomor urut.
-       Block Count menunjukkan jumlah blok yang digunakan dari 16 blok yang disediakan.
-       16 bit terakhir berisi nomor blok disk.
b.     Directory pada DOS
Sistem DOS menggunakan directory seperti tampak pada gambar 11.
P:_Md i 0� xj" 975">
Komunikasi
Proses
Proses
 




Ø  Beberapa proses biasanya berkomunikasi dengan proses lainnya.
Ø  Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.
Ø  Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files)


Masalah – masalah pada IPC :

Race Condition :
Suatu kondisi dimana dua atau lebih proses mengakses shared memory / data pada saat yang bersamaan dan hasil akhirnya tidak sesuai dengan yang dikehendaki
Contoh rase condition :
v  Print spooler
       Contoh : berupa kumpulan data-data yang akan di cetak.
v  Spooler directory



Mengerjakan proses lain



4
Abc
Out = 4
Proses A

5
Program c



6
Program n


7

In = 7


8


Proses B


Mengerjakan proses lain


>           Proses A à cek slot input yang kosong (7) untuk mencetak suatu data dan stop
>           Interupsi ………
>           Proses B à meletakkan data yang akan di print pada slot kosong tersebut (7) dan stop (slot kosong berikutnya adalah 7+1=8)
>           :  prosesor mengerjakan proses lain
>           Proses A dilanjutkan à meletakkan data yang akan di print di slot (7), sehingga meng-overwrite data proses B yang diletakkan di slot (7)
>           Maka proses B tidak akan dilaksanakan, dan tidak akan terdeteksi terjadi kesalahan.

Untuk menghindari race condition maka harus diatur agar 2 proses yang mempunyai critical section yang sama tidak memasuki critical section pada saat yang bersamaan.

Critical Section / seksi kritis :
Bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race condition.
4 kondisi untuk mencegah race condition :
a.      Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan  / simultan
b.      Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU
c.      Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir proses-proses lain
d.      Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.

Mutual Exclusion (MuTex) With Busy Waiting :
Jika suatu proses sedang mengakses shared memory di critical sectionnya, tidak ada satu prosespun yang dapat memasuki critical section (mutual exclusion) dan menyebabkan masalah.

Jenis-jenis mutual exclusion :
1.      Disabling interrupt / mematikan interupsi
Dengan cara mematikan interupsi yang masuk pada saat proses sedang berada pada critical section-nya. Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara inipun tidak terlalu baik untuk CPU yang jumlahnya lebih dari satu, dimana disable interrupt hanya mengenai CPU yang sedang menjalankan proses itu dan tidak berpengaruh terhadap CPU lain
2.      Lock  variables
Setiap proses yang akan mengakses ke critical section-nya harus meng-cek lock variable. Jika 0 berarti proses dapat memasuki critical section-nya dan jika 1 maka proses harus menunggu sampai lock variable = 0. Kelemahannya adalah 2 proses masih dapat memasuki critical section-nya pada saat yang bersamaan. Sewaktu satu proses meng-cek lock variable = 0, pada saat akan men-set 1 ada interupsi untuk melaksanakan proses lain yang juga ingin memasuki critical sectionnya, maka akan terjadi race condition.
3.      Strict alternation
Dengan mengamati variable turn untuk menentukan siapa yang akan memasuki critical section-nya bukanlah ide yang baik jika proses lebih lambat dari yang lain.
Contohnya :
While (true)
{
          while (turn != 0)                          /*wait*/;
          critical_section ( );
          turn = 1;
          noncritical_section ( );
}
while (true)
{
          while (turn != 1)                          /*wait*/;
          critical_section ( );
          turn = 0;
noncritical_section ( );
}
4.      Peterson’s Solution
Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka proses akan menunggu sampai FALSE.
Kelemahannya : jika proses memanggil enter_region-nya secara hampir bersamaan, yang disimpan di turn adalah data yang ditulis terakhir.
Contohnya :
# include “prototype.h”
# define FALSE           0
# define TRUE 1
# define N                   2                      /*banyaknya proses*/

int turn;
int interested [N];                                 /*nilai awal di-set = 0 (false)*/
void enter_region(int process)              /*proses = 1 atau 0*/

{
int other;                                             /*jumlah proses lainnya*/
other = 1 – process;                            /*proses lainnya*/
interested[process] = TRUE;                /*menunjukkan tertarik*/
turn = process;                                                /*set flag*/
while (turn==process && interested[other] == TRUE)
}

void leave_region(int process)              /*proses yang selesai*/
{
interested[process] = FALSE;         /*meninggalkan critical region*/
}
5.      Test and Set Lock Instruction / Instruksi TSL
Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section)
Contoh :
Enter_region :
Tsl reg,flag                                     | copy flag ke reg dan set flag = 1
Cmp reg,#0                                    | apakah flag = 0
Jnz enter_region                             |jika <> 0 loop lagi
          Ret                                           |return ke caller, masuk critical region
         
Leave_region :
          Mov flag, #0                             |simpan 0 ke flag
          Ret                                           |return ke caller
Proses harus memanggil ini pada saat yang tepat.
Kelemahan utama dengan busy waiting adalah menyita banyak waktu CPU dan problem inversi prioritas.
6.      Sleep and Wake Up
Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki critical_section-nya dan akan dibangunkan (wake up) / ready apabila resource yang diperlukan telah tersedia.
SLEEP : sistem call membuat proses yang memanggil di blok (blocked)
WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready
Contoh :
Procedure-Consumer Problem (bounded buffer)
Beberapa proses share buffer dengan ukuran tetap
            Jika buffer penuh producer sleep
            Jika buffer kosong consumer sleep
            Jika buffer mulai kosong producer wake up
            Jika buffer terisi consumer wake up
Masih ada kemungkinan terjadi race condition
7.      Semaphore (Dijkstra, 1965)
Meng-cek, mengubah dan sleep                  1 instruksi yang
Mengubah dan wake up                              tdk dpt dipisahkan
Instruksi tersebut sangat berguna untuk sinkronisasi.
Dapat diimplementasikan untuk memecahkan producer-consumer problem.
Mekanisme-nya menggunakan :
-             variabel integer untuk menghitung jumlah wake up yang disimpan / tertunda
-             bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang tertunda

Dua macam operasi terhadap semaphore :
1.     DOWN(S) :
If S >= 0 then
                                   S := S-1;
                                   Else sleep (S)
End;

2.     UP(S) :
S := S + 1;
If S <= 0 then wakeup(S)
End;

Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action).
8.      Event Counters (Reed and Kanodia, 1979)
Tiga operasi terhadap event counter (E) :
1.      Read (E) : return current value of E
2.      Advance (E) : Atomically increment E by 1
3.      Wait until E has a value of v or more
9.      Monitor
-        Higher level synchronization primitive.
-        Kumpulan prosedur, variabel dan struktur data yang dipaket menjadi satu modul atau paket.
-        Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung struktur data internal dari monitor.
10.    Message Passing
Menggunakan 2 primitive :
1.      send (destination, &message)
2.      receive (source, &message)
Beberapa isu pada message passing system : message lost; acknowledgement; domains; authentication; performance

Masalah Klasik IPC :
q  The Dining Philosopher Problem
-        5 philosophers yang kerjanya hanya makan dan berfikir
-        tersedia lima piring spaghetti dan lima sumpit
-        untuk makan dibutuhkan bua buah sumpit
-        problem-nya bagaimana cara menulis program agar setiap philosopher dapat berfikir dan makan tanpa harus saling menunggu ?
q  The Readers and Writers Problem
-        Model akses database
-        Banyak proses berkompetisi untuk membaca dan menulis. Contohnya : airline reservation.
-        Beberapa proses boleh membaca pada saat yang sama
-        Bila suatu proses sedang menulis, tidak boleh ada proses lain yang mengakses database
-        Proses membaca mempunyai prioritas yang lebih tinggi daripada proses menulis

Proses dalam Sistem Terdistribusi

Thread
 Computer                               Computer
 








Process            Thread        Program Counter
     (a)                                          (b)

Gambar (a) :
-        mempunyai : program counter, stack, register set, address space sendiri
-        independent satu sama lain dan berkomunikasi lewat IPC yang disediakan sistem, seperti : semaphore, monitor, atau message

Gambar (b) :
-        multiple threads of control (THREAD atau lightweight Process). Thread mirip seperti little-mini process. Setiap thread berjalan sekuensial, yang mempunyai program counter dan stack sendiri. Thread juga men-share CPU seperti proses.
-        Thread dalam satu proses menempati address space yang sama, tidak ada proteksi penggunaan memori antar thread karena proses dimiliki oleh satu user.
-        Thread dapat berada pada empat state yang berbeda, seperti process (running, blocked, ready, terminated)

Ada 3 model process pada server :
1.      Thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls
2.      single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik
3.      finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram

Status proses terhadap prosesor :
1.      Status proses tanpa henti
 



2.      Status proses sambil bekerja dan terhenti
 







3.      Status proses dengan status siap
 









  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Poskan Komentar