프로세스 속성과 제어 (Process description, control)
프로세스에 대해 알아보겠다.
프로세스란?
- 프로그램이 실행상태에 있는 것
- 프로그램을 더블클릭 했을 때 실행되는 것
- 사람이 프로세스를 만들 수 있음
- 사람 말고도 프로세스가 프로세스를 만들 수 있음 ( 부모, 자식)
- 현재 상태
프로세스는 누가 만들까?
- 인간이 만든다 : 인간이 프로그램 실행시 (GUI, cmd)
- 프로세스가 만든다 : 시스테 프로세스를 작동할 때, user process
Process의 3요소
- Executable program
- Data used in program
- Execution context of th eprogram
process의 상태
<프로세스 상태도> Process States Model
- running 상태 (프로세스 실행중)
- not-running 상태 (프로세스 실행 중단)
- event 발생 : (ex) 입출력을 기다리는 상태 → CPU가 주어져도 실행 불가
프로세스의 2가지 상태 (Two-State Process Model)
Not- running process
→ cpu 를 잡고 있지 않은 대기 상태의 프로세스
- Ready state
- ready to execute
- Waiting for the processor to dispatch
- Blocked state (= wait state, sleep state) 대기 상태
- waiting for some event to occur
- ex. 입출력 대기
- the process that has been in the queue the longest is not always selected by the dispatcher
- block될 수 있음
프로세스의 상태 전이 5단계 (Five-State Process Model)
- 생성 : fork
- 종료 : kill exit
- 이때 block(wait, sleep)되었던 process가 다시 깨어날 때 running으로 바로가지 않고 ready로 다시 간다는 것을 잘 기
job queue란?
- 실행되는 프로세스가 ready queue 로 들어 갔다가 스케줄러에 따라 running으로 이동 (이것을 dispatch 라고 함)
- Terminate : (zombie)
- 아예 사라진게 아니라 terminate 상태에 존재
- 실행하지 않아도 되므로 메인메모리 속 데이터가 필요없음. 커널에 반납
- 통계정보를 유지하기위한 정보만 들고있음
- wait를 통해 terminate process 상태에서 빠져나가 진짜 종료됨
Interrupt란?
일정 시간인 time slice가 다 됐다하면 시스템에 다 됐다는 걸 알려주는게 interrupt
→ 메모리 번지 정해둔 곳으로 jump해서 실행
프로세스가 변환될때 무조건 os 거침 - cpu가 하나라고 가정 했을 떄 cpu가 user code 실행하다가 말고 os 실행하고 있음. Userprocess입장에서는 cpu가 딴짓하고 있는 것처럼 보임. 특히 timesharing시에 커널이 cpu를 잡고 있는 모습이 많이 보임. → 따라서 throughput이 안좋음
Userprogram을 상대적으로 덜 실행
? 프로세스의 정의 ? 메모리에 올라간 거만 프로세스냐 : os가 발전하면서 가상 메모리도 발전
프로세스가 메인 메모리가 아닌 가상 메모리에도 있을 수 있다. 실행이 시작된 프로그램을 프로세스라고 할 수 있음
suspended process란?
suspended 상태에 있는 프로세스 : 메인메모리에 대기 상태로 있다가 보조기억장치로 밀려난 상태
- blocked/suspend : 메모리에 있을 때 block되어있다가 보조기억장치로 밀려남
- ready/suspend: 메모리에 있을 떄 ready되어 있다가 보조기억장치로 밀려남
밀려나는 이유?
cpu가 IO장치보다 빠름. → 모든 고객(프로세스)들이 IO작업을 하고 있다면 시간이 오래걸림. → cpu효율이 떨어진다 → 기다리는 다른 고객들을 맞기 위해 IO작업하고 있던 고객들을 보조기억장치(ssd)로 이동시킴
'Study > Operating System' 카테고리의 다른 글
[OS] 1. 운영체제 기초 (0) | 2023.04.27 |
---|