프로세스 생성 기법
·
운영체제/프로세스 상태와 계층 구조
프로세스 생성 기법운영체제는 새로운 프로세스를 생성하기 위해 보통 두 가지 주요 시스템 호출을 사용한다. 하나는 fork() 로 부모 프로세스를 복제하여 자식을 만들고, 다른 하나는 exec() 로 새로운 프로그램으로 메모리 공간을 교체하는 방식이다. 이 글에서는 fork()와 exec()가 어떻게 동작하는지, 왜 이런 방식으로 자식 프로세스가 만들어지고 실행되는지 좀 더 자세히 살펴본다. 1. fork() — 부모 프로세스 복제1.1 개념fork() 는 부모 프로세스를 복제해 새로운 자식 프로세스를 생성하는 시스템 호출이다.자식 프로세스는 부모 프로세스의 대부분 리소스(메모리, 열린 파일 디스크립터, 환경 변수 등)를 상속받는다.PID(프로세스 식별자)는 새로 할당되므로, 부모와 자식은 서로 다른 PI..
프로세스 계층 구조 (Process Hierarchy)
·
운영체제/프로세스 상태와 계층 구조
프로세스 계층 구조 (Process Hierarchy)운영체제에서 프로세스는 단일 개체로 독립적으로 실행되지만, 내부적으로 부모-자식 관계를 형성하며 트리(Tree) 형태의 계층 구조를 이룬다. 이는 프로세스가 시스템 호출을 통해 다른 프로세스를 생성할 수 있기 때문이다. 다음에서는 이러한 프로세스 계층 구조의 개념, 실제 예시, 그리고 최초 프로세스(PID=1)에 대해 살펴본다. 1. 부모 프로세스와 자식 프로세스부모 프로세스(Parent Process) 가 새로운 프로세스를 만들면, 만들어진 프로세스를 자식 프로세스(Child Process) 라고 부른다.부모와 자식은 서로 다른 PID를 갖는다.일부 운영체제에서는 자식 프로세스의 PCB에 PPID(Parent PID) 를 기록해 부모 프로세스를 추적..
프로세스 상태
·
운영체제/프로세스 상태와 계층 구조
프로세스 상태(Process States)운영체제에서 프로세스(Process) 는 실행 단위로서, 여러 단계(상태)를 거쳐가며 수행된다. 컴퓨터를 사용할 때 우리는 여러 프로세스를 동시에 사용하는 것처럼 보이지만, 사실은 하나의 CPU(또는 여러 CPU 코어)가 빠르게 프로세스 간을 전환(context switching) 하면서 마치 동시 실행되는 듯한 환경을 만든다. 이 전환 과정에서 각 프로세스는 여러 상태를 거치게 되는데, 운영체제는 각 프로세스의 상태 정보를 PCB(Process Control Block) 에 저장하고 관리한다. 아래에서는 전형적으로 많이 사용하는 프로세스 상태와 그 흐름을 살펴본다. 1. 프로세스 상태의 개념프로세스는 실행 중에 입출력이나 CPU 스케줄링 등 다양한 이벤트에 따라..