[운영체제]데드락Detection프로그램
본 자료는 미리보기를 지원하지 않습니다.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[운영체제]데드락Detection프로그램에 대한 보고서 자료입니다.

목차

1. 목 적

2. 프로그램화면 설명
① 처음 프로그램 실행시
② data파일을 로딩했을시
③ Detect 버튼을 눌렀을시

3. 제한 사항 및 기타

4. 소스코드
① 프로그램시 필요한 전역변수들
② 프로세스가 reduction이 가능한지 테스트 하는 루틴
③ 프로세스를 삭제하기 위한 루틴 (이 루틴 안에서 ReductionTest() 호출)
④ 화면에 그래프를 나타내는 함수
⑤ Data파일 입력 루틴

5. 다른 실행결과

본문내용

FILE *fp;
char buffer[100], ct[]= " ,\t\n";

if((fp = fopen(strFilename,"r")) == NULL)
return false;

fgets(buffer,150,fp);

a = (int)atof(strtok(buffer,ct)); //resource의 개수 읽어들임
b = (int)atof(strtok(NULL,ct)); //process의 개수 읽어들임

resourcenum = new int[a];
//각각의 resource의 UNIT개수를 저장하기위해 resource개수만큼
동적배열할당

currentnum = new int[a];
//각각의 resource의 현재 사용가능한 UNIT개수를 저장하기위해
resource개수만큼 동적배열할당

ProcessReduct = new bool[b];
//Process가 reduction되었는지 나타내는 동적배열

arraypointer1 = new int*[b];
//입력데이터에서 allocation행렬을 저장하기위한 2차원배열의
//각각의 행을 나타내는 포인터 배열 (동적할당)

arraypointer2 = new int*[b];
//입력데이터에서 request행렬을 저장하기위한 2차원배열의
//각각의 행을 나타내는 포인터 배열 (동적할당)

for (int i = 0 ; i < b ; ++i ) {

arraypointer1[i] = new int[a];
arraypointer2[i] = new int[a];

} //for
//위에서 지정한 각각의 행에 resource개수 만큼의 배열을 할당


fgets(buffer,150,fp);
resourcenum[0] = (int)atof(strtok(buffer,ct));
currentnum[0] = resourcenum[0];

for ( i = 1 ; i < a ; ++i) {
resourcenum[i] = (int)atof(strtok(NULL,ct));
currentnum[i] = resourcenum[i];
} //데이터 파일에서 리소스 UNIT의 개수를 읽어들임


fgets(buffer,150,fp); //빈줄은 넘어감

for ( i = 0 ; i < b ; ++i ) {
fgets(buffer,150,fp);
arraypointer1[i][0] = (int)atof(strtok(buffer,ct));

for (int j = 1 ; j < a ; ++j)
arraypointer1[i][j] = (int)atof(strtok(NULL,ct));

} //데이터 파일에서 첫번째 allocation행렬을 읽어서
//2차원배열에 저장

fgets(buffer,150,fp); //두번째 행렬 사이의 한줄을 읽음 ;

for ( i = 0 ; i < b ; ++i ) {
fgets(buffer,150,fp);
arraypointer2[i][0] = (int)atof(strtok(buffer,ct));

for (int j = 1 ; j < a ; ++j)
arraypointer2[i][j] = (int)atof(strtok(NULL,ct));

} //데이터 파일에서 두번째 request행렬을 읽어서
//2차원배열에 저장

for (i = 0 ; i < a ; ++i)
for (int j = 0 ; j < b ; ++j) {
currentnum[i] = ( currentnum[i] - arraypointer1[j][i] );
} //현재 각 리소스의 이용가능한 리소스 UNIT개수를 계산하여
currentnum배열에 저장 (total number에서 프로세스에 할당된
모든 자원의 수를 빼줌)
for (i = 0 ; i < b ; ++i )
ProcessReduct[i] = false;
//프로세스 reduction 배열은 초기에 모두 false로 세팅
fclose(fp);
return true;
}

키워드

  • 가격2,000
  • 페이지수13페이지
  • 등록일2004.11.15
  • 저작시기2004.10
  • 파일형식압축파일(zip)
  • 자료번호#269456
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니