• 캠퍼스북
  • LF몰 이벤트
  • 파일시티 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

핀토스 - Argument passing, File management, Process management

*지*
개인인증판매자스토어
최초 등록일
2010.01.07
최종 저작일
2010.01
10페이지/한글파일 한컴오피스
가격 3,000원 할인쿠폰받기
다운로드
장바구니

소개글

1.1. Argument passing
프로그램 수행 시 파일 이름과 함께 Command line argument들을 Parsing해 프로그램에 넘겨주도록 하는 과제
1.2. File management
파일 관리를 위한 table을 구성하고 시스템 콜 인터페이스와 핸들러를 적절하게 연결해주도록 함
1.3. Process management
Process들 간의 상호작용과 자원 관리 등을 위해서 Process relationship을 구성하고 동기화를 수행하는 과제

각각의 해당 과제에 대해 디자인과, 코드, 테스트, 실행화면까지 충실하게 담았습니다.
핀토스 과제에 많은 도움을 줄 수 있을 것입니다.

목차

1. 과제 개요
1.1. Argument passing
1.2. File management
1.3. Process management

2. 디자인
2.1. Argument passing
2.2. File management
2.3. Process management (Process Table, Process Relationship, Wait, Exit, Exec)

3. 구현
3.1. Argument passing
3.2. File management
3.3. Process management (Wait, Exit, Exec)

4. 테스트
4.1. 테스트 프로그램 설명 및 실행 방법
4.2. 테스트 프로그램의 구성

5. 테스트 및 결과
5.1. Child-simple
5.2. Wait-simple
5.3. Wait-twice
5.4. Open-bad-ptr
5.5. Open-normal
5.6. Read-bad-ptr
5.7. Read-normal
5.8. Write-bad-ptr
5.9. Write-normal
5.10. Arg-pass

본문내용

2.1. Argument passing
파일 이름뿐 아니라 다른 command line argument들도 프로그램의 인자로 넘어갈 수 있도록 하기 위해서는 파일 이름과 인자가 포함된 문자열을 파싱한 뒤 이를 실행될 프로그램의 스택에 push해야 한다.
이를 위해 파일 이름만을 인자로 받아 해당 프로그램을 실행하던 process_execute 함수를 수정하여 command line에 입력된 파일 이름과 인자가 포함되어 있는 문자열을 인자로 받도록 했다. process_execute에서 execute_thread 함수를 실행하며 파일 이름과 인자가 포함되어 있는 문자열을 인자로 넘기면 execute_thread 함수에서는 이를 파싱한 뒤 스택 메모리 영역을 확보하는 등의 준비 작업을 수행하여 실행될 프로그램을 적재한다. intr_frame 구조체의 멤버 esp 포인터를 사용해 실행될 프로그램의 스택 메모리 영역에 접근하여 파싱한 argument들을 push한다. 이 때 인텔 x86 calling convention을 따르도록 했다. 이후 핀토스 커널은 인터럽트를 통해 프로그램을 실행하게 된다.

2.2. File management
우선 열려 있는 모든 파일들에 대한 정보를 저장할 자료구조와 각 프로세스가 열어놓은 파일들에 대한 정보를 저장할 자료구조가 필요하다. 이를 위하여 list 타입의 open_file_table과 open_file_list를 만들었다. open_file_table은 pintos의 부팅 이후부터 프로세스들에 의하여 열린 모든 파일들에 대한 정보를 저장하고 있다. 각 프로세스는 open_file_list를 가지고 있어 여기에 자신의 연 파일들에 대한 정보를 저장한다. 각 프로세스는 파일을 읽거나 쓸 때 open_file_list를 통하여 자신이 열어 놓은 파일에만 접근할 수 있다. File descriptor는 초기값 3에서부터 시작하여 새로 열린 파일은 바로 직전에 열린 파일의 file descriptor보다 +1이 된 값을 갖게 된다.
System call은 interrupt routine을 통하여 구현되는데 우리가 해야 할 일은 사용자에게 보이는 system call 함수들과 커널 내부에서 실제로 그 system call에 대한 작업을 수행해주는 함수들을 연결해주는 일이다. 이 때 이 두 함수들 사이의 인자 전달은 스택을 통하여 이루어진다. 따라서 우리가 구현하는 syscall_handler에서는 스택으로부터 올바른 위치에서 올바른 타입으로 인자를 꺼내 와서 올바른 함수에 전달해주는 것이 중요하다. (esp + 0)에는 system call number가 들어있다. 이 값을 확인하여 적당한 system call 함수로 연결해 줄 수 있다. 그 다음 인자들은 (esp + 4), (esp + 8), … 에 들어 있고 타입에 알맞게 casting을 하여 사용해야한다.
잘못된 파일로의 접근과 같이 파일과 관련한 system call의 처리에서 주의해야 할 사항들이 몇 가지 있는데 이러한 에러들에 대한 검출과 처리 역시 위의 syscall_handler에서 수행한다.

참고 자료

없음
*지*
판매자 유형Bronze개인인증
해당 판매자는 노하우톡 기능을 사용하는 회원입니다.노하우톡
* 노하우톡 기능이란?노하우 자료를 판매하는 회원에게 노하우 컨설팅, 활용방법 등을 1:1 대화를 통해 문의할 수 있는 기능입니다.

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
최근 본 자료더보기
탑툰 이벤트
핀토스 - Argument passing, File management, Process management
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업