정보처리기사

[정보처리기사] 계산식 (2) - 프로세스, 디스크 스케줄링

hminor 2023. 7. 15. 22:28

프로세스 스케줄링

  • 정리
    • 프로세스는 실행중인 프로그램을 의미하는 것이며
    • 프로세스는 준비 상태 큐에 들어가 있다.
      • 이후 프로세서로 인해 실행되게 된다면 이게 Dispatch가 된다
      • 실행 상태에서 준비로 돌아간다면 Time run out이 된다.
    • 여기서 현재 어디까지 진행되었는지 저장을 해야하는데 그건 PCB에서 하게 된다. (문맥교환)
      • 개념
        • 운영체제가 프로세스를 관리하기 위해 자동으로 생성
          • 여기서 자동으로 생성하는 것 3가지 정리
            • PCB
            • 시스템 카탈로그: DBMS가 DB를 관리하기 위해 자동으로 생성
            • 파일 디스크립터: 운영체제가 파일을 관리하기 위해 자동으로 생성
      • PCB 저장 종류
        • Text Section
        • Program Counter(pc)
        • Stack
        • Heap
        • Data Section
    • 대기 상태에서 준비 상태로 올라가는 것을 Wake up 이라고 한다.
  • 선점형
    • SRT ⇒ 기하현상 생길 수 있음
    • RR
    • MLQ ⇒ 기하현상 생길 수 있음
    • MLFQ ⇒ 에이징 기법 적용
  • 비선점
    • FCFS
    • HRN ⇒ 에이징 기법 적용, 대기 시간이 오래 걸리는 것.
      • 대기 시간 계산식
        • (실행 시간 + 대기 시간) / 실행 시간
    • SJF ⇒ 기하현상 생길 수 있음
    • 우선순위 ⇒ 기하현상 생길 수 있음
    • 기한부
  • 기하현상을 해결하기 위해 에이징 기법을 적용함
  • FCFS
    • 최대 평균 반환 시간
      • 실행 시간이 긴 순서대로 실행 후
      • 총 실행 시간을 더한 뒤 프로세스 수를 평균화 하기
    • 최소 평균 반환 시간
      • 최대 평균 반환 시간과 반대로
      • 실행 시간이 짧은 순서대로 실행 후 평균화 하기
  • SJF
    • 유형
      • 평균 실행 시간, 평균 대기 시간, 평균 반환 시간을 물어보는게 많이 나온다
    • 문제
      • SJF 기법을 사용해 평균 실행시간을 구하시오
      • P1: 18, P2: 6, P3: 9
    • 풀이
      • 아래과 같이 작성을 할 수 있는데 이때 평균 대기 시간은 0, 6, 15로 각 프로세스의 첫 번째끼리 더한 다음 나누면 되고 평균 실행 시간은 6, 9, 18로 각 프로세스의 두 번째끼리 더한 다음 나누면 되고 평균 반환 시간은 6, 15, 33로 각 프로세스의 세 번째끼리 더한 다음 나누면 된다.
      • P2: 0 + 6 = 6
      • P3: 6 + 9 = 15
      • P1: 15 + 18 = 33
      • 해당 문제에서는 실행 시간이었기에 두 번째인 6+9+18을 3으로 나누면 되기에 답은 11이 된다.

Round Robin

  • 문제
    • 만약 RR 방식으로 모두 처리하고 남은 프로세스 작업이 하나이고 남은 할당 시간은 4시간인데 cpu 할당 시간은 2시간의 경우
    • 한 번만 수행하는 것으로 4시간을 모두 처리하는게 아니라
    • 원래 할당 시간으로 정해진 대로 4시간을 처리해 두 번 실행하게 된다.
  • 문제
    • cpu 할당 시간이 5인데
      • 다른 여러 프로세스는 0, 1, 4 에 도착했고
      • 하나는 6초의 경우에는 기존에 생각했던 방식대로 문제를 풀면 안되고 준비상태 큐를 유심히 체크하며 풀어야 한다.
      • 그래서 실행 중간에 들어오는 프로세스를 신경 쓰며 문제를 풀어야 함

디스크 스케줄링

  • 문제
    • 스케줄링 처리 순서를 작성할 경우
      • 현재 헤드 위치도 함께 적어줘야 한다.
  • SCAN
    • 현재 헤드위치에서 왼쪽 방향으로 간다고 했을 경우, 명시하지 않아도 0번 트랙까지 가야한다.
    • 이후 0번이 되었다면 다음 트랙으로는 처리하지 않은 가장 왼쪽 트랙으로 가야한다.
  • C-SCAN
    • 현재 헤드위치에서 왼쪽 방향으로 간다고 했을 경우, 명시하지 않아도 0번 트랙까지 처리
    • 이후 0번이 되었다면 중간 트랙을 처리하지 않고 가장 오른쪽 트랙으로 이동
    • 문제
      • 만약 현재 디스크 헤드는 트랙 35에서 트랙 47로 이동해 왔다고 가정한다라고 했다면
      • 시작은 트랙 35가 아닌 트랙 47부터 시작을 해야한다는 것이며,
      • 안쪽이 아닌 바깥쪽으로 이동한다는 것을 의미
    • 또한 안쪽이 명시되지 않았다면 0이 마지막, 바깥쪽이 명시되지 않았다면 가장 큰 트랙의 번호가 마지막이 된다.
  • 에션바흐(Eschenbach) 스케줄링
    • 개념
      • 헤드가 진행하는 과정에서 각 실린더에 대해 디스크팩의 한 번의 회전 시간 동안만 입출력 요구들을 처리하는 기법
      • 즉, 한 회전 동안 서비스를 받지 못하는 요구들에 대한 처리는 다음으로 미루는 것.
  • N-step SCAN
    • 기존 SCAN 방식은 중간에 새롭게 추가된 요청도 처리하면서 가기에 무한 대기 발생 가능성이 있는데 해당 문제와 응답시간을 보안한 방법으로
    • 진행중에 새롭게 추가된 요청은 서비스하지 않고 다음 진행시에 서비스하는 기법