공학/프로그래밍

스케줄링,가상메모리

뤠이튼 2024. 3. 5. 15:42

스케줄링(Scheduling) 이란?

스케줄링(Scheduling)은 작업, 프로세스, 작업 흐름 등을 효율적으로 관리하고 실행 순서를 결정하는 과정.

컴퓨터 과학과 운영 체제에서, 스케줄링은 특히 중요한 개념으로, 시스템 자원(예: CPU 시간, 메모리, I/O 장치 등)을 다수의 작업이나 프로세스에 할당하는 방법을 의미함. 스케줄링의 목표는 자원을 효율적으로 사용하여 최적의 성능, 응답 시간, 처리량을 달성하는 것.

 

스케줄링의 유형

  1. CPU 스케줄링: 가장 일반적인 형태로, 운영 체제가 프로세스나 스레드에 CPU 시간을 어떻게 할당할지 결정함. CPU 스케줄링 알고리즘에는 라운드 로빈(Round Robin), 우선순위 기반(Priority Scheduling), 최단 작업 먼저(Shortest Job First, SJF) 등이 있음.
  2. I/O 스케줄링: 입력/출력 작업을 관리하고, 디스크와 같은 I/O 장치의 접근 순서를 결정함.
  3. 멀티레벨 큐 스케줄링: 프로세스를 여러 큐에 분류하고, 각 큐가 다른 스케줄링 알고리즘을 사용하여 우선순위에 따라 처리함.

스케줄링의 목표

  • 공정성(Fairness): 모든 프로세스가 공정한 자원 접근을 보장받아야 함.
  • 효율성(Efficiency): 자원을 최대한 활용하여 시스템의 성능을 극대화해야 함.
  • 응답 시간 최소화(Minimizing Response Time): 사용자와 상호 작용하는 시스템에서는 빠른 응답 시간이 중요함
  • 대기 시간 최소화(Minimizing Waiting Time): 프로세스가 자원을 기다리는 시간을 줄여야 함.
  • 처리량 최대화(Maximizing Throughput): 단위 시간당 최대한 많은 작업을 완료해야 함.

 

가상메모리란?

가상메모리란(virtual memory)는 프로세스 마다 연속적이고 충분히 큰 가상 메모리가 있게끔 함으로 물리메모리보다 더큰 메모리를 가능케하며 안정성을 올리는 방법

가상 메모리의 주요 개념

  1. 페이지와 스왑: 가상 메모리는 페이지라는 작은 단위로 나뉘어 관리됩니다. 운영 체제는 필요에 따라 물리적 메모리와 보조 저장 장치 사이에서 페이지를 이동(스왑)함. 프로그램이 요청하는 데이터가 물리적 메모리에 없는 경우(페이지 폴트), 해당 데이터를 포함하는 페이지를 보조 저장 장치에서 물리적 메모리로 로드함
  2. 가상 주소 공간: 각 프로그램은 자신만의 가상 주소 공간을 가지며, 이는 물리적 메모리 주소와는 독립적임. 프로그램은 이 가상 주소를 사용하여 메모리에 접근하고, 운영 체제와 메모리 관리 유닛(MMU)이 이를 실제 물리적 주소로 변환함.
  3. 보조 저장 장치의 사용: 가상 메모리 시스템은 보조 저장 장치의 일부를 스왑 공간(또는 페이지 파일)으로 사용하여, 물리적 메모리를 효율적으로 확장합니다. 이를 통해 실행 중인 모든 프로세스의 크기가 물리적 메모리의 크기를 초과할 수 있게 됨.

가상 메모리의 장점

  • 메모리 사용의 유연성 증가: 프로그램은 물리적 메모리의 한계를 넘어서는 메모리를 사용할 수 있게 됨.
  • 프로세스 간 메모리 격리: 각 프로세스가 독립된 가상 주소 공간을 가지므로, 프로세스 간의 메모리 충돌을 방지하고 시스템의 안정성을 향상시킴.
  • 메모리 관리의 효율성: 운영 체제는 메모리를 더 효율적으로 관리할 수 있게 되며, 필요한 메모리만 물리적 메모리에 로드하여 사용할 수 있음.

가상 메모리의 단점

  • 성능 저하의 가능성: 스왑 공간을 과도하게 사용할 경우, 하드 디스크나 SSD와 같은 보조 저장 장치의 접근 속도가 물리적 메모리보다 훨씬 느리기 때문에 성능 저하가 발생할 수 있음.
  • 스왑 관리의 오버헤드: 물리적 메모리와 스왑 공간 사이의 데이터 이동은 추가적인 CPU 자원을 사용하며, 시스템의 전반적인 성능에 영향을 줄 수 있음.

독립적으로 각자의 주소를 가지기에  공통된 물리메모리에 접근할 IPC ,파이프 혹은 공유 메모리를 이요하여 문제를해결한다.