응용 SW 기초 기술 활용

뿌엑·2022년 5월 4일
0

정보처리기사

목록 보기
17/20


운영체제

  • 운영체제는 사용작 컴퓨터의 하드웨어를 쉽게 사용할 수 있게 인터페이스를 제공하는 소프트웨어이다.
  • 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영하는 것으로 사용자에 편의성을 제공한다.

운영체제 특징

  • 사용자 편의성 제공
    • 한정된 시스템 자원을 효과적으로 사용할 수 있게 관리 및 운영
  • 인터페이스 기능 담당
    • 컴퓨터 시스템과 사용자 연결
  • 스케줄링
    • 다중 사용자와 다중 응용 프로그램 환경에서 자원의 현 상태를 파악하고 자원 분배를 위한 스케줄링 담당
  • 자원 관리
    • CPU, 메모리 공간, 기억장치, 입출력 장치 등의 자원 관리
  • 제어 기능
    • 입출력 장치와 사용자 프로그램 제어

커널 기능

  • 운영체제는 크게 인터페이스(쉘) + 커널의 구조이다.
  • 커널에 운영체제의 핵심 기능이 모여 있으며 인터페이스는 이 기능을 쉽게 사용하도록 지원한다.
  • 쉘은 운영체계 바깥 부분에서 사용자 명령에 대한 처리를 담당하고, 커널은 하드웨어와 관련된 내부적 역할을 담당한다.

    커널 기능

    • 프로세스 관리
      • 프로세스 스케줄링 및 동기화 관리 담당
    • 기억장치 관리
      • 프로세스에 메모리 할당 및 회수 담당
    • 주변장치 관리
      • 입·출력 장치 스케줄링 및 전반적 관리 담당
    • 파일 관리
      • 데이터를 물리적 장치에 저장하거나 읽는 기능 수행

운영체제 종류

  • 윈도우즈(Windows)
    • MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 마이크로소프트사의 운영체제이다.
  • 유닉스(Unix)
    • 교육 및 연구기관에서 사용되는 범용 다중 사용자 방식의 시분할 운영체제이다.
  • 리눅스(Linux)
    • 유닉스를 기반으로 개발되고 소스 코드가 공개된 오픈소스 기반 운영체제이다.
  • 맥(Mac)
    • 애플이 유닉스를 기반으로 개발한 GUI 운영체제이다.
  • 안드로이드(Android)
    • 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스, 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하는 운영체제이다.

운영체제 핵심 기능

  • 운영체제는 중앙처리장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리한다.
  • 초기엔 메모리 용량이 제한적이라 소프트웨어 개발시 메모리 관리가 중요했으나, 현재는 운영체제에서 자동으로 관리하여 개발시 편리해진 측면이 있다.
  • 개발 및 시스템 환경이 클라우드로 전환되며 자원에 대한 관리 노력이 감소했다.

메모리 관리 기법

  • 반입 기법
    • 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
      • 요구 반입 기법
      • 예상 반입 기법
  • 배치 기법
    • 디스크에 있는 프로세스를 주기억장치의 어떤 위치에 저장할 것인지 결정하는 기법
      • 최초 적합(First-fit)
      • 최적 적합(Best-fit)
      • 최악 적합(Worst-fit)
  • 할당 기법
    • 실행할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 기법
      • 연속 할당 기법
      • 분산 할당 기법
  • 교체 기법
    • 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지를 결정하는 기법
      • 프로세스의 Swap In/Out
      • FIFO, Optimal, LRU, LFU, 시계 알고리즘, MFU

프로세스 관리

  • 한 프로세스는 여러 이벤트에 의해 서로 구분되는 상태 변화를 겪는다.

    프로세스 상태

    • 생성(Create) 상태
      • 사용자에 의해 프로세스가 생성된 상태
    • 준비(Ready) 상태
      • CPU를 할당받을 수 있는 상태
      • 준비 리스트(Ready List): 각각 우선순위를 부여하여 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당받음
    • 실행(Running) 상태
      • 프로세스가 CPU를 할당받아 동작 중인 상태
    • 대기(Waiting) 상태
      • 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리 완료까지 대기 리스트에서 기다리는 상태
      • 대기 리스트(Waiting List): 우선순위가 존재하지 않음
    • 완료(Complete) 상태
      • 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태

프로세스 스케줄링

  • 프로세스 스케줄링은 CPU를 사용하려 하는 프로세스 사이 우선순위를 관리하는 작업이다.

유형

  • 선점형 스케줄링
    • 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
    • 빠른 응답
    • 대화식 시분할에 적합
    • 라운드 로빈, SRT, 다단계 큐, 다단계 피드백 큐
  • 비선점형 스케줄링
    • 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환시까지 다른 프로세스는 CPU 점유를 할 수 없는 스케줄링 방식
    • 응답시간 예상 용이
    • 모든 프로세스에 대한 요구를 공정하게 처리
    • 우선순위, 기한부, FCFS, HRN, SJF

가상화

  • 가상화는 물리적 리소스를 사용자에게 하나로 보이게 하거나 하나의 물리적 리소스를 여러 개로 보이게 하는 기술이다.
  • 대부분 서버는 용량의 20% 정도만을 사용하는데 가상화를 통해 서버의 가동률을 60~70% 이상으로 올릴 수 있다.
  • 가상화 기술로 컴퓨팅 가상화, 스토리지 가상화, I/O 가상화가 있다.

클라우드 컴퓨팅

  • 클라우드 컴퓨팅은 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술이다.
  • 구성 가능한 컴퓨터 자원에 대해 어디서나 접근할 수 있다.

분류

  • 사설 클라우드
    • 기업 또는 조직 내부에서 보유하고 있는 컴퓨터 자원(IDC, 서버 등)을 사용하여 내부에 구축되어 운영되는 클라우드
    • 자체 컴퓨팅 자원으로 모든 하드웨어, 소프트웨어, 데이터 수용
  • 공용 클라우드
    • 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
    • 일정 비용을 지불하고 하드웨어, 소프트웨어 등을 사용
  • 하이브리드 클라우드
    • 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드
    • 사설 클라우드의 약점인 구축 비용 문제와 공용 클라우드의 약점인 보안성 확보 문제 해결

유형

  • 인프라형 서비스(IaaS; Infrastructure as a Service)
    • 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
    • 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행
  • 플랫폼형 서비스(PaaS; Platform as a Service)
    • 인프라를 생성, 관리하는 복잡함없이 애플리케이션 개발, 실행 관리할 플랫폼을 제공하는 서비스
    • SaaS의 개념을 개발 플랫폼에 확장한 방식으로 개발을 위한 플랫폼을 구축하지 않고도 웹에서 필요한 개발 요소를 쓸 수 있게 함
  • 소프트웨어형 서비스(SaaS; Software as a Service)
    • 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
    • 주문형 소프트웨어라고도 함

네트워크

  • 네트워크는 원하는 정보를 수신자 또는 기기에 정확히 전송하기 위한 기반 인프라이다.

거리에 따른 네트워크 분류

  • WAN(광대역 네트워크)
    • LAN에 비해 전송 거리가 넓음, 라우팅 알고리즘 필요
    • LAN 대비 에러율이 높고 전송 지연이 큼
  • LAN(근거리 네트워크)
    • 한 건물 또는 작은 지역을 커버하는 네트워크

OSI 7계층

  • 국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명한 개방형 시스템 상호 연결 모델
  • 각 계층은 서로 독립적으로 구성되어 있고, 하위 계층의 기능을 이용하여 상위 계층에 기능 제공

네트워크 프로토콜

  • 프로토콜은 서로 다른 시스템이나 기기 간 데이터 교환을 원활히 하기 위한 표준화된 통신규약이다.

프로토콜 3요소

  • 구문(Syntax): 시스템 간 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등 규정
  • 의미(Semantic): 시스템 간 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
  • 타이밍(Timing): 시스템 간 정보 전송을 위한 속도 조절과 순서 관리 규정

IPv4

  1. 개념
  • IPv4는 인터넷에서 사용되는 패킷 교환 네트워크에서 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층 프로토콜이다.
  1. IPv4 헤더
  • IP 패킷의 앞부분에서 주소 등 각종 제어정보를 담고 있는 부분이다.
  • IPv4 헤더 사이즈는 옵션 미지정시 최소 20바이트 이상이다.(IPv6는 최소 40바이트 이상이다)
  1. IPv4 주소체계
  • IPv4의 주소체계는 10진수로 총 12자리이며 네 부분으로 나뉜다.
  • 각 부분은 0~255까지 3자리 수로 표현된다.
  • IPv4 주소는 32비트로 구성되어 있다.
  • 32비트 IP 주소는 Network를 나타내는 부분과 Host를 나타내는 부분으로 구성되어 있고, Network 부분과 Host 부분을 구분하는 것은 서브넷 마스크이다.

IPv6

  1. 개념
  • IPv6는 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜로 제정된 차세대 인터넷 프로토콜이다.
  • 현재 IPv4가 지닌 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해 128Bit 주소체계를 가진 인터넷 프로토콜이다.
  1. 특징
  • IP 주소 확장
    • IPv4의 32비트 주소 공간에서 확장되어 128비트의 주소 공간을 지닌다.
  • 이동성
    • IPv6 호스트는 네트워크의 물리적 위치에 제한받지 않고 같은 주소를 유지하면서 자유롭게 이동 가능하다
  • 인증 및 보안 기능
    • 패킷 출처 인증과 데이터 무결성 및 비밀 보장 기능을 IP 프로토콜 체계에 반영했다.
  • 개선된 QoS 지원
    • 흐름 레이블(Flow Label) 개념을 도입하여 특정 트래픽은 별도의 처리(실시간 통신 등)를 통해 높은 품질의 서비스를 제공한다.
  1. IPv6 헤더
  • 기존 IPv4 헤더에 비해 IPv6 헤더는 IPv6 출발지 및 목적지 주소의 길이로 인해 커졌고, IPv4의 불필요 필드를 제거하여 헤더가 단순해졌다.
  1. IPv6 주소체계
  • IPv4는 32비트의 주소 공간을 제공하지만 IPv6는 128비트의 주소 공간을 제공한다.
  • IPv6 주소는 일반적으로 16비트 단위로 나눠지며, 각 16비트 블록은 다시 4자리 16진수로 변환되고 콜론으로 구분된다.
  • 64비트를 기준으로 앞 64비트를 네트워크 주소로, 뒤 64비트를 네트워크에 연결된 랜카드 장비 등에 할당하는 인터페이스 주소로 활용한다.

0개의 댓글