Dazzling 개발 노트

[CS] 운영체제 - 스케줄링 / 메모리 본문

Develop

[CS] 운영체제 - 스케줄링 / 메모리

dj._.dazzling 2024. 3. 16. 13:47

스케줄링

스케줄링 목적

  • 멀티 프로세스 환경에서 모든 프로세스공평하게 실행하는 것
    • CPU 사용률 : CPU를 놀리지 않고 사용하는지 판단
    • 처리량 : 단위 시간 당 실행한 프로세스 수
    • 응답 시간 : 요청 발생 후 응답까지 걸린 시간
    • 반환 시간 : 로드 후 종료까지 걸린 시간
    • 대기 시간 : 대기 큐에서 대기한 시간의 총합

 

스와핑 Swapping

프로세스를 통으로 메모리 영역과 저장 공간으로 옮기는 것

  • 메모리 공간보다 많은 프로세스를 실행할 수 있음
    • 스왑 아웃
      • 이벤트 요청 대기중인 프로세스를 통으로 저장 공간으로 이동
    • 스왑 인
      • 스왑 아웃한 프로세스에서 이벤트 요청 발생 시 프로세스를 통으로 다시 메모리에 로드

 

비선점형 스케줄링

실행중인 프로세스가 종료될 때까지 다른 프로세스를 실행할 수 없음

  1. FCFS 스케줄링
    • 준비 큐에 먼저 들어온 프로세스가 먼저 실행
  2. SJF 스케줄링
    • 실행 시간이 짧은 프로세스를 먼저 실행

 

선점형 스케줄링

스케줄러가 실행 중인 프로세스를 중단시키고 다른 프로세스를 실행할 수 있음

  • 선점형 스케줄링 알고리즘
    1. RR 스케줄링 Round Robin
      • 모든 프로세스를 순서대로 일정 시간 동안 실행, 시간 초과 시 다른 프로세스를 실행
    2. SRTF 스케줄링 Shortest Remaining Time First
      • 준비 큐에서 대기 시간이 가장 짧게 남은 프로세스를 먼저 실행
    3. 멀티 레벨 스케줄링 Multi Level

 

메모리

연속 메모리 할당

멀티 프로세스 환경에서 여러 프로세스를 메모리에 연속적으로 로드

  • 고정 분할 방식
    • 메모리 영역을 분할한 후 각 영역에 프로세스 할당
  • 가변 분할 방식
    • 할당할 프로세스의 크게에 따라 메모리 공간 분할

비연속 메모리 할당

  • 페이징 Paging
    • 프로그램의 주기억장치 영역을 동일한 크기로 분할
  • 세그먼테이션 Srgmentation
    • 프로그램을 다양한 크기의 논리적 단위로 분할

 

가상 메모리

프로세스의 일부만 메모리에 로드하고, 나머지는 디스크에 유지한 상태로 프로세스를 실행하는 방식

 

스레싱 Thrashing

시스템이 작동되는 시간보다 페이지 교체가 더 자주 발생CPU의 이용률이 낮아지는 증상을 의미

  • 동시에 일정 수 이상의 프로그램 실행 시 CPU 이용률이 떨어지는 상황
  • 다중 프로그래밍 정도가 일정 수준 이상 시 페이징이 빈번하게 일어나면서 스레싱 발생

 

워킹 세트 Working Set

지역성을 기반으로 자주 사용하는 페이지를 저장해 두는 것

 

캐시 메모리

CPU와 메인 메모리 간에 데이터 접근 시 속도 차이를 줄이기 위해 사용

캐시 메모리에 저장되는 데이터는 지역성을 바탕으로 결정

 

지역성

자주 참조되는 데이터가 고르게 분포되지 않고 특정 부분에 몰려있는 것

  • 시간 지역성
    • 최근 참조한 페이지를 계속 참조
  • 공간 지역성
    • 한 번 참조한 페이지 근처의 페이지를 계속 참조