user memory access 2

PintOS Project 2 - User Program (4) User memory access 관련 개념 정리 - 주소 변환, 세그멘테이션, 페이징(정글사관학교 66일차 TIL)

1. 개념 정리: 전에 이어서 계속 주소 변환의 원리 먼저 위에서도 언급했듯, 운영체제 단독으로 주소 변환 작업을 하는 게 아니라 하드웨어의 지원을 받는다. 효율성을 높이려면 하드웨어의 지원을 받는 것이 좋다. C언어가 파이썬보다 빠른 것처럼 전기적 신호(=HW)가 C언어(=SW)보다 훨씬 빠르지 않겠나. 여기에는 TLB, 페이지 테이블 등이 필요하다. 주소 변환을 통해 하드웨어는 명령어 반입, 탑재, 저장 등의 가상 주소를 정보가 실제로 존재하는 물리 주소로 변환한다. 하지만 하드웨어는 가속화에 도움을 줄 뿐, 실질적인 메모리 가상화는 운영체제가 구현해야 한다. 따라서 운영체제는 메모리의 빈 공간과 사용 중인 공간을 항상 알고 있어야 하고, 메모리 사용을 제어하고 관리한다. 이 모든 작업의 목표는 프로..

PintOS Project 2 - User Program (3) User memory access 관련 개념 정리 - 메모리 가상화(정글사관학교 65일차 TIL)

1. 과제 설명 시스템 콜을 구현하기 위해 유저의 가상 주소 공간에 접근할 수 있는 방법을 제시해줘야 한다. 인자를 받아올 때는 이 기능이 필요하지 않았다. 하지만 시스템 콜 인자에서 제공하는 값에 접근하기 위해서는 이 기능이 필요하다. 잘못된 포인터, 커널 메모리, 블록을 가리키는 포인터의 경우 자식 프로세스를 종료해 처리해야 한다. ex) *ptr->value 형식으로 값을 넣어줄 때 큰일날 수 있기 때문에 이를 미리 확인하여 잘못된 경우 종료시킨다. 2. 개념 정리: User space memory access from the kernel 처음에는 이 파트가 그냥 넘어가도 되는 건 줄 알았는데, 보니까 이것도 하나의 과제가 맞는듯. 일단 위의 과제에서 말하는 것처럼 시스템 콜을 구현하기 위해서는 유..