프로세스
실행 중인 프로그램을 의미
사용자 영역
- stack - 함수에 대한 파라미터, 리턴 주소, 지역 변수
- heap - 동적할당으로 생성한 메모리 변수
- data - 전역 변수 (초기화 된 변수 영역 / 초기화 되지 않은 변수 영역)
- code - 프로그램 코드
커널 영역
Context
CPU 현재 상태를 나타내기 위해 사용
특정 시점에서 프로세스가 코드의 어디까지 실행했는지 알기 위해 필요
프로세스의 상태
New
프로세스 생성 중인 상태
Ready
모든 준비가 되어있고, CPU만 얻으면 명령을 실행할 수 있는 상태
따라서 최소한의 메모리는 갖고 있어야함
일반적으로 Ready상태에 있는 프로세스가 CPU를 잡았다 놨다 하면서 번갈아서 작업을 함
Waiting
CPU가 있어도 바로 명령을 실행할 수 없는 상태
프로세스가 요청한 이벤트(디스크에서 파일 읽어오는 등의 IO작업)를 하고있어 기다리는 상태
Running
CPU를 잡고 명령을 수행 중인 상태
Terminated
실행이 끝난 상태
PCB (Process Control Block)
운영체제가 각 프로세스를 관리하기 위해 유지하는 정보
- OS 관리를 위해 사용하는 정보
- CPU 수행 관련 하드웨어 값
- 메모리 관련
- 파일관련
Context Switch
CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정
넘겨주면서 작업하던 내용을 PCB에 저장하고 불러오는 것을 말함
Process Scheduling Queue
운영체제가 PCB들을 링크드리스트로 연결해놓고 큐로 관리한다.
Queue의 종류
Job Queue
현재 시스템에 있는 모든 프로세스의 집합
Ready Queue
CPU 사용 권한을 기다리는 프로세스의 집합
Device Queue
I/O 디바이스 처리를 기다리는 프로세스의 집합
반응형
'CS > Operating System' 카테고리의 다른 글
스레드 (1) | 2023.10.27 |
---|---|
프로그램의 실행 (1) | 2023.10.26 |
운영체제 (0) | 2023.10.26 |