일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MAC
- frequency-domain spectrum analysis
- STCF
- MLFQ
- AINCAA
- sampling theory
- CTF
- 메카님
- 게임 개발
- dtft
- Double free
- 유스케이스
- stride
- 언리얼엔진
- Security
- Unity #Indie Game
- Race condition
- 게임개발
- TSet
- linear difference equation
- 유니티
- RBAC
- dirty cow
- Rr
- pdlc
- ret2libc
- 배경 그림
- DP
- DSP
- 운영체제
- Today
- Total
다양한 기록
프로세스와 프로세스의 상태 본문
프로세스란?
(메모리, CPU에 올라가서) 실행중인 프로그램
필요한 것
- CPU: 레지스터에 대한 정보를 알아야 함. (PC를 알면 어디까지 실행했는지 알 수 있을 것)
- 메모리: 어드레스 스페이스 - 텍스트, 데이터, 스택, 힙
- I/O 정보
프로그램의 시작
- 로드: 코드와 스태틱 데이터 가져오고, 이때 사용하는 포맷을 기반으로 함(ELF) 등
보통, 필요한 코드를 싹 들고오지는 않고 Lazily하게 필요할 때 들고옴.
* 함수 만들었다고 그걸 다 쓰는 경우보단 필요한 경우에 뽑아서 쓰는게 많기 때문
- 동적할당: 스택 세그먼트, 파라미터 초기화, 힙 세그먼트
- 초기화: 파일 디스크립터, I/O나 관련된 스트럭쳐 시그널
- 메인 함수로 점프: main()
프로세스 스테이트
new(created, embryo): 프로세스 만들겠다고 선언된 상태, 아직 디스크에 있음
new --<admitted>-> ready : 승인되면 레디
ready --<dispatch, 혹은 스케쥴>-> running : CPU에 물리적으로 올라감
running --<preemptive, timeout>-> ready : 할당된 시간 종료
running --<wait, sleep>-> wating(blocked): I/O나 특정 이벤트 발생 시 대기하는 상태로 돌입
wating --<wakeup>-> ready : 기다리던 상황이 발생하면 다시 레디로 돌입
running --<exit>-> terminated(zombie) : 프로세스 종료 상태
PCB의 process state는 enum으로 정의되어 있음
그런데 위에서 말한 순서는 지켜져야 함, enum 막 대입해서 집어넣고 하지 않음
예외) 터미널에서 Ctrl + C 하면 이건 외부적 요인으로 Kill 하는 거니까 저 순환을 따르지 않음
PCB (Process Control Block)
각 프로세스에 관련된 정보를 가지고 있는 자료구조
프로세스 스테이트, pid, PC 등 레지스터 정보(컨텍스트 스위칭 용도*), 스케쥴링 정보,
메모리 정보, 오픈된 파일, IO 정보, CPU와 메모리 사용 정보 등..
* 컨텍스트 스위칭: 스케쥴링 시스템에 의해 다른 프로세스가 스케쥴링될 때, 현재 프로세스가 어디까지 실행되었는지 정보를 저장해두고 바꿔야 하는데 그때의 정보를 컨텍스트라 하고, 이걸 스위칭한다는 의미.
다음 명령이 어딘지 알면 어디까지 실행되는지 알 수 있으니 PC 레지스터 정보를 알면 됨.
'운영체제' 카테고리의 다른 글
스케줄링 과정 그려보기, ART, ATT (0) | 2024.03.26 |
---|---|
MLFQ (Multi-Level Feedback Queue) (0) | 2024.03.25 |
스케줄링과 그 방법: FIFO, SJF, STCF, RR / Busy Waiting, Sleeping (0) | 2024.03.24 |
제한된 직접 수행: restrict operation / context switching (0) | 2024.03.18 |
가상화, 병행성, 영속성 (0) | 2024.03.04 |