[컴퓨터운영체제] The HOST Dispatcher Shell

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2010.09.27 / 2019.12.24
  • 27페이지 / fileicon docx (MS워드 2007이상)
  • 평가한 분이 없습니다. (구매금액의 3%지급)
  • 2,600원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
최대 20페이지까지 미리보기 서비스를 제공합니다.
자료평가하면 구매금액의 3%지급!
이전큰이미지 다음큰이미지
목차
목차
I. 프로그램 개요
1. Purpose of Project
2. Project Specification
II. Dispatcher의 구조
1. 메모리 & 리소스 할당
2. Dispatching(CPU 할당)
Ⅲ. 메모리 할당 알고리즘
1. First-fit Algorithm
Ⅳ. Multilevel Dispatching Scheme
1. Multilevel dispatching scheme
2. 메모리 할당 Scheme
3. 리소스 할당 Scheme
4. Schemes Used by Real-OS
5. 개선할 사항
Ⅴ. 실행 내용 및 결과
Ⅵ. 소스 코드

본문내용
Resource* leftResource = NULL; // allocate resource
mainMemory* mainMemory; //main Mem


char *filename;
qHeader* DispatchQueue; // Dispatch Queue
qHeader* UserJobQueue; // user job Queue
qHeader* RealTimeQueue; // Realtime Queue
qHeader* firstQueue; // priority is 1
qHeader* secondQueue; // priority is 2
qHeader* thirdQueue; // priority is 3

// make headers
DispatchQueue = makeHeader();
UserJobQueue = makeHeader();
RealTimeQueue = makeHeader();
firstQueue = makeHeader();
secondQueue = makeHeader();
thirdQueue = makeHeader();

//init resource
leftResource = (Resource*)malloc(sizeof(Resource));
leftResource->CDdriver = NUMOFCDROM;
leftResource->modem = NUMOFMODEM;
leftResource->printer = NUMOFPRINTER;
leftResource->scanner = NUMOFSCANNER;

//init mainMemory
mainMemory = getmainMemory(SIZE_OF_MEMORY);


if (args < 2) //show useage
{
printf("USAGE : hostd <filename>\n");
exit(0);
}else
filename = argv[1]; //filename

FILE *f = fopen(filename, "r"); //open
if (f == NULL) //can't open
{
printf("file open error\n");
exit(0);
}

// read job info. from list file
while(fscanf(f, "%d, %d, %d, %d, %d, %d, %d, %d\n",
&jobInfo[0], &jobInfo[1], &jobInfo[2], &jobInfo[3], &jobInfo[4], &jobInfo[5], &jobInfo[6], &jobInfo[7]) != EOF)
{
emptyPCB = makeNewPCB(); // make empty PCB
emptyPCB->args[0] = "./sigtrap"; // name of program
emptyPCB->args[1] = NULL; // for execvp(args[0], args)
emptyPCB->arrivaltime = jobInfo[0]; // arrival time
emptyPCB->firstPriority = jobInfo[1]; // priority
emptyPCB->currentPriority = jobInfo[1]; //
emptyPCB->leftTime = jobInfo[2]; // time left
emptyPCB->totalTime = jobInfo[2]; // total time for running
emptyPCB->memorySize = jobInfo[3]; // memory required
emptyPCB->resource->printer = jobInfo[4]; // printer
emptyPCB->resource->scanner = jobInfo[5]; // scanner
emptyPCB->resource->modem = jobInfo[6]; // modem
emptyPCB->resource->CDdriver = jobInfo[7]; // cdrom
enQueue(DispatchQueue, emptyPCB); // into dispatch Q
}
fclose(f); //finish reading file

//start dispatch
timer = 0;
while(1)
{

//If all queue are empty...
if(((emptyPCB = checkQueue(DispatchQueue)) == NULL) &&
((emptyPCB = checkQueue(RealTimeQueue)) == NULL) &&
((emptyPCB = checkQueue(UserJobQueue)) == NULL) &&
((emptyPCB = checkQueue(firstQueue)) == NULL) &&
((emptyPCB = checkQueue(secondQueue)) == NULL) &&
((emptyPCB = checkQueue(thirdQueue)) == NULL) &&

(runningUPCB == NULL)) break;


// job dispatching
// movePCB :: from RealTimeQueue to UserJobQueue
while((movePCB = checkQueue(DispatchQueue)) != NULL){
// process arrives
if(movePCB->arrivaltime <= timer){
movePCB = deQueue(DispatchQueue); // dequeue
// check priority
// to real time queue
if(movePCB->firstPriority == 0){
enQueue(RealTimeQueue,movePCB);
}
//to user job queue
else if(movePCB->firstPriority <= 3 || movePCB->firstPriority >= 1) {
enQueue(UserJobQueue,movePCB);
}else
break;
}else
break;
} //finish dispatching

//resource and memory allocation for User Process
while((tempPCB = checkQueue(UserJobQueue)) != NULL )
{
//check resource and memory
if(isEnoughMemory(mainMemory, tempPCB) && checkResource(leftResource, tempPCB)){

//there are enough resources and memory for process
movePCB = deQueue(UserJobQueue);
//allocate memory and resource
movePCB->allocatedMemory = memoryAllocate(mainMemory,movePCB);
자료평가
    아직 평가한 내용이 없습니다.
회원 추천자료
  • 인터넷 정보검색사 1급, 2급시험대비 정리 및 요약
  • 운영체제이다.- 32비트 운영체제로 멀티태스킹과 멀티유저기능을 갖고 있다- 프리웨어이며 다양한 운영체제를 지원한다.- 1991년 핀란드 대학생 리누스 토발즈에 의해 개발 되었다.# 유닉스(UNIX)- 개인용에서 대형컴퓨터에 이르기까지 이용된다.- 대화식의 다중작업 운영체제이다.- 대부분이 C 언어로 작성된다.- 입출력 장치들은 파일로 등록되어 있다.# 전자서명법(1999년 7월 1일 시행)- 비대칭암호화(공개키) 방식이다.- 사용자이름, 메시지인증,

  • [사이버범죄] 사이버 범죄(인터넷 범죄) 분석 및 사례
  • 체제가 전산화됨에 따라 국가적, 사회적 법익에 대한 침해 가능성이 점차 높아져가고 있음은 크게 주목할만한 사회현상이다.1. 컴퓨터 조작사기전세계적으로 확산일로에 있는 POS(Point-of-sale; 판매시점 재고관리시스템), EFTS(Electronic Funds Transfer Systems ; 전자자금 결제제도) 등 상업?금융자료에 대한 조작(Data Diddling) 또는 컴퓨터 프로그램 자체에 대한 트로이안 호스(Trojan Horse), 운영자로의 위장(Superzapping), 쪽문 만들기(Trap Doors), 논리폭탄(Logic Bomb), 시범,

  • 해커에 대하여 레포트
  • 운영 체제를 가지고 있다는 것을 알것이다.물론, 요즘은 리눅스나 Windows NT도 서버로서 많이 사용 되지만 그래도 유닉스가 아직까지는 주를 이룬다.해커에게 요구되는 것은 풍부한 지식, 끊임없는 시행착오, 풍부한 상상력, 인내력 이다.그런데 여러분은 한가지 큰 착각을 하고 있을 것이다.그건 해커가 컴퓨터의 최고봉으로 생각하고 있을 것이다. 하지만 그렇지 않다.해커보다 높은 단계가 있다그것은 GURU (구루) 즉, 정신적 지도자라는 히브리어다.

  • [컴공] 커널 컴파일의 모든것!! 해부한다
  • The File System)10. 네트워크 (Networks)11. 커널 메커니즘 (Kernel Mechanisms)12. 모듈 (Modules)13. 프로세서 (Processors)14. 리눅스 커널 소스 (The LInux Kernel Sources)용례 (Glossary)=서문리눅스는 인터넷의 한 현상이다. 리눅스는 한 학생의 취미 프로젝트로 시작해서, 이제는 무료로 얻을 수 있는 다른 어떤 운영체제보다도 대중적으로 성장했다. 많은 사람들에게 리눅스는 수수께끼이다. 어떻게 공짜인데도 쓸만

  • ■조지 W.부시 정부의 신군사전략과 동북아 안보정책
  • 체제는 적국의 미사일로부터 미국 본토와 해외주둔 미군, 동맹국을 보호하기 위해 지상 및 공중, 해상에 탄도미사일 요격시스템을 구축하고 이를 통해 적국의 미사일을 공중에서 파괴한다는 개념이다. 즉 지구 주위의 조기경보 위성들이 미사일 화염을 감지해 미사일 발사가 확인되면 지상레이더가 미사일 궤적을 추적한다. 위성과 레이더가 수집한 자료는 즉시 콜로라도주 로키산맥의 북미우주방공사령부(NORAD) 컴퓨터사령실로 전송돼 미사일 예상궤

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.