1. Process
Process: 현재 실행 중인 프로그램(running program)
프로그램 그 자체로는 아무런 기능을 수행할 수 없기 때문에, 운영체제는 이런 프로그램을 메모리로 가져온 후 CPU에서 동작하게 됩니다.
2. Process Structure
Memory(Address Space) - Stack, Heap, Data, Code(Text)
Register - Program Counter, Stack Pointer
메모리 부분을 그림으로 표현하면 다음과 같습니다.
힙, 데이터, 코드(텍스트) 영역은 점점 증가하며, 스택의 경우에만 예외로 감소하며 주소 공간을 할당합니다.
3. Process API
공통으로 가져야 하는 API
Create, Destroy, Wait, Miscellaneous Control, Status
4. Process Creation
- Process의 주소공간, 즉 Memory에 프로그램 코드를 Load
- Program의 Stack 영역에 지역 변수, 매개 변수 등의 값 저장
- Program의 Heap 영역에 동적 할당 데이터 저장
- OS의 초기화 작업
- main()함수에서부터 Program 시작
5. Process Status
Running, Ready, Blocked
6. Process Control Block(PCB)
- Process의 모든 정보를 담고 있음
- 각 Process는 하나의 PCB를 가짐
7. Context Switch
CPU가 실행 중인 Process에서 다른 Process로 전환할 때 발생
Reference: [Operating Systems: Three Easy Pieces] https://pages.cs.wisc.edu/~remzi/OSTEP/