Thực hành hệ điều hành deal lock

2 457 3
Tài liệu đã được kiểm tra trùng lặp
Thực hành hệ điều hành deal lock

Đang tải... (xem toàn văn)

Thông tin tài liệu

Thực hành hệ điều hành deal lock

Thực hành HỆ ĐIỀU HÀNH - Bài 2 : DEADLOCKMục tiêu : hiểu ý tưởng của phương pháp DeadLock Avoidance để giải quyết vấn đề DeadLock của hệ điều hành1.Cài đặt thuật toán kiểm tra safe/unsafe cho hệ thống- Tạo tập tin mô tả hệ thống, lưu tên SYSTEM1.TXT4 33 2 26 1 33 1 44 2 21 0 02 1 12 1 10 0 24 1 2- Chương trình viết trong Borland C++#include <stdio.h>#include <conio.h>#include <stdlib.h>#define Pmax 10#define Rmax 10int Allocation[Pmax][Rmax];int Max[Pmax][Rmax];int Need[Pmax][Rmax];int Available[Rmax];int finished[Pmax];int Pnum,Rnum;void getinfo(const char *filename){ int i,j; FILE *f; if((f=fopen(filename,"rt"))==NULL) { printf("ko co tap tin\n"); exit(0); }; fscanf(f,"%d%d",&Pnum,&Rnum); for (i=0;i<Pnum;i++) for (j=0;j<Rnum;j++)fscanf(f,"%d",&Max[i][j]); for (i=0;i<Pnum;i++) for (j=0;j<Rnum;j++)fscanf(f,"%d",&Allocation[i][j]); for (j=0;j<Rnum;j++)fscanf(f,"%d",&Available[j]); fclose(f);}void printinfo(){ int i,j; for (i=0;i<Pnum;i++) { printf("P[%d] ",i); for (j=0;j<Rnum;j++) printf(" %d",Max[i][j]); for (j=0;j<Rnum;j++) printf(" %d",Allocation[i][j]); printf("\n"); }}void printAvailable(){ for(int j=0;j<Rnum;j++) printf(" %d",Available[j]);}int testsafe(){ int i,j,flag,enough; for (i=0;i<Pnum;i++) finished[i]=0; for (i=0;i<Pnum;i++) for (j=0;j<Rnum;j++) Need[i][j]=Max[i][j]-Allocation[i][j]; printAvailable(); do { flag=0; for (i=0;i<Pnum;i++) { if (finished[i]==0) {enough=1;for(j=0;j<Rnum;j++)if (Need[i][j]>Available[j]){enough=0;break;}if (enough){ finished[i]=1; for (j=0;j<Rnum;j++) Available[j]+=Allocation[i][j]; printf("-P[%d]->",i);printAvailable(); flag=1;} } }//for }while (flag==1); flag=1; for(i=0;i<Pnum;i++) if(finished[i]==0) flag=0; return flag;}void main(){ getinfo("c:/vinhson/giangday/system1.txt"); clrscr();printinfo(); int safe=testsafe(); if (safe) printf("\nSystem is safe"); else printf("\nSystem will be deadlock"); getch();}Nội dung tập tin System1.txt :4 33 2 26 1 33 1 44 2 21 0 02 1 12 1 10 0 24 1 22. Viết thêm vào hàm main() đoạn chương trình sau : nếu hệ thống là safe, cho phép nhập yêu cầu tài nguyên của một tiến trình bất kỳ, cho biết hệ thống có đáp ứng yêu cầu tài nguyên của tiến trình này hay không ? . Thực hành HỆ ĐIỀU HÀNH - Bài 2 : DEADLOCKMục tiêu : hiểu ý tưởng của phương pháp DeadLock Avoidance để giải quyết vấn đề DeadLock của hệ điều hành1 .Cài. của hệ điều hành1 .Cài đặt thuật toán kiểm tra safe/unsafe cho hệ thống- Tạo tập tin mô tả hệ thống, lưu tên SYSTEM1.TXT4 33 2 26 1 33 1 44 2 21 0 02 1 12

Ngày đăng: 12/09/2012, 16:40

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan