본문 바로가기

SW Jungle/Week 09

project 02 User program(Argument passing)

- 개발 계획

 

user 영역에서 입력 받은 argumet를 strtok_r 함수를 통해서 파일 이름과 인자들로 parsing 해서 선언한 argv에 저장한 후 이름과 인자들의 길이로 메모리 사이즈 측정 마찬가지로 선언한 size에 저장해준뒤 user_stak에 parsing한 인자의 끝부터 위에서 부터 저장해 나갑니다. 이때 주의 할점은 속도 향상을 위해 stack에 저장되는 데에터의 size는 8의 배수로 마쳐 줍니다. 8의 배수를 마쳐주기위해 알맞은 padding size로 채워 준뒤 파일 이름과 인자들이 전부 들어갔다는 것을 알리기 위해 8bite 크기를 가지는 null 값을 채워줍니다. 다음 부분은 위에서부터 쌓아온 인자들의 주소값을 가지는 데이터를 8bite로 채워줍니다. 이 모든 과정이 끝나는 끝점에는 return_address를 알리는 데이터를 채워줍니다. 이러한 과정을 전부 거쳐 argument 가 pasing 되고 커널 영역으로  passing  됩니다.

'SW Jungle > Week 09' 카테고리의 다른 글

project 02 User program(fork)  (0) 2023.05.09
project 02 User program(System_call)  (0) 2023.05.09
project 02 User program(background)  (0) 2023.05.01