검색어 입력폼
평가점수A

가상 디스크의 블록 및 파일관리 프로그램

저작시기 2006.10 |등록일 2006.12.17 파일확장자압축파일 (zip) | 16페이지 | 가격 1,800원

소개글

가상디스크를 생성하여 파일의 생성,삭제,오픈,수정,탐색 및 디렉토리 관리를 할 수 있는
프로그램입니다. 파일의 레코드는 임의로 체워집니다.
가상디스크는 실제파일로 생성되며, 크기는 512kb로 제한합니다.
가상디스크내 파일은 512b의 블록에 저장되며, FAT를 이용하여 저장된 위치를 알 수 있습니다.
파일을 읽어오는 경우 파일버퍼를 사용하였습니다.

컴파일 실행환경

C++

본문내용

Ⅰ. 가상디스크 알고리즘 개요
1. 배경이론
디스크상에 데이터가 입력되는 경우 FAT상에서 데이터 블록의 주소를 관리하며, 사용되지 않은 주소를 탐색 후 디스크에 데이터를 기록한다. 이러한 과정을 C++을 이용하여 가상 디스크를 구현한다.

2. 알고리즘 개요
(1) 가상 디스크를 C++로 구현하기 위해서는 FAT를 표현할 변수 및 이를 관리해줄 자료구조가 필요하다. 여기서 FAT는 배열을 이용하여 생성하고, 이에 저장되어 있는 데이터 블록의 주소들은 원형큐를 이용하여 관리한다. FAT는 데이터 블록의 첫 번째 주소는 사용하지 않으므로 인덱스 0에는 -1을 저장하여 주고 나머지 인덱스에 대한 초기값은 0으로 설정하여 준다. 큐에는 아직 사용되지 않은 주소, 즉 FAT 배열 상에서 value가 0인 인덱스들을 순차적으로 저장하여 준다. 큐에 대한 class 선언 및 각 멤버 함수들은 아래와 같다.

class Queue{ // FAT의 남은 주소를 관리할 큐.
public:
Queue();
~Queue();
int Addq(const int item);
int Deleteq();
int CheckFreeFAT(int size);
int count; // 디스크의 공간이 남아있는지를 확인할 count
private:
int front, rear;
int queue[MaxSize];
};

Queue::Queue(){
front = rear = count = 0;
}

Queue::~Queue(){}

int Queue::Addq(const int item)
{ // 큐에는 FAT상의 남은 주소를 저장하는 동시에 count를 증가시켜 디스크가 Full인지 확인한다.
int temp = (rear + 1) % MaxSize;
if(front == temp) return 0;
else queue[rear=temp] = item;
count++;
return 1;
}

압축파일내 파일목록

vitureDisk.opt
vd.cpp
vitureDisk.dsw
vitureDisk.ncb
vitureDisk.plg
vitureDisk.dsp
resource.h
Script1.rc
Disk
전체삭제.jpg
파일수정2.jpg
파일수정1.jpg
파일삭제.jpg
파일닫기.jpg
파일탐색.jpg
디렉토리.jpg
파일생성.jpg
가상디스크.hwp
Debug/vc60.idb
Debug/vc60.pdb
Debug/vitureDisk.pch
Debug/vd.obj
Debug/vitureDisk.ilk
Debug/vitureDisk.exe
Debug/vitureDisk.pdb
다운로드 맨위로