[CS, TIL] 230919 프로세스 관리

CountryGirl·2023년 9월 19일

TIL

목록 보기
68/80

⚙️ 운영 체제

  • 자원을 프로세스에 할당
  • 프로세스가 정보를 공유하고 교환할 수 O
  • 각 프로세스 자원을 다른 프로세스로부터 보호
  • 프로세스 간 동기화 가능

⚙️ 프로세스

프로세스 상태

  • New: 프로그램이 메인 메모리에 할당
  • Ready: 할당된 프로그램이 초기화와 같은 작업을 통해 실행되기 위한 준비
  • Running: CPU가 해당 프로세스를 실행
  • Waiting: 프로세스가 끝나지 않은 시점에서 I/O로 인해 CPU를 사용 X ➡️ 다른 작업
  • Terminated: 프로세스가 완전히 종료


⚙️ PCB (Process Control Block)

: 프로세스에 대한 모든 정보가 모여있는 곳

  • 프로세스 상태
  • 프로세스 번호 (PID)
  • 해당 프로세스의 program counter (pc) / register 값 / MMU 정보 / CPU 점유 시간
  • 등등..



⚙️ 프로세스 큐 (Queue)

프로그램의 메모리 적재 과정과 실행 등에서 Queue 라는 버퍼 이용
➡️ 용량의 한계와 성능의 향상 때문에

Queue 종류

1. Job Queue (작업 대기열)

: 시스템에 제출된 모든 작업 또는 프로세스들이 처음으로도 도착하는 Queue

  • 시스템에 실행되기를 기다리는 모든 작업이 포함
  • Long-term Scheduling

Job Queue 에 있는 작업은 아직 실행 X ➡️ 실행되기 위해선 Ready Queue 로 이동

Job Scheduling (작업 스케줄링)

Job Queue 에 도착한 작업 중에서 어떤 작업을 우선적으로 실행할지 결정하는 알고리즘
➡️ 일반적으로 먼저 도착한 작업 또는 우선순위가 높은 작업을 먼저 실행하거나, 시간 기반으로 작업을 스케줄링


2. Ready Queue (준비 대기열)

: 실행을 위해 준비된 프로세스 또는 작업이 대기하는 대기열

  • CPU 또는 프로세서의 실행을 기다림
  • Short-term scheduler

Ready Queue 에 있는 작업은 CPU 할당을 받을 수 있는 상태 ➡️ 실행 대기 중

Process Scheduling (프로세스 스케줄링)

: Ready Queue 에 있는 프로세스 중 CPU를 할당할 프로세스를 선택하는 알고리즘


3. Device Queue (장치 대기열)

: 장치와 관련된 작업이 대기하는 대기열

  • 입출력 장치 (디스크, 프린터, 키보드 등)를 사용해야 하는 작업들은 이 대기에 들어가 대기
  • 입출력 작업을 조율하고 처리 속도를 조절하는 데 사용

작업이 입출력을 수행해야 할 때, 해당 작업은 CPU 에서 장치로 데이터를 보내고, 장치가 작업을 완료할 때까지 장치 대기열에서 대기

I/O Scheduling (입출력 스케줄링)

: Device Queue 에 있는 입출력 작업 중에서 어떤 작업을 먼저 처리할지 결정하는 알고리즘
➡️ 입출력 장치의 효율성을 높이고 대기 시간을 최소화하기 위해 사용



🖥️ 멀티프로그래밍 (Multiprogramming)

: 단일 프로세서 상에서 여러 개의 프로그램이 동시에 실행되는 것

프로세서는 한 번에 한 작업만 수행 가능
오잉? 동시에 실행되는 것? 모순
프로그램이 일부 수행되고 또 다른 프로그램이 일부 수행되는 식으로 진행되는데 이 속도가 빠르고 시간 텀이 매우 작기 때문에 사용자 눈에는 동시에 일어나는 것처럼 보인다!!!!!!!

A] --I/O 대기--> [B] --작업--> [C] --작업--> [D]

A 프로그램이 I/O 작업을 기다리는 동안, 운영체제는 [B] 프로그램으로 전환하여 CPU 유휴 시간을 줄인다. 이후에 [C], [D] 순서대로 작업이 진행된다.

한 프로세스가 대기 상태일 때 다른 프로세스를 실행하여 CPU 유휴 시간을 최소화하고, 전체적인 시스템 효율성과 처리량(throughput) 을 높인다.



✅ REFERENCE

wikipedia : 프로세스 관리
그만 까먹자~ : [운영체제(OS)] 5. 프로세스 관리
yeunjoo121.log : [운영채재] 프로세스 관리
끄적끄적 동커벨 : 멀티 프로그래밍이란?

profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글