[공학,기술]OS 핀토스와 유닉스 명령어 구현 > 외부링크

사이트 내 전체검색


외부링크

[공학,기술]OS 핀토스와 유닉스 명령어 구현

페이지 정보

dreampharma REPORT

본문




Download : [공학,기술]OS 핀토스와 유닉스 명령어 구현.hwp


[해당 레포트자료의 저작권은 각 레포트업로더에게 있습니다.]

Download : [공학,기술]OS 핀토스와 유닉스 명령어 구현.hwp( 58 )





[공학,기술]OS 핀토스와 유닉스 명령어 구현_hwp_01_.gif [공학,기술]OS 핀토스와 유닉스 명령어 구현_hwp_02_.gif [공학,기술]OS 핀토스와 유닉스 명령어 구현_hwp_03_.gif [공학,기술]OS 핀토스와 유닉스 명령어 구현_hwp_04_.gif [공학,기술]OS 핀토스와 유닉스 명령어 구현_hwp_05_.gif [공학,기술]OS 핀토스와 유닉스 명령어 구현_hwp_06_.gif


[공학,기술]OS,핀토스와,유닉스,명령어,구현,공학기술,레포트


순서

[공학,기술]OS 핀토스와 유닉스 명령어 구현

[공학,기술]OS 핀토스와 유닉스 명령어 구현 , [공학,기술]OS 핀토스와 유닉스 명령어 구현공학기술레포트 , [공학 기술]OS 핀토스와 유닉스 명령어 구현



[공학,기술]OS 핀토스와 유닉스 명령어 구현




설명

PINTOS

※ 목 차 ※

1. Project 2의 목적 및 目標(목표)
2. Project 2의 구현사양
3. Project 2의 상세 구현
4. 시연 결과물
5. 구현 소감
6. 참고 資料
7. 경 로
1. Project 2의 목적 및 目標(목표)

1 ) 목 적
- 운영체제의 메모리 관리, 프로세스, 쓰레드의 동작 과정을 이해하고 응용할 수 있는 능력을 갖춘다.
- 메모리/프로세스/스레드 관리 과정 제작시 효율성을 고려함으로써 소프트웨어 설계에서 필수적인 효율적인 설계에 대한 경험을 축적한다.
2 ) 목 표
- I/O 및 System call을 이용한 사용자 프로그램(program]) 과 운영체제 간에 통신이 가능하도록 구현한다.
- Argument Passing 방법을 구현한다.
- User Program이 발생시키는 시스템 콜들의 처리를 구현한다.

2. Project 2의 구현사양

사용자 프...

PINTOS

※ 목 차 ※

1. Project 2의 목적 및 目標(목표)
2. Project 2의 구현사양
3. Project 2의 상세 구현
4. 시연 결과물
5. 구현 소감
6. 참고 資料
7. 경 로
1. Project 2의 목적 및 目標(목표)

1 ) 목 적
- 운영체제의 메모리 관리, 프로세스, 쓰레드의 동작 과정을 이해하고 응용할 수 있는 능력을 갖춘다.
- 메모리/프로세스/스레드 관리 과정 제작시 효율성을 고려함으로써 소프트웨어 설계에서 필수적인 효율적인 설계에 대한 경험을 축적한다.
2 ) 목 표
- I/O 및 System call을 이용한 사용자 프로그램(program]) 과 운영체제 간에 통신이 가능하도록 구현한다.
- Argument Passing 방법을 구현한다.
- User Program이 발생시키는 시스템 콜들의 처리를 구현한다.

2. Project 2의 구현사양

사용자 프로그램(program]) 실행을 위한 기본 environment(환경) 제작 구현
- Argument Passing
- Understanding system call infrastucture
시스템 콜 구현
- halt, exit systemp call 구현
- Process_wait함수 구현, bad pointer access 방지
- File 관련 시스템 콜 구현
- Exec 및 wait 시스템 콜 구현

3. Project 2의 상세 구현

- argument Passing & system call
1) Argument Passing

- 처음 접근을 교수님의 보강으로 인해 접해보고 여러 資料들을 보고 프로그램(program]) 의 흐름을 타 보기로 했다. project 1과는 달리 main 부분을 살펴보니 전에는 else 문으로 들어가서 run_task 되는 부분이 이번에는 그 위에 부분 USERPROG 영역에 Process_start에…(省略) 매개변수로 process_execute의 함수의 리턴값이 그리고 process_execute의 매개변수로는 task가 들어가는 것을 알수 있었다.
- 현재의 경우에는 pintos -v -q run `echo x` 라고 userprog에서 명령을 내리게 되면 그 명령어중 echo 만 분리해서 실행하게 되므로 처음에 process_execute 함수에서 그 부분을 아래의 소스로 수정하여 `echo x`가 명령어로 들어가게 만들었다.

userprog/process.c 의 execute_process 함수

- 그 다음 process_start 함수를 보았다. 우리가 실행하고자 하는 파일이름은 `echo x`인데 수정전에는 `echo‘만 분리하여 file_name에 저장되어 load 함수를 호출하게 되므로 이 부분을 바꿔줄 필요가 있었다. start_process 함수는 process_execute 함수 내에서 fn_copy를 인자로 불려진다. 앞에서와 마찬가지로 공백을 기준으로 잘라서 argv 배열에 하나씩 넣는다. 이때 argc 변수는 총 token의 개수를 가진다. 이중 가장 앞에 있는 argv[0]를 파일이름으로 하여 load함수를 호출해 줌으로써 프로그램(program]) 을 메모리에 올려 프로세스로 만든다. 그런 다음 argv에 남아있는 token들을 뒤에서부터 次例(차례)대로 사용자 스택에 넣는다.
userprog/process.c 의 start_process함수

-

-
- 위의 그림에서 push가 있는데 이부분은 argv 배열의 명령행을 스택에 次例(차례)대로 넣어주는 함수이다. 처음 위치인 PHYS_BASE(0xc0000000)에는 system call에서 system call number 구분을 위해 사용되기 때문에 PHYS_BASE에는 값을 쓰지 않고 그 아래부터 사용한다. 가장 위에 argv를 내림차순으로 저장한다. 각각의 argv 마지막에는 NULL을 입력한다. 거꾸로 입력하기 때문에 먼저 입력한다. (‘echo x`를 호출 한 경우엔 e c

레포트/공학기술;

외부링크 목록

게시물 검색


해당 레포트자료의 저작권은 각 레포트업로더에게 있습니다.
dreampharma 은 통신판매중개자이며 통신판매의 당사자가 아닙니다.
따라서 상품·거래정보 및 거래에 대하여 책임을 지지 않습니다.

Copyright © dreampharma.co.kr All rights reserved.
상단으로
모바일 버전으로 보기