본문 바로가기
운영체제

[운영체제] Process

by moonstal 2022. 4. 23.

- 프로세스: 실행중인 프로그램

 

- 프로세스 문맥

  cpu 수행 상태 나타내는 하드웨어 문맥(프로그램 카운터, 레지스터)

  프로세스 주소공간(코드,데이터, 스택)

  프로세스 관련 커널 자료구조(process control block,커널스택)

 

- 프로세스 상태

  running: cpu 잡고 instruction 수행중

  ready: cpu 기다리는 상태 

  blocked: cpu를 주어도 당장 instruction 수행불가/디스크에서 파일 읽어오는 경우

  suspended: 외부적 이유로 프로세스 수행 정지, 프로세스 통째로 디스크에 swap out  

 

- pcb: 운영체제가 각 프로세스 관리하기 위해 프로세스 당 유지하는 정보

  구성요소: os가 관리상 사용하는 정보, cpu 수행 관련 하드웨어 값, 메모리관련, 파일관련

 

- 문맥교환: cpu 한프로세스에서 다른 프로세스로 넘겨주는 과정, 상태 pcb에 저장

 

- 프로세스를 스케줄링하기 위한 큐

  jop큐: 현재 시스템 내 모든 프로세스 집합

  ready queue: 현재 메모리 내에 있으면서 cpu를 잡아서 실행되길 기다리는 프로세스 집합

  device queues: i/o device 처리 기다리는 프로세스 집합

  

- 스케줄러

  장기스케줄러/job scheduler

  - 시작프로세스중 어떤걸 ready 큐로 보낼지,

  - 프로세스에 memory주는,

  - 메모리에 올라가있는 프로세스 수 제어(degree of multiprogramming),

  - 보통 장기 스케줄러 없음 바로ready

  단기 스케줄러/cpu scheculer: 어떤프로세스 running시킬지, 프로세스에 cpu 주는

  중기스케줄러/swapper:

  - 여유공간 위해 프로세스를 통째로 메모리에서 디스크로 보냄

  - 프로세스에게서 memory 뺏는

  - 메모리에 올라가있는 프로세스 수 제어(degree of multiprogramming)

 

- 스레드: cpu를 수행하는 단위

  구성: program counter, register set, stack space

  공유하는 부분(task): code section, data section, os resources

  장점(응답성,자원공유,경제성, 병렬성)

  - 하나 스레드 blocked 상태일때 다른 스레드 실행되어 빠른 처리

  - 동일 일 수행하는 다중스레드 협력->높은 처리율 성능 향상

  - 병렬성 높임

 

http://www.kocw.net/home/search/kemView.do?kemId=1046323&ar=pop