20 분 소요

2020 시나공 정보처리기사 필기책 참고

주의! 중요도가 낮은 항목(C)은 일부 제외

1. 운영체제의 개념 – A

- 운영체제(OS; Operating System)의 정의

  • 시스템의 자원을 효율적으로 관리
  • 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공
  • 사용자와 하드웨어 간의 인터페이스로서 동작하는 시스템 S/W
  • 응용 프로그램이 유용한 작업을 할 수 있도록 환경 제공

- 운영체제의 목적

  • 처리 능력 : 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환 시간 : 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  • 사용 가능도 : 즉시 사용 가능한 정도
  • 신뢰도 : 문제를 정확하게 해결하는 정도

- 운영체제의 기능

  • 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원 관리
  • 자원의 스케줄링 기능 제공
  • 편리한 인터페이스 제공
  • 각종 하드웨어와 네트워크를 관리 및 제어
  • 데이터를 관리하고 데이터 및 자원의 공유 기능 제공
  • 시스템의 오류를 검사하고 복구
  • 자원 보호 기능 제공
  • 입출력에 대한 보조 기능 제공
  • 가상 계산기 기능 제공

- 운영체제의 주요 자원 관리

  • 프로세스 관리 : 스케줄링 및 동기화 관리, 생성과 제거, 시작과 정지, 메시지 전달
  • 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 관리
  • 주변장치 관리 : 입출력장치 스케줄링 및 전반적인 관리
  • 파일 관리 : 파일의 생성과 삭제, 변경, 유지 등의 관리

- 운영체제의 종류

  • Windows : MS사 개발. GUI
  • UNIX : AT&T 벨 연구소, MIT, General Electric 공동 개발. CLI
  • LINUX : UNIX와 호환이 가능한 커널. 누구나 제한 없이 활용 및 재배포 가능. CLI
  • MacOS : 애플사가 UNIX를 기반으로 개발. GUI
  • MS-DOS : Windows 이전에 사용되던 운영체제. CLI
  • 단일 작업 처리 시스템에는 MS-DOS
  • 다중 작업 처리 시스템에는 Windows, UNIX, LINUX, MacOS 등
  • 개인용 운영체제는 Windows, MacOS, MS-DOS
  • 서버용 운영체제는 UNIX, LINUX


2. Windows – C

  • GUI
  • 선점형 멀티태스킹
  • PnP(Plug and Play, 자동 감지 기능)
  • OLE
  • 255자의 긴 파일명
  • Single-User 시스템


3. UNIX/LINUX/MacOS – A

- UNIX의 개요 및 특징

  • 대화식 운영체제. 소스가 공개된 개방형 시스템
  • C언어로 작성되어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
  • 크기가 작고 이해하기 쉬움
  • Multi-User, Multi-Tasking 지원
  • 많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합
  • 트리 구조의 파일 시스템
  • 전문적인 프로그램 개발에 용이
  • 다양한 유틸리티 프로그램 존재

- UNIX 시스템의 구성

  • 커널
    • 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하며 실행
    • 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할
    • 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환
    • 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
    • 시스템과 사용자 간의 인터페이스 역할
    • DOS의 COMMAND.COM과 같은 기능
    • 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재
    • 보조 기억장치에서 교체 처리 가능
    • 파이프라인 기능을 지원하고 입출력 재지정을 통해 출력과 입력의 방향을 변경 가능
    • 공용 쉘이나 사용자 자신이 만든 쉘을 사용할 수 있음
  • Utility Program
    • 일반 사용자가 작성한 응용 프로그램을 처리
    • DOS에서의 외부 명령어에 해당
    • 에디터, 컴파일러, 인터프리터, 디버거 등

- UNIX에서의 프로세스 간 통신

  • 각 프로세스는 시스템 호출을 통해 커널의 기능을 사용
  • 시그널, 파이프, 소켓 등을 사용
  • 시그널 : 간단한 메시지를 이용하여 통신. 초기 UNIX 시스템에서 사용됨
  • 파이프 : 한 프로세스의 출력이 다른 프로세스의 입력으로 사용되는 단방향 통신 방식
  • 소켓 : 프로세스 사이의 대화를 가능하게 하는 쌍방향 통신 방식

- LINUX의 개요 및 특징

  • UNIX를 기반으로 개발
  • 프로그램 소스 코드가 무료로 공개되어 원하는 기능을 추가할 수 있음
  • 다양한 플랫폼에 설치하여 사용 가능. 재배포 가능
  • UNIX와 완벽하게 호환
  • 대부분의 특지잉 UNIX와 동일

- MacOS의 개요 및 특징

  • 애플사가 UNIX를 기반으로 개발
  • 애플 사에서 생산하는 제품에서만 사용 가능
  • 드라이버 설치 및 install과 uninstall의 과정이 단순


4. 기억장치 관리의 개요 – A

- 기억장치 계층 구조의 특징

  • 레지스터 - 캐시 기억장치 - 주기억장치 - 보조기억장치
  • 상위의 기억장치일수록 접근 속도와 접근 시간이 빠르지만, 기억 용량이 적고 고가
  • 주기억장치는 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성. 주소를 이용한 액세스 가능
  • 레지스터, 캐시 기억장치, 주기억장치의 프로그램과 데이터는 CPU가 직접 액세스 할 수 있음
  • 보조기억장치에 있는 프로그램이나 데이터는 CPU가 직접 액세스 할 수 없음
  • 보조기억장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스 될 수 있음

- 기억장치 관리 전략의 개요

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

@ 반입(Fetch) 전략

  • 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정
  • 요구반입 : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
  • 예상반입 : 참조될 프ㅗ그램이나 데이터를 미리 예상하여 적재

@ 배치(Placement) 전략

  • 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정
  • 최초 적합 : 빈 영역 중에서 첫 번째 분할 영역에 배치
  • 최적 적합 : 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치
  • 최악 적합 : 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치

@ 교체(Replacement) 전략

  • 모든 영역이 이미 사용중인 상태에서, 어느 영역을 교체하여 사용할 것인지를 결정
  • FIFO, OPT, LRU, LFU, NUR, SCR 등


5. 가상기억장치 구현 기법 / 페이지 교체 알고리즘 – A

- 가상기억장치의 개요

  • 보조기억장치의 일부를 주기억장치처럼 사용하는 것
  • 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상 기억장치에 보관
  • 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리
  • 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용
  • 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있음
  • 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환작업이 필요
  • 연속 할당 방식에서 발생할 수 있는 단편화를 해결
  • 블록의 종류에 따라 페이징 기법과 세그멘테이션 기법으로 나눔

- 페이징(Paging) 기법

  • 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눔
  • 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행
  • 프로그램을 일정한 크기로 나눈 단위를 Page라고 함
  • Page 크기로 일정하게 나누어진 주기억장치의 단위를 Page Frame이라고 함
  • 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음
  • 주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 Page Map Table이 필요
  • Page Map Table 사용으로 비용이 증가되고, 처리 속도가 감소

- 세그멘테이션(Segmentation) 기법

  • 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적 단위로 나눈 후 주기억장치에 적재시켜 실행
  • 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 Segment라고 함
  • 각 Segment는 고유한 이름과 크기를 가짐
  • 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법
  • 기억공간을 절약하기 위함
  • 주소 변환을 위해서 Segment가 존재하는 위치 정보를 가지고 있는 Segment Map Table 필요
  • Segment가 주기억장치에 적재될 때 다른 Segment에게 할당된 영역을 침범할 수 없음. 기억장치 보호키 필요
  • 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음

- 페이지 교체 알고리즘

  • 페이지 부재가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정

@ OPT(최적 교체)

  • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
  • 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘

@ FIFO

  • 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
  • 이해하기 쉽고, 프로그래밍 및 설계가 간단

@ LRU(Least Recently Used)

  • 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
  • 각 페이지마다 계수기나 스택을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지 교체

@ LFU(Least Frequently Used)

  • 사용 빈도가 가장 적은 페이지를 교체

@ NUR(Not Used Recently)

  • 최근에 사용하지 않은 페이지를 교체
  • LRU에서 나타나는 시간적인 오버헤드를 줄일 수 있음
  • 각 페이지마다 참조 비트와 변형 비트를 사용

@ SCR(Second Chance Replacement, 2차 기회 교체)

  • 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위함
  • FIFO기법의 단점을 보완


6. 가상기억장치 기타 관리 사항 – A

- 페이지 크기

  • 페이지 크기가 작을 경우
    • 페이지 단편화가 감소, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듬
    • 효율적인 워킹 셋을 유지
    • 기억장치 효율이 높아짐
    • Page Map Table의 크기가 커지고, Mapping 속도가 늦어짐
    • 전체적인 입출력 시간은 늘어남
  • 페이지 크기가 클 경우
    • 페이지 단편화가 증가, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
    • 불필요한 내용까지도 주기억장치에 적재
    • Page Map Table의 크기가 작아지고, Mapping 속도가 빨라짐
    • 전체적인 이불력의 효율성 증가

- Locality

  • 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
  • 스래싱을 방지하기 위한 워킹 셋 이론의 기반
  • 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법. 가상기억장치 관리의 이론적 근거
  • Denning에 의해 구역성의 개념이 증명. 캐시 메모리 시스템의 이론적 근거
  • 시간 구역성
    • 하나의 페이지를 일정 시간 동안 집중적으로 액세스 하는 현상
    • 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음
    • Loop, Stack, Sub Routine, Counting, Totaling에 사용되는 변수
  • 공간 구역성
    • 일정 위치의 페이지를 집중적으로 액세스 하는 현상
    • 참조한 페이지 근처의 페이지를 계속 참조할 가능성이 높음
    • 배열 순회, 순차적 코드의 실행, 관련된 변수를 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때

- 워킹 셋(Working Set)

  • 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
  • 프로그램의 Locality 특징을 이용
  • 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정됨
  • 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 변경됨

- 페이지 부재 빈도 방식

  • 페이지 부재는 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상
  • 페이지 부재 빈도는 페이지 부재가 일어나는 횟수
  • 페이지 프레임의 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식
  • 운영체제는 임의의 페이지 프레임을 할당하고, 부재율이 상한선을 넘어가면 좀더 많은 페이지 프레임을 할당하고, 부재율이 하한선을 넘어가면 페이지 프레임을 회수

- 프리페이징(Prepaging)

  • 처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 한번에 페이지 프레임에 적재
  • 사용되지 않는 페이지가 많을 수도 있음

- 스래싱(Thrashing)

  • 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
  • 자주 페이지 부재가 발생함으로써 나타나는 현상. 시스템의 성능이 저하됨
  • 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 특정 시점까지는 높아짐
  • 정도가 더욱 커지면 스래싱이 나타나고, CPU 이용률은 급격히 감소
  • 스래싱 현상 방지 방법
    • 다중 프로그래밍의 정도를 적정 수준으로 유지
    • 페이지 부재 빈도를 조절하여 사용
    • 워킹 셋을 유지
    • 부족한 자원을 증설하고, 일부 프로세스를 중단시킴
    • CPU 성능에 대한 자료의 지속적 관리 및 분석으로 임계치를 예상하여 운영


7. 프로세스의 개요 – A

- 프로세스의 정의

  • 프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 실행중인 프로그램
  • 작업, 태스크라고도 함
  • PCB를 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체. 디스패치가 가능한 단위
  • 프로시저가 활동중인 것
  • 비동기적 행위를 일으키는 주체
  • 지정된 결과를 얻기 위한 일련의 계통적 동작
  • 목적 또는 결과에 따라 발생되는 사건들의 과정
  • 운영체제가 관리하는 실행 단위

- PCB(Process Control Block, 프로세스 제어 블록)

  • 운영체제가 프로세스에 대한 정요한 정보를 저장해 놓는 곳
  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성. 프로세스가 완료되면 PCB 제거
  • PCB에 저장된 정보
    • 프로세스의 현재 상태
    • 포인터
    • 프로세스 고유 식별자
    • 스케줄링 및 프로세스의 우선순위
    • CPU 레지스터 정보
    • 주기억장치 관리 정보
    • 입출력 상태 정보
    • 계정 정보

- 프로세스 상태 전이

  • 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것
  • 제출(Submit)
    • 작업을 시스템에 제출한 상태
  • 접수(Hold)
    • 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
  • 준비(Ready)
    • 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
    • 프로세스는 준비상태 큐에서 실행을 준비
    • 접수 상태에서 준비 상태로의 전이는 Job 스케줄러에 의해 수행
  • 실행(Run)
    • 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
    • 할당 시간이 종료되면 프로세스는 준비 상태로 전이
    • 입출력 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이
    • 준비 상태에서 실행 상태로의 전이는 CPU 스케줄러에 의해 수행
  • 종료(Terminated, Exit)
    • 프로세스의 실행으 끝나고 프로세스 할당이 해제된 상태

- 프로세스 상태 전이 관련 용어

  • Dispatch : 준비 상태에서 대기하고 이쓴 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이
  • Wake Up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이
  • Spooling : 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력 데이터를 직접 입출력 장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장
  • 교통량 제어기(Traffic Controller) : 프로세스의 상태에 대한 조사와 통보 담당

- 스레드(Thread)

  • 프로세스 내에서의 작업 단위. 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
  • 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드
  • 하나 이상의 스레드가 존재하는 경우에는 다중 스레드
  • 프로세스의 일부 특성을 갖고 있어 경량 프로세스라고도 함
  • 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할 담당
  • 동일 프로세스 환경에서 서로 독립적인 다중 수행 가능
  • 분류
    • 사용자 수준의 스레드
      • 사용자가 만든 라이브러리를 사용하여 스레드 운용
      • 속도는 빠르지만 구현이 어려움
    • 커널 수준의 스레드
      • 운영체제의 커널에 의해 스레드를 운용
      • 구현이 쉽지만 속도가 느림
  • 스레드 사용의 장점
    • 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진
    • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상
    • 응용 프로그램의 응답 시간을 단축
    • 실행 환경을 공유시켜 기억장소의 낭비가 줄어듬
    • 프로세스들 간의 통신 향상
    • 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신함


8. 스케줄링 – B

- 스케줄링의 개요

  • 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
  • 장기 스케줄링
    • 어떤 프로세스가 시스템의 자원을 차지하게 할 것인가 결정하여 준비상태 큐로 보내는 작업
    • 작업 스케줄링, 상위 스케줄링이라고도 함. 작업 스케줄러에 의해 수행
  • 중기 스케줄링
    • 어떤 프로세스들이 CPU를 할당받을 것인지를 결정하는 작업
    • 할당받으려는 프로세스가 많으면 일시 보류시킨 후 활성화해서 일시적으로 부하 조절
  • 단기 스케줄링
    • 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
    • 프로세서 스케줄링, 하위 스케줄링이라고도 함
    • 프로세서 스케줄링 및 문맥 교환은 프로세서 스케줄러에 의해 수행됨

- 스케줄링의 목적

  • CPU나 자원을 효율적으로 사용하기 위한 정책
  • 공정성
  • 처리율 증가
  • CPU 이용률 증가
  • 우선순위 제도
  • 오버헤드 최소화
  • 응답 시간 최소화
  • 반환 시간 최소화
  • 대기 시간 최소화
  • 균형 있는 자원의 사용
  • 무한 연기 회피

- 프로세스 스케줄링의 기법

  • 비선점(Non-Preemptive) 스케줄링
    • 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 기법
    • 할당되면 해당 프로세스가 완료될 때까지 CPU 사용
    • 모든 프로세스에 대한 요구를 공정하게 처리 가능
    • 응답 시간의 예측이 용이. 일괄 처리 방식에 적합
    • 중요한 작업이 중요하지 않은 작업을 기다리는 경우 발생 가능
    • FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘 존재
  • 선점(Preemptive) 스케줄링
    • 할당된 CPU를 우선순위가 높은 다른 프로세스가 강제로 빼앗아 사용할 수 있는 기법
    • 우선순위가 높은 프로세스를 빠르게 처리 가능
    • 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용
    • 많은 오버헤드를 초래
    • 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요
    • Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘 존재


9. 운영체제 기본 명령어 – B

- 운영체제 기본 명령어의 개요

  • CLI : 키보드로 명령어를 직접 입력하여 작업
  • GUI : 마우스로 아이콘이나 메뉴를 선택하여 작업

- Windows 기본 명령어

  • CLI 기본 명령어
    • DIR : 파일 목록 표시
    • COPY : 파일 복사
    • TYPE : 파일 내용 표시
    • REN : 파일 이름 변경
    • DEL : 파일 삭제
    • MD : 디렉터리 생성
    • CD : 디렉터리 위치 변경
    • CLS : 화면 내용 지움
    • ATTRIB : 파일 속성 변경
    • FIND : 파일 찾음
    • CHKDSK : 디스크 상태 점검
    • FORMAT : 디스크 표면을 트랙과 섹터로 나누어 초기화
    • MOVE : 파일 이동
  • GUI 기본 명령어
    • 마우스로 작업

- UNIX/LINUX 기본 명령어

  • CLI 기본 명령어
    • cat : 파일 내용 표시
    • chdir : 디렉터리 위치 변경
    • chmod : 파일의 보호모드를 설정하여 파일의 사용 허가를 지정
    • chown : 소유자 변경
    • cp : 파일 복사
    • exec : 새로운 프로세스 수행
    • find : 파일 참음
    • fork : 새로운 프로세스를 생성
    • fsck : 파일 시스템을 검사하고 보수
    • getpid : 자신의 프로세스 아이디를 얻음
    • getppid : 부모 프로세스 아이디를 얻음
    • ls : 디렉터리 내의 파일 목록 확인
    • mount/unmount : 파일 시스템을 마운팅/마운팅 해제
    • rm : 파일 삭제
    • wait : fork후 exec에 의해 실행되는 하위 프로세스 종료 등의 event를 기다림
  • GUI 기본 명령어
    • X Window라는 별도의 프로그램을 설치하여 운영 가능


10. 인터넷 – A

- 인터넷의 개요

  • TCP/IP 프로토콜을 기반으로 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망
  • 미 국방성의 ARPANET에서 시작됨
  • UNIX 운영체제를 기반으로 함
  • 시간과 장소에 구애받지 않고 정보 교환 가능
  • 모든 컴퓨터는 고유한 IP 주소를 가짐
  • 컴퓨터 또는 네트워크를 서로 연결하기 위해 브리지, 라우더, 게이트웨이가 사용됨
  • 중추적 역할을 하는 네트워크. 인터넷의 주가 되는 기간망을 Backbone라고 함

- IP 주소(Internet Protocol Address)

  • 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
  • 8비트씩 4부분, 총 32비트로 구성
  • 네트워크 부분의 길이에 따라 5단계로 구성
  • A Class : 국가나 대형 통신망에 사용(0~127). 2^24개의 호스트 사용 가능
  • B Class : 중대형 통신망에 사용(128~191). 2^16개의 호스트 사용 가능
  • C Class : 소규모 통신망에 사용(192~223). 2^8개의 호스트 사용 가능
  • D Class : 멀티캐스트 용으로 사용(224~239)
  • E Class : 실험적 주소이며 공용되지 않음

- 서브네팅(Subnetting)

  • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것
  • 4Byte의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크라고 하며, 이를 변경하여 네트워크 주소를 여러 개로 분할하여 사용

- IPv6의 개요

  • 현재 사용하고 있는 IPv4의 주소 부족 문제를 해결하기 위해 개발
  • 128비트의 긴 주소 사용. 자료 전송 속도가 빠름
  • 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결
  • IPv4와 호환성이 뛰어남
  • 주소의 확장성, 융통성, 연동성이 뛰어남. 실시간 흐름 제어로 향상된 멀티미디어 기능 지원
  • Traffic Class, Flow Label을 이용하여 등급별, 서비스별로 패킷을 구분할 수 있어 품질 보장 용이

- IPv6 구성

  • 16비트씩 8부분, 총 128비트
  • 각 부분을 16진수로 표현하고 : 으로 구분
  • 유니캐스트 : 1:1 통신에 사용
  • 멀티캐스트 : 1:다 통신에 사용
  • 애니캐스트 : 가장 가까이 있는 단일 수산자 간의 통신. 1:1 통신에 사용

- 도메인 네임

  • 숫자로 된 IP주소를 사람이 이해하기 쉬운 문자 형태로 표현
  • 호스트 컴퓨터 이름, 소속 기관 이름, 소속 기관 종류, 국가명 순으로 구성
  • 왼쪽에서 오른쪽으로 갈수록 상위 도메인 의미
  • 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP주소로 변환하는 시스템을 DNS라 함
  • 이 역할을 하는 서버를 DNS 서버라고 함


11. OSI 참조 모델 – A

- OSI 참조 모델의 개요

  • 다른 시스템 간의 원활한 통신을 위해 ISO에서 제안한 통신 규약
  • 7단계로 표준화하여 규정
  • 1~3 계층을 하위 계층, 4~7 계층을 상위 계층
  • 하위 계층 : 물리 -> 데이터 링크 -> 네트워크
  • 상위 게층 : 전송 -> 세션 -> 표현 -> 응용

- OSI 참조 모델의 목적

  • 서로 다른 시스템 간을 상호 접속하기 위한 개념을 규정
  • OSI 규격을 개발하기 위한 범위를 정함
  • 관련 규정의 적합성을 조절하기 위한 공통적 기반 제공

- OSI 참조 모델에서의 데이터 단위

  • 프로토콜 데이터 단위(PDU; Protocol Data Unit)
    • 동일 계층 간에 교환되는 정보의 단위
    • 물리 : 비트
    • 데이터 링크 : 프레임
    • 네트워크 : 패킷
    • 전송 : 세그먼트
    • 세션, 표현, 응용 : 메시지
  • 서비스 데이터 단위(SDU; Service Data Unit)
    • 서비스 접근점(SAP)을 통해 상하위 계층끼리 주고받는 정보의 단위

- 물리 계층(Physical Layer)

  • 전송에 필요한 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙 정의
  • 물리적 전송 매체와 전송 신호 방식을 정의
  • RS-232C, X.21 등의 표준
  • 관련 장비 : 리피터, 허브
  • 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
  • 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름 제어 기능
  • 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능
  • 오류의 검출과 회복을 위한 오류 제어 기능
  • 프레임의 순서적 전송을 위한 순서 제어 기능
  • HDLC, LAPB, LLC, MAC, LAPD, PPP 등의 표준
  • 관련 장비 : 랜카드, 브리지, 스위치

- 네트워크 계층(Network Layer, 망 계층)

  • 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능
  • 네트워크 연결을 설정, 유지, 해제하는 기능
  • 경로 설정, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송 수행
  • X.25, IP 등의 표준
  • 관련 장비 : 라우터

- 전송 계층(Transport Layer)

  • 논리적 안정과 균일한 데이터 전송 서비스 제공. 종단 시스템 간에 투명한 테이터 전송 가능
  • 하위 3계층과 상위 3계층의 인터페이스 담당
  • 종단 시스템 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
  • 주소 설정, 다중화, 오류 제어, 흐름 제어 수행
  • TCP, UDP 등의 표준
  • 관련 장비 : 게이트웨이

- 세션 계층(Session Layer)

  • 송수신 측 간의 관련성을 유지하고 대화 제어를 담당
  • 대화 구성 및 동기 제어, 데이터 교환 관리 기능
  • 전송하는 정보의 일정한 부분에 체크점을 두어 정보의 수신 상태 체크. 체크점을 동기점이라고 함
  • 동기점은 오류가 있는 데이터의 회복을 위해 사용

- 표현 계층(Presentation Layer)

  • 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환
  • 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환
  • 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요
  • 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환, 문맥 관리 기능

- 응용 계층(Application Layer)

  • 사용자가 OSI 환경에 접근할 수 있도록 서비스 제공
  • 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스 제공


12. 네트워크 관련 장비 – B

- 네트워크 인터페이스 카드(NIC)

  • 컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치
  • 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경
  • 이더넷 카드(LAN 카드) 혹은 네트워크 어댑터라고도 함

- 허브(Hub)

  • 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치
  • 각 회선을 통합적으로 관리. 신호 증폭 기능을 하는 리피터의 역할도 포함
  • 더미 허브
    • 네트워크에 흐르는 모든 데이터를 단순히 연결하는 기능만을 제공
    • LAN이 보유한 대역폭을 컴퓨터 수만큼 나누어 제공
    • 네트워크에 연결된 각 노드를 물리적인 성형 구조로 연결
  • 스위칭 허브
    • 네트워크상에 흐르는 데이터의 유무 및 흐름을 제어
    • 각각의 노드가 허브의 최대 대역폭을 사용할 수 있는 지능형 허브
    • 최근에 사용되는 허브는 대부분 스위칭 허브

- 리피터(Repeater)

  • 전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할
  • OSI 참조 모델의 물리 계층에서 동작하는 장비
  • 근접한 네트워크 사이에 신호를 전송하는 역할
  • 전송 거리의 연장 또는 배선의 자유도를 높이기 위한 용도

- 브리지(Bridge)

  • LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹을 연결하는 기능
  • 데이터 링크 계층 중 MAC(Media Access Control) 계층에서 사용됨
  • 트래픽 병목 현상을 줄일 수 있음
  • 네트워크를 분산적으로 구성할 수 있어 보안성을 높일 수 있음
  • 브리지를 이용한 서브넷 구성 시 전송 가능한 회선 수는 브리지가 n개일 때 n(n-1)/2개

- 스위지(Switch)

  • LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
  • 하드웨어를 기반으로 처리하므로 전송 속도가 빠름
  • 포트마다 각기 다른 전송 속도를 지원하도록 제어 가능. 수십에서 수백 개의 포트 제공
  • OSI 참조 모델의 데이터 링크 계층에서 사용

- 라우터(Router)

  • LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능 추가.
  • LAN과 WAN의 연결도 수행
  • OSI 참조 모델의 네트워크 계층에서 동작하는 장비
  • 접속 가능한 경로에 대한 정보를 라우팅 제어표에 저장하여 보관
  • 프로토콜 변환 기능 수행

- 게이트웨이(Gateway)

  • 전 계층의 프로토콜 구조가 다른 네트워크의 연결을 수행
  • 데이터 형식 변환, 주소 변환, 프로토콜 변환 등을 수행
  • LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할

- 네트워크 장비 설치 시 고려 사항

  • 네트워크에 설치된 장비를 최대한 활용
  • 시스템 확장이나 증설 등을 고려하여 설계
  • 최신 버전을 선정
  • 트래픽을 분산시킬 수 있도록 설계
  • 관리나 유지 보수가 용이하게 설계
  • 장애 발생 시 즉시 조치할 수 있도록 여유 포트를 고려하여 설계
  • 신기술 도입 시 연동할 수 있는 미래 지향적인 네트워크 시스템 구축


13. 프로토콜의 개념 – B

- 프로토콜의 정의

  • 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화한 통신 규약
  • 하드웨어와 소프트웨어, 문서를 모두 규정

- 프로토콜의 기본 요소

  • 구문(Syntax) : 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정
  • 의미(Semantics) : 협조 사항과 오류 관리를 위한 제어 정보 규정
  • 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등 규정

- 프로토콜의 기능

  • 단편화와 재결합
    • 송싱 측에서 전송할 데이터를 전송에 알맞은 크기의 작은 블록으로 자르는 작업을 단편화
    • 수신 측에서 단편화된 블록을 원래의 데이터로 모으는 것을 재결합
    • 단편화된 데이터 블록을 프로토콜 데이터 단위(PDU)라고 함
    • 단편화하여 전송하면 전송 시간이 빠르고, 통신중의 오류를 효과적으로 제어 가능
    • 너무 작게 단편화할 경우 재결합 시 처리 시간이 길어지고, 부수적인 데이터가 많아져 비효율적
  • 캡슐화
    • 단편화된 데이터에 송수신지 주소, 오류 검출 코드, 프로토콜 기능을 구현하기 위한 프로토콜 제어 정보 등의 정보를 부가하는 것으로 요약화라고도 함
    • 데이터 링크 제어 프로토콜의 HDLC 프레임
    • 정보 데이터를 오류 없이 정확하게 전송하기 위해 캡슐화 수행
  • 흐름 제어
    • 수신 측의 처리 능력에 따라 송신 측에서 송신하는 데이터의 전송량, 속도를 조절하는 기능
    • 정지-대기, 슬라이딩 윈도우 방식을 이용
  • 오류 제어
    • 전송중에 발생하는 오류를 검출하고 정정하여 데이터나 제어 정보의 파손에 대비하는 기능
  • 동기화
    • 송수신 측이 같은 상태를 유지하도록 타이밍을 맞추는 기능
  • 순서 제어
    • 전송되는 PDU에 전송 순서를 부여하는 기능
    • 연결 위주의 데이터 전송 방식에만 사용
    • 데이터들이 순서적으로 전송되도록 하여 흐름 제어 및 오류 제어를 용이하게 함
  • 주소 지정
    • 데이터가 목적지까지 정확하게 전송될 수 있도록 목적지 이름, 주소, 경로를 부여하는 기능
  • 다중화
    • 한 개의 통신 회선을 여러 가입자들이 동시에 사용하도록 하는 기능
  • 경로 제어
    • 송수신 측 간의 송신 경로 중에서 최적의 패킷 교환 경로를 설정하는 기능
  • 전송 서비스
    • 우선순위 : 우선순위를 부여하여 우선순위가 높은 메시지가 먼저 도착하도록 함
    • 서비스 등급 : 서비스 등급을 부여하여 서비스
    • 보안성 : 액세스 제한과 같은 보안 체제를 구현


14. TCP/IP – A

- TCP/IP의 개요

  • 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
  • ARPANET에서 사용하기 시작
  • UNIX의 기본 프로토콜로 사용. 현재 인터넷 범용 프로토콜로 사용
  • TCP 프로토콜 + IP 프로토콜
  • TCP
    • 전송 계층
    • 신뢰성 있는 연결형 서비스 제공
    • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
    • 스트림 전송 기능 제공
  • IP
    • 네트워크 계층
    • 데이터그램을 기반으로 하는 비연결형 서비스 제공
    • 패킷의 분해/조립, 주소 지정, 경로 선택 기능 제공
    • 헤더의 길이는 최소 20Byte에서 최대 60Byte

- TCP/IP의 구조

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

- 응용 계층의 주요 프로토콜

  • FTP
    • 파일을 주고받을 수 있도록하는 원격 파일 전송 프로토콜
  • SMTP
    • 전자 우편을 교환하는 서비스
  • TELNET
    • 멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용
    • 시스템 관리 작업을 할 수 있는 가상의 터미널 기능을 수행
  • SNMP
    • TCP/IP의 네트워크 관리 프로토콜
    • 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는 데 사용
  • DNS
    • 도메인 네임을 IP 주소로 Mapping하는 시스템
  • HTTP
    • WWW에서 HTML 문서를 송수신 하기 위한 표준 프로토콜

- 전송 계층의 주요 프로토콜

  • TCP
    • 양방향 연결형 서비스 제공
    • 가상 회선 연결 형태의 서비스 제공
    • 스트림 위주의 전달(패킷 단위)
    • 신뢰성 있는 경로를 확립하고 메시지 전송 감독
    • 순서 제어, 오류 제어, 흐름 제어
    • 패킷의 분실, 손상, 지연이나 순서가 틀린 것 등이 발생할 때 투명성 보장하는 통신 제공
  • UDP
    • 비연결형 서비스 제공
    • 상대적으로 단순한 헤더 구조를 가져 오버헤드가 적음
    • 빠른 속도, 동시에 여러 사용자에게 데이터 전달, 반복해서 전송할 경우 사용
    • 실시간 전송에 유리
    • 신뢰성보다는 속도가 중요시되는 네트워크에 사용 -RTCP
    • RTP 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
    • 세션에 참여한 각 참여자들에게 주기적으로 제어 정보 전송
    • 하위 프로토콜은 데이터 패킷과 제어 패킷의 다중화 제공
    • 데이터 전송을 모니터링하고 최소한의 제어와 인증 기능만을 제공
    • RTCP 패킷은 항상 32비트의 경계로 끝남

- 인터넷 계층의 주요 프로토콜

  • IP
    • 전송할 데이터에 주소를 지정하고 경로를 설정하는 기능
    • 비연결형인 데이터그램 방식을 사용
    • 신뢰성이 보장되지 않음
  • ICMP
    • IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리
    • 헤더는 8Byte
  • IGMP
    • 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용
  • ARP
    • 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC 주소)로 바꿈
  • RARP
    • ARP와 반대로 물리적 주소를 IP 주소로 변환하는 기능

- 네트워크 액세스 계층의 주요 프로토콜

  • Ethernet(IEEE 802.3)
    • CSMA/CD 방식의 LAN
  • IEEE 802
    • LAN을 위한 표준 프로토콜
  • HDLC
    • 비트 위주의 데이터 링크 제어 프로토콜
  • X.25
    • 패킷 교환망을 통한 DTE와 DCE 간의 인터페이스를 제공
  • RS-232C
    • 공중 전화 교환망(PSTN)을 통한 DTE와 DCE 간의 인터페이스를 제공

태그:

카테고리:

업데이트:

댓글남기기