
Shell Lab을 하기 위한 기본기가 되는 UNIX의 C로 구현된 프로세스 제어 함수들에 대해 알아봅시다. UNIX는 C프로그램을 이용해서 다음과 같은 프로세스 제어 기능을 제공합니다. 1. 프로세스 ID 가져오기 2. 프로세스 생성하기, 프로세스 종료하기 3. Reaping Child Process (자식 프로세스 정리하기) 4. 프로그램 로딩하기 및 실행하기 1. 프로세스 ID 가져오기 types.h 다음과 같은 함수가 정의되어 있습니다. 1. pid_t getpid(void) : 호출한 함수의 프로세스 id를 리턴. 2. pid_t getppid(void) : 호출한 함수의 부모의 프로세스 id를 리턴. 2-1. 프로세스 생성하기 int fork() : 호출하는 프로세스와 동일한 새 프로세스를 생..

시스템 프로그래밍 수업의 3번째 Lab인 Shell Lab을 수행하기 위한 기초 지식을 정리하기 위해 작성한 글입니다. 먼저, 이 장에서 사용될 용어들에 대한 정의부터 알아봅시다. 제어흐름 (flow of control) 제어흐름이란, CPU는 한 번에 한 가지 명령(Instruction)을 처리하는데, 이 Instruction의 순차적 처리를 flow of control이라고 합니다. BombLab을 수행하신 분들은 아시겠지만, 컴퓨터는 Assembly 수준에서 순차적으로 명령어들을 처리하다가 function을 call해야 한다거나, Branch 하는 등의 명령을 만나면 current Instruction 수행 후 잠시 다른 주소로 넘어가 subroutine 명령을 수행하고 다시 돌아와 next ins..