TCWan
Page 1/9
08/31/09
1. Cakera Liut, Cakera Keras dan Fail (Mazidi 19) 1.1.Organisasi Cakera Cakera merupakan peranti storan sekunder (secondary storage device) yang menyimpankan data secara kekal. Ruang cakera dibahagikan menjadi runut (track) dan sektor (sector). Setiap sektor merupakan unit storan data yang asas untuk cakera tersebut. (Fig. 19-1, pg. 571)
Bilangan runut dan bilangan sektor untuk setiap runut adalah berbeza, dan ditetapkan oleh jenis cakera yang digunakan. Setiap sektor bersaiz 256 bait untuk ketumpatan tunggal (single density) ataupun 512 bait untuk ketumpatan berganda (double density). Semua cakera terkini menggunakan sektor bersaiz 512 bait. Saiz muatan (capacity) sesuatu cakera diberi oleh: Muatan = no. runut x no. sektor x saiz sektor Sektor-sektor cakera dikumpulkan menjadi suatu gugusan (cluster) untuk memudahkan pencapaian data pada cakera. Bilangan sektor dalam setiap gugusan berbeza berdasarkan format dan saiz cakera. Gugusan merupakan saiz peruntukan (allocation size) yang paling kecil untuk cakera tersebut. 1.1.1.Cakera Liut (Floppy Disk) (Table 19-1, pg. 572)
Biasanya gugusan 2 sektor digunakan untuk cakera liut. Saiz cakera liut terkini ialah 1.44 MB yang terdiri daripada 80 runut dengan 18 Version 1.0
TCWan
Page 2/9
08/31/09
sektor setiap runut. Peruntukan saiz fail terkecil ialah 1K, disebabkan oleh gugusan bersaiz 2 sektor tersebut. 1.1.2.Cakera Keras (Hard Disk) Cakera keras mempunyai beberapa piring dan kepala baca-tulis (read-write heads) yang dimuat bersama-sama. Semua runut pada radius yang sama dirujuk sebagai satu silinder (cylinder). Bilangan runut yang terdapat pada satu silinder bergantung kepada jumlah kepala baca-tulis yang dibekalkan. Muatan cakera keras terkini adalah lebih daripada 10 GB. Sesuatu cakera keras boleh dipemetakan (partitioned) menjadi beberapa cakera logikal. Setiap cakera logikal itu dicapai sebagai cakera berasingan melalui DOS. Terdapat berbagai cara menyimpan data pada cakera keras, iaitu Modulasi Frekuensi (FM), Modulasi Frekuensi Berubahsuaian (MFM), serta Panjangan Jalanan Terhad (RLL). (Fig. 19-4, pg. 587)
Perantaramukaan antara cakera keras dengan PC dilakukan melalui piawaian seperti ST506, ESDI, IDE dan SCSI. Prestasi sesuatu cakera keras adalah berdasarkan cara perantaramukaan, lebar jalur (bandwidth), cache dalaman, masa jagkau (seek time) dan juga masa capaian (access time). (Table 19-8, pg. 589)
Saiz gugusan untuk cakera keras berbeza berdasarkan muatannya. Gugusan yang besar saiznya diguna supaya mengurangkan saiz jadual peruntukan fail (FAT) yang diperlukan. Version 1.0
TCWan
Page 3/9
08/31/09
1.2.Format Cakera DOS Setiap cakera mestilah diformat sebelum ia boleh digunakan. Proses memformatkan cakera menetapkan saiz gugusan cakera, struktur data mengenai cakera, serta rekod but (boot record) cakera tersebut. (Fig. 19-2, pg. 573)
1.2.1.Format Rekod But (Boot Record) Rekod but menetapkan jenis cakera, kepadatan sektor, jumlah sektor dalam cakera, dan saiz struktur data seperti jadual perunutukan fail (FAT) dan direktori fail. Terdapat ruang dalam rekod but yang boleh digunakan untuk rutin pengikat but (bootstrap routine) supaya cakera tersebut boleh digunakan sebagai cakera but (boot disk). (Table 19-2, pg. 574)
Di samping rutin pengikat but, cakera but juga mempunyai beberapa fail pemacu (driver files) yang diperlukan untuk memuatkan DOS ke dalam ruang ingatan, dan pentafsir suruhan (command interpreter) DOS. 1.2.2.Struktur Direktori (Directory Sturcture) Direktori fail digunakan untuk menyimpan maklumat fail seperti nama fail, saiz fail, dan nombor gugusan permulaan (starting cluster number) yang digunakan oleh fail tersebut. Setiap unsur struktur direktori memerlukan 32 bait. (Fig. 19-3, pg. 579)
Version 1.0
TCWan
Page 4/9
08/31/09
1.2.3.Format Jadual Peruntukan Fail (FAT) Jadual peruntukan fail (FAT) digunakan untuk menyimpan maklumat mengenai kegunaan gugusan cakera oleh setiap fail yang tersimpan dalam cakera tersebut. Struktur FAT amat penting, dan pencapaian fail terjejas sekiranya maklumat FAT rosak. Dua salinan FAT disimpan dalam cakera supaya salinan kedua boleh digunakan untuk memulihkan (recover) cakera yang terkandas (crashed). Maklumat tidak dapat dipulihkan sekiranya kedua-dua salinan FAT rosak. Unsur struktur FAT 12 bit biasa digunakan untuk cakera muatan rendah, manakala unsur strktur FAT 16 bit digunakan untuk cakera muatan tinggi. Unsur FAT 12 bit disimpan dalam ruang 1.5 bait, manakala unsur FAT 16 bit disimpan dalam ruang 2 bait. Ruang unsur struktur FAT pertama dan kedua digunakan untuk menyimpankan bait pemerihal media (media descriptor byte), diikuti digit perenambelasan 'F' yang memenuhi baki ruang tersebut. Unsur struktur FAT kedua hingga yang terakhir mewakili gugusan data yang terdapat pada cakera tersebut. Gugusan cakera yang digunakan oleh sesuatu fail disimpan secara peruntukan senarai berpaut dalam DOS. Setiap unsur struktur FAT menyimpankan penunding gugusan cakera seterusnya untuk fail tersebut. Pencapaian fail oleh DOS akan mengikuti penunding gugusan cakera yang disimpan dalam unsur struktur FAT sehingga kod akhiran fail (FFFH) dijumpai. (Table 19-3, pg. 576, Table 19-4, pg. 580)
Contoh: Version 1.0
TCWan
Page 5/9
08/31/09
Unsur Struktur FAT (12 bit): 0
1
2
3
4
5
6
7
8
9
F9F
FFF
003
006
000
001
FFF
FF7
000
000
Jujukan bait sebenar: 0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F9
FF
FF
03
60
00
00
10
00
FF
7F
FF
00
00
00
Unsur FAT 12 bit dicapai secara membaca nilai 16 bit dan nibel tertentu akan dibuangkan. Ofset bait untuk unsur FAT yang diingini didapati melalui pendaraban nombor gugusan dengan 1.5. Bahagian integernya akan digunakan untuk merujuk kepada nilai 16 bit yang disimpan secara endian kecil. Sekiranya nombor gugusan genap, maka nibel paling bererti (most significant nibble) digugurkan. Sebaliknya, nombor gugusan ganjil akan menyebabkan nibel kurang bererti (least significant nibble) digugurkan. 1.2.4.Kesimpulan Ciri-ciri berbagai jenis cakera yang boleh digunakan oleh DOS terdapat dalam jadual berikut: (Table 19-5, pg. 581, Table 19-6, pg. 582) (E.g. 19-5, pg. 582)
Version 1.0
TCWan
Page 6/9
08/31/09
1.3.Sampukan DOS untuk Pengendalian Cakera (Table 19-9, pg. 593)
1.3.1.Cipta Fail (Create File) Fungsi (AH) = 3CH Contoh: FNAM_ASCIIZ
DB
'test.txt',0
HANDLE_A
DW ?
MOV
AH,3CH
; cipta fail
MOV
CX, 0H
; atribut fail biasa
MOV
DX,OFFSET FNAM_ASCIIZ ; nama fail
INT
21H
; sampukan DOS
JC
ERROR
; masalah
MOV
HANDLE_A,AX
; rujukan fail (handle)
Parameter kembali: CF = 0 jika berjaya. Rujukan fail akan dipulangkan melalui AX dan unsur direktori dicipta untuk fail tersebut. CF = 1 jika gagal. AX = kod ralat (error code).
Version 1.0
TCWan
Page 7/9
08/31/09
1.3.2.Tulis Fail (Write File) Fungsi (AH) = 40H Contoh: OUTBUF
DB
HANDLE_A
'Hello' DW ?
MOV
AH,40H
; tulis fail
MOV
CX, 5H
; bilangan bait output
MOV
BX,HANDLE_A
; rujukan fail (handle)
MOV
DX,OFFSET OUTBUF
; penunding data
INT
21H
; sampukan DOS
Parameter kembali: CF = 0 jika berjaya. AX = bilangan bait ditulis CF = 1 jika gagal. AX = kod ralat (error code). 1.3.3.Tutup Fail (Close File) Fungsi (AH) = 3EH Contoh: HANDLE_A
DW ?
MOV
AH,3EH
; tutup fail
MOV
BX,HANDLE_A
; rujukan fail (handle)
INT
21H
; sampukan DOS
Version 1.0
TCWan
Page 8/9
08/31/09
Nota: Semua fail terbuka harus ditutup sebelum aturcara ditamatkan. Unsur direktori dan FAT akan dikemas kini semasa fail ditutup. 1.3.4.Baca Fail (Read File) Fungsi (AH) = 3FH Contoh: INBUF
DB
HANDLE_A
80 DUP (?) DW ?
MOV
AH,3FH
; baca fail
MOV
CX, 80H
; bilangan bait input
MOV
BX,HANDLE_A
; rujukan fail (handle)
MOV
DX,OFFSET INBUF
; penunding data
INT
21H
; sampukan DOS
Parameter kembali: CF = 0 jika berjaya. AX = bilangan bait dibaca CF = 1 jika gagal. AX = kod ralat (error code).
Version 1.0
TCWan
Page 9/9
08/31/09
1.3.5.Buka Fail (Open File) Fungsi (AH) = 3DH Contoh: FNAM_ASCIIZ
DB
'test.txt',0
HANDLE_A
DW ?
MOV
AH,3DH
; buka fail
MOV
AL, 0H
; mod fail (read)
MOV
DX,OFFSET FNAM_ASCIIZ ; nama fail
INT
21H
; sampukan DOS
JC
ERROR
; masalah
MOV
HANDLE_A,AX
; rujukan fail (handle)
Parameter kembali: CF = 0 jika berjaya. Rujukan fail akan dipulangkan melalui AX. CF = 1 jika gagal. AX = kod ralat (error code). (Prog. 19-1, pg. 595,596)
Version 1.0