본문 바로가기
정보처리기사/필기

[정보처리기사] Part04-03-1. 운영체제 기초 활용 (2)

by 채연2 2023. 1. 25.

 

2023.01.24 - [정보처리기사/필기] - [정보처리기사] Part04-03-1. 운영체제 기초 활용 (1)

 

[정보처리기사] Part04-03-1. 운영체제 기초 활용 (1)

Contents 운영체제 기초 활용 운영체제 (Operation System) 개념 하드웨어와 소프트웨어 자원 관리 및 컴퓨터 프로그램을 위한 공통 서비스 제공하는 소프트웨어를 의미. 사용자 편의성을 위한 인터페

cording-cossk3.tistory.com

 

Contents

     

    UNIX, WINDOWS 

    Unix/Linux 운영 체제 특징

    • Unix : 1960년대 AT&T Bell 연구소, MIT, General Eletric이 공동 연구로 개발에 착수하여 개발한 운영 체제
    • Linux : Unix 호환 Kernel이며 자유롭고 재배포가 가능한 운영 체제이며 버그 발생 시 다수 개발자가 수정에 참여하여 빠른 업데이트 가능
    특징 설명
    대화식 운영 체제 프롬프트 상태에서 사용자가 명령에 기반하여 대화식으로 운영하는 시스템
    멀티태스킹 한 번에 하나 이상의 작업 수행하는 기능
    다중사용자 기능 여러 사람이 동시에 UNIX 시스템 사용하여 각각 작업을 수행
    이식성 하드웨어 종류에 상관없이 운영

     

    WINDOWS 운영 체제 특징

    • 마이크로소프트사에서 1995년도에 발표한 이후 업그레이드 버전 출시되고 있음
    특징 설명
    GUI 환경 키보드로 명령어 직접 입력하지 않고 마우스로 아이콘이나 메뉴 선택하여 작업 수행하는 방식
    선점형 멀티태스킹 - 동시 여러 프로그램 실행하는 멀티태스킹 하면서 운영 체제가 각 작업 CPU 이용시간 제어
    - 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램 강제 종료시키고 모든 시스템 자원 반환하는 방식
    PnP (Plug And Play) 사용 컴퓨터 시스템에 프린터나 사운드 카드 등 하드웨어 설치 시 해당 하드웨어 사용하는 데 필요한 시스템 환경을 운영 체제가 자동으로 구성하는 기능
    OLE (Object Linking
    Embedding) 사용
    다른 여어 응용 프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작성 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능

     

    Linux/Unix/WINDOWS 운영 체제 비교

    구분 Linux Unix WINDOWS
    실행환경 모델 O/S computing, 객체 지향 호스트 중심, 단말 컴퓨터 C/S Computing, 객체 지향
    주요 용도 Internet Server 기간 MS 시스템 파일 서버, 웹 서버
    기본 사용 환경 다중 사용자 환경 다중 사용자 환경,
    Dummy, X-Terminal
    범용 Workstation
    사용자를 서버에 연결
    운영 체제 기반 모놀리틱 커널 모놀리틱 커널 마이크로 커널
    사용 플랫폼 중대형 서버 중형 컴퓨터 이상 중소형 서버, PC
    UI 불편 CDE (Common Desktop
    Environment)
    우수
    (WINDOWS Interface)
    가격 비용 효율적 고가 보통
    소스 코드 공개 비공개 비공개
    특징 - 적은 비용으로 구축 가능
    - 소스 코드 공개
    - Multi Tasking
    - 분산된 자원 공유 능력 탁월
    - 강력한 TCP/IP 네트워킹
    - OS와 API의 명확한 통제
    - 강력한 파일 시스템
    - WINDOWS Interface로 PC와 동일

     

    프로세스

    • 프로그램은 파일 형태로 저장하여 관리되다가 실행 시키면 동작할 때 실행 중인 프로그램
    • 주요 상태 : 생성, 준비, 수행, 대기, 종료 등
    • WINDOWS는 작업 관리자 프로세스 탬에서 다양한 프로세스 조회 가능하고 프로그램이 정상 동작하지 않을 때 프로그램 끝내기를 통해 프로세스 중단 가능
    • 한 개의 프로세스(or Task)는 여러 개 스레드로 나누어 수행 가능
      • 스레드 : 다중 프로그래밍 시스템에서 CPU를 받아 수행되는 프로그램 단위
      • 프로세스나 태스크보다 더 작은 단위이며, 실행 환경을 공유시켜 기억 장소 낭비 감소

    프로세스 상태 전이도

     

     

         CPU 스케줄링
    • 프로세스 작업 수행을 위해 언제, 어느 프로세스에 CPU 할당할 것인지를 결정하는 작업
    • Multi-Processor 환경 하에서 프로세서 간 우선 순위 저장함으로써 CPU 활용 극대화하기 위함
    종류 역할
    Scheduling Queue 주기억장치 할당 대기 (보류 상태, 디스크에 위치)
    장기 (Job Scheduler) 프로세스 선택, 주기억장치 할당 (보류 준비)
    중기 (Process Scheduler) 프로세스 수에 따라 디스크로 보냄 (대기 보류)
    단기 (CPU Scheduler) 실행 준비된 프로세스 CPU 할당 (준비 실행)

     

    ▶ CPU 스케줄링 기준
    • 바람직한 동작 보이는 프로세스에 우선 순위 서비스 제공
    • I/O 중점(bound)와 CPU 중점 프로세스 간 적절한 혼용
    • 프로세스 작업 형태, 우선 순위, 버스트 시간, 잔여 실행 시간 복합적 고려
    스케줄링 기준 설명 목표
    처리량
    (Throughput)
    주어진 시간에 최대한 많은 작업 처리
    (처리된 프로세스 수 / 시간)
    최대화
    반환(경과)시간
    (Turnaround time)
    전체 작업 수행 시간 최소화
    (System in → System out 시간)
    최소화
    대기 시간
    (Waiting time)
    준비 큐에서 기다리는 시간 최소화 최소화
    응답 시간
    (Response time)
    애플리케이션에 요청 전달한 시간부터 응답 도착할 때까지 걸린 시간 최소화
    CPU 사용률
    (Utilization)
    단위 시간 당 CPU가 작업 수행하는 총 시간 비율 최대화
    Fairness 프로세스별 CPU 자원 할당 공정성 최대화
    Deadline 실시간 환경 등에서의 즉시 처리 한계 시간 최대화

     

    ▶ CPU 스케줄링 기법 및 알고리즘
    구분 선점 (Preemptive) 스케줄링 비선점 (Non-preemptive) 스케줄링
    개념 - 한 프로세스가 CPU 차지하고 있는 경우 우선 순위가 높은 다른 프로세스가 현재 프로세스 중지시키고 자신이 CPU 선점
    - 높은 우선 순위 가진 프로세스들이 빠른 처리 요구하는 시스템에 유용
    한 프로세스가 CPU 차지하고 있으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 선점 불가
    개념도 - 우선순위가 P1 < P2 경우

    - P2가 중간에 CPU 선점 가능
    - 우선순위가 P1 < P2 경우

    - P2는 P1 종료 시까지 대기
    장점 - 비교적 빠른 응답
    - 대화식 시분할 시스템에 적합
    - 응답시간 예상 용이
    - 모든 프로세스에 대한 요구 공정 처리
    단점 높은 우선순위 프로세스들이 들어오는 경우ㅜ 오버헤드 초래 짧은 작업 수행하는 프로세스가 긴 작업 종료 시까지 대기
    기법 RR, SRT, 다단계 큐, 다단계 피드백 큐 FCFS, Priority, Deadline, SJF, HRN
    활용 실시간 응답 환경, Deadline 응답 환경 처리 시간 편차가 적은 특정 프로세스 환경

     

    ▶ CPU 스케줄링 선택 고려사항
    • I/O Bound, CPU Bound 작업 유형 고려
    • 프로세스 작업 형태 (일괄 처리형, 대화형, 실시간형, Hybrid형)
    • 프로세스 우선순위
    • 프로세스 페이지 부재율
    • 프로세스 자원 선점률 고려
    • 프로세스 버스트 시간 고려
    • 프로세스 잔여 실행시간 고려

     

         비선점 스케줄링
    알고리즘 처리방식
    우선순위 스케줄링 - 각 프로세스에 우선 순위가 주어지고 우선 순위에 따라 CPU 할당
    - 동일 우선 순위 간에는 FCFS(First Come, First Served) 처리
    - 우선 순위 결정 : 관리자, 자원 요구량, CPU 처리시간, 시스템에서 보낸 시간에 의한 결정 등 사용
    - 우선 순위 높은 작업이 계속 들어오게 될 경우, 우선 순위가 낮은 프로세스는 기아 현상 발생 → Aging 기법으로 해결 가능
    기한부 스케줄링 - 작업이 명시된 시간 내 완료되도록 계획
    사용자는 사전에 작업이 요구하는 정확한 자원 제시
    작업 시간이나 상황 등 정보 미리 예측 어려움
    선입선출 스케줄링 - FCFS (First Come, First Served)
    - 프로세스가 대기 큐(준비 큐)에 도착한 순서에 따라 CPU 할당
    - 가장 간단한 스케줄링 알고리즘
    - FIFO (First Input First Out) 알고리즘
    - Convoy Effect 발생 가능(버스트 시간이 긴 프로세스가 CPU 독점)
    - 단독적 사용 거의 없으며, 다른 스케줄링 알고리즘에 보조적으로 사용 (우선순위 스케줄링, RR 스케줄링 등)
    최단 프로세스 우선
    스케줄링
    - SRF(Shortest Process First), 최단 작업 우선(SJF, Shortest Job First) 규칙에서 도출
    - 준비 큐 내 작업 중 실행시간 짧다고 예상되는 작업 먼저 수행
    - 각 프로세스에서 CPU 버스트 길이 비교하여 CPU 이용 가능해지면 가장 작은 CPU 버스트 가진 프로세스 할당
    - FIFO보다 평균 대기 시간 줄여 처리량 높여주는 효과
    - CPU 요구시간이 긴 작업과 짧은 작업 간 불평등 심하며, CPU 요구 시간이 긴 프로세스는 기아 현상 발생 → HRN 알고리즘으로 개선
    최고 응답률 우선
    스케줄링
    - HRN (Highest Response-Ratio Next)
    - SPF 약점 보완 기법
    - 실행시간 긴 프로세스 차별하고 짧은 프로세스 지나치게 선호하는 점 보강
    - 각 프로세스 우선 순위를 서비스 시간만 아니고 서비스 대기 시간도 계산
    - 우선 순위 = (대기 시간 + 서비스 시간) / 서비스 시간
    - 실행 시간 짧은 프로세스 우선 순위 높아지지만 오랫동안 대기한 프로세스 우선 순위도 높아짐
    - Aging 기법과 비슷하며 특정 프로세스 무한 연기 현상 방지

     

    ▶ 페이지 부재(Page Fault)
    • 기억장치에 데이터가 적재되지 않은 Page를 참조하는 현상
    • 콜드 미스 : 데이터를 최초로 읽을 때 발생
    • 용량 미스 : 메모리 용량 부족해서 교체 시 발생

     

    ▶ FIFO(First-In, First-Out)
    • 메모리에 올라온 지 가장 오래된 페이지를 교체하는 메모리 교체 알고리즘
    • 작업할 페이지가 이미 주기억장치에 있으면 그대로 수행 (페이지 부재 X)

     

    ▶ SJF(Shortest Job First = Shortest Process First)
    • 실행 시간 가장 짧은 작업 순으로 CPU 수행

     

    ▶ HRN(Highest Response-Ratio Next)
    • 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간

     

         선점 스케줄링
    타이틀1 처리방식
    라운드 로빈 스케줄링 - RR (Round Robin)
    - 대화식 사용자 위한 시분할 시스템(Time Sharing System) 위해 고안
    - 준비 큐(FCFS)에 의해 보내진 각 프로세스는 같은 크기의 CPU시간 할당 받음
    - 프로세스가 할당된 시간 내 처리 완료하지 못하면 준비 큐 리스트의 가장 뒤로 보내지고 CPU는 대기 중인 다음 프로세스로 넘어감

    최소잔여 시간 스케줄링 - SRT(Short Remaining Time)
    - 남은 처리 시간이 가장 짧다고 판단되는 프로세스 먼저 수행
    - 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
    - 긴 작업은 SJF보다 대기 시간이 김
    멀티레벨 큐 - 다단계 큐(Multi-level Queue)
    - 작업을 여러 종류 그룹의 분할
    - 여러 개 큐를 이용 상위 단계 작업에 의해 하위 단계 작업이 선점당함
    - 준비 상태 큐를 여러 종류로 분할 하지만 다른 큐로 작업 이동은 불가
    - 각 큐는 자신만의 독자적인 스케줄링을 가짐

    다단계 피드백 큐 - Multi-level Feedback Queue
    - 입출력 위주와 CPU 위주인 프로세스 특성에 따라 큐마다 서로 다른 CPU Time Slice(Time Quantum) 부여
    - 새로운 프로세스는 높은 우선순위, 프로세스 실행 시간 길어질수록(Aging) 점점 낮은 우선순위 큐로 이동(맨 마지막 단계에서는 Round Robin 처리)
    - 하위 단계로 갈수록 할당 시간 증가하여 공평성 부여

     

    ▶ 다단계 큐와 다단계 피드백 큐의 비교
    구분 다단계 큐 다단계 피드백 큐
    대기 큐(Time Quantum) 동일 다름
    우선순위 작업별 순서별
    큐 간 이동 없음 있음
    공통점 무한대기 방지, 선점 스케줄링

     

     

     

     

     

     

     

     

     

     

    320x100

    댓글