본문 바로가기

PINTOS3

[WEEK10] Pintos _ Project2 User Program (2.2) System Calls 0. 시작하기 전에 예전 직장에서 법이나 규정을 많이 보다보니 꽤나 오랜 시간을 단어나 용어의 정확한 정의나 의미 파악을 중점적으로 공부하고 일을 수행해왔다.. Abstraction으로 가득찬 프로그래밍 세계에서는 이런 공부방법이 좋지 못하다는 것을 시간이 지나면서 점점 깨닫고 있다. 🥲 물론 용어에 대한 정확한 파악도 중요하지만 개념파악 외에도 코드 구현 또한 매우 중요하다! 앞의 Argument Passing이나 File System 구현은 메뉴얼에서 시킨대로, 코드를 잘 짜면 구현이 가능하나 (물론 구현이 쉽지는 않다.) fork, wait, exec부터는 각 코드들의 유기적 관계와 코드가 어디서 어떻게 움직이는지 알아야 이해력 높은 구현이 가능한 것 같다. (Project를 마치는 지금 시점에도 .. 2022. 11. 29.
[WEEK10] Pintos _ Project2 User Program (2) System Calls 1. 프로젝트 관련 공부 Pintos Project2 Pintos에서 User Program을 실행시켜라! (Argument Passing, System Calls 등) 우리 과제는 프로그램을 실행시키기 위해서 아래와 같은 항목들의 일부를 수행하는 것으로 보인다. 2. 코드 구현 우리조는 조금 더 구현이 쉬울 것 같은 File Descriptor 부분을 먼저 수행하고 fork, exec, wait으로 넘어갔다. 두번째 미션 : System Calls 관련함수 : create, remove, open, filesize, read, write, seek, tell, close 등 Pintos에는 File Descriptor 부분이 누락되어 있다. File Descriptor Table을 구현하고 FD를 활용.. 2022. 11. 29.
[WEEK09] Pintos _ Project2 User Program (1) Argument Passing 1. 프로젝트 관련 공부 Pintos Project2 Pintos에서 User Program을 실행시켜라! (Argument Passing, System Calls 등) 우리 과제는 프로그램을 실행시키기 위해서 아래와 같은 항목들의 일부를 수행하는 것으로 보인다. 2. 코드 구현 첫번째 미션 : Argument Passing 관련함수 : process_exec / load / argument_stack 첫번째로 풀어야할 문제는 Argument Passing이다. 유저프로그램을 실행하기 전 커널은 레지스터에 argument를 저장해야한다. f_name 문자열로 인자값을 받아오나 해당 인자에 대한 passing을 제공하지는 않는다. 인자값을 parsing 하여 스택에 올림으로써 파일 실행에 대한 준비를 하는.. 2022. 11. 29.