본문 바로가기

Process

크래프톤 정글 week11, day84 - process.c 마무리, Deep Copy vs Shallow Copy https://moonmisae-cdpt.tistory.com/176 pintOS - project2(Userprog) process.c process.c 더보기 // 명령줄 인자를 스택에 배치한다. void argument_stack (char **argv, int argc, struct intr_frame *if_){ int minus_addr; int address = if_->rsp; // 스택 포인터(rsp)의 현재 위치를 담는다. // moonmisae-cdpt.tistory.com VM을 제외한 process.c의 함수를 학습했다. https://moonmisae-cdpt.tist.. 더보기
pintOS - Project 2 Userprog WIL Krafton Jungle Week 8~9 Team 6 WIL Argument Passing project2의 메인인 시스템 콜을 만들기에 앞서 Argument Passing을 구현해야 했다. Argument Passing이란, main 함수로 들어오는 명령어를 구분하여 인자로 전달하는 것이다. 우선 init.c 안에 있는 main() 함수의 read_command_line() 함수가 커맨드라인으로 들어오는 인자를 받아와 저장한다. (예: -q -f put args-single run 'args-single onearg') 이 후 일차적으로 파싱을 통해 -q와 -f등의 플래그들을 제거한 후 남은 부분을 run_actions로 전달해준다. run_actions -> run tasks 등을 거쳐 args-s.. 더보기
크래프톤 정글 week08, day66 - userprog 뜯기 계속 쉬운것만 잔디를 심다보니 최근에는 올리지 않는게 더 나을 것 같아 pintos가 끝날 동안엔 잔디심기를 안 올릴 것 같다. %rdi 주로 첫 번째 인자 전달에 사용되며, 문자열이나 배열 같은 데이터의 목적지 주소를 지정하는데 사용된다. %rsi 두 번째 인자 전달에 사용되며, 문자열이나 배열같은 데이터의 원본 주소를 지정하는데 사용된다. %rdx 세 번째 인자 전달에 사용되며, 입출력 관련 시스템 호출에서 파일 디스크립터나 버퍼의 크기 등을 전달하는데에도 활용된다. %rcx 네 번째 인자 전달에 사용되며, 반복(loop) 카운트를 관리하는데에 사용될 수 있다. 또한 몇 명령어에서는 반복 횟수를 지정하는데 사용된다. %r8 다섯 번째 인자 전달에 사용되며, x86-64 아키텍쳐에서 새롭게 추가된 레지.. 더보기