CPU activity를 부르는 명칭
- Batch 시스템 -> Job
- Time-shared 시스템 -> User program, Task, Process
Job, Task, Process 용어는 거의 같은 의미로 사용됨
프로세스 - 실행 상태에 있는 능동적 개체, 연관된 자원 사용
- 프로그램 코드보다 더 많은 부분을 포함
> 메모리 : code + data + stack + heap
> CPU : program counter + registers
> 프로세스 관리용 자료구조 : 프로세스 제어 블록 (PCB)
프로그램 - 디스크에 파일로 저장된 수동적 개체
- 프로그램 파일 = 코드(text section) + 초기화 데이터 + 헤더 정보 등
프로세스와 프로그램
text section : 프로그램 코드
data section : 전역변수 < 초기화 전역변수 (data), 비초기화 전역변수 (bss) >
heap section : 동적할당 메모리
stack section : 지역변수, 함수 매개변수, return주소
여러 개의 프로세스가 같은 프로그램 사용 가능
- text section은 같음 - 같은 메모리 공유, 개별적인 실행 시퀀스
- data/stack/heap section은 다름 - 프로세스마다 개별적인 메모리 할당
프로세스 상태
- 프로세스의 현재 활동을 나타내며, 실행하는 동안 상태 변화가 발생함
(LINUX)
생성(new) - 프로세스가 생성 중임
실행(running) - 명령어가 실행되고 있음
대기(waiting) - 어떤 사건(입출력 완료, 신호 수신 등) 발생을 기다림
준비(ready) - 프로세스가 실행할 준비가 됨 -> CPU의 할당을 기다림
종료(terminated) - 프로세스의 실행이 종료됨 -> 종료 후 처리를 기다림
프로세스 상태 이름과 종류는 운영체제마다 차이가 있다.
프로세스 상태도
- 한 CPU에서는 어떤 순간에도 한 프로세스만 실행될 수 있다.
- 많은 수의 프로세스가 ready 또는 waiting상태일 수가 있다.
- 프로세스가 다른 프로세스에 의해서 종료되면 프로세스는 ready 또는 waiting상태에서 terminated 상태로 이동될 수 있다.
프로세스 제어 블록(Process Control Block) = 테스크 제어 블록 (task control block)
- 프로세스에 대한 정보를 포함하는 OS 커널의 자료구조
프로세스 context
- 프로그램의 실행 상태 정보 - 실행시간 동안 변경 가능
> CPU context, Memory Context 등
PCB 정보
- Process state
- Program Counter (CPU context)
- CPU Registers (CPU context)
- Memory management informaiton (CPU context)
- CPU scheduling informaiton
- I/O status informaiton
- Accounting informaiton
프로세스 간에 CPU Switch
3.3 프로세스 연산 (0) | 2020.04.17 |
---|---|
3.2 프로세스 스케줄링 (0) | 2020.04.17 |
2.10 시스템 부트 (0) | 2020.04.17 |
2.9 운영체제 생성 (0) | 2020.04.17 |
2.8 운영체제 디버깅 (0) | 2020.04.17 |
댓글 영역