이전 포스팅들에서 인자를 파싱했다. 이제 시스템 콜을 구현해 보겠다. 시스템 콜에 대한 것은 이전에 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주차) 에서는 테스트 코드를 커널에 바로 컴파일했기 때문에 커널 안에서 상호작용하는 특정 함수들을 필요로 했다. 이 번주부터는 유저프로그램을 실행하여 운영체제를 테스트한다. 커널 모드와 유저모드운영체제는 보안과 안정성을 위해 하드웨어의 접근 권한을 두 가지 모드로 나누어 놨다. 그 두가지를 각각 커널 모드와 유저 모드..
CPU 스케줄링 알고리즘은 여러 프로세스가 CPU를 공유할 때 어떤 프로세스에게 CPU를 우선 배정할지를 결정하는 방식이다. 각 방식은 시스템 목표(응답 시간, 대기 시간, 공정성 등)에 따라 장단점이 존재한다.1. FCFS (First Come First Served)FCFS는 많이 들어본 FIFO와 비슷한 개념이다.개념:도착 순서대로 프로세스에게 CPU를 할당큐에 먼저 들어온 순서대로 실행한다 (FIFO 방식)특징:구현이 가장 간단하다비선점형 방식 (Non-preemptive)단점:Convoy Effect(호송 효과) 발생 가능 → CPU를 오래 점유하는 프로세스가 먼저 오면, 뒤따르는 짧은 프로세스가 오래 기다려야 함2. SJF (Shortest Job First)개념:실행 시간이 가장 짧은 프로세..
프로세스와 스레드는 운영체제에서 작업을 관리하는 기본 단위로, 각각 다른 특성과 역할을 가지고 있다.프로세스(Process)프로세스는 컴퓨터에서 실행 중인 프로그램의 인스턴스다. 운영체제로부터 자원을 할당받은 작업의 단위로 정의되며, 각 프로세스는 독립적인 메모리 공간을 가지고 있고, 다른 프로세스와 메모리를 직접적으로 공유하지 않는다.프로세스의 특징:독립된 메모리 공간(Code, Data, Stack, Heap)을 할당받음다른 프로세스의 메모리에 직접 접근할 수 없음프로세스 간 통신(IPC)을 위해 파이프, 소켓, 공유 메모리 등의 방법이 필요함새로운 프로세스 생성 시 운영체제가 자원을 새로 할당하므로 오버헤드가 큼예시:크롬의 탭 하나하나가 독립된 프로세스로 실행되어, 하나의 탭이 오류를 일으켜도 전체..