Sistem Berkas
Sebuah sistem berkas sangat membantu para programmer untuk memungkinkan mereka
mengakses berkas, tanpa memperhatikan detail dari karakteristik dan waktu penyimpanan.
Sistem berkas ini juga yang mengatur direktori, device access dan buffer.
Berkas
- Kumpulan dari record-record yang saling berhubungan.
- Kumpulan dari statement-statement yang saling berhubungan
- Kumpulan informasi terkait yang diberi nama dan direkam pada penyimpanan sekunder.
KLASIFIKASI DATA
Contoh:
Contoh:
Pada gambar 2 menunjukkan system flow diagram dari sistem penggajian sementara untuk
menghasilkan paycheck berdasarkan timecards dan payroll information.
File Fungsi
Timecards Transaction
Sort Program Program
Sort Workfile Work
Sorted-Timecards Transaction
Payroll Master Master
Pay Record Update Program Program
Reject Timecards Work
Paycheck Detail Work
Reconciliation Detail Work
List Utility Program Program
Reject Report Report
Paycheck Writer Program Program
Paychecks Report
Reconciliation Report Writer Program Program
Reconciliation Report Report
Ada 3 model akses yang mungkin oleh sebuah program terhadap file, yaitu:
1. Input File
File yang hanya dapat dibaca dengan program.
Contoh:
- Transaction file merupakan input file untuk meng-update program.
- Program file dari source code merupakan input file untuk program compiler.
2. Output File
File yang hanya dapat ditulis oleh sebuah program / file yang dibuat dengan program.
Contoh:
- Report file merupakan output dari program yang meng-update master file.
- Program file yang berupa object code merupakan output file dari program compiler.
3. Input/Output File
File yang dapat dibaca dari dan ditulis ke selama eksekusi program.
Contoh:
- Master File
- Work File dengan sort program
Note: Sebuah file mempunyai lebih dari satu fungsi, jika digunakan oleh
lebih dari satu program.
ORGANISASI BERKAS
Suatu teknik/cara yang digunakan untuk menyatakan/menggambarkan dan menyimpan record-
record dalam sebuah berkas.
Secara umum keempat teknik dasar tersebut berbeda dalam cara pengaksesannya, yaitu:
Direct Access
Suatu cara pengaksesan record yang langsung tanpa mengakses seluruh record yang ada.
Contoh: Magnetic Disk, CD
Sequential Access
Suatu cara pengaksesan record, yang didahului pengaksesan record-record didepannya.
Contoh: Magnetic Tape, Punch Card
OPERASI BERKAS
Cara memilih organisasi berkas tidak terlepas dari 2 aspek utama, yaitu:
Creation
Membuat struktur file lebih terdahulu, lalu menentukan banyak record baru kemudian
record-record tersebut dimuat kedalam file tersebut atau membuat file dengan cara
merekam record demi record.
Update
Untuk menjaga agar file tetap up to date
- Insert / Add
- Modification
- Deletion
Retrieval
Pengaksesan sebuah file dengan tujuan untuk mendapatkan
informasi.
- Inquiry
Volume data rendah, model proses interactive
- Report Generation
Volume data tinggi, model proses batch
1. Comprehensive Retrieval
Mendapatkan informasi dari semua record dalam sebuah file.
Contoh:
Display all
List nama, alamat
2. Selective Retrieval
Mendapatkan informasi dari record-record tertentu berdasarkan persyaratan
tertentu
Contoh:
List for Gaji = 1000000
List NPM,Nama,Alamat for angkatan = 99
Maintenance
Perubahan yang dibuat terhadap file dengan tujuan memperbaiki
penampilan program dalam mengakses file tersebut.
Contoh:
organisasi sequential file menjadi indexed sequential
organisasi direct file menjadi sequential file
- Master file dan program file, kita dapat melakukan created, updated, retrieved from dan
maintained.
- Workfile, kita dapat melakukan created, updated dan retrieved from, tetapi tidak dapat kita
maintained.
- Report file umumnya tidak di updated, retrieved from atau maintained.
- Transaction file, umumnya hanya dapat di create dan digunakan untuk sekali proses.
Volatile Storage
Berkas data atau program akan hilang bila listrik dipadamkan.
Memori pada CPU sangat terbatas sekali dan hanya dapat menyimpan
informasi untuk sementara waktu. Oleh sebab itu alat penyimpan data
yang permanen sangat diperlukan. Informasi yang disimpan pada alat-
alat tersebut dapat diambil dan ditransfer pada CPU pada saat
diperlukan. Alat tersebut dinamakan Secondary Memory / Auxiliary
Memory atau Backing Storage.
HIERARKI STORAGE
MAGNETIC TAPE
Magnetic tape adalah model pertama dari secondary memory. Tape ini
juga dipakai untuk alat Input/Output dimana informasi dimasukkan ke
CPU dari tape dan informasi diambil dari CPU lalu disimpan pada tape
lainnya.
Panjang tape pada umumnya 2400 feet, lebarnya 0.5 inch dan tebalnya
2 mm. Data disimpan dalam bintik kecil yang bermagnit dan tidak
tampak pada bahan plastik yang dilapisi ferroksida. Flexible plastiknya
disebut mylar. Mekanisme aksesnya adalah tape drive.
Data direkam secara digit pada media tape sebagai titik-titik magnetisasi
pada lapisan ferroksida. Magnetisasi positif menyatakan 1 bit,
sedangkan magnetisasi negatif menyatakan 0 bit atau sebaliknya.
Tape terdiri atas 9 track, 8 track dipakai untuk merekam data dan track
yang ke 9 untuk koreksi kesalahan.
Track 1 : 0 0 0 0 0 0
2 : 1 1 1 1 1 1
3 : 1 1 1 1 1 1
4 : 0 1 0 1 0 1
5 : 1 1 0 1 1 0
6 : 1 1 1 1 0 0
7 : 0 1 1 1 1 0
8 : 0 0 1 1 1 1
Berapa isi dari track ke 9, jika untuk merekam data digunakan odd
parity dan even parity?
Jawab:
Odd Parity
Track 9 : 1 1 0 0 0 1
Even Parity
Track 9 : 0 0 1 1 1 0
Track 1 : 1 0 0 0 1 1
2 : 1 1 1 1 1 0
3 : 0 0 0 1 1 1
4 : 0 0 0 1 0 1
5 : 0 1 0 1 1 1
6 : 1 0 0 1 1 1
7 : 1 1 1 0 0 0
8 : 1 0 0 0 0 0
1. Even Parity
2. Odd Parity
Data yang dibaca dari atau ditulis ke tape dalam suatu grup karakter
disebut block. Suatu block adalah jumlah terkecil dari data yang dapat
ditransfer antara secondary memory dan primary memory pada saat
akses. Sebuah block dapat terdiri dari satu atau lebih record. Sebuah
block dapat merupakan physical record.
Diantara 2 block terdapat ruang yang kita sebut sebagai gap (inter block
gap). Panjang masing-masing gap adalah 0.6 inch. Ukuran block dapat
mempengaruhi jumlah data/record yang dapat disimpan dalam tape.
Misal:
Panjang tape yang digunakan adalah 2400 feet, density 6250 bpi dan
panjang gap 0.6 inch.
Jawab:
= 46753 block/tape
= 31304 block/tape
Misal:
Jawab:
1 block 1 record
= 190.75 sec/tape
Jadi waktu akses yang dibutuhkan tape tersebut adalah 190.75 second.
1 block 20 record
= 10.55 sec/tape
Jadi waktu akses yang dibutuhkan tape tersebut adalah 10.55 second.
Untuk membaca atau menulis pada suatu magnetic tape adalah secara
sekuensial. Artinya untuk mendapatkan tempat suatu data, maka data
yang didepannya harus dilalui terlebih dahulu.
1. Density suatu tape adalah 1600 bpi dan panjang interblock gap
adalah 0.75 inch. Record yang panjangnya 40 character akan
disimpan pada tape yang panjangnya 2400 feet
Disk pack adalah jenis alat penyimpanan pada magnetic disk, yang
terdiri dari beberapa tumpukan piringan alumunium.
Untuk mengakses, disk pack disusun pada disk drive yang didalamnya
mempunyai sebuah controller, access arm, read/write head dan
mekanisme untuk rotasi pack.
Ada disk drive yang dibuat built-in dengan disk pack, sehingga disk pack
ini tidak dapat dipindahkan yang disebut non removable, sedangkan disk
pack yang dapat dipindahkan disebut removable.
Read/Write head pada disk drive disusun pada access arm yang
posisinya terletak diantara piringan-piringan pada device.
Kerugiannya bila terjadi situasi dimana read/write head berbenturan
dengan permukaan penyimpanan record pada disk, hal ini disebut head
crash.
Data pada disk juga di block, seperti data pada magnetic tape.
Pemanggilan sebuah block adalah banyaknya data yang diakses pada
sebuah storage device. Data dari disk dipindahkan ke sebuah buffer
pada main storage komputer untuk diakses oleh sebuah program.
Ada 2 teknik dasar untuk pengalamatan data yang disimpan pada disk,
yaitu:
- Metode Silinder
- Metode Sektor
Metode Silinder
Metode Sektor
- Transfer Time
Waktu yang menunjukan kecepatan perputaran dan banyaknya
data yang ditransfer.
Disk yang mempunyai sebuah read/write head untuk setiap track pada
setiap permukaan penyimpanan yang mekanisme pengaksesannya tidak
dapat dipindahkan dari cylinder ke cylinder.
Contoh:
Dalam sistem penggajian terpadu (intergrated personnel-payroll system)
mempunyai sebuah berkas pegawai (employee file) yang terdiri dari dua
jenis record, yaitu:
personnel record dan payroll record
POLA AKSES
Jadi kita harus menentukan pola akses terlebih dahulu, kemudian baru
menentukan organisasi berkas sekuensial berdasarkan urutan yang
sesuai dengan pola aksesnya, jangan sebaliknya .
Contoh:
Jika 3 berkas sekuensial, seperti master file, transaction file, dan update
master file yang digunakan oleh sebuah program, karena hanya ada 2
tape drive, maka salah satu dari ketiga berkas tersebut disimpan dalam
disk.
Contoh:
Printer hanya dapat menerima semua berkas yang akan dicetak, bila
terlebih dahulu berkas tersebut disimpan dalam disk. Jadi bila kita ingin
membuat sebuah berkas laporan, maka harus ditentukan dari disk ke
printer. Karakteristik lalu lintas saluran dan kapasitas saluran pada
sistem dapat dibuat menguntungkan dengan cara memisahkan berkas-
berkas dalam media penyimpanan .
Contoh:
Pengumpulan data.
Perubahan data dalam bentuk bahasa yang dapat dibaca oleh mesin.
Pengeditan data.
Pemeriksaan transaksi yang ditolak.
Penyortiran edit data.
Header Record
Mencakup report header, page header, dan group header. Dikenal
sebagai informasi pengenal (identifying information).
Detail Record
Mencakup isi laporan yang umumnya disusun dalam kolom.
Footer Record
Mencakup report footer, page footer, dan group footer. Dikenal
sebagai informasi ringkasan (summary information).
Contoh:
Contoh:
Hit = 10 = 0.1
100
Master file berisi data yang relatif tetap, tetapi kadang kadang kita perlu
mengadakan perubahan pada berkas tersebut.
Hal ini kita sebut sebagai proses update.
Old
Sorted Master
Transactions
Rejected New
Transaction Master
GENERATION FILE
Selama next cycle pada proses update, new master file yang sekarang
akan menjadi old master file. Menjadi banyaknya master file inilah yang
disebut sebagai Generation File. File yang mempunyai nama yang
sama, tetapi berbeda nomor generasinya. Jika old master sekarang
merupakan generasi 1, maka new master berikutnya merupakan
generasi 2, new master pada next cycle menjadi generasi 3, dst.
JENIS UPDATE
Ada 3 jenis update yang dapat dilakukan pada master file:
Contoh:
Contoh:
8
7
Input Record 5
FILE LOAD
PROGRAM
DIRECT FILE
2 4 5 7 8
1 2 3 4 5 6 7 8 9
APE I–1
EEL I
DOG I+1
.
.
.
CAT N–1
End of File BAT N
Bagaimana record yang ke-N dapat ditemukan?. Dalam hal ini, perlu
kita buat hubungan yang akan menterjemahkan antara NILAI KEY dan
ADDRESS.
PROSES
Begitu pula pada waktu akan me-retrieve record dengan nilai key
tertentu, fungsi pemetaan R digunakan terhadap nilai key tersebut, untuk
menterjemahkan nilai key itu menjadi sebuah address dalam
penyimpanan sekunder, dimana record tersebut ditemukan.
Contoh:
Contoh:
Jika Trans-Type = ‘C’ atau ‘D’, maka record-record dari master file
Customer Account akan dimodifikasi dengan AMOUNT dan DATE yang
ada di transaction file, dimana ACCOUNT NUMBER yang menentukan
lokasi record dalam berkas tersebut.
Pengalamatan Mutlak
Jika nilai key yang diberikan oleh pemakai program sama dengan
ADDRESS sebenarnya dari record tersebut pada penyimpanan
sekunder. Pada waktu record tersebut disimpan, lokasi penyimpanan
record (nomor silinder, nomor permukaan, nomor record) bila dipakai
Cylinder Addressing atau (nomor sektor, nomor record) bila dipakai
Sector Addressing harus ditentukan oleh pamakai.
Pengalamatan Relatif
Alamat relatif dari sebuah record dalam sebuah berkas adalah urutan
record tersebut dalam berkas. Sebuah berkas dengan N record
mempunyai record dengan alamat relatif dari himpunan (1,2,3, …, N -2,
N -1). Record yang ke I mempunyai alamat relatif I atau I – 1 (bila mulai
dihitung dari 0).
Kelemahannya
Directory
Key Address File Relatif Alamat Relatif
BAT N ZEBRA 2
CAT N–1 .
. APE I–1
COW 1 EEL I
EEL I .
. CAT N–1
ZEBRA 2 BAT N
DIRECTORY
APE, I - 1
BAT, N
CAT, N - 1
COW, 1
DOG, I + 1
EEL, I
ZEBRA, 2
Sebuah record dapat diakses dengan cepat, setelah nilai key dalam
direktori ditentukan.
Nilai key dapat berupa field yang mudah dimengerti, seperti PART
NUMBER, NPM, karena nilai key tersebut akan diterjemahkan
menjadi alamat.
Nilai key adalah address space independent, dimana
reorganisasi berkas tak akan memepengaruhi nilai key, yang
berubah adalah alamat dalam direktori.
Salah satu masalah dari teknik ini adalah ditemukannya alamat relatif
yang sama untuk nilai key yang berbeda.
Keadaan dimana:
Kelemahannya
Division Remainder
Mid Square
Folding
DIVISION REMAINDER
Pada division remainder, alamat relatif dari suatu nilai key merupakan
sisa dari hasil pembagian nilai key tersebut dengan suatu bilangan yang
disebut sebagai bilangan pembagi.
Contoh:
Bila DIV adalah pembagi, KEY adalah nilai key dan ADDR adalah
alamat relatif, maka dalam bahasa Pascal, fungsi R(NILAI KEY)
ADDRESS dapat di implementasikan:
Sisa pembagian (sebagai hasil dari fungsi MOD pada Pascal), dapat
dijabarkan sebagai berikut:
Jangkauan dari nilai key yang dihasilkan dari opersi KEY MOD DIV
adalah 0 sampai DIV-1. Nilai dari DIV menentukan ukuran "relatif
address space". Jika diketahui berkas relatif terdiri dari N record dan
dianggap hanya satu record dapat disimpan dalam sebuah alamat
relatif, maka akan didapat DIV > N.
Biasanya load factor yang sering digunakan adalah 0.7 atau 0.8.
Jika load factor lebih besar dari 0.7 atau 0.8 maka berkas tersebut
harus diperbesar dan di reorganisasi.
Jadi jika kita ingin menyimpan sebanyak n record pada suatu berkas dan
load factor adalah 0.8, maka max. banyak record pada berkas adalah
1.25 n.
n
0.8 = max
max = 1.25 n
Contoh:
Kita mulai dari digit ke 8 dihitung dari kiri, maka alamat relatif = 8750
(karena ditentukan 4 digit sebagai alamat relatif).
HASHING BY FOLDING
Contoh:
Nilai key 123456789 dan alamat relatif sebanyak 4 digit. Nilai key dibagi
menjadi bagian-bagian yang terdiri dari 4 digit, mulai dari sebelah kanan.
123456789
12345 6789
Menghasilkan:
1
2345
9876 +
1 3221
(alamat relatif)
Teknik Mid Square dapat dipakai untuk file dengan load factor
cukup rendah akan memberikan penampilan baik, tetapi kadang-
kadang dapat menghasilkan penampilan yang buruk dengan
beberapa collision.
Open Addressing
Contoh:
K1 = 1 K2 = 1
R1 R2
K1 K2
Contoh:
K1 = 1 K2 = 1
R1
K1
Overflow area
K2
Linear Probing
Salah satu cara menemukan lokasi record yang tak dapat disimpan di
home address nya adalah dengan menggunakan Linear Probing, yang
merupakan sebuah proses pencarian secara sequential/linear dari
home address sampai lokasi yang kosong.
Berkas dengan load factor kurang dari 0.5 pada linear probing akan
menghasilkan synonim yang mengelompok, sedangkan double
hashing synonimnya berpencar.
Synonim Chaining
Contoh:
Adams 20 20
Bates 21 21
Coll 20 22
Dean 21 23
Evans 24 24
Flint 20 25
20 Adams .. 0 Coll ..
21 Bates .. 1 Dean ..
22 2 Flint ..
23 3
24 Evans ..
Contoh:
Factor Muat = N
B(M + 1)
Contoh:
Green 30
Hall 30
Jenk 32
King 33
Land 33
Mark 33
Nutt 33
30 Green .. Hall ..
31
32 Jenks ..
Overflow
Nutt
STRUKTUR POHON
Contoh:
Handoko
Andi Reni
n1 n2 ... nk
n1 n2 ... nk
Salah satu tipe pohon yang paling banyak dipelajari adalah pohon biner.
Pohon Biner adalah pohon yang setiap simpulnya memiliki paling
banyak dua buah cabang/anak.
A A A A A
B B B C B C
E F
MAMMOTH N/2
........ ........
COW 4
Alasannya:
Misal:
Permintaan:
INSERT APE
INSERT AIREDALE
Permintaan:
INSERT ARMADILLO
Separuh dari isi blok data, tetap menempati blok tersebut dan
separuhnya lagi dipindahkan ke blok yang baru dibuat, yaitu blok data
1A. Hasilnya ditunjukkan pada gambar 7.
Permintaan:
INSERT CAT
INSERT BEAR
INSERT BOBCAT
Akan mengisi blok data 2, tetapi blok data tersebut harus dipecah
menjadi blok data 2 dan 2A.
Blok indeks 1-1 sudah penuh dan tidak dapat memuat pointer pada
blok data 2A, sehingga inipun harus dipecah, dengan cara mengubah
penafsiran indeks tingkat 2.
Jika blok indeks pada tingkat paling tinggi (dalam hal ini indeks tingkat
3) sudah penuh, maka harus dipecah, sehingga sebuah indeks tingkat
yang baru akan ditambahkan pada indeks tree.
Maka seluruh pencarian langsung, memerlukan pengaksesan empat
blok indeks dan sebuah blok data. Hasilnya ditunjukkan pada gambar 8.
Misal setiap track dari berkas prime data mempunyai ruang yang
cukup untuk menampung 5 record (jika penyisipan dan penghapusan
terhadap berkas dilakukan, maka akan dibentuk padding).
Permintaan:
INSERT APE
INSERT AIREDALE
Akan mudah dilayani. Hanya track data 1 dari cylinder 1 yang akan
digunakan dan hasilnya ditunjukkan pada gambar 10.
Permintaan:
INSERT ARMADILLO
<ARMADILLO,ovfl-ptr>
Permintaan:
INSERT CAT
INSERT BEAR
INSERT BOBCAT
Akan mengisi track 2 dari cylinder 1 pada prime data area, tetapi
pengisian tersebut mengakibatkan penggunaan overflow area.
Organisasi Berkas Indeks Sekuensial Halaman
12
Perhatikan CAT dipindahkan ke overflow area, karena entry pada
prime track tidak hanya harus dalam urutan, tetapi juga entry tersebut
harus mendahului suatu entry overflow dari track tersebut.
Hasilnya ditunjukkan pada gambar 12.
Permintaan:
INSERT ANT
INSERT DRAGON
INSERT CROCODILE
INSERT DEER
2. Dari contoh soal pada gambar 13, tunjukkan dengan gambar Prime
dan Overflow Data Area, bila ada permintaan:
INSERT BEE
yes
SEQUENTIAL no
ACCESS ONLY ?
yes no
yes no
RELATIVE
I NDE XE D
ORGANIZATION
SEQUENTIAL
ORGANIZATION
Inversion
Multi-list
Contoh:
A CCO UNT
ID NAME GROUP-CODE SOCNO BALANCE OVERDRAW
LAST FIRST BRANCH TYPE LIMIT
Pengulangan data dari beberapa file bukan merupakan cara yang baik
untuk mengakses record dengan berbagai cara. Dan cara ini
memerlukan ruang (space) yang besar di storage dan kesulitan pada
waktu peng-update-an record secara serentak.
Contoh:
SOCNO ADDRESS
001234123 6
123456789 5
213823456 14
299167305 16
399042131 4
411625331 13
412631467 7
426135447 20
445062681 17
459463001 1
513014265 8
612305116 9
626311660 18
692122222 12
713214622 3
798392289 15
821346211 2
912346789 19
923146154 11
987654321 10
Sebuah indeks inversi dapat dibuat bersama sebuah relatif file atau
sebuah indeks sekuensial. Sebuah indeks inversi dengan key SOCNO
untuk sebuah relatif file dengan nilai key ID akan memberikan
sebuah file yang dapat diakses langsung oleh sebuah ID atau
SOCNO.
SOCNO ID
001234123 291821
123456789 208432
213823456 486212
299167305 534216
399042131 201431
411625331 415631
412631467 300123
426135447 696132
445062681 535218
459463001 111111
513014265 310103
612305116 324196
626311660 641230
692122222 387122
713214622 198121
798392289 511211
821346211 112131
912346789 686116
923146154 386132
987654321 335812
Jika sebuah key dipakai untuk menentukan struktur storage dari file
disebut primary key, sedangkan key yang lainya disebut
secondary key.
GROUP-CODE
BRANCH TYPE ID
DT 001 111111, 201431, 310103, 686116
DT 002 198121, 335812, 486212, 641230
EA 001 324196, 534216, 535218
NE 001 415631
NE 002 300123, 696123
NW 001 112131, 208432, 511211
NW 002 291821
WE 002 386132, 387122
Satu hal yang baik dari inversi file adalah beberapa pertanyaan di
bawah ini dapat dijawab tanpa akses data file, cukup dengan indeks
inversinya.
GROUP-CODE
BRANCH TYPE ID
DT 001 111111
DT 002 198121
EA 001 324196
NE 001 415631
NE 002 300123
NW 001 112131
NW 002 291821
WE 002 386132
OVERDRAW
LIMIT ID
0. 111111
100. 112131
200. 198121
250. 511211
OVERDRAW
LIMIT ID LENGTH
0. 111111 7
100. 112131 8
200. 198121 1
250. 511211 4
Contoh:
S O CNO ID
459463001 111111
821346211 112131
713214622 198121
399042131 201431
123456789 208432
001234123 291821
412631467 300123
513014265 310103
612305116 324196
987654321 335812
923146154 386132
692122222 387122
411625331 415631
213823456 486212
798392289 511211
299167305 534216
445062681 535218
626311660 641230
912346789 686116
426135447 696132
Perbedaannya:
Contoh:
Sebuah file berisi 2000 record harus di sortir kedalam memori yang
hanya dapat manampung 1000 record sekaligus. Untuk itu digunakan
metode sort eksternal.
Maka didapat:
- Sorted sublist 1 (record 1 – 1000) dan
- Sorted sublist 2 (record 1001 – 2000)
Output, yang menyalin file gabungan yang telah ter sortir ke media
storage terakhir.
Teknik sort/merge file ini berbeda satu dengan yang lainnya dalam
hal:
Natural Merge
Balanced Merge
Polyphase Merge
Cascade Merge
NATURAL MERGE
Contoh:
Sebuah file yang terdiri dari 6000 record hendak di sortir kedalam
memori komputer yang kapasitasnya 1000 record.
Buatlah dengan menggunakan 2 way natural merge!
Dari metode natural merge kita lihat bahwa, jika kita gunakan M input
file, maka file seluruhnya yang kita gunakan adalah M + 1 file.
Sedangkan pada balanced merge, jika kita gunakan M input file, maka
file seluruhnya yang dipakai adalah 2 M file.
Pada balanced merge, jumlah input file sama dengan jumlah output file,
walaupun pada akhirnya tak ada lagi keseimbangan antara input dan
output file.
Contoh:
Setelah phase sort internal, misalkan kita mempunyai 17 subfile atau 17
run yang akan didistribusikan kedalam 3 input file. Jika kita
menggunakan 2 way polyphase merge, berarti 17 run tersebut harus
didistribusikan kedalam 3 input file.
KONTROL PERALATAN
Contoh:
Misalkan direktori berkas sudah diberitahu lokasi berkas yang
diminta pada alat penyimpanan sekunder atau peralatan I/O sudah
ditentukan. Supaya dapat menulis (Write) pada alat tersebut atau
membaca (Read) dari alat tersebut.
Maka:
Jalur (pathway) antara memori utama dan peralatan harus sudah
ditentukan dan juga harus ditentukan komponen-komponen yang
dibutuhkan dari jalur tersebut (termasuk peralatan yang dituju) dan
s ia p u n t u k d ig u n a k a n .
CHANNEL
Saluran I/O ini diperintah oleh sistem operasi dan kemudian oleh
CPU. Saluran I/O ini tidak mengendalikan alat penyimpanan secara
langsung. Tetapi saluran I/O ini menetapkan satu atau lebih unit
alat pengontrol. Susunan ini penting untuk menyederhanakan
channel program.
Sebelum opersi I/O dapat dimulai, jalur antara memori utama dengan
p e r a la t a n h a r u s s u d a h d it e n t u k a n . J ik a s a lu r a n , u n it p e n g o n t r o l, a t a u
peralatan yang dituju sedang sibuk, maka kontruksi dari pathway
harus menunggu. Untuk menghindari menunggu, s is t e m
komputer dilengkapi dengan beberapa saluran dan unit pengontrol.
MACAM-MACAM CHANNEL
Selector Channel
MACAM-MACAM DEVICE
Dedicated Device
Digunakan untuk pengaksesan oleh satu orang pada setiap saat.
Contoh: Terminal
Shared Device
Digunakan untuk pengaksesan oleh banyak pemakai secara
bersamaan.
Contoh: Disk
AKTIFITAS SALURAN
PROSES PEMBACAAN
CATATAN:
MANAJEMEN BUFFER
Single Buffering
Anticipatory Buffering
lo o p : I f f u ll- f la g = 1 g o t o lo o p
ISSUE START - I/O Command to control unit
wait while buffer is being filled
f u ll- f la g : = 1
g o t o lo o p
Double Buffering
Struktur buffer untuk double buffering terdiri dari sebuah pointer yang
menunjuk ke buffer berikutnya.
Three Buffers
p f ill
: yang menunjukkan buffer berikutnya akan diisi atau sedang
d iis i
pempty : yang menunjukkan buffer berikutnya akan dikosongkan
at au
s e d a n g d ik o s o n g k a n .
B uf f er 1
penuh
B uf f er 2
s e d a n g d iis i
B uf f er 3
s e d a n g d ik o s o n g k a n , r e c o r d k e m d i d a la m b u f f e r a k a n
dibaca kedalam tempat kerja record berikutnya.
Buffer berikutnya yang akan kosong adalah buffer 1
Buffer berikutnya yang akan di isi adalah buffer 3
P a d a p e n d e k a t a n in i d ia n g g a p jik a s u a t u b u f f e r k o s o n g , p r o d u c e r
akan bergerak mengisinya.