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

[정보처리기사 실기] 8. 응용 SW 기초 기술 활용

by 아마도개발자 2024. 4. 10.

운영체제 종류

(1) 운영체제의 개념

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

(2) 운영체제의 종류

  • Windows 운영체제
    • 특징: GUI 제공, 선점형 멀티태스킹 방식 제공, 자동감지 기능 제공, OLE 사용
  • Unix 계열 운영체제
    • 특징
      • 처음부터 다양한 시스템에 서로 인식할 수 있고, 멀티 태스킹을 지원
      • 대화식 운영체제 기능, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템
    • 리눅스 운영체제
      • 유닉스 기반으로 개발, 소스 코드가 공개된 오픈소스
    • 맥 운영체제
      • 유닉스 기반으로 개발한 그래픽 사용자 인터페이스 기반의 운영체제
    • 안드로이드 운영체제
      • 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 운용 프로그램을 포함하고 있는 운영체제
        • 리눅스 기반, 자바와 코틀린, 런타임 라이브러리, 안드로이드 소프트웨어 개발 키트

(3) 운영체제 핵심 기능

  • 운영체제는 중앙처리장치, 메모리, 스토리지, 주변 기기 등을 관리(메모리 관리, 프로세스 관리)

(4) 메모리

  • 메모리 관리 기법
    • 반입 기법: 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법(요구 반입 기법, 예상 반입 기법)
    • 배치 기법: 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법(최초 적합, 최적 적합, 최악 접합)
    • 할당 기법: 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 기법(연속 할당 기법, 분산 할당 기법)
    • 교체 기법: 재배치 기법으로 주기억장체 있는 프로세스 중 어떤 프로세스를 제거할 것인지를 결정하는 기법(프로세스의 Swap In/Out)
  • 메모리 배치 기법
    • 최초 적합: 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
    • 최적 적합: 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
    • 최악 적합: 프로세스의 가용 공간 중에서 가장 큰 공간에 할당하는 방식
  • 메모리 할당 기법
    • 연속 할당 기법
      • 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장하는 방법
      • 연속 할당 기법은 프로세스를 주기억장치에 연속으로 할당하는 기법
      • 단일 분할 할당 기법, 다중 분할 할당 기법
    • 분산 할당 기법
      • 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치하는 기법
      • 주로 가상기억장치에서 사용
      • 페이징 기법, 세그먼테이션 기법, 페이지/세그먼테이션 기법
  • 메모리 교체 기법
기법 설명
FIFO 각 페이지가 주기억장치에 적재될 때마다 가장 오래 있던 페이지를 교체
LRU 가장 오랫동안 사용되지 않은 페이지를 교체
LFU 참조 횟수가 가정 적은 페이지를 선택하여 교체
OPT 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
NUR 최근에 사용하지 않은 페이지를 교체
SCR FIFO의 단점을 보완

 

(5) 프로세스

  • 개념
    • CPU에 의해 처리되는 프로그램
    • 실행 중인 프로그램을 의미, 작업 또는 태스크라고도 불림
  • 상태
    • 생성 상태: 사용자에 의해 프로세스가 생성된 상태
    • 준비 상태: CPU를 할당받을 수 있는 상태
    • 실행 상태: 프로세스가 CPU를 할당받아 동작 중인 상태
    • 대기 상태: 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태
    • 완료 상태: 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
  • 프로세스 상태 전이
    • 개념: 하나의 작업이 컴퓨터 시스템에 입력되어 완료되기 까지 프로세스의 상태가 준비, 실행 및 대기 상태로 변하는 활동
    • 종류
      • 디스패치: 준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당(문맥교환 발생)
      • 타이머 런 아웃: CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB저장, CPU 반납 후 다시 준비상태로 전환
      • 블록: 실행 상태의 프로세스가 지정된 시간을 초과하기 전에 사건이 발생하면 CPU를 스스로 반납하고 입출력 완료까지 대기상태로 전이
      • 웨이크 업: 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 알려주고, 준비 상태로 전이
  • 프로세스 스케줄링
    • 개념
      • CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리
      • 처리율과 CPU 이용률을 증가시키고 오버헤드, 응답시간, 반환시간, 대기시간을 최소화
    • 유형
      • 선점형 스케줄링
      • 비선점형 스케줄링
구분 선점형 스케줄링 비선점형 스케줄링
장점 -비교적 빠른 응답 -응답시간 예상이 용이
단점 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 짧은 작업을 수행하는 프로세스가 긴 작업 종료까지 대기
알고리즘 -라운드 로빈
-SRT
-다단계 큐
-다단계 피드백 큐
-우선순위
-기한부
-FCFS
-HRN
-SJF
활용 실시간 응답 환경 리시간 편차가 적은 특정 프로세스 환경

 

 

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

알고리즘 유형 동작 방식 특징
라운드 로빈 프로세스는 같은 크기의 CPU 시간을 할당, 할당 시간내 처리되지 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기중인 다음 프로세스로 넘어가는 기법 -균등한 CPU점유시간
-시분할 시스템 사용
SRT 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리시간이 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점 짧은 수행 시간 프로세스를 우선 수행
다단계 큐 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점 당하는 스케줄링 기법 독립된 스케줄링 큐
다단계 피드백 큐 FCFS와 라운드 로빈을 혼합한 것 큐마다 다른 시간 할당량



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

알고리즘 유형 동작 방식 특징
우선순위 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당하는 기법 주요/긴급 프로세스에 대한 우선 처리
기한부 작업들이 명시된 기간이나 기한 내에 완료되도록 계획하는 기법 요청에 명시된 시간 내 처리를 보장
FCFS 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당(FIFO) 도착한 순서대로 처리
SJF 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유 기아 현상 발생 가능성
HRN 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택 기아 현상 최소화 기법



  • 프로세스 관리-교착상태
    • 교착상태 개념: 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태
  • 교착상태 발생 조건
    • 상호 배제: 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
    • 점유와 대기: 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
    • 비선점: 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능한 상태
    • 환형 대기: 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태
  • 교착상태 해결 방법
    • 예방, 회피, 발견, 복구

(6) 가상화

  • 가상화 개념
    • 가상화는 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
    • 대부분의 서버는 용량의 20% 정도만을 사용하는데, 가상화를 통해 서버의 가동률을 60~70% 이상으로 올릴 수 있다
  • 가상화 종류
    • 플랫폼 가상화: 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 기법
    • 리소스 가상화: 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법
  • 가상화 기술요소
기술요소 설명
컴퓨터 가상화 - 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
- 서버 가상화를 통해 하나의 시스템에서 1개 이상의 운영체제를 동시에 가동시킬 수 있으므로, 서버 이용률이 크게 향상
- 하이퍼바이저
스토리지 가상화 - 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
- 이기종 스토리지 시스템의 통합을 가능하게 하는 기술
- 분산 파일 시스템
I/O 가상화 - 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 i/o 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적으로 연결을 지원하는 기술
- 가상 네트워크 인터페이스 카드
컨테이너 - 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
- 하이퍼바이저 없이 운영체제가 격리된 프로세스로 동작하기 때문에 오버헤드가 낮음
- 도커
분산처리기술 -여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술
네트워크 가상화 기술 -물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치의 가상화를 통한 가상 네트워크를 지원하는 기술
- SDN

 

(7) 클라우드 컴퓨팅

  • 클라우드 컴퓨팅 개념
    • 클라우드 컴퓨팅 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술
  • 클라우드 컴퓨팅 분류
    • 사설 클라우드: 기업 또는 조직 내부에서 보유하고 있는 컴퓨터 자원을 사용하여 내부에 구축되어 운영되는 클라우드(보안성)
    • 공용 클라우드: 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드(확장성, 유연성)
    • 하이브리드 클라우드: 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드(형태 변경 가능)
  • 클라우드 컴퓨팅 유형
    • 인프라형 서비스(IaaS): 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
    • 플랫폼형 서비스(PaaS): 인프라를 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
    • 소프트웨어형 서비스(SaaS): 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스

네트워크 기초 활용하기

(8) 네트워크 개념

- 네트워크: 원하는 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라
- 분류
    - WAN: 광대역 네트워크로 LAN에 비해 전송거리가 넓음. 라우팅 알고리즘 필요
    - LAN: 근거리 네트워크로 한 건물 또는 작은 지역을 커버하는 네트워크

(9) OSI 7계층

계층이름, 설명, 프로토콜, 전송단위, 장비
응용계층, 사용자와 네트워크 간 응요어비스 연결, HTTP,FTP, 데이터, 호스트
표현 계층, 데이터 형식 설정, 부호교환, 암,복호화, 압축 , JPEG,MPEG
세션 계층, -송수신 간의 논리적인 연결, -연결 접속, 동기제어, RPC, NetBIOS
전송 계층, -송수신 프로세스 간의 연결, -데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어, TCP,UDP, 세그먼트 L4
네트워크 계층, -단말기 간 데이터 전송을 위한 최적화된 경로 제공, IP,ICMP, 패킷, 라우터
데이터링크 계층, -인접 시스템 간 데이터 전송, 전송 오류 제어 -동기화, 오류 제어, 흐름 제어, 회선 제어, HDLC,PPP, 프레임, 브리지,스위치
물리 계층, -0과1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환,RS-232C, 비트 ,허브

(10) 프로토콜

  • 프로토콜 개념
    • 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약
  • 프로토콜 3요소
    • 구문, 의미, 타이밍
  • 네트워크 계층 프로토콜
    • IP: 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고 받는 데 사용하는 통신 프로토콜
    • ARP: IP 네트워크상에서 IP 주소를 MAC 주소로 변환하는 프로토콜
    • RARP: IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP 주소를 요청하기 위한 프로토콜
    • ICMP: IP 동작 과정에서의 전송 오류가 발생하는 경우에 오류 정보를 전송하는 목적으로 사용하는 프로토콜
    • IGMP: 인터넷 그룹 관리 프로토콜은 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버쉽을 구성하는 데 사용하는 통신 프로토콜
    • 라우팅 프로토콜: 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜