본문 바로가기
CS

운영체제 핵심 기능

by Forsaken Developer 2023. 4. 11.
728x90
728x90

운영체제 핵심 기능

메모리 관리 기법

반입 기법

주기억 장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법

메모리로 적재 시기 결정(When)

  • 요구 반입 기법
  • 예상 반입 기법

배치 기법

디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법

  • 최초 적합(First-fit)
  • 최적 적합(Best-fit)
  • 최악 적합(Worst-fit)

할당 기법

실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 기법

메모리 적자 방법 결정(How)

  • 연속 할당 기법
  • 분산 할당 기법

교체 기법

재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지를 결정하는 기법

메모리 교체 대상 결정(Who)

  • 프로세스의 Swap In/Out
  • FIFO, Optimal, LRU, LFU, 시계 알고리즘, MFU

프로세스 관리

프로세스 상태

  • 생성(Create) 상태 : 사용자에 의해 프로세스가 생성된 상태
  • 준비(Ready) 상태 : CPU를 할당받을 수 있는 상태
  • 실행(Running) 상태 : 프로세스가 CPU를 할당받아 동작 중인 상태
  • 대기(Waiting) 상태 : CPU를 양도하고 완료까지 대기 리스트에서 기다리는 상태
  • 완료(Complete) 상태 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태

프로세스 상태 전이

  • 디스패치(Dispatch) : 프로세스는 준비 상태에서 실행 상태로 전이
  • 타이머 런 아웃(Timer run out) : 프로세스는 실행 상태에서 준비 상태로 전이
  • 블록(Block) : 프로세스는 실행 상태에서 대기 상태로 전이
  • 웨이크 업(Wake-up) : 프로세스는 대기 상태에서 준비 상태로 전이

프로세스 스케줄링

프로세스 스케줄링 용어

  • 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
  • 응답시간 : 프로세스들이 입력되어 서비스를 요청하고 반응하기 시작할 때까지 소요되는 시간
  • 반환시간 : 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
  • 대기시간 : 프로세스가 프로세서에 할당 대기까지 큐에 대기하는 시간
  • 평균 대기시간 : 프로세스가 대기 큐에서 대기하는 평균 시간
  • 종료시간 : 요구되는 Processing Time을 모두 수행하고 종료된 시간
  • 시간 할당량 : 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량
  • 응답률 : (대기시간 + 서비스 시간) / 서비스 시간

프로세스 스케줄링 유형

  • 선점형 스케줄링(Preemptive Scheduling) : 하나의 프로세스가 CPU를 차지하고 있을 때 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고  CPU를 점유하는 스케줄링 방식
  • 비선점형 스케줄링(Non Preemptive Scheduling) : 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스 CPU 점유가 불가능한 스케줄링 방식

선점형 스케줄링 알고리즘

  • 라운드로빈(Round Robin) : 프로세스는 같은 크기의 CPU 시간을 할당하고 프로세스가 할당된 시간 내에 처리 완료되지 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어가는 방식
  • SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 방식
  • 다단계 큐(Multi Level Queue) : 작업들을 여러 종류 그룹으로 분할하고 여러 개의 큐를 이용하여 상위 단계 작업에 의한 하위단계 작업이 선점 당하는 방식
  • 다단계 피드백 큐(Multi Level Feedback Queue) : FCFS(FIFO)와 라운드 로빈 스케줄링을 혼합한 것으로 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하여 마지막 단계는 라운드 로빈을 적용하는 방식

비선점형 스케줄링 알고리즘

  • 우선순위(Priority) : 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU 할당
  • 기한부(Deadline) : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획
  • FCFS(First Come First Service) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당
  • SJF(Shortest Job First) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
  • HRN(Highest Response Ratio Next) : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택

프로세스 관리-교착상태

교착상태는 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태이다.

교착상태 발생 조건

  • 상호 배제(Mutual Exclusive) : 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
  • 점유와 대기(Hold & Wait) : 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
  • 비선점(Non Preemption) : 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고 오직 점유한 프로세스만이 해제 가능한 상태
  • 환형 대기(Circular Wait) : 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태

교착상태 해결 방법

  • 예방(Prevention) : 상호 배제를 제외한 나머지 교착상태 발생 조건을 위배하는 방안
  • 회피(Avoidance) : 안전한 상태를 유지할 수 있는 요구만 수락
  • 발견(Detection) : 감시 알고리즘을 통해 시스템의 교착 상태 검사
  • 복구(Recovery) : 교착상태가 없어질 때까지 프로세스를 순차적으로 Kill하여 제거
728x90
반응형

'CS' 카테고리의 다른 글

네트워크 계층 구조  (0) 2023.04.11
가상화와 클라우드  (0) 2023.04.11
운영체제 명령어 활용  (0) 2023.04.11
운영체제의 종류  (0) 2023.04.10
애플리케이션 통합 테스트  (0) 2023.04.10

댓글