CS OS

[OS] 프로세스

운영체제

Posted by kyoungIn on March 21, 2019

Process

  • 현재 실행중인 프로그램
  • 디스크에 실행파일 형태로 존재하던 프로그램이 메모리에 올라가서 수행되기 시작하면 생명력을 얻어 프로세스가 된다.
  • CPU는 하나의 프로세스만 처리함 -> 운영체제가 프로세스를 빠르고 효율적으로 교체하기때문에 못느낌 !

프로세스의 상태

준비상태에서 실행상태로 상태전이되는것 -> 디스패칭 이라고 한다.

프로세스 문맥

  • 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해서 필요한 정보
  • 프로세스가 지난번 CPU 보유시기에 어느부분까지 명령을 수행했는지 알아야함 ->이에 대한 정보
  • 주소공간, 레지스터 값, 커널에서 수행한일 ,PCB 등등..
  • 하드웨어 문맥, 소프트웨어 문맥, 커널 상의 문맥 으로 나눠짐

스케쥴러

어떤 프로세스에게 장치를 할당할지 결정하는 운영체제 커널의 모듈

장기 스케쥴러 : (=작업 스케쥴러) 어떤 프로세스를 준비 큐에 삽입할지 결정 프로세스에게 메모리를 할당하는 문제에 관여한다

단기 스케쥴러 : (=CPU 스케쥴러) 준비상태의 프로세스 중 어떤 것을 실행상태로 옮길지 결정

현대의 시분할 시스템용 운영체제에서는 장기 스케줄러가 사용되지 않음. 프로세스가 시작상태가 되면 곧바로 그 프로세스를 메모리 할당하여 준비 큐에 넣는다.

너무 많은 프로세스를 메모리에 할당시켜 시스템 성능이 낮아질 경우에 중기 스케쥴러를 통패 메모리에 적재된 프로세스를 동적으로 조절하고 프로세스 전체 내용은 디스크의 스왑영역에 저장한다. 이를 스왑 아웃이라고 한다.