SMALL
Process 란?
현재 실행중인 프로그램을 말한다.
CPU virtualization in a single-core system
- Time sharing : 프로세스들이 CPU를 공유하는 것
- Context switching : OS가 현재 실행중인 프로세스를 중지시키고 다른 프로세스를 실행하는 것
- Scheduling policy : OS가 다음으로 실행할 프로세스를 선택하는 것
Memory Address Space

- 스택 : 지역변수, 함수 파라미터 (runtime시 크기결정)
- 힙 : 동적할당-메모리 leak에 주의해야함 (runtime시 크기결정)
- 데이터 : 전역변수, static (컴파일시 크기결정)
- 코드 : 코드, 함수 등 (컴파일시 크기결정)
Process의 생성과정

- 프로그램(코드, 데이터)이 디스크(SSD, HDD)에 존재
- OS가 메모리에 프로그램(코드, 데이터)을 탑재
- 스택, 힙 생성
- CPU 제어를 프로그램에 넘김
Process의 상태
New, Ready, Running, Waiting, Terminated

PCB(Process Control Block)
- 프로세스들은 PCB라는 OS의 자료구조에 저장됨
- State - 프로세스의 상태
- IP(Instruction Pointer) / PC(Program Counter) - 다음으로 실행될 명령어의 주소
- Register context - 프로세스가 중단되었을 때 레지스터 값들이 저장됨
- Memory information - 메모리 세그먼트의 base와 limit 레지스터, 페이지 테이블 등
Process API
OS는 생성, 제거, 대기, 각종제어, 상태에 대한 API를 제공
POSIX : Process API
POSIX는 Portable Operating System Interface for uniX의 약자
Unix 계열의 OS에서 사용하는 Process API를 말함
- fork()
- 자식 프로세스를 생성
- 부모와 자식 프로세스는 메모리 공유를 하지 않으며, 우선순위가 없음 - wait()
- 부모 프로세스가 자식 프로세스가 종료될 때까지 대기 - exec()
- 현재 프로세스를 아예 다른 프로그램으로 전환하여 실행
- 따라서 이후의 코드는 실행되지 않음 - open(), close()
- 파일 디스크립터를 열고, 닫음 - pipe()
- 두 개의 프로세스를 연결 |
- output을 생성하는 프로세스와 그걸 사용하는 프로세스를 결합한다고 보면됨
'CS study > Operating System' 카테고리의 다른 글
| 6. 운영체제 Threads (0) | 2021.09.18 |
|---|---|
| 5. 운영체제 paging (0) | 2021.09.17 |
| 4. 운영체제 Virtual Memory (0) | 2021.09.15 |
| 3. 운영체제 Scheduling (0) | 2021.09.10 |
| 1. 운영체제 Introduction (0) | 2021.09.09 |
댓글