OS 핀토스와 유닉스 명령어 구현 - 목적 및 목표, 구현사양, 시연결과물, 구현소감.
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

OS 핀토스와 유닉스 명령어 구현 - 목적 및 목표, 구현사양, 시연결과물, 구현소감.에 대한 보고서 자료입니다.

목차

1. Project 2의 목적 및 목표

2. Project 2의 구현사양

3. Project 2의 상세 구현

4. 시연 결과물

5. 구현 소감

6. 참고 자료

7. 경 로

본문내용

에 따라서 if, else 문에 걸리게 되어 그 system call 번호에 맞는 system call이 호출하게 된다. 밑으로는 각각의 system call에 관한 함수를 보여주고 있다.
userprog/syscall.c의 syscall_halt()
- syscall_halt 함수 부분이다. 여기에 들어오게 되면 power_off()가 실행되게 된다.
userprog/syscall.c의 syscall_write()
- 이번 함수는 syscall_write 함수부분이다. 현재 구현한 것은 file 부분은 하지 못하여 fd=1일때만 putbuf 함수를 이용하여 화면에 출력해주게 하였고, write 함수는 write 한 바이트수를 return 해야되므로 size를 f의 eax에 넣어준다.
userprog/syscall.c의 syscall_exit()
- 이 함수는 exit 시스템 콜 함수로서 사용자 프로세스는 exit를 호출하였을 때 소유한 자원을 모두 반환하는 작업을 수행해야 한다. 그 thread의 이름과 상태를 출력해주는 것은 그 이름의 프로세스가 그 status값으로 하여 exit를 호출하였다는 뜻이고 ( 예 -> echo:exit(0) ) 최종적으로는 thread_exit()를 호출하여 exit 시스템콜을 다루었던 커널thread를 종료시킴으로서 작업이 종료되게 된다.
userprog/syscall.c의 syscall_wait()
- 우리가 구현한 마지막 system call로서 process_wait(tid_t child_tid)를 호출하게 된다 child_tid 값을 쓰레드 아이디로 갖는 child thread를 끝날 때 까지 기다리는 함수로 이 함수는 동기화가 필요하게 된다.
- system call 중 wait를 구현하기 위해서는 threads/thread.h와 threads/thread.c를 수정할 필요가 있었다.
threads/thread.h
- thread의 구조체에 위와 같은 변수들을 추가해 주었다. 설명은 주석으로...
threads/thread.c 의 thread_create()
- thread_create()에 추가된 변수에 관한 정보들을 넣어주었다. 생성된 thread의 semaphore 변수 life를 초기화 해주고 새로 생성된 thread의 부모를 현재의 thread로 만들어준다.(즉, 현재의 thread가 새로 생성된 thread의 부모) 그리고 생성된 thread는 현재 thread의 자식이므로 child_list에 list_push_back으로 넣어준다.
threads/thread.c 의 thread_wait()
- 새로 만들어준 함수이다. wait를 구현하기 위하여 process_wait에서는 child_tid를 매개변수로 thread_wait에게 넘겨주게 된다. 그러면 새로 생성되면서 child_list에 저장된 thread 들의 tid를 비교하여 같은 thread가 종료될 때 까지 기다리게 된다.
threads/thread.c 의 thread_exit()
- 그리고 system call의 syscall_exit를 호출하였을 때 불러지는 함수로서 매개변수로 f->eax값이 매개변수로 넘어가서 exit를 호출하는 thread의 현재 상태로서 호출되는 것을 의미한다.
threads/thread.c 의 process_wait()
- 실제 system call 중 wait에서 호출되는 함수로서 매개변수로 받은 child_tid를 다시 thread_wait로 넘겨주어 그 리턴값을 다시 리턴함으로써 그 process의 상태를 알 수 있다.
4. 시연 결과물
Grade
5. 구현 소감
-> 처음 시작부터 지난 프로젝트와 다르게 어디서부터 건드려야 할지 몰랐다. 구현을 하면서 어느 정도 진행되는지도 알기 어려웠지만 점점 해보면서 이론 시간에 배웠던 내용들을 좀 더 이해 할 수 있는 계기가 되었다. 실습과제가 많이 어려운 과목이어서 그만큼 추억도 남는 것 같고 이 과목을 수강한 것을 잘한 것 이라고 생각한다.
6. 참고자료
-> 교수님이 올려주신 project file 참조
-> 수업시간에 배운 ppt 자료
-> 구글 검색을 통한 정보
-> 선배들의 pintos 과제 자료
7. 경 로
-> cd pintos_k2/pintos/pintos/src/userprog
수정부분 : process.c syscall.c
-> cd pintos3/pintos_last/pintos/src/threads
수정부분 : thread.h thread.c

키워드

  • 가격2,300
  • 페이지수9페이지
  • 등록일2013.12.06
  • 저작시기2013.12
  • 파일형식한글(hwp)
  • 자료번호#896078
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니