
프로세스 란 실행을 위해 커널에 등록된 작업, 프로그램을 의미합니다.프로그램(Program) / 작업(Job)프로세스(Process)스레드(Thread)

포인터 : 프로세스 제어 블록을 연결해 준비 상태나 대기 상태의 큐를 구현할 때 사용합니다.프로세스 상태 : 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등으로 프로세스가 현재 어떤 상태에 있는지를 나타냅니다.프로세스 구분자 : 운영체제 내에 있는 여러 프로세스를 구별하기 위한 구분자를 저장합니다.프로그램 카운터 : 다음에 실행될 명령어의 위치를 가리키는 프로그램 카운터의 값을 저장합니다.프로세스 우선순위 : 프로세스의 우선순위(중요도)로 CPU 스케줄러가 준비 상태에 있는 프로세스 중 실행 상태로 옮겨야 할 프로세스를 선택할 때 이 프로세스 우선순위를 기준으로 삼습니다.각종 레지스터 정보 : 다음에 실행할 때 사용하기 위해 이전에 실행할 때 사용한 레지스터의 중간값을 보관합니다.메모리 관리 정보 : 프로세스의 메모리 위치 정보, 메모리 보호를 위한 경계 레지스터 값과 한계 레지스터 값 등이 저장됩니다.할당된 자원 정보 : 프로세스를 실행하기 위해 사용하는 입출력 자원이나 오픈 파일 등에 대한 정보가 저장됩니다.계정 정보 : 계정 번호, CPU 할당 시간, CPU 사용 시간 등에 대한 정보가 저장됩니다.부모 프로세스 구분자와 자식 프로세스 구분자 : PPID(Parent PID), CPID(Child PID)
PCB가 주로 프로세스 수준의 정보를 관리하는 데 사용된다면, TCB는 스레드 수준의 정보를 관리하는 데 사용됩니다.TCB는 스레드의 상태, 레지스터 값, 스레드 고유 식별자, 스레드의 스케줄링 정보 등을 포함합니다.좀비 프로세스는 자식 프로세스가 상태를 알리지 않고 죽거나 먼저 죽는 경우이며, 좀비 프로세스 발생이 누적되면 전반적인 성능 저하를 일으킵니다.wait 함수를 호출하여 이 상태를 회수할 수 있습니다. wait함수는 자식 프로세스의 종료 상태를 확인하고 해당 상태를 처리합니다.고아 프로세스는 부모 프로세스가 먼저 죽는 경우이며, 운영체제는 이러한 고아 프로세스를 허용하지 않습니다.init(PID=1) 프로세스가 설정됩니다.init(PID=1) 프로세스는 자식 프로세스가 종료될 때까지 기다린 후 wait 함수를 호출하여 고아 프로세스의 종료 상태를 회수하는 방법으로 고아 프로세스를 방지합니다.데몬 프로세스란 운영체제에서 부팅시 자동으로 켜져 백그라운드에서 계속 실행되는 프로세스를 의미합니다.
프로세스 주소 공간(Process Address Space)은 컴퓨터가 실행 중인 각 프로세스가 메모리에서 사용하는 공간을 의미합니다.코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장됩니다.코드(Code) 영역text 영역이라고도 합니다.데이터(Data) 영역힙(Heap) 영역스택(Stack) 영역
스택 영역은 함수의 호출과 관계있는 지역 변수와 매개 변수가 저장되는 영역으로 컴파일 시간에 크기가 결정됩니다.힙 영역은 런타임에 동적으로 크기가 결정되는 메모리 영역입니다.스택 영역은 CPU에 의해 효율적으로 관리되고, 메모리 단편화가 적게 일어나기 때문에 접근이 매우 빠릅니다. 또한, 스택에는 상대적으로 짧은 주기로 데이터가 추가 및 제거되므로 캐시 히트 확률이 높아 접근 속도가 빠릅니다.힙 영역은 동적으로 할당되고 해제되는 데이터의 저장 공간입니다. 힙은 메모리 관리자가 메모리 할당 및 해제를 담당하며, 할당된 메모리의 위치가 동적으로 결정됩니다. 이로 인해 힙 영역에 접근하려면 메모리 관리자를 통해 할당된 메모리의 주소를 찾아가야 하므로 접근 속도가 느립니다.스택 영역의 동작은 LIFO(Last In First Out) 원칙에 따라 메모리의 함수 호출과 관련된 변수, 함수 호출 정보, 복귀 주소 등을 입출력하는 측면에서 자료구조의 Stack과 연관이 있습니다.힙 영역의 동작은 프로그램의 실행 중에 사용자에 의해 동적으로 할당되고 해제되는 방식으로 객체를 관리하는 특징이 있습니다. 자료구조의 Heap과는 연관이 없습니다.🙏 본 개념의 정리에 대한 피드백과 질문은 환영입니다!
본 개념의 다른 정리 및 피드백, 인터뷰 주제의 순서는 테크 인터뷰 스터디 Repository에서 확인 가능합니다.
블로그 - 좀비 프로세스와 고아 프로세스
티스토리 - 완전히 정복하는 프로세스 vs 스레드 개념
도서 - 쉽게 배우는 운영체제
도서 - 혼자 공부하는 컴퓨터구조 + 운영체제
유튜브 - [OS] Lecture 3. Process Management (1/2) / 운영체제 강의
유튜브 - [OS] Lecture 4. Tread management / 운영체제 강의
티스토리 - [Chapter 4. 스레드] 스레드, PCB와 TCB, 다중 스레드 모델
티스토리 - [운영체제] 좀비 프로세스, 고아 프로세스
티스토리 - Context Switching에서의 Thread와 Process의 관계 + PCB, TCB
티스토리 - Systemd란?
티스토리 - 좀비 프로세스와 고아 프로세스(Zombie process and Orphan process)
벨로그 - 리눅스 - 데몬Daemon
티스토리 - 프로세스(Process)의 주소공간(Address Space)
티스토리 - 프로세스 주소 공간에 대해 설명해주세요
벨로그 - [운영체제] 프로세스 주소 공간
티스토리 - 27. 프로세스 - IPC 기법(shared memory)
벨로그 - [운영체제] 프로세스 주소공간
티스토리 - [OS] 프로세스 주소 공간
티스토리 - 힙(Heap)과 스택(Stack)의 최대 할당 크기
벨로그 - 메모리 구조를 알아보자
티스토리 - 스레드의 공유자원 관리(동기화)
티스토리 - [OS] 프로세스 간 통신(Inter-Process Communication,IPC)
티스토리 - CS - 메모리 구조(feat.스택 Vs 힙
티스토리 - 스택과 힙 메모리 영역,Stack Heap Memory
티스토리 - #3 python의 메모리 할당과 관리