티스토리 뷰

728x90

프로세스 상태

 

#define TASK_RUNNING 0

#define TASK_INTERRUPTIBLE 1

#define TASK_UNINTERRUPTIBLE 2

#define TASK_ZOMBIE 4

#define TASK_STOPPED 8

 

 

 

프로세스 구조

- 코드(.text) : 프로그램의 코드(명령어)가 저장된 영역

- 데이터(.data) : 초기화된 데이터가 저장된 영역

- 데이터(.bss) : 초기화되지 않은 데이터가 저장된 영역

- 힙(heap) : 동적으로 할당된 데이터 영역

- 스택(stack) : 프로그램이 실행되는 과정에서 일시적인 데이터를 저장하기 위해 LIFO(Last-In First_Out) 방식으로 관리되는 영역.

 

 

 

프로세스 제어 블록(PCB: Process Control Block)

- 아주 많은 종류의 정보를 가지고 있다.

- 문맥교환의 오버헤드(overhead)가 크다.

- 프로세스마다 고유의 PCB가 요구된다.

 

 

커널 스택

- 프로세스의 커널 스택사용자 스택은 별도로 존재

- 사용자 모드에서 실행되는 동안에는 사용자 스택을 사용하고, 커널 모드에서는 실행되는 동안에는 커널 스택을 사용

- 모든 프로세스마다 자신의 커널 스택이 필요하다.

- 커널 스택은 프로세스 구조체와 함께 유지(8KB).

 

 

 

프로세스 생성

- 시스템 호출 함수 fork()를 사용

- 부모 프로세스와 동일한 이미지의 자식 프로세스를 생성

- 프로세스는 PID 구별

- 부모 프로세스의 반환값은 자식의 PID, 자식 프로세스의 반환값 0

- 자식 프로세스는 프로그램의 fork() 다음 명령부터 시작된다.

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함