이전 포스팅들에서 exec, halt, exit, create, remove를 구현했다. 다음 단계로 넘어가기 위해 파일디스크립터가 무엇인지 어떻게 구현할지 알고 넘어가야 한다.파일디스크립터는 운영체제 전반에 걸쳐 매우 자주 쓰이는 개념이다.파일디스크립터(File Descriptor, FD)란?파일 디스크립터는 열린 파일에 대한 추상적인 식별자이다.정수(int) 형태로 표현된다.유저 프로그램이 open() 같은 시스템 콜을 호출하면, 커널은 실제 파일 객체를 열고, 이 파일에 대한 핸들을 의미하는 FD 값을 유저에게 리턴한다.예시:int fd = open("foo.txt");write(fd, "hello", 5);close(fd);여기서 fd는 유저 공간에서 foo.txt를 가리키는 핸들이다.왜 FD가 ..
이전 포스팅들에서 인자를 파싱했다. 이제 시스템 콜을 구현해 보겠다. 시스템 콜에 대한 것은 이전에 part.1에 담겨있다. 2025.05.19 - [크래프톤 정글] - [pintos] Week2~3: User Program Part.1 [pintos] Week2~3: User Program Part.11주 차에 Alarm Clock, Priority Scheduling과 같이 동기화와 스케줄링에 대해 다루었다면 2~3주 차는 User Program이 Pintos에서 돌아갈 수 있도록 구현을 진행한다.User Program을 OS에 로드하고, System Call을 통해 Uwww.gowoong.com우리는 그 중 (halt, exit, create, remove)를 먼저 구현해서 테스트 코드의 시작 부분..
이전 포스팅들에서 Pintos에 대한 이론을 알아보았다. 2025.05.19 - [크래프톤 정글] - [pintos] Week2~3: User Program Part.2 [pintos] Week2~3: User Program Part.2이전 포스팅에서 pintos 2~3 주차의 주요 목표와 pintos에서 시스템 콜이 발생하는 과정에 대해 알아보았다. 2025.05.19 - [크래프톤 정글] - [pintos] Week2~3: User Program Part.1 [pintos] Week2~3: User Program Part.11주www.gowoong.com그렇다면 Pintos의 요구사항을 만족하기 위해 구현에 들어가 볼 예정이다. 그렇기 위해 먼저 커널이 올바른 유저 프로그램을 실행하기 위해 설정을 해..
이전 포스팅에서 pintos 2~3 주차의 주요 목표와 pintos에서 시스템 콜이 발생하는 과정에 대해 알아보았다. 2025.05.19 - [크래프톤 정글] - [pintos] Week2~3: User Program Part.1 [pintos] Week2~3: User Program Part.11주 차에 Alarm Clock, Priority Scheduling과 같이 동기화와 스케줄링에 대해 다루었다면 2~3주 차는 User Program이 Pintos에서 돌아갈 수 있도록 구현을 진행한다.User Program을 OS에 로드하고, System Call을 통해 Uwww.gowoong.com이번 시간에는 ELF와 Load에 대해 알아보고 유저 프로그램을 pintos에서 실행하기 위한 과정을 알아보도록 ..
1주 차에 Alarm Clock, Priority Scheduling과 같이 동기화와 스케줄링에 대해 다루었다면 2~3주 차는 User Program이 Pintos에서 돌아갈 수 있도록 구현을 진행한다.User Program을 OS에 로드하고, System Call을 통해 User Program과 커널이 상호작용하는 방법에 대해 공부하고 그 내용을 기록하려고 한다.전체 플로우이전 프로젝트(1주차) 에서는 테스트 코드를 커널에 바로 컴파일했기 때문에 커널 안에서 상호작용하는 특정 함수들을 필요로 했다. 이 번주부터는 유저프로그램을 실행하여 운영체제를 테스트한다. 커널 모드와 유저모드운영체제는 보안과 안정성을 위해 하드웨어의 접근 권한을 두 가지 모드로 나누어 놨다. 그 두가지를 각각 커널 모드와 유저 모드..
이전 포스팅에서는 세마포어와 조건 변수에 대한 수정을 진행했다. 이번 포스팅에서는 우선순위 기부기능을 구현하는 것을 목표로 한다.2025.05.12 - [분류 전체보기] - [pintos] Week1: Priority Scheduling - Part.2 [pintos] Week1: Priority Scheduling - Part.2이 전 포스팅에서는 우선순위에 따라 선점을 하는 기능을 구현했다. 이번 포스팅에서는 세마포어, 조건 변수에 따른 Lock 기능을 구현해 보겠다.2025.05.12 - [크래프톤 정글] - [pintos] Week1: Priority Schewww.gowoong.com구현 요구사항 설명의존관계 역전우선순위가 높은 스레드가 우선순위가 낮은 스레드를 기다리는 상황이다.2025.05...