Backend CS - #11 프로세스 관리

박주현·2023년 2월 28일
0
post-thumbnail

1. 프로세스

  • 메인 메모리에 할당되어 실행중인 상태인 프로그램
  • 하드디스크에 저장되어 있으며 실행하면서 끊임 없이 stack pointer, data, text, register 으로 변화한다.

1.2 프로세스 상태

  • New : 프로그램이 메인 메모리에 할당
  • Ready : 할당된 프로그램이 초기화와 같은 작업을 통해서 실행 준비
  • Running : CPU가 프로세스를 실행.
  • Waiting : 프로세스가 끝나지 않은 시점에서 CPU를 사요하지 않고 다른작업을 진행.
  • Terminated : 완전히 종료

1.3 PCB(Process Control Block)

  • 운영체제가 프로세스를 제어하기 위해 정보를 저장해놓은 곳, 프로세스의 상태 정보를 저장하는 구조체
  • 프로세스 상태관리와 문맥교환을 위해 필요
  • 프로세스 생성 시 만들어지며 주기억장치에 유지
  • 저장항목 :
    1.Process Id : 프로세스의 고유 번호
    2.Process State : ready, wait, running 등의 실행 상태
    3.Program Counter(PC) : 프로그램 카운터, 다음 실행될 명령의 포인터
    4.CPU registers : CPU 레지스터
    5.CPU scheduling information : CPU 스케줄링 정보
    6.Memory-management information : 할당된 자원 정보
    7.Accounting information : CPU 사용시간 등
    8.I/O status information : 입출력 상태 정보

1.4 프로세스 큐(queue)

  • 프로세스를 수행시 상태가 여러번 변화하기 때문에 서비스를 받는 곳이 여러곳
  • 일반적으로 여러개가 한 번에 수행되기에 순서가 필요한데, 순서를 대기하는 곳을 큐(Queue) 라고 한다.
    종류)
    1. Job Queue : 하드디스크에 있는 프로그램이 실행되기 위해 메인 메모리의 할당 순서를 기다림.
    2. Ready Queue : CPU 점유 순서를 기다림.
    3. Device Queue : Input/Output 를 위한 장치가 있는데, 각 장치가 기다리는 큐가 존재.

1.5 스케쥴링

  • 순서를 기다리는 공간이 있는 것처럼, 순서를 정해주는 알고리즘이 있다.
  • 종류)
    1. Job Scheduler
    1. Ready Scheduler
    2. Device Scheduler

2. 멀티프로그래밍

  • 단일 프로세서 상에서 프로그래밍이 동시에 실행되는 것.
  • BUT! Q : 프로세스는 동시에 작업을 수행못하지 않나요?
    → A : 맞습니다. 프로세스는 한번에 하나의 작업만 수행할 수 있기때문에 엄밀히 말해서 '동시'라는 표현은 틀림!
    하지만, OS 통제하에 하나의 프로그램이 실행되고 곧이어 바로 또 다른 프로그램이 실행되기에
    속도가 빠르고 시간 텀이 작아서 사용자는 동시에 실행되는 것 처럼 보임.
profile
빌드업 막 시작하는 개발자

0개의 댓글