728x90
- 프로세스의 개념
- context : 프로세스의 문맥 → 프로세스의 상태를 나타내는데 필요한 요소들
- cpu수행 상태를 나타내는 하드웨어 문맥 ( PC, register )
- 프로세스 주소 공간 (stack,data,code)
- 프로세스 관련 커널 자료구조 (PCB)
- context : 프로세스의 문맥 → 프로세스의 상태를 나타내는데 필요한 요소들
- 프로세스의 상태
- Running : cpu를 잡고 instruction을 수행중인 상태
- Ready : cpu를 기다리는 상태 ( 다른 조건을 모두 만족한 상태로)
- Blocked (wait,sleep) : 당장 cpu를 줘도 수행할 수 없는 상태. (다른 이벤트를 기다리는 상태)
- new : 프로세스 생성중
- Terminated : 수행이 끝난 상태. (정리중)
- 위 그림에서 큐는 커널 데이터 영역에 있음
- PCB ( process control block )
- 프로세스를 관리하기 위해 프로세스당 유지하는 정보 (구조체)
- os가 관리상 사용하는 정보
- cpu수행 관련 하드웨어 값 → 쓰레드마다 별도로 가짐
- 메모리 관련
- 파일 관련
- 문맥 교환 (context switch)
- cpu를 다른 프로세스로 넘겨주는 과정
- 프로세스 상태를 pcb에 저장, 새 프로세스의 상태를 pcb에서 읽어옴
- 시스텀콜or인터럽트 발생시 반드시 문맥교환이 일어나는 것은 아님.
- 프로세스를 스케줄링하기 위한 큐
- job queue : 현재 시스템 내에 있는 모든 프로세스의 집합
- ready queue : 현재 메모리 내에 있으면서 cpu를 잡아서 실행되기 기다리는 프로세스의 집합
- device queue : IO device의 처리를 기다리는 프로세스의 집합
- 스케줄러
- long-term S ( 장기 스케줄러 or job 스케줄러)
- 어떤 프로세스를 ready큐로 보낼지 결정.
- 메모리를 주는 문제
- degree of multiprogramming 제어 : (메모리에 올라간 프로세스의 수)
- 시분할 시스템은 보통 장기 스케줄러가 없고 무조건 ready
- short-term S (단기 or CPU)
- 어떤 프로세스를 다음에 런 시킬지 결정
- cpu를 주는 문제
- 충분히 빨라야함
- medium-term S (중기 or Swapper)
- 여유 공간 마련을 위해 프로세스를 메모리에서 쫒아냄.
- 메모리 뺏는 문제
- degree of multiprogramming 제어
- long-term S ( 장기 스케줄러 or job 스케줄러)
- 현대 OS 프로세스의 상태
- Suspended (stopped) : 외부적인 이유로 프로세스 정지된 상태. 통째로 디스크에 swap out.
- 중기 스케줄러로 인해 생김.
- 사용자가 일시정지 시킨경우. 메모리에 너무 많은 프로세스가 있는 경우. 등..
- blocked과 차이: 조건이 만족되면 자동으로 ready에 가는지, 외부에서 진행해줘어야 활성화 되는지.
- Suspended (stopped) : 외부적인 이유로 프로세스 정지된 상태. 통째로 디스크에 swap out.
- Thread
- 쓰레드 : 하나의 프로세스 안에 여러가지의 cpu수행 단위
- pc,resgister,stack 은 쓰레드별로 각각 가짐.
- code,data,OS자원 등은 공유
- 하나의 스레드가 blocked상태여도 다른 스레드가 running 될 수 있음. → 빠른 응답성
- 다중 스레드가 협력하여 높은 처리율, 성능향상, 병렬성
- 스레드의 이득(장점)
- 응답성
- 자원 공유
- 경제성 : 생성 or 컨텍스트 스위칭할 때 프로세스에 비해 오버헤드가 적음. (각각 30배, 5배)
- 멀티 프로세서 (cpu여러개) 환경에서 유틸성 : 병렬작업 가능
-
- 쓰레드 : 하나의 프로세스 안에 여러가지의 cpu수행 단위
728x90
반응형
'CS > 운영체제' 카테고리의 다른 글
운영체제-반효경 내용정리 (2) (0) | 2023.07.16 |
---|---|
운영체제-반효경 내용정리 (1) (0) | 2023.07.16 |