- 포그라운드 프로세스
- 사용자가 볼 수 있는 공간에서 실행되는 프로세스
- 백그라운드 프로세스
- 사용자가 볼 수 없는 공간에서 실행되는 프로세스
- 데몬, 서비스 - 사용자와 상호작용 하지 않고 그저 정해진 일만 수행하는 프로세스
- 프로세스 제어 블록 (PCB)
- 프로세스 관련 정보를 저장하는 상품에 달린 태크 같은 자료 구조
- 모든 프로세스는 실행을 위해 CPU가 필요하다
- 하지만 CPU 자원은 한정되어 있다
- 자신의 차례에 정해진 시간 만큼 CPU이용
- 타이머 인터럽트가 발생하면 차례 양보
- PCB에 담기는 대표적인 정보
- 프로세스 ID (PID) : 특정 프로세스를 식별하기 위해 부여하는 고유 번호
- 레지스터 값
- 프로세스는 자신의 실행 차례가 오면 이전까지 사용한 레지스터 중간 값을 모두 복원 → 실행 재개
- 프로그램 카운터, 스택 포인터
- 프로세스 상태 : 입출력 장치를 사용하기 위해 기다리는 상태, CPU를 사용하기위해 기다리는 상태 등등
- CPU 스케줄링 정보 : 프로세스가 언제, 어떤 순서로 CPU를 할당받을지에 대한 정보
- 메모리정보
- 프로세스가 어느 주소에 저장되어 있는지에 대한 정보
- 페이지 테이블 정보 (메모리 주소를 알 수 있는 정보가 담김)
- 사용한 파일과 입출력장치 정보 : 할당된 입출력장치, 사용 중인 파일 정보
- 문맥 교환
- 기존의 실행중인 프로세스 문맥을 백업하고 새로운 프로세스 실행을 위해 문맥을 복구하는 과정
- 한 프로세스A에서 다른 프로세스B로 실행 순서가 넘어가면?
- 기존에 실행 되던 프로세스A는 지금까지의 중간 정보를 백업
- 중간 정보 = 문맥(context)
- 뒤이어 실행할 프로세스B의 문맥을 복구
- 프로세스의 메모리 영역
- 코드 영역(텍스트 영역)
- 기계어로 이루어진 명령어 저장
- 데이터가 아닌 CPU가 실행할 명령어가 담김으로 쓰기가 금지된 영역
- 데이터 영역
- 잠깐 썼다가 없앨 데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터 저장
- 전역 변수
- 힙 영역
- 개발자가 직접 할당할 수 있는 저장 공간
- 스택 영역
- 데이터가 일시적으로 저장되는 공간
- 잠깐 쓸 값들이 저장되는 공간
- 매개 변수, 지역 변수
- 힙 영역과 스택 영역의 크기는 가변적
- 힙 영역은 낮은 주소 → 높은 주소로 할당
- 스택 영역은 높은 주소 → 낮은 주소로 할당
- 코드 영역(텍스트 영역)
'CS지식 쌓기' 카테고리의 다른 글
스레드와 프로세스 (1) | 2024.01.02 |
---|---|
프로세스 상태와 계층 구조 (0) | 2024.01.02 |
운영체제 (0) | 2024.01.02 |
다양한 입출력 방법 (0) | 2024.01.02 |
장치 컨트롤러와 장치 드라이버 (0) | 2024.01.02 |