Process vs Thread (2. 상태 및 스케쥴러)

0

OS

목록 보기
2/5

States of a Process in Operating Systems


프로세스의 상태


(출처 : https://www.geeksforgeeks.org/states-of-a-process-in-operating-systems/?ref=lbp)

  • New (Create) : 프로세스의 경우 생성이 될 예정인 상태로, 프로세스를 선택하기 위해 OS에 의해 선택되는 보조 메모리에 존재하는 프로그램입니다.
  • Ready : New -> Ready, 프로세스의 생성이 완료된 후에, 프로세스는 ready 상태로 진입합니다. 즉, 프로세스는 메인 메모리에 적재가 됩니다. ready 상태의 프로세스는 CPU 자원 할당을 기다리고 CPU에 의해 실행 준비가 된 프로세스는 준비된 프로세스들을 위한 queue에 들어가게 됩니다.
  • Run : 실행을 위해 CPU에 의해 선택되어지고 프로세스 내 지시들은 사용 가능한 CPU 코어 중 하나에 의해 실행됩니다.
  • Blocked or wait : 프로세스가 I/O 접근을 요청하거나 사용자로부터의 입력이 필요하거나, 임게 구역에 대한 접근이 필요할 때 blocked 혹은 wait 상태에 진입하게 됩니다. 프로세스는 지속적으로 메인 메모리에 대기하게되고 CPU에 요청하지 못합니다. I/O 동작이 완료되면 프로세스는 ready 상태로 전환됩니다.
  • Terminated or completed : 프로세스가 종료되고 PCB도 삭제됩니다.
  • Suspend Ready : 처음에는 준비상태에 있던 프로세스이지만 메인 메모리로 밀려나고 스케줄러에 의해 외부 저장소에 위치하게 되는 것이 suspend ready 상태라고 한다. 프로세스는 메인 메모리에 올라가게 될 때 다시 ready 상태로 전환이 된다.
  • Suspend wait or suspend blocked : suspend ready와 비슷하지만 I/O 동작이나 메인 메모리가 부족하게 되는 작업을 수행하는 프로세스는 보조 메모리로 이동하게 된다. 작업이 완료 되었을 때 다시 suspend ready 상태로 간다.

CPU and IO Bound Processes

CPU 연산 작업을 많이 사용하는 것은 CPU Bound 프로세스라고 하며 I/O작업을 많이 사용하는 것은 IO Bound 프로세스라고 한다.

스케줄러의 종류

  1. long term (장기 스케쥴러) - 성능 : 얼마만큼의 프로세스가 ready 상태에 머물러야 하는지 결정해주며 degree of MultiProgramming을 결정해준다, 한번 결정이 이루어지만 오랜 시간 동안 지속되는데 그러므로 long term scheduler라고 부른다
  2. Short term (단기 스케쥴러) - 문맥교환 시간 : short term 스케쥴러는 어떤 프로세스가 실행될 지 결정하고 dispatcher를 호출 한다. dispatcher는 프로세스를 실행 가능한 상태로 이동시키는 소프트웨어다
  3. Medium term (중기 스케쥴러) - Swapping time : suspension 결정은 중기 스케쥴러에 의해 결정된다. 중기 스케쥴러는 프로세스를 메인 메모리에서 보조 메로리로 이동시키는 스왑 작업에 사용된다.

MultiProgramming

  1. pre-emption(선점) : 프로세스가 강제로 CPU로부터 제거 된다. 선점은 시간 공유 혹은 멀티 태스킹이라고도 불린다.
  2. Non Pre-emtion (비선점) : 프로세스가 실행이 완료될 때 까지 제거되지 않는다.

Degree of MultiProgramming

ready 상태에 있는 최대한의 프로세스의 개수를 의미함

Dispatcher

CPU의 제어권을 CPU 스케쥴러에 의해 선택된 프로세스에게 넘긴다.
CPU 스케줄러 내부에 포함된 것으로, 단기 스케줄러가 선택한 프로세스에 실질적으로 프로세서를 할당하는 역할이다;
프로세스의 레지스터를 적재하고(문맥교환), 운영체제 모드(kernel mode)에서 사용자 상태(User mode)로 전환시켜주면 프로세스가 다시 시작할 때 사용자 프로그램이 올바른 위치를 찾을 수 있도록 한다.

참고

https://www.geeksforgeeks.org/states-of-a-process-in-operating-systems/?ref=lbp

profile
컴퓨터공학과 + 실무 = 4 + N = 모르는거 ∞ ...

0개의 댓글