안녕하세요.
이번 포스팅에선 프로세스에 대해 간략히 정리해 보려 합니다.
1. 프로세스 : 실행 중인 프로그램
- 프로그램 카운터 (명령어 포인터) : 프로그램의 어느 명령어가 실행 중인지를 알려줌
- 스텍 포인터 / 프레임 포인터 : 함수의 변수와 리턴 주소를 저장하는 스택을 관리하는 레지스터
2. 프로세스 API
- 생성 : 새로운 프로세스를 생성
- 제거 : 필요 없는 프로세스를 제거 할 때 사용
- 대기 : 프로세스를 중지 하여 대기 상태로 전환
- 상태 : 프로세스의 상태를 알기 위해 사용
- 기타 : 그 외에 각종 제어를 위한 API가 제공
3. 프로세스의 생성 과정 : 프로그램의 실행 과정
1) 프로그램 코드와 정적 데이터를 메모리, 프로세스의 주소 공간에 로드
- 프로그램 코드는 스토리지 (HDD, SSD 등)에 실행 파일 형식으로 존재
2) 스택 용도로 메모리 할당 : 각종 변수, 함수 인자, 리턴 주소 등을 스택에 저장
3) 힙 용도로 메모리 할당 : 동적으로 할당된 데이터를 저장
4) 파일 입출력을 위한 작업 수행 : 파일 디스크립터 생성
4. 프로세스의 상태
- 실행 (Running) : 프로세스가 수행 중인 상태 (명령어 수행)
- 준비 (Ready) : 프로세스를 실행 할 준비는 되어 있으나, 다른 포르세스를 실행 하고 있는 등의 이유로 대기
- 대기 (Blocked) : 프로세스가 다른 사건을 기다리는 동안 프로세스의 수행을 중단 (예 : 파일 입출력 시, 파일 입출력이 완료 될 때 까지 프로세스의 수행을 중단)
- 초기 (Initial)
- 최종 (Final)
5. 프로세스 관련 자료구조
- 프로세스 리스트 : 프로세스의 상태를 파악
- Regidter Context : 프로세스가 중단 되었일 때, 해당 프로세스의 레지스터 값들을 저장
6. 대표적인 프로세스 API
1) fork() 시스템 콜
- 프로세스 생성에 사용
- PID (프로세스 식별자) 가 할당 됨
2) wait() 시스템 콜
3) exec() 시스템 콜
'Computer Study > OS' 카테고리의 다른 글
[OS Study] 3-2. 메모리 주소 변환 (Ch. 15) (0) | 2021.07.30 |
---|---|
[OS Study] 3-1. 메모리 주소 공간 (Ch. 12~14) (0) | 2021.07.22 |
[OS Study] 2-2. CPU 스케쥴링 (Ch. 6~11) (0) | 2021.07.02 |
[OS Study] 1. 운영체제 개요 (Ch. 1~2) (0) | 2021.06.19 |
[OS Study] 0. 책 소개 - 운영체제 아주 쉬운 세 가지 이야기 (0) | 2021.06.17 |