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

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

by SungJe 2020. 7. 21.

1. 운영체제 기초 활용하기

운영체제

  • 개요 : 컴퓨터와 사용자 간의 인터페이스로서 동작하는 시스템 소프트웨어
  • 기능
    • 프로세서, 기억 장치, 입·출력 장치, 파일 및 정보 등의 자원 관리
    • 효율적인 자원 관리를 위한 스케줄링 제공
    • 사용자 편의성 증대를 위한 인터페이스 제공
    • 하드웨어와 네트워크를 관리·제어
    • 데이터 관리 및 자원 공유 기능 제공
    • 시스템 오류 검출 및 복구
    • 자원 보호 기능 제공
  • 주요 자원 관리
자원 기능
프로세스 관리 프로세스 스케줄링 및 동기화 관리 담당
프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당
기억장치 관리 프로세스에게 메모리 할당 및 회수 관리 담당
주변장치 관리 ·출력 장치 스케줄링 및 전반적인 관리 담당
파일 관리 파일의 생성과 삭제, 뱐걍, 유지 등의 관리 담당
  • 성능 평가 기준
기준 설명
처리 능력(Throughput) 일정 시간 내에 시스템이 처리하는 일의 양
반환 시간(Turn Around Time) 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
사용 가능도(Availability) 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
신뢰도(Reliability) 시스템이 주어진 문제를 정확하게 해결하는 정도

 

Windows

  • 개요 : 1990년대 마이크로소프트(Microsoft) 사가 개발한 운영체제

  • 특징

    • 그래픽 사용자 인터페이스(GUI : Graphic User Interface)

    • 선점형 멀티태스킹(Preemptive Multi-Tasking)

    • PnP(Plug and Play, 자동 감지 기능)

    • OLE(Object Linking and Embedding)

    • 255자의 긴 파이명

    • Single-User 시스템

 

UNIX

  • 개요 : 1960년대 AT&T Bell 연구소, MIT, General Electric이 공동 개발한 운영체제

  • 특징

    • 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제

    • 소스가 공개된 개방형 시스템(Open System)

    • 대부분 C 언어로 작성되어 이식성과 호환성이 높음

    • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원

    • 네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합

    • 트리 구조의 파일 시스템

  • 시스템 구성
구성 설명
커널(Kernel)
UNIX의 핵심, 부틸될 때 주기억장치에 적재된 후 상주하며 실행됨
하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당
프로세스 관리, 기억장치 관리, 파일 관리, 입·출력 관리, 프로세스간 통신 등 여러 기능을 수행
쉘(Shell) 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
시스템과 사용자 간의 인터페이스를 담당
주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재
파이프라인 기능을 지원하고, 입·출력 재지정을 통해 출력과 입력의 방향을 변경 가능
유틸리티  프로그램
(Utility Program)
사용자가 작성한 응용 프로그램을 처리하는 데 사용
에디터, 컴파일러, 인터프리터, 디버거 등

 

LINUX

  • 개요 : 1991년 리누스 토발즈(Linus Torvalds)가 UNIX를 기반으로 개발한 운영체제

  • 특징

    • 프로그램 소스 코드가 무료로 공개됨

    • 프로그래머가 원하는 기능을 추가 가능

    • 다양한 플랫폼에 설치하여 사용 가능하며, 재배포가 가능

    • UNIX와 완벽하게 호환되며 대부분의 특징이 UNIX와 동일

 

MacOS

  • 개요 : 1980년대 애플(Apple) 사가 UNIX를 기반으로 개발한 운영체제

  • 특징

    • 애플 사에서 생산하는 제품에서만 사용

    • 드라이버 설치 및 install과 uninstall의 과정이 단순함

 

기억장치 관리

  • 개요 : 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 위치 등을 지정하여 효율적으로 사용

  • 기억장치 계층 구조

  • 기억장치 관리 전략

전략 설명
반입(Fetch)
보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정하는 전략
요구 반입(Demand Fetch) : 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
예상 반입(Anticipatory Fetch) : 참조될 프로그램이나 데이터를 미리 예상하여 적재
배치(Placement)
새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지 결정하는 전략
최초 적합(First Fit) : 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치
최적 적합(Best Fit) : 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치
최악 적합(Worst Fit) : 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치
교체
(Replacement)
주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 어느 영역을 교체하여 사용할 것인지 결정하는 전략
종류 : FIFO, OPT, LRU, LFU, NUR, SCR 등

 

가상기억장치

  • 개요 : 보조기억장치의 일부를 주기억장치처럼 사용

  • 특징

    • 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용

    • 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있음

    • 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업이 필요

    • 블록 단위로 나누어 사용하므로 단편화를 해결 가능

  • 구현 방법

기법 설명
페이징
(Paging)

가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 적재시켜 실행
- 페이지(Page) : 프로그램을 일정한 크기로 나눈 단위
- 페이지 프레임(Page Frame) : 페이지 크기로 일정하게 나누어진 주기억장지의 단위
- 페이지 맵 테이블(Page Map Table) : 주소 변환을 위한 페이지의 위치 정보
외부 단편화는 발생하지 않으나 내부 단편화는 발생 가능
페이지 맵 테이블 사용으로 비용이 증가되고, 처리 속도가 감소
세그먼테이션
(Segmentation)

가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 적재시켜 실행
- 세그먼트(Segmentation) : 프로그램을 논리적인 크기로 나눈 단위, 각 세그먼트는 고유한 이름과 크기를 갖음
- 세그먼트 맵 테이블(Segment Map Table) : 주소 변환을 위한 세그먼트의 위치 정보
내부 단편화는 발생하지 않으나 외부 단편화는 발생 가능
기억공간을 절약하기 위해 사용
  • 관리 사항

사항 설명
페이지 크기 페이지 크기가 작을 경우
- 페이지 단편화가 감소, 페이지가 주기억장치로 이동하는 시간이 단축
- 효율적인 워킹 셋을 유지
- Locality에 더 일치할 수 있기 때문에 기억장치 효율이 높음
- 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐
- 디스크 접근 횟수가 많아져 전체적인 입·출력 시간이 증가
페이지 크기가 클 경우
- 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐
- 디스크 접근 횟수가 줄어들어 전체적인 입·출력 효율성이 증가
- 페이지 단편화가 증가, 페이지가 주기억장치로 이동하는 시간이 증가
- 프로세스 수행에 불필요한 내용 까지도 주기억장치에 적재될 수 있음
구역성
(Locality)
프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
시간 구역성(Temporal Locality) : 프로세스 실행중 하나의 페이지를 집중적으로 액세스 하는 현상
공간 구역성(Spatial Locality) : 프로세스 실행중 일정 위치의 페이지를 집중적으로 액세스 하는 현상
워킹 셋
(Working Set)
프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상
페이지 부재 빈도
(Page Fault Frequency)
페이지 부재가 일어나는 횟수를 의미
페이지 부재율에 따라 주기억장치에 있는 페이지 프레임의 수를 조절하여 적정 수중으로 유지

http://blog.skby.net/pff-page-fault-frequency/

프리페이징
(Prepaging)
처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 페이지를 한번에 페이지 프레임에 적재하는 기법
기억장치에 들어온 페이지들 중에서 사용되지 않는 페이지가 많을 수도 있음
스래싱
(Thrashing)
프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
프로세스 수행 과정중 자주 페이지 부재가 발생함으로써 나타나는 현상으로, 전체 시스템의 성능이 저하됨

https://faithpac27.tistory.com/entry/%EC%93%B0%EB%A0%88%EC%8B%B1-Thrashing-%EC%9D%B4%EB%9E%80

 

페이지 교체 알고리즘

  • 개요 : 페이지 부재(Page Fault)가 발생했을 때 주기억장치의 모든 페이지 프레임이 사용 중이면 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 기법

  • 종류

알고리즘 설명
OPT
(OPTimal replacement)
앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
벨레이디(Belady)가 제안, 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
FIFO
(First In First Out)
각 페이지가 주기억장치에 적재될 때, 시간을 기억하여 가장 먼저 들어온 페이지를 교체하는 기법
LRU
(Least Recently Used)
각 페이지마다 계수기(Counter)나 스택(Stack)을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
LFU
(Least Frequently Uesd)
사용 빈도가 가장 적은 페이지를 교체하는 기법
NUR
(Not Used Recently)
LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법
최근의 사용 여부를 확인하기 위해서 각 페이지마다 참조 비트와 변형 비트를 사용
SCR
(Second Chance Replacement)
가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법
FIFO 기법의 단점을 보완하는 기법

 

프로세스

  • 개요 : 프로세서(CPU)에 의해 처리되는 사용자 프로그램, 즉 실행 중인 프로그램을 의미

  • PCB(Process Control Block) : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳

  • 스레드(Thread) : 프로세스 내에서의 작업 단위, 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위

    • 사용자 수준의 스레드 : 사용자가 만든 라이브러리를 사용하여 운용, 속도는 빠르지만 구현이 어려움

    • 커널 수준의 스레드 : 운영체제의 커널에 의해 운용, 구현이 쉽지만 속도가 느림

  • 프로세스 상태

상태 설명
제출(Submit) 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
접수(Hold) 제출된 작업이 스풀 공간인 디스크에 할당 위치에 저장된 상태
준비(Ready) 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
프로세스는 준비상태 큐에서 실행을 준비중
실행(Run) 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
·출력(I/O) 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이
수행이 완료되기 전에 프로세서 할당 시간이 종료(Timer Run Out)되면 준비 상태로 전이
대기(Wait) 프로세스에 입·출력 처리가 완료될 때까지 대기하고 있는 상태
종료(Terminated) 프로세스의 실행이 끝나고 할당이 해제된 상태

  • 프로세스 전이

전이 설명
Dispatch 준비 상태에서 대기하고 있는 프로세스 중 프로세서를 할당받아 실행 상태로 전이되는 과정
Wake Up ·출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
Spooling 시스템의 성능 향상을 위해 입·출력 데이터를 나중에 한 번에 ·출력하기 위해 디스크에 저장하는 과정

 

스케줄링

  • 개요 : 프로세스가 생성되어 실행될 때 필요한 시스템의 자원을 해당 프로세스에게 할당하는 작업

  • 스케줄링 종류

종류 설명
장기 스케줄링 프로세스가 시스템의 자원을 차지할 수 있을지 결정하여 준비상태 큐로 보내는 작업
작업 스케줄링(Job Scheduling)이라고도 하며, 작업 스케줄러에 의해 수행
중기 스케줄링 어떤 프로세스들이 CPU를 할당받을지 결정하는 작업
단기 스케줄링 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
프로세서 스케줄링(Processor Scheduling)이라고도 하며, 프로세서 스케줄러에 의해 수행
  • 스케줄링 기법

기법 설명
비선점 스케줄링
(Non-Preemptive)
이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
프로세스가 CPU를 할당받으면 완료될 때까지 CPU를 사용
응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합
알고리즘 종류 : FCFS, SJF, 우선순위, HRN, 기한부 등
선점 스케줄링
(Preemptive)
프로세스가 CPU를 할당받아 실행하고 있을 때, 우선순위가 높은 프로세스가 CPU를 강제로 빼앗아 사용 가능한 스케줄링 기법
우선순위가 높은 프로세스를 빠르게 처리 가능
빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용
알고리즘 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등

 

2. 데이터베이스 기초 활용하기

데이터베이스 관리 시스템

  • 개요 : 데이터를 저장하고 저장된 데이터를 관리하여 필요한 정보를 제공해 주는 전체 시스템

  • 데이터베이스 관리 시스템 특징

특징 설명
데이터 무결성 부적절한 자료가 입력되어도 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
데이터 일관성 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없는 성질
데이터 회복성 장애가 발생했을 시 특정 상태로 복구되어야 하는 성질
데이터 보안성 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
데이터 효율성 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 요구 조건을 만족시켜야 하는 성질
  • 데이터베이스 관리 시스템 종류

    • 계층형(Hierarchical) DBMS : 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스

    • 망형(Network) DBMS : 데이터의 구조를 네트워크 상의 망상 형태로 논리적으로 표현한 데이터 모델

    • 관계형(Relational) DBMS : 데이터를 저장하는 테이블의 일부를 다른 테이블과 상관관계를 정리한 데이터베이스 관리 시스템

 

E-R 모델

  • 개요 : 개념적 데이터 모델의 가장 대표적인 것, 1976년 피터 첸에 의해 제안

  • 특징

    • 개체 타입(Entity Type)과 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현

    • 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사

    • 특정 DBMS를 고려한 것이 아님

    • 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 표현 가능

  • ERD(E-R Diagram) : E-R 모델의 기본 아이디어를 이해하기 쉽게 기호를 사용하여 시각적으로 표현한 그림

기호 의미
개체(Entity) 타입
관계(Relationship) 타입
속성(Atribute) 타입
다중 속성
기본키 속성
복합 속성
1:1, 1:N, N:M 등의 개체 간 관계에 대한 대응수
개체 타입과 속성을 연결

 

3. 네트워크 기초 활용하기

네트워크

  • 개요 : 통신설비를 갖춘 컴퓨터로 서로 연결하는 조직이나 체계, 통신망을 의미

  • 형태

    • LAN(Local Area Network) : 한 건물 또는 작은 지역을 커버하는 네트워크

    • CAN(Campus Area Network): LAN보다 더 큰 규모에서 사용, 서로 다른 캠퍼스 기관과 사무실을 연결하는 네트워크

    • WAN(Wide Area Network) : 두 개 이상의 LAN을 넓은 지역에 걸쳐 연결하는 네트워크

    • Intranet : 인터넷에서 사용하는 회선과 여러 기반 기술을 활용한 사설 네트워크

 

OSI(Open System Interconnection) 7 계층

  • 개요 : 다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약(Protocol)

  • OSI 7 계층 구조

계층 계층 구성 PDU 계층별 역할 계층별 프로토콜



7계층 Application Data 서비스 제공 FTP, POP, SMTP, Telent, HTTP, TFTP, SNMP, DNS, DHCP
6계층 Presentation 포맷 변환 JPEG, MPEG, SMB
5계층 Session 응용 제어 SSH, TLS



4계층 Transport Segments 데이터 전송 TCP, UDP
3계층 Network Packets 경로 선택 IP, ICMP, IGMP, ARP, RARP
2계층 Data Link Frames 에러 관리 MAC, LLC, PPP
1계층 Physical Bits 물리적 접속제어 RS232C

 

네트워크 장비

  • 네트워크 인터페이스 카드(NIC : Network Interface Card) : 컴퓨터와 컴퓨터 또는 네트워크를 연결하는 장치, 정보 전송 시 정보가 케이블을 통해 전솔 될 수 있도록 정보 형태를 변경

  • 허브(Hub) : 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치, 각 회선을 통합적으로 관리하며 신호 증폭 기능을 하는 리피터의 역할도 포함

    • 더미 허브(Dummy Hub) : 네트워크에 흐르는 모든 데이터를 단순히 연결하는 기능만을 제공

    • 스위칭 허브(Swiching Hub) : 네트워크상에 흐르는 데이터의 유무 및 흐름을 제어하여 각 노드가 허브의 최대 대역폭을 사용 가능한 지능형 허브

  • 리피터(Repeater) : 전송되는 신호가 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전손 하는 역할을 수행

  • 브리지(Bridge) : LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹(세그먼트)을 연결하는 기능을 수행

  • 스위치(Switch) : 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 구성하는 장치

  • 라우터(Router) : 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가됨

  • 게이트웨이(Gateway) : 전 계층(1~7 계층)의 프로토콜 구조가 다른 네트워크의 연결을 수행

 

네트워크 프로토콜

  • 개요 : 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약

  • 기본 요소

    • 구문(Syntax) : 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정

    • 의미(Semantics) : 두 기기 간의 정보 전송을 위한 협조사항과 오류 관리를 위한 제어 정보를 규정

    • 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정

  • 기능

기능 설명
단편화 송식 측에서 전송할 데이터를 정송에 알맞은 일정 크기의 작은 블록으로 자르는 작업
재결합 수신 측에서 단편화된 블록을 원래의 데이터로 모으는 것
캡슐화 단편화된 데이터에 프로토콜 제어 정보 등의 정보를 부가하는 것
흐름 제어 수신 측의 처리 능력에 따라 송식 측에서 송신하는 데이터의 전송량이나 전송 속도를 조절하는 기능
오류 제어 전송중에 발생하는 오류를 검출하고 정정하여 데이터나 제어 정보의 파손에 대비하는 기능
동기화 ·수신 측이 같은 상태를 유지하도록 타이밍을 맞추는 기능
순서 제어 전송되는 데이터 블록(PDU)에 전송 순서를 부여하는 기능
주소 지정 데이터가 목적지까지 정확하게 전송될 수 있도록 목적지 이름, 주소, 경로를 부여하는 기능
다중화 한 개의 통신 회선을 여러 가입자들이 동시에 사용하도록 하는 기능
경로 제어 ·수신 측 간의 송신 경로 중에서 최적의 패킷 교환 경로를 설정하는 기능

 

TCP/IP

  • 개요 : 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜

  • TCP(Transmission Control Protocol) : OSI 7 계층의 전송 계층에 해당, 신뢰성 있는 연결형 서비스를 제공

  • IP(Internet Protocol) : OSI 7계층의 네트워크 계층에 해당, 데이터그램을 기반으로 하는 비연결형 서비스를 제공

  • TCP/IP 구조

OSI TCP/IP 기능
응용 계층 응용 계층 응용 프로그램 간의 데이터 송·수신 제공
표현 계층
세션 계층
전송 계층 전송 계층 호스트들 간의 신뢰성 있는 통신 제공
네트워크 계층 인터넷 계층 데이터 전송을 위한 주소 지정
데이터 링크 계층 네트워크 인터페이스 계층 실제 데이터(프레임)를 송·수신 하는 역할
물리 계층