[TOPCIT 목차]

01 데이터 링크계층의 개념

데이터 링크계층의 정의

  데이터 링크계층은 장치간 신호를 전달하는 물리계층을 이용하여 네트워크상의 주변장치들간의 데이터를 전송하는 계층

 

데이터 링크계층 기능

  •   주소할당 - 물리계층으로부터 받은 신호들이 네트워크상의 장치에 올바르게 안착할 수 있게한다.   
  •   오류감지 - 신호가 전달되는 동안 오류가 포함되는지 감지한다.

02 데이터 링크계층 캡슐화

가) 데이터 링크계층 캡슐화

  데이터 링크계층의 프레임은 네트워크 계층 패킷에 헤데Header)와 트레일러(Trailer)가 추가되어 구성된다.

  이런 과정을 데이터 링크계층의 캡슐화라고 하고. 수신 측에서는 그 과정이 역으로 수행되어 디캡슐화라고 한다.

나) 프레임 헤더와 트레일러 구성

구분 구성 설명
프레임 헤더 구성 프리앰블(Preamble)  호스트 간 비트 동기화
  SFD(Start of Frame Delimiter) 프레임의 시작을 알리는 필드 
  Destination address.  
  Source address  
트레일러 구성 FCS(Frame Check Sequence) 트레일러는 전송 시 에러를 체크

03 데이터 링크계층 구성

가) 데이터 링크계층 부계층

  데이터 링크계층 구성 -> 2개의 부계층(Sub-layer)로 구성

  •   LLC(Logical Link  Control)      - MAC 부계층과 망계층(Layer 3) 간의 접속을 담당
  •   MAC(Media Access  Control) - 물리계층 상의 토폴로지나 기타 특성을 맞추는 제어 담당

나) 논리 링크 제어(LLC)

  ① 논리 링크 제어(LLC)의 개념

    데이터 링크 계층의 네트워크 두 인접 노드 사이의 데이터 전송을 책임지기 위해, 데이터 링크계층의 하위계층 중

   윗부분에 있는 계층(IEEE 802.2)

. ② 논리 링크 제어(LLC)의 구성

  • 목적지 서비스 접속점(DSAP) 주소
  • 출발지 서비스 접속점 (SSAP) 주소

  * LLC 계층은 여러 상이한 MAC 부계층 프로토콜을 사용할 수 있도록 하여 망의 토폴로지(Top이ogy) 에 관계없는

    통신이 가능하도록 한다.

  ③ 논리 링크 제어 서비스 옵션

  • Type 1 - 비확인 데이터그램 서비스(수신 도착 확인 메시지가 필요 없는 서비스로 무연결 서비스)
  • Type 2 - 가상 회로 접근 방식 서비스(TCP 서비스와 비슷하게 가상 세션을 연결 후 데이터를 전송하는 방식)
  • Type 3 - 확인식 데이터그램 서비스(수신 통지가 있는 데이터 그램을 포인트 투 포인트 방식으로 제공)

다) 매체 접근 제어(MAC)

  ①  매체 접근 제어(MAC) 개념

    매체 접근 제어(MAC)는 물리적 매개체를 통하여 데이터를 어떻게 보낼 것인가를 책임지고 있는 계층


  ② 논리 링크 제어(LLC)의 구성

    * 앞 24비트는 OUI(Organizationally Unique Identifier)라는 제조회사 식별코드,

      나머지 24비트는 제조회사에서 생산 한 NIC의 일련 번호이다.

04 MAC 주소 검색

가) IP 주소와 MAC주소 변환 프로토콜

  •   ARP(Address  Resolution Protocol) 프로토콜 - IP 주소를 통해 MAC 주소 확인하는 프로토콜
  •   RARP(Reverse Address Resolution Protocol)프로토콜 - MAC 주소를 통해 IP 주소 확인하는 역주소 변환 프로토콜

나) MAC 주소 검색 시나리오

  ① 사용자 컴퓨터는 브로드캐스트를 통해 같은 네트워크 구간 내 모든 시스템에게 ARP 요청 

  ② 응답을 받은 컴퓨터는 자신의 MAC 주소를 ARP 패킷에 포함시켜 유니캐스트를 통해 사용자 A가 있는 컴퓨터로 전달

  ③ 사용자 컴퓨터와 상대방 컴퓨터는 MAC 주소를 이용하여 통신

05 데이터 링크계층 오류검출과 오류정정기법

 가)오류제어의개념

송신한 데이터가 제대로 도달되지 않거나 전송 도중 오류가 발생할 때, 검출하고 오류를 수정하는 기능

  • 전진 오류 수정(Forward Error Correction, FEC) - 수신 측에서 오류를 스스로 검출/복원할 수 있는 방법
  • 후진 오류 수정(Backward Error Correction, BEC) - 송신 측에 오류 사실을 알려서 재전송하여 복원하는 방법

나)오류검출과 오류정정

  ① 오류검출
    오류검출은 목적지에서 오류를 검출하기 위해서 여분의 비트를 추가하는 중복(잉여) 개념을 이용한 방법

  ② 오류정정
    오류정정에는 수신자가 송신자에게 전체 데이터 재전송을 요구하거나, 수신자가 오류 교정 코드를 이용하여

    자동으로 수행하는 방법

  ③ 재전송 알고리즘(ARQ : Automatic Repeat Request)
    오류가 발생할 경우 수신 측에서 송신 측으로 오류 발생 사실을 알리고, 송신 측은 오류가 발생한 프레임을 재전송

    하여 오류를 수정하는 알고리즘

06 IEEE 802 표준


가) IEEE 802의 개념

나) IEEE 802.3 표준

다) IEEE 802.11 표준

라) IEEE 802.15 표준

 

[TOPCIT 목차]

 

1. 클라우드 컴퓨팅 

가) 클라우드 컴퓨팅 개발 목적: 개별 서버마다 남아도는 기업의 컴퓨터 용량을 효율적으로 활용하고 불확실한 서비스의 수요에 유연하게 대처하기 위한 목적으로 개발됨

 

나) 특징

  (1) 복잡한 내부를 몰라도 어디에서나 자기가 원하는 컴퓨터 자원을 사용하여 작업이 가능하다

  (2) 지원하는 기술 인프라스트럭쳐에 대한 전문 지식 없이도 인터넷으로부터 원하는 서비스를 이용할 수 있게 되었다. 

 

다) 클라우드 서비스 도입 기대효과

  (1) 비용: CAPEX 감소, OPEX 증가, TCO 감소

      * CAPEX(Capital expenditures): 미래의 이윤을 창출하기 위해 지출된 비용

      * OPEX(Operationg Expenditure): 운영비용

      * TCO(Total Cost of Ownership) :  시스템 도입 및 유지보수 비용까지 포함한 전체 비용

  (2) 기간: 개발기간 단축, 제품 개발주기 단축

  (3) 운영: 운영인력 감소, 자원 효율성 강화

  (4) 제품: 제품 집중도 향상

 

라) 클라우드 서비스, 클라우드 컴퓨팅 정의

  (1) 클라우드 서비스: 사용자 중심으로 클라우드 컴퓨팅 환경을 제공하는 주문형 아웃소싱 IT 서비스

  (2) 클라우드 컴퓨팅: 가상화와 분산처리 기술을 기반으로 인터넷을 통해서 IT 자원을 임대하고 사용한만큼 요금을 지불하는 컴퓨팅 환경

 

마) 그리드 컴퓨팅과 클라우드 컴퓨팅의 차별성

  그리드 컴퓨팅 클라우드 컴퓨팅
정의 네트워크 상에서 컴퓨터나 데이터 등의 리소스를 가상화해서 통합하고 필요에 따라서 가상 컴퓨터를 동적으로 생성하기 위한 구조 가상화와 분산처리 기술을 기반으로 인터넷을 통해서 IT 자원을 임대하고 사용한만큼 요금을 지불
컴퓨터의 위치 지리적으로 분산되어 있고 각기 다른 조직이 관리 지리적으로 분산되어 있지만, 중앙에서 단일 조직이 관리
컴퓨터 구성 이기종 혼재 동일한 기종이 대다수
표준화단체 존재 없음
기술표준 리소스 관리, 스케쥴링, 데이타 관리 보안 등의 표준이 있음 없음
상호 접속성 중시  고려하지 않음
용도 과학 기술적 계산, 대규모 연산 등 병렬성이 높은 에플리케이션 웹 어플리케이션 등 범용적인 용도로 사용

 

2. 클라우드 컴퓨팅 유형

가) 서비스 유형에 따른 분류

(1) IaaS(Infrastructure as a Service)

     인터넷 네트워크를 경유하여 인프라 자원(서버, 스토리지, 네트워크)을 서비스로 제공하는 형태

     서비스 업체에서 서버를 호스팅 받는 것과 유사한 방식

(2) PaaS(Platform as a Service)

     개발 및 운영 환경을 구축할 필요없이 필요한 개발 및 운영 환경을 서비스 형태로 사용하는 방식

(3) SaaS(Software as a Service)

     웹브라우저로 접근: 설치형 소프트웨어가 아닌 웹 브라우저로 접근

     사용량 기반 비용: 소프트웨어를 사용한 만큼 비용 지불

     온디멘드: 필요한 소프트웨어는 즉시 사용가능

     IT 수요 최적화: IT 인프라스트럭쳐에 대한 관리 및 확장 이슈가 없음

     

  자체인프라 IaaS PaaS SaaS
데이터 사용자 관리영역 사용자 관리영역 사용자 관리영역 서비스제공영역
어플리케이션 사용자 관리영역 사용자 관리영역 사용자 관리영역 서비스제공영역
런타임 사용자 관리영역 사용자 관리영역 서비스제공영역 서비스제공영역
미들웨어 사용자 관리영역 사용자 관리영역 서비스제공영역 서비스제공영역
운영체제  사용자 관리영역 사용자 관리영역 서비스제공영역 서비스제공영역
가상화 사용자 관리영역 서비스제공영역 서비스제공영역 서비스제공영역
서버 사용자 관리영역 서비스제공영역 서비스제공영역 서비스제공영역
스토리지 사용자 관리영역 서비스제공영역 서비스제공영역 서비스제공영역
네트워크 사용자 관리영역 서비스제공영역 서비스제공영역 서비스제공영역

나) 클라우드 운영 형태에 따른 분류

클라우드 서비스 설명
퍼블릭 클라우드 인터넷 상에 불특정 다수에게 공개된 클라우드 서비스로 인터넷 만으로 접근 가능한 클라우드 서비스
프라이빗 클라우드 기업 및 기관에서 폐쇄 네트워크 망에 클라우드 서비스를 구축하여 제한된 사용자에게만 접근을 허용하는 클라우드 서비스
하이브리드 클라우드 퍼블릭 클라우드와 프라이빗 클라우드의 결합된 형태로 외부에 공개된 클라우드 서비스와 폐쇄된 클라우드 서비스를 모두 사용하는 형태
퍼블릭 클라우드에 배포한 서비스를 프라이븟 클라우드 영역으로 이동하고 반대로 프라이빗 클라우드 영역의 서비스를 퍼블릭으로 보낼 수 있는 호환성이 매우 중요함

 

3. 서버 가상화 기술

*가상화:

 -. 컴퓨터 자원을 추상화하는 방식

 -. 여러대의 컴퓨터 자원을 하나의 서버처럼 보이게 하거나

 -. 하나의 컴퓨터 자원을 복수의 컴퓨터 자원인 것처럼 보이게 하는 기술

 

*서버가상화기술:

  -. 1개의 컴퓨터에서 동시에 1개 이상의 운영체제를 가동시키는 것이 가능

 -. 컴퓨터 자원의 활용율과 관리 효율성을 극대화

 -. x86 가상화기술: 클라오드 컴퓨팅 환경의 근간

 

가) 하이퍼바이저(Hypervisor)

호스트 OS: 서버 가상화에서 물리적으로 존재하는 서버

가상서버(Guest OS): 가상으로 제공되는 서버

 

서버 가상화 기술구분: 가상서버가 물리적인 서버와 같이 보일 수 있도록 물리적 자원을 할당하는 방식에 따라 구분

 

* 하이퍼바이저(Hypervisor): 물리적인 서버를 가상화하는 기술

서버 가상화를 위한 논리적 플랫폼

가상 머신 모니터(Virtual Machine Monitor)

설치방식과 가상화방식으로 분류

 

나) 하이퍼바이저의 유형

Native방식:하드웨어에 직접 설치

Hosted방식: 일반 프로그램 처럼 운영체제 위에 설치

(1) Native방식

가상머신 모니터(VMM, Virtual Machine Monitor)를 물리적 하드웨어에 직접 설치하는 방식

호스트 OS가 필요없는 방식

Type1

Xen, Citrix의 XenServer, VMWare의 ESxServer, IBM의 Power 하이퍼바이저, 마이크로소프트의 Hyper-V, KVM

(2) Hosted 방식

기존의 운영체제 위에 설치되는 소프트웨어

마이크로소프트의 Virtual PC, VMWare의 Workstation,  오라클의 VirtualBox

 

다) 서버 가상화 방식의 유형

(1) 전가상화(Full Virtualization)

 

(2) 반가상화(Para Virtualization)

장점: 하드웨어 에뮬레이션을 하지 않고 하이퍼바이저를 통해서 제어하기 때문에 높은 성능제공

단점: 게스트 OS의 커널을 일부분 수정해야 하기 때문에 오픈소스 운영체제만을 게스트 OS로 사용할 수 잇다. 

 

(3) OS레벨 가상화(OS-level Virtualization)

[Hypervisor 가상화와 OS 레벨 가상화 비교]

항목 Hypervisor 가상화 OS-Level 가상화
하드웨어 독립성 VM 내에서 완전 독립 호스트 OS 사용
OS 독립성 Host OS와 완전 독립 호스트 OS와 게스트 OS 동일
성능 높은 Overhead 발생
성능 향상을 위한 HW 가상화 적용
Overhead 발생 없음
관리 VM 별로 별도 관리 공통 SW 중앙 집중식 관리
응용분야 이기종 통합
리눅스 & 윈도우 혼합
단일 OS 환경 자원 통합
가상화 기술 Xen, MS Virtual Server, KVM Solaris, LXC(Linux Container), Docker

[OS레벨 가상화 장단점]

  강점 단점
1 빠른 시작과 종료: 하이퍼바이저 기반 가상황 비교하여 매우 빠름 Host OS에 종속적
2 높은 집적도: 여러 컨테이너를 운영시 OS는 1개이므로 소비자원 최소화 컨테이너별 커널 구성이 불가능
3 낮은 오버헤드: 에뮬레이션 없이 사용자 공간 관리  
4 어플리케이션 컨테이너 지원: 어플리케이션별 컨테이너 구성 지원  

4. 스토리지와 네트워크 가상화 기술

가) 스토리지 가상화

필요로 하는 스토리지 공간 대신 This-Provisioning 이라는 기술을 통해서 초기 필요한 최소 공간만을 가상으로 할당하여 서비스 구현이 가능하도록

추가로 이기종 스토리지 시스템 통합을 사용하는 환경 제공

 

나) 네트워크 가상화

하드웨어 어플라이언스 형태로 존재하더 ㄴL2, L3, L7 스위치, 네트워크 방화벽, 보안 장비들을 구상머신으로 구현

네트워킹 자원들이 하나의 공유된 물리적인 환경에서도 내부적으로 가상화를 통해 분리되어 조작하게 한다. 

 

5. 클라우드 플랫폼

가) 클라우드 플랫폼의 정의

서버, 스토리지, 네트워크, 가상화 기술 등과 같은 리소스들을 모으고 이들을 제어하고 운영하기 위한 Cloud Operation System

 

나) 오픈스택(Openstack)

오픈스택프로젝트 설명
Nova 대규모 가상 컴퓨터 인스턴스 자동제어, 운영, Core컴포넌트
Swift 대규모 신뢰성있는 클리우드 오브젝트 스토리지서비스 구현
Glance 가상디스크 이미지파일 관리 저장/등록/관리/전달
Keystone 통합인증 및 권한 시스템
Cinder 볼륨 복제 및 스냅삿지원 블록스토리지
Ceiolmeter 미터링 지원
Horizone 셀프 서비스 포털
Heat 복구 및 시스템 복원
Neutron NW서비스
Trove 데이터베이스 서비스 제공
Sahara 스파크 및 데이터프로세스 지원, 하둡지원

다) 클라우드 스택(CloudStack)

Cloud.com에 의해 개발되고 citrix에 의해 아파치 재단에서 관리 개발하고 있는 클라우드 컴퓨팅 오픈소스 프로젝트

 

라) 쿠버네티스(Kubernetes)

구글이 자사 서비스를 위해 개발했던 운영 노하우를 공개한 것

컨테이너의 관리와 운영을 위한 오케스트레이션 플랫폼

선언형 프로그래밍 형석으로 노드에서 여러 컨테이너를 관리하고 예약할 수 이따

쿠버네티스 컨트롤 플레인(Kubernetes Control Plane)을 통해 특정 구성을 지정하면 쿠버네티스가 그 상태를 자동으로 유지

 

마) 메소스(Mesos)

클라우드 인프라 자원과 컴퓨팅 엔진들의 자원을 통합적으로 관리 할 수 있도록 만든 자원관리 프로젝트

네트워크로 연결되어 있는 분산 컴퓨팅 자원을 하나로 묶어서 리소스 풀(Resource Pool)을 만들고 하나의 컴퓨팅 자원처럼 보이게 해주는 기능 제공

사용자가 응용 프로그램 실행을 요청하면 인스턴스를 할당하고 응용 프로그램을 실행할 수 있게 해준다

메소스는 마라톤과 크로노스 프레임워크로 구성되어 있다.

마라톤은 자원할당과 잡을 만드는 역할

크로노스는 스케쥴링 담당

 

 

 

 

 

 

 

 

 

 

 

 

 

 

클라우드 컴퓨팅

[TOPCIT 목차]

 

01. 병렬 처리 시스템(Parallel Processing System)

가) 병렬 처리 시스템의 개념

  • 두개의 연산을 처리해야 하는 문제가 있는데 두개의 연산이 서로 의존성이 없다면 한 개의 연산이 완료될 때까지 나머지 연산을 기다리지 않고 동시에 처리하는 행위
  • 프로그램 명령어를 여러 프로세서에 분산시켜 동시에 수행함으로써 빠른 시간 내에 원하는 답을 구하는 작업

나) 병렬 처리 시스템의 플린에 의한 분류

유형 구조 설명
SISD
단일명령-단일자료
(Single Instruction Stream Single Data Stream)
- 1 회 1 개씩 명령어 데이터 처리, 폰노이만 구조
- 성능향상 위한 처리가능 (파이프라인 등)
SIMD
단일명령-다중자료
(Single Instruction Stream Multiple Data Stream)
- 여러 개의 프로세싱 유닛(PU)로 구성되고, 하나의 제어 유닛(CU)에 의해 통제됨
- 배열 프로세서, 다수 데이터를 하나의 명령어로 실행
- 분산 기억장치 구성가능

MISD
복수명령-단일자료
(Multiple Instruction Stream Multiple Data Stream)

- N개의 프로세서들이 서로 다른 명령어 실행
- 1개 데이터를 다수의 명령어로 처리
- 실제 설계 구현 사례 없음
MIMD
복수명령-복수자료
(Multiple Instruction Stream Multiple Data Stream)
- N개의 프로세서들이 서로 다른 명령어들과 데이터들 처리
- 프로세서들 간 상호작용 정도에 따라 2가지로 분류(tightly-coupled system, loosely-coupled system)
- 다수의 프로세서가 서로 다른 다수의 데이터 스트림을 처리
- 대부분의 병렬 시스템

 

다) 메모리 구조에 의한 병렬 처리 시스템 분류

유형 구조 설명
SMP
대칭형 다중 프로세서
(Symmetric Mutiprocessor)
- 단일 처리기 시스템에서 나타나는 성능의 한게를 극복하기 위해 두 개 이상의 프로세서를 공유버스로 상호 연결하여 하나의 메모리를 망에 연결시켜 놓은 시스템
- MPP 시스템에 비해 병렬 프로그래밍이 쉽고, 프로세서간 작업 분산이 쉬움
- MPP에 비해 확장성이 낮음
MPP
거대 병렬 프로세서
(Massice Parallel Processor)
- 각 프로세서는 개별 메모리를 이용하여 일을 수행하는 비공유 아키텍처
- 비공유 아키텍처이기 때문에 단일병합(병목) 지점이 없고, 대규모 시스템 확장이 가능
- 프로세서 간에는 메시지 패싱과 같은 기법을 이용하여 통신
- 확장성이 뛰어나며 대용량의 DB를 지원
- 개발 비용이 적게 소요
NUMA
불균일 기억장치 액세스
(Non Uniform Memory Access)
 - 메모리에 접근하는 시간이 CPU와 메모리의 상대적인 위치에 따라 달라지는 컴퓨터 메모리 설계 방법
- NUMA 아키텍처는 이론적으로 SMP 아키텍처에서 확장 된 개념
- 개별 프로세서에 별도의 메모리를 제공, 메모리의 동일 주소 접근 시 발생하는 충돌 해결
- 중간 단계의 공유메모리를 추가하여 모든 데이터 엑서스가 주 버스 상에서 움직이지 않음

 

라) 병렬 프로세서 기술의 유형

유형 구조 설명
명령어 파이프라이닝
(Pipelining)
- 명령어를 읽어 순차적으로 실행하는 프로세서에 적용되는 기술
- 한 번에 하나의 명령어만 실행하는 것이 아니라 하나의 명령어가 실행되는 도중에 다른 명령어 실행을 시작하는 식으로 동시에 여러 개의 명령어를 실행하는 기법
슈퍼스칼라 프로세스
(Super Scalar)
- CPU 내에 파이프라인을 여러 개 두어 명령어를 동시에 실행하는 기술
- 파이프라인으로 구현된 여러개의 유닛이 명령어들의 병렬 처리를 지원하는 것
파이프라인 해저드
- CPU 성능 향상을 위한 파이프라인 프로세서에서 수행중인 명령어의 중첩처리를 방해하는 구조적, 데이터, 제어 측면의 위험요인
- 파이프라인 프로세싱에서 의존성으로 발생할 수 있는 문제로, 프로세서에서 수행중인 명령어의 중첩처리를 방해하는 위험 요인
- 구조적 해저드, 데이터 해저드, 제어 해저드 분류

 

마) 병렬 프로그래밍 기술

유형 구조 설명
컴파일러 기술
OpenMP
- 컴파일러 디렉티브(Directive) 기반의 병렬 프로그래밍 API
- 최초 프로그램은 마스터 스레드로 동작하고 디렉티브를 만나면 스레드를 생성하여 스레드별로 독립적으로 수행
메시지 패싱 병렬 프로그래밍 모델
Message Passing Interface
- 노드 간 네트워크를 통해 메시지를 공유
- 메시지 패싱 병렬 프로그래밍을 위해 표준화된 데이터 통신 라이브러리
- 프로세서 대 프로세스, 일대일 또는 일대다로 작업 할당
부하 균등화(Load Balancing) 기술
AMP, SMPm BMP
   

 

바) 그래픽 처리 프로세싱 기술

유형 구조 설명
GPU
(Graphics Processing Unit)
- 병렬처리용으로 설계된 수천 개의 소형이고 효율적인 코어로 구성
- 그래픽 처리장치로써 이미지와 영상을 처리하는 역할을 담당하는 그래픽카드의 핵심 반도체
- Floationg Point 연산을 하는 작은 ALU 코어를 수천개 반복 구성시켜 빠른 그래픽처리 수행
GPGPU
(General-Purpose GPU)
- GPU를 그래픽스 전용 처리뿐만 아니라, 범용적인 데이터 병렬처리가 가능한 그래픽 처리 유닛
- 기존의 CPU와 GPU를 결합, 기본적인 컴퓨팅 환경은 CPU가 담당하고 대량 데이터에 대한 신속한 연산이 필요한 영역은 GPU에게 맡기는 방식인 가속 컴퓨팅(GPU-accelerated computing) 확대

 

사) GPU 기반 병렬 프로그래밍 기술

유형 구조 설명
CUDA
(Compute Unified Device Architecture)
- GPU를 이용한 범용적인 프로그램을 개발할 수 있도록 ‘프로그램 모델’, ‘프로그램 언어’, ‘컴파일’, ‘라이브러리’,‘디버거’, ‘프로파일러’ 를 제공하는 통합환경
- 높은 연산 처리능력
- CPU 부하 감소
- 작은 메모리에서 병렬 수행
OpenCL
(Open Computing Language)
- 애플, AMD, Intel, IBM, NVDIA에서 개발한 개방형 범용 병렬 컴퓨팅 프레임워크
- 데이터와 태스크 기반의 병렬 프로그래밍 모델
- 오픈스펙 특징(GPU, CPU, DSP 사용 가능)
C++ AMP
(C++ Accelerated Massive Paralleism)
- 마이크로소프트사가 개발한 CPU와 GPU를 사용한 이기종 컴퓨팅을 위한 개방형 프로그래밍 언어
- GPU를 이용한 C++ 코드의 실행 속도 향상 목적
Open ACC
- 크레이, CAPS, 엔비디아, PGI가 개발한 병렬 컴퓨팅을 위한 프로그래밍 표준
- 이기종 CPU/GPU 시스템의 병렬 프로그래밍을 단순하게 만들기 위해 설계된 것
- CPU와 GPU 아키텍처를 둘 다 대상으로 하여 이들 위에 연산 코드를 실행

 

02. 스토리지 기술

가) 저장장치의 개념

  • 컴퓨터에서 데이터(자료)를 일시적 또는 영구히 보존하는 장치
  • 자료를 파손이나 유실되지 않게 관리하는 장치

 

나) 저장장치와 서버의 연결

유형 구조 설명
DAS
(Direct Attached Stroage)
- DAS 구성에서는 HDD나 SDD와 같은 1개 이상의 데이터 스토리지 구성요소가 컴퓨터 안에 설치되거나 주로 SAS 링크를 통해 컴퓨터에 직접 연결
NAS
(Network Attached Storage)
- LAN 환경에서 서버와 스토리지에 접속하는 방식
- SAN 스토리지 단점을 보완하기 위해 NAS 스토리지는 보편적인 TCP/IP 기반 LAN 채널 속도와 파일 시스템 공유가 가능하고, SAN 보다 상대적 낮은 유지보수 비용 발생
SAN
(Storage Area Network)
- 서버와 공유 스토리지 장치 또는 스토리지 어레이 간에 Fiber Channel 또는 iSCSI로 연결된 네트워크 시스템
- SAN 환경에서 스토리지에 접속하는 방식(서버에 Fibre Channel HBA 필요)

 

다) IP-SAN

  • 기가비트 이더넷의 인터넷 프로토콜(IP)을 사용하는 SNA
  • IP를 이용하여 네트워크 관리의 일원화 및 SAN의 거리제약 탈피 가능
유형 구조 설명
FCIP
(Fiber Channel Over IP)
- 원격지의 SAN 연결 시 사용, 원격지의 프레임 전송할 경우 TCP/IP로 캡슐화하여 상호 연결
- SAN에 손상이 발생할 경우 패브릭에 포함되어 있는 다른지역 SAN에 영향발생
IFCP
(Internet Fiber Channel Protocol)
- IFCP 게이트웨이(Gateway)를 통해 지역 SAN 사이의 고유의 TCP/IP로 연결 제공
- 한 지역 손상 시 다른 지역 영향 없음
- 게이트웨이를 이용한 프로토콜 변환방식, 인프라 변경 없이 구축 가능 -> 높은 상호 접속성 제공
ISCS
(Internet SCSI)
- SCSI 명령을 IP 패킷으로 캡슐화하여 I/O 블록 데이터를 TCP/IP를 통해 전달
- IPSec등의 기술을 통한 높은 신뢰성 제공
- 기존 네트워크 환경 사용이 가능하여 네트워크 스토리지 구축 비용 절감 효과

 

라) 스토리지 용량 관리 기술

유형 구조 설명
씬 프로비저닝
(Thin Provisioning)
- 실제 데이터의 사용하는 공간을 Thin LUN으로 매핑하여 데이터를 할당하는 스토리지 가상화 기술
- 클라우드 컴퓨팅에서 사용자가 요구하는 디스크 공간 유연한 확장 가능
데이터 디 듀플리케이션
(Data De-Duplication)
- 데이터 저장 시 중복 데이터를 제거하여 디스크 공간 효율화 제공
- 인라인 방식 저장 : 데이터가 들어가는 순간 중복 데이터 바로 제거
- 오프라인 방식 저장 : 저장을 완료한 후 저장된 중복 데이터 제거

 

마) 저장장치 디스크 스케줄링

  • 주 기억장치에 부재중인 데이터를 디스크로부터 불러오는데 소요되는 시간을 최소화하기 위한 스케줄링 기법
  • 디스크 성능 측정 지표 : 접근시간(Access Time), 탐색시간(Seek Time), 회전대기(Rotational delay or rotational latency), 데이터 전송시간(Data Transfer Time)

유형 설명
FCFS
(First Come First Service)
- 요청 큐에 들어온 순서대로 처리, 탐색패턴 최적화 미실시(공정/비선점) 입출력 증가 시 평균 응답시간 증가
- 알고리즘 단순 구현 용이, 공정한 스케쥴링 기법
- 비효율적인 탐색 순서
SSTF
(Shortest Seek Time First)
- 현재 헤드 위치에 가장 가까운 트랙의 요청 처리
- Throughput 극대화, Seek Time 최소화
- 안쪽, 바깥 쪽 트랙 기아상태 발생 가능성, 응답시간 편차가 큼
SCAN 디스크 스케줄링 - 가장 안/바깥쪽 실린더 도착 시 방향 전환
- 기아가 발생하는 SSTF 의 차별대우 개선, 응답시간 편차가 작음
- 양 쪽 끝 트랙은 가운데 위치한 트랙보다 대기시간이 길어짐
LOCK 디스크 스케줄링 - 헤드가 진행하는 도중 진행 방향의 앞쪽으로 더 이상의 요구가 없으면 양 끝의 실린더까지 진행하지 않고 그 자리에서 방향을 바꿈
C-SCAN 디스크 스케줄링
(Circular SCAN)
- 항상 바깥쪽에서 안쪽으로 SCAN 을 수행 끝에 도달하면 다시 처음으로 이동
- 입출력 요청에 균등한 대기시간 제공
- 안쪽이나 바깥쪽을 처리할 요청이 없어도 끝까지 진행
C-LOCK 디스크 스케줄링
(Circular LOCK)
- C-SCAN과 같이 처리하되 처리할 블록이 없으면 끝까지 가지 않고 돌아옴
- 불필요한 헤드 이동시간 제거
- 진행여부 결정 위한 오버헤드

 

03. 고가용성 저장장치

가) RAID(Redundant Array of Independent Disk) 기술

  • 여러 드라이브의 집합을 하나의 저장장치처럼 다룰 수 있게 하고, 장애가 발생했을 때 데이터를 잃어버리지 않게 하며 디스크 각각이 독립적으로 동작할 수 있도록 하는 저장장치 기술
  • 다수의 디스크에 데이터를 중복으로 저장하여 가용성과 성능을 향상시키는 저장장치 기술
  • 가격이 저렴하고 크기가 작은 여러 개의 독립된 하드 디스크들을 묶어 하나의 기억장치로 사용할 수 있는 방식
  • 데이터 손실 시 안전한 복구 기능과 디스크 확정성 확보
유형 구조 설명
RAID 0
(블록 레벨
스트라이핑)
- 블록 저장 시 각 블록을 다른 디스크에 나누어 저장하는 방식, 최소 2개
– 가용용량: D
– 고장허용: 0
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 2개
쓰기 속도 우수
하나의 디스크 고장 시 전체 영향
RAID 1
(디스크 미러링)
블록이 디스크에 각각 저장되고 모든 데이터는 중복 방식, 최소 2개
– 가용용량: D / 2
– 고장허용: D / 2
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 2개
안전성 우수, 읽기 성능 우수
디스크 추가 시 2배 비용, 전체 용량 절반 효율
RAID 2
(비트레벨
스트라이핑,
전용 해밍코드
디스크)
전용 해밍코드 에러 수정 방식 사용 비트 레벨 스트라이핑 구성 방식, 자체 해밍코드 에러 수정이 가능해지며 현재는 미사용
– 가용용량: D – R
– 고장허용: R
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 3개
한 개의 디스크가 고장 허용, 쓰기/읽기 성능 우수
현재는 사용하지 않으며, 임의 쓰기 성능 미흡
RAID 3
(바이트 레벨
스트라이핑,
전용 패리티 비트
디스크)
 바이트 단위 모든 디스크에 균등 저장되는 바이트 레벨 스트라이핑 구성방식 패리티정보 별도 저장
– 가용용량: D – R
– 고장허용: R
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 3개
 한 개의 디스크가 고장 허용, 쓰기/읽기 성능 우수
 잘 사용하지 않으며, 임의 쓰기 성능 미흡
RAID 4
(블록 레벨
스트라이핑,
전용 패리티 디스크)
파일은 블록으로 쪼개 여러 디스크에 저장되지만 균등하지 않고, 패리티 정보 별도 디스크에 저장
– 가용용량: D – R
– 고장허용: R
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 3개 
한 개의 디스크 고장 허용, 쓰기 성능 우수
쓰기 성능이 미흡
RAID 5
(블록 레벨
스트라이핑,
패리티 분산)
블록은 모든 디스크에 나누어 저장되지만 균등하지 않고, 패리티 정보도 모든 디스크 나누어 저장
– 가용용량: D – R
– 고장허용: R
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 3개
1 개의 디스크 고장 허용, 읽기 속도 우수
디스크 재구성이 매우 느리고 패리티 정보 갱신으로 인해 쓰기 성능 저하
RAID 6
(블록 레벨
스트라이핑,
패리티 이중 분산)
블록은 모든 디스크에 나누어 저장되지만 균등하지 않고, 패리티 정보도 이중으로 모든 디스크 나누어 저장
– 가용용량: D – 2R
– 고장허용: 2R
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 4개
2 개의 디스크 고장 허용, 읽기 성능 우수
패리티 정보 갱신으로 인해 쓰기 성능이 저하되며, 디스크 재구성 시 성능이 매우 저하
RAID 1+0
각각 미러링(RAID-1)한 볼륨을 스트라이핑(RAID-0)으로 구성으로 RAID-0의 속도와 RAID-1의 안정성 갖춘 디스크 구성 방식
– 가용용량: R / 2
– 고장허용: R / 2
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 4개
2 개의 디스크 고장 허용, 읽기/쓰기 성능 우수
디스크 구성 비용이 일반 디스크의 4배로 고비용
RAID 0+1
 각각 스트라이핑(RAID-0) 볼륨을 미러링(RAID-1)으로 구성으로 RAID-1의 안정성과 RAID-0의 속도를 갖춘 디스크 구성 방식
– 가용용량: R / 2
– 고장허용: R / 2
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 4개
2 개의 디스크 고장 허용, 읽기/쓰기 성능 우수
일반 디스크 4배 비용, Disk Fault 시 복구 위해 RAID-1+0보다 긴 시간 필요
RAID 0+5
 각각 스트라이핑(RAID-0) 볼륨을 미러링(RAID-1)으로 구성으로 RAID-1의 안정성과 RAID-0의 속도를 갖춘 디스크 구성 방식
– 가용용량: D – R
– 고장허용: R
※ (D: Disk개수, R: RAID 개수)
※ 최소 구성 Disk 6개
2 개의 디스크 고장 허용, 읽기/쓰기 성능 우수
일반 디스크 대비 고비용, 속도와 안정성 높음

 

나) 백업 스토리지: LTO, VTL

  • LTO(Linear Tape-Open) : 고속 데이터 처리 및 대용량을 지원하는 공개 테이프 드라이브 표준 기술
  • VTL(Virtual Tape Devices) : 디스크 스토리지를 애뮬레이션하여 가상의 테이프 장비로 만들어 주는 백업 솔루션

 

04. 그래픽 압축 기술

가) 영상압축 유형

  • 데이터의 전송 및 저장 효율을 높이기 위해 원본 데이터에서 불필요한 데이터를 삭제하거나 데이터 중복을 제거하여 원래의 크기보다 적은 사이즈의 데이터로 변환하는 기술
  • 데이터 저장공간과 전송 대역폭의 효과적인 이용을 위해 데이터 크기를 줄이는 기법
  • 파일이나 통신 메시지와 같은 데이터 집합의 크기를 절약하거나 전송 시간을 단축하기 위해 데이터를 좀 더 적은 수의 비트를 사용하도록 부호화하는 기술
  • 데이터의 시간적 중복성(소리) 및 공간적 중복성(영상)을 이용
분류 유형 설명
무손실 LZW(LempelZiv–Welch)코딩
  • 동일한 어구가 반복적으로 나타나는 데이터의 성질 이용
  • 반복해서 나타난 어구는 사전에 등록된 위치정보로 이용
Run-Length 코딩
  • 연속적으로 반복되어 나타나는 정보를 그 정보와 반복된 횟수로 표현
허프만 코딩
  • 데이터를 구성하는 단위 정보들의 빈도수를 기반, 각 단위 정보를 표현
  • 높은 빈도로 나타나는 단위정보에는 비트 수를 적게 할당
손실 변환 코딩
  • 적당한 변환 통해 데이터 영역을 옮김
  • 데이터를 구성하는 단위 정보의 개수를 줄임
  • FFT(Fast Fourier Transform): 시간 영역  주파수 영역
    DCT(Discreate Cosine Transform): 공간 영역  주파수 영역
예측 코딩
  • 정보의 흐름에 있어서, 다음에 나타날 정보는 바로 직전에 나타난 정보 와 비슷하다는 성질 이용
  • 이전 정보와의 차이 정보를 가지고 다음 정보를 생성
양자화
  • 양자(Quantum)이라는 미리 정의된 정보를 이용해 주어진 데이터 코딩
  • 데이터의 중요도에 따라 크기가 다른 양자를 이용함으로써 덜 중요한 정보는 삭제하는 효과 발생
보간 기법
  • color subsampling, frame interpolation

 

나) 멀티미디어 데이터

  • 멀티미디어 데이터에는 텍스트, 이미지, 비디오, 오디오 데이터가 있으며, 텍스트는 평문(Plain Text), 비선형 하이퍼 텍스트(Hypertext) 형태를 가지며, 기본 언어는 심볼들을 표현하기 위한 유니코드(Unicode)이며, 무손실 압축방식
  • 이미지는 정지영상으로 불리며 사진, 팩스 페이지, 동영상의 프레임 하나를 의미하며 변환과정>양자화 과정>보호화 과정을 거쳐서 2진 데이터로 전송

  • 동영상 압축 표준 

  • ACV(Advanced Vedio Coding)와 HEVC(High Efficiency Vedio Conding) : AVC 코덱은 국제 표준화 기구인 ITU-T와 ISO에서 공동으로 제안한 비디오 압축 기술

'TOPCIT > TOPCIT교재' 카테고리의 다른 글

11. 데이터 링크계층 - 김도현  (0) 2022.08.01
9. 클라우드 컴퓨팅 기술 - 문경숙  (0) 2022.08.01
3. 운영체제 - 이강욱  (0) 2022.08.01
2. 네트워크 개념 - 이상희  (0) 2022.08.01
1. 시스템 개념 - 황선환  (0) 2022.08.01

[TOPCIT 목차]

 

01. 운영체제 (OS, Operation System)

  가) 운영체제의 개요

 

    - 하드웨어 자원을 관리하여 사용자나 응용 프로그램에게 컴퓨터 자원의 인터피이스를 제공하는 시스템 소프트웨어

    - 사용 목적

추상화 하드웨어의 복잡성을 추상화시켜 표준화된 API제공
가상화 다중 프로세스, 다중 사용자 기능 제공
관리화 컴퓨터 자원의 제약사항을 만족하면서 성능 최대화

  ) 운영체제의 주요 기능

자원관리 프로세스 관리 - 사용자 프로세스, 시스템 프로세스 생성/폐기
- 프로세스 중지/재실행
- 프로세스 통신과 동기화 기법 제공
- 교착상태 방지 기법 제공
주기억장치 관리 - 기억장치 공간과 사용자 추적 관리
- 기억공간 점유 프로세스 결정
- 기억공간 할당/회수
파일관리 - 파일, 디렉토리 생성/폐기
- 파일과 디렉토리 관리 프리미티브 제공
- 보조 기억장치 매핑
- 비휘발성 저장 매체에 파일 저장
입출력 시스템 관리 - 입출력 장치 인터페이스 (driver)
보조 기억장치 관리 - 저장 장소, 공간 관리
- 디스크 스케줄링
시스템 관리 네트워킹 - 네트워크 IF 제공
명령 해석기 시스템 - 사용자 명령과 커널간 인터페이스 (shell)

  다) 주요 운영체제의 종류

구분 운영체제 설명
PC 운영체제 윈도우즈 (Windows) - Microsoft 개발
- 안정적이고 표준적인 GUI
- 다수의 3rd Party 프로그램 지원
맥OS (MacOS) - Apple 개발
- 자사 하드웨어 최적화
모바일 운영체제 안드로이드 (Android) - Google 개발
- 높은 개방성
- APK 파일을 이용하여 설치 가능
iOS - Apple 개발
- 높은 보안성
- 앱스토어에서만 앱설치 가능
서버운영체제 유닉스 (UNIX) - AT&T 개발
- 다중사용자 환경 지원
- 상용제품 위주로 가격이 비싸며 서버개발사마다 전용 유닉스 운영체제를 개발하여 탑재
리눅스 (Linux) - 다양한 오픈 소스가 존재하며, 소스코드 공개
- 저비용으로 구축가능
- UNIX 호환
- RedHat, CentOS, Ubuntu, Fedora, Suse 등
윈도우서버 (Windows Server) - Microsoft 개발
- Windows 인터페이스로 PC와 동일한 UI/UX 제공
- 지원되는 응용 프로그램이 다양함

 

02. 프로세스와 스레드

  가) 프로세스(Process)의 이해

    - 수행중인 프로그램, 시분할 시스템의 작업 단위

    1) 프로세스의 상태

프로세스의 상태변화

생성 프로세스가 생성되었으나 아직 운용체제에 의해 실행 가능하게 되지 못한 상태
준비 프로세스가 실행을 위해 CPU 할당 받기를 기다리는 상태
실행 프로세스가 CPU를 차지하고 있는 상태
종료 프로세스의 실행이 끝나고 CPU 할당이 해제된 상태
대기 프로세스가 실행상태에서 입출력 완려 등과 같은 어떤 사건이 발생해 주기를 기다리고 있는 상태

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

정의 운영체제가 프로세스 관리를 위해 필요한 정보를 저장하는 운영체제 커널의 자료구조
생명주기 프로세스가 생성될때 PCB 생성, 프로세스가 종료될때 PCB 제거
포함 정보 - PID, 프로세스 상태, 프로그램 카운터(PC), 스케줄링 우선순위, 레지스터 정보, 주기억장치 정보 등
- OS별로 상이

  나) 프로세스 관리를 위한 기법

UNIX 운영체제의 프로세스 생성과 종료

    1) 프로세스 생성 (Process Creation)

      - 병행 수행, 동적 생성/제거

      - 프로세스 실행중 fork() 시스템호출을 통한 프로세스 생성 (부모, 자식 관계)

    2) 프로세스 종료 (Process Termination)

      - exit() 시스템후출을 통한 프로세스 삭제 요청

      - 자식 프로세스는 wait() 시스템호출을 통해 부모 프로세스에게 자료 반환

 

  다) 스레드(Thread)

프로세스와 스레드의 관계

    1) 스레드 개념

      - 중앙처리장치(CPU)를 사용하는 기본단위

      - 경량 프로세스 (lightweight process)

      - 기억장치 공유로 경제적인 문맥교환

    2) 멀티스레드

싱글 스레드와 멀티 스레드

      - 하나의 프로세스가 점유한 메모리를 공유, 멀티스레드에서 같은 메모리 주소 접근 가능

      - 프로세스보다 경제적인 스레드 생성과 문맥교환 비용

      - 프로세스의 병렬성을 높여 멀티 프로세스를 활용 가능

 

03. 프로세스 동기화와 교착상태

  가) 프로세스 동기화(Process Synchronization)의 개념

    - 병행 프로세스가 동일 자료를 접근할 때, 하나의 프로세스만 자료를 조작하도록 보호하기 위한 프로세스 동기화

  나) 임계구역(Critical Section) 문제

    - 프로세스 동기화를 위해 동시 접근할 수 없는 임계구역의 범위와 수행을 정하는 것

프로세스 코드의 임계구역 구조

    - 임계구역 해결방안의 조건

상호배제 임계구역은 동시에 한개의 프로세스만 실행할 수 있다.
진행 잔류 구역 프로세스만 임계구역에 진입할 수 있다.
한정된 대기 임계구역 진입 대기시간은 한정적이어야 한다.

  다) 임계구역 문제 해결법

    1) 인터럽트 제어

      - 다중프로세스 환경에서 효율 감소

    2) 세마포어

      - S 변수, P연산(wait), V연산(signal) 을 통한 상호배제 구현

라) 교착상태

    - 대기중인 프로세스가 요청한 자원이 다른 대기중인 프로세스에 의해 점유되어 프로세스 상태를 변경할 수 없는 상태

    1) 교착상태 발생 조건

조건 내용
상호배제(Mutual Exclusion) 한번에 하나의 프로세스만이 공유 자원을 사용할 수 있는 상태
점유 및 대기 (Hold & Wait) 프로세스들이 현재의 자원을 점유하면서 다른 자원을 요구하는 상태
비선점 (Non-Preemption) 각 프로세스에 할당된 자원은 사용이 완료될 때까지 강제로 해제할 수 없는 상태
환형 대기 (Circular Wait) 서로 다른 프로세스 간의 자원요구가 연속적으로 반복되는 상태

    2) 교착상태 해결 방안

조건 내용
예방(Prevention) 교착상태의 발생조건을 제거하여 사전에 미리 예방하는 방법
회피(Avoidance) 교착상태의 발생조건을 제거하지 않고, 다만 적절하게 피해 나가는 방법
발견(Detection) 교착상태의 발생을 허용하고, 발생 시 원인을 찾아 해결하는 방법
회복(Recovery) 교착상태에 빠진 프로세스를 재시작하거나 원래 상태로 되돌림으로써 교착상태를 해결하는 방법

04. 기억장치

  가) 기억장치 관리의 이해

    - 멀티 프로세스를 위해 기억장치에 여러 개의 프로세스 저장 필요

    - 가상기억장치를 통해 대용량 프로그램 실행 가능 

  나) 기억장치 관리기법

    1) 기억장치 할당 기법

구분 설명
최초 적합 가용공간 중 첫번째로 검색된 공간에 할당
빠른 할당, 단편화 부작용
최적 적합 가용공간 중 가장 작은 가용공간에 할당
최악 적합 가용공간 중 가중 큰 가용공간에 할당
최적 적합의 단편화보다 유용한 운용 가능

    2) 단편화 문제

      - 할당과 회수의 과정에서 사용하지 않고 낭비되는 부분적인 기억공간이 생기는 현상

      - 최초, 최적, 최악 적합방식 : 외부 단편화 발생

      - 고정크기 방식 : 내부 단편화 발생

외부 단편화 문제
내부 단편화 문제

    3) 단편화 문제 해결방법

압축
(Compaction)
기법
- 외부단편화를 제거
- 작은 크기의 메모리 합병
- 구현 복잡, 큰 부하
통합
(Coalescing)
기법
- 인접한 미사용 공간 통합

 

05. 스케줄링

  - 다중 프로그래밍 환경에서 CPU 활용의 극대화를 위한 프로세스를 CPU에 할당하는 것

  가) 스케줄링의 목적

    - 프로세스의 공정성

    - 단위 시간 당 처리량의 최대화

    - 반응시간의 최소화

    - 예측 가능한 수행 시간

    - 시스템의 과부하 방지

    - 균형있는 자원 활용

    - 프로세스 수행의 무한정 연기 방지

    - 우선 순위제도 실시

  나) 스케줄링 알고리즘의 종류 및 특징

종류 방법 특징 구분
FIFO
(First In First Out)
- CPU 요구 순서대로 할당 방식 - 대화형에 부적합
- 반응속도 예측 가능
비선점
우선순위
(Priority)
- 각 프로세스에 우선순위 부여, 높은 프로세스에 CPU 할당 방식 - 고정적 우선순위
- 가변적 우선순위
- 구입된 우선순위
비선점
SJF
(Shortest Job First)
- 예상 작업시간이 짧은 프로세스에 CPU 할당 방식 - 큰 작업은 상당 시간 소요됨 비선점
SRT (Shortest
Remaining Time)
- 수행 도중 남은 작업시간 추정치가 가장 적은 프로세스에 CPU 할당방식
- 선점형 SJF
- 작업 처리는 SJF와 같으나 이론적으로 가작 적은 대기시간 선점
R-R
(Round Robin)
- FIFO + 정해진 시간만큼 사용후 반환
- 시분할 처리(TSS)에 적합
- 시분할 방식에 효과적
- 할당시간이 크면 FIFO와 같음
- 할당시간이 작으면 빈번한 문맥교환
선점
마감시간
(Deadline)
- 제한된 시간내에 프로세스가 반드시 완료되도록 하는 방식 - 마감시간 계산에 오버헤드 및 복잡성 발생 비선점
HRN (Highest
Response-ratio
Next)
- SJF에서 큰 작업이 시간이 걸리는 점을 보완 - 우선순위 =
(대기시간+수행시간) / 수행시간
비선점
MLQ (Multi-Level
Queue)
- 서로 다른 작업을 각각 큐에서 타임 슬라이스에 의해 처리 - 각각의 큐는 독자적인 스케줄링 알고리즘 사용 선점
MFO (Multi-Level
Feedback Queue)
- 하나의 준비상태 큐를 통하여 여러개의 피드백 큐에 걸쳐 처리 - CPU와 IO 장치의 효율을 높일 수 있음 선점

 

06. 가상 기억장치

  - 보조기억장치에 가상의 논리적 주기억장치 공간을 만들고, 사용시 주기억장치로 매핑하는 기술

  가) 가상기억장치의 구현 기법

페이징 기법과 세그먼트 기법

    1) 페이징 기법

      - 주기억장치와 가상기억장치를 각각 동일크기의 프레임과 페이지로 분할하여 프레임에 페이지를 적재시켜 실행하는 기법

    2) 세그먼트 기법

      - 가상기억장치에 보관되어있는 처리해야 할 작업을 다양한 크기의 세그먼트로 분할한 후 주기억장치에 적재시켜 실행하는 기법

  나) 가상기억장치의 페이지 교체 기법

최적화 기법
(Optimal)
- 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체하는 기법
- 현실적으로 구현 불가
선입선출 (FIFO) - 주기억장치에 적재된 순서를 추적하여 제일 처음 적제된 페이즈를 교체하는 기법
최소 최근 사용 기법
(LRU)
- 가장 오랫동안 사용되지 않은 페이지를 교체하는 기법
최소 사용 빈도
(LFU)
- 가장 적게 사용된 페이지를 교체하는 기법
최근 미사용 기법
(NRU)
- 최근에 사용되지 않은 페이지를 참조하는 페이지를 교체하는 기법

  다) 가상기억장치의 성능에 영향을 미치는 요인

지역성
(Locality)
- 프로세스가 실행되는 동안 일부 페이지만 집중적으로 참조하는 성질
- 시간 지역성, 공간 지역성
워킹 셋
(Working Set)
- 자주 참조하는 페이지 리스트의 집합
스래싱
(Thrashing)
- 프로세스의 처리시간보다 페이지 교체시간이 더 많아지는 현상
- 다중프로그래밍의 정도를 줄이고, CPU 이용률을 높이거나 워킹셋 활용하여 해소

07. 파일 시스템

  가) 파일 시스템의 이해

    1) 파일의 개념

      - 작성자에 의해 정의된 정보의 집합체로 이름을 가진 하나의 데이터 집합

    2) 파일의 속성

이름 사람이 판독할 수 있는 형태
위치 파일이 존재하는 장치와 위치, 경로
크기 파일의 크기 (바이트, 워드 혹은 블록)
보호 접근 제어 정보 (읽기,쓰기,실행)
일시, 
사용자 식별
생성, 최근 정보, 최근 사용 등의 내용

    3) 디렉토리 개념

파일 탐색 사용자는 디렉토리 구조에서 탐색 가능
파일 생성 새로운 파일을 생성하여 디렉토리에 추가
파일 삭제 파일을 디렉토리에서 삭제
디렉토리 나열 디렉토리 파일들을 나열하고, 각 파일에 대한 디렉토리 항목의 내용을 보여줌
파일의 재명명 파일의 이름은 변경할 수 있어야 하고, 재명명된 파일은 변경된 디렉토리 구조내의 한 직점에 존재해야 함

  나) 파일 시스템의 할당 방법

    1) 연속할당

      - 물리적인 디스크의 연속적인 주소들의 집합으로 배치

연속할당 방법

    2) 연결할당

      - 블록단위로 저장하고 각 블록은 리스트에 연결하여 관리하는 방법

연결할당 방법

    3) 색인할당

      - 파일의 모든 포인트 정보를 하나의 색인 블록으로 관리하는 방법

색인할당 방법

  다) 운영체제별 파일 시스템의 종류

운영체제 파일시스템
유닉스 Boot Block, Super Block, Bitmap Block, i-node, Data Block
리눅스 확장파일시스템 (ext, ext2, ext3, ext4), ZFS, ResierFS, XFS
솔라리스 ZFS, UFS
맥 OS HFS, HFS+
윈도우 FAT, NTFS

  라) 유닉스(UNIX)의 i-node

i-node 구성요소 내용
inode - 한 파일이나 디렉토리의 모든 정보 포함
- 소유자 정보, 접근 정보, 파일 정보, 링크, 유형
inode table - 한 파일 시스템에서 파일이나 디렉토리들의 전체 inode를 갖고 있는 체이블
i number - inode가 i-list에 등록되는 entry number
addressing 블록위치 정도를 13개의 필드로 관리
* Direct data block 10개 (0~9) : 96KB
* Single indirect data block 1개 (10) : 12MB
* Double indirect data block 1개 (11) : 32GB
* Triple indirect data block 1개 (12) : 70TB

08. 입출력시스템

  1) 입출력장치

    - 실제 프로세서와 컴퓨터 사용자 간의 자료와 정보에 대한 입출력 수행

  2) 입출력모듈

    - 입출력 장치의 제어와 타이밍 조정, 프로세서와의 통신, 입출력장치들과의 통신, 데이터 버퍼링, 오류 검출 등의 기능 제공

[TOPCIT 목차]

 

1.프로토콜 이란

  • 네트워크를 통하여 데이터를 주고받기 위한 표준화된 통신 규약
  • 일반적으로 우리가 말하는 이더넷은 여러 대의 PC와 서버를 연결해주고 있는 하나의 네트워크가 여러 개 모여서, 보다 큰 네트워크를 구성

표준화 단체

단체 설명
IETF - Internet Engineering Task Force
- 주로 인터넷 관련 표준 프로토콜
3GPP, 3GPP2 - Third Generation Partnership Project, 2
- GSM, CDMA UMTS, LTE, LTE-A와 같은 무선 통신 프로토콜
ITU-T - International Telecommunication Union Telecommunication Standardization Sector
- 전화와 관련된 표준화를 진행

 

프로토콜 계층 개념을 반영한 가상 네트워크

2. OSI 참조 모델과 TCP/IP 프로토콜 계층 구조

1) OSI  참조 모델

릴레이 개방 시스템을 포함한 OSI 참조 모델 통신 개념

2) OSI 참조 모델 각 계층의 프로토콜과 기능

계층 프로토콜 기능
응용계층 HTTP, SMTP, SNMP, FTP, Telnet 사용자 인터페이스, 전자우편, 데이터베이스 관리 등 서비스를 제공
표현계층 JPEG. MPEG. XOR 두 시스템 간 교환되는 정보의 구문(Syntax)과 시맨틱과 관련된 인코딩 변환(Translation)과 암호화(Encryption)를 지원
세션계층 TLS, SSH, RPC, NetBIOS 통신 세션을 구성하는 계층으로, 통신장치 간의 상호작용을 설정하고 유지, 동기화
전송계층 TCP, UDP, SCTP 종단 프로세스 간 신뢰성 있는 메시지 전송과 오류 제어 기능을 제공
네트워크계층 IP, IPX ICMP, X.25, ARP, OSPF 발신지로부터 목적지까지 네트워크 간 패킷 전송을 지원
데이터링크계층 Ethernet, Token, Ring, 무선랜 등 오류 없이 홉(Hop) 간 프레임(Frame)을 전달하는 기능을 제공
물리계층 전파. 광섬유 PSTN 물리적 매체를 통해 실제로 비트(bit) 흐름을 전송

 

TCP/IP 프로토콜 계층: ARPANET 참조 모델 기반
네트워크 프로토콜 헤더와 데이터 구성의 예

3. 인터넷 주소체계

주소 설명
MAC 주소 (물리주소) - 데이터 링크층에서 사용하는 주소 체계
- 물리적으로 연결되어 있는 노드 간 프레임 전송에 사용
- 보통 NIC(Network Interface Card)이라 불리는 LAN 확장 카드에 하드웨어적으로 정보가 저장
IP 주소 (논리주소) - 네트워크층에서 사용하는 주소 체계
- 두 개의 호스트/라우터 간 데이터그램 전달에 사용
- 인터넷에 속한 여러 네트워크를 통하여 출발지 노드에서 목적지 노드로 원하는 데이터가 전달될 수 있도록 함
포트 번호 - 두 개의 프로세스(실행 중인 응용 프로그램) 간 메시지 전달에 사용되는 식별번호
- 포트번호 영역
0~1023
포트 번호: 잘 알려진 포트(well-known port)라고 하며, IANA에서 할당

1024~49,151 포트 번호: 등록 포트
49,152~65,535 포트 번호: 클라이언트에서 임시로 사용, 동적 포트 또는 임시 포트

 

4. 인터넷 표준

인터넷 표준화 기구

표준기구 내용 제정 표준()
IETF - Internet Engineering Task Force
- 인터넷 관련 표준을 담당하는 대표적인 국제 기구
- 인터넷 응용 계층 프로토콜을 정의
IP, TCP, UDP
HTTP, SSH, FTP, SMTP, POP3, IMAP 
ISO - 국제표준화기구(International Organization for Standardization)
- 지적 활동이나, 과학, 기술, 경제활동 분야에서 세계 상호 간의 협력을 위해 1946년 설립한국제가구
OSI 참조모델
ITU-T - 국제전기통신연합(International Telecommunications Union-Telecommunication Standards Sector)
- 국제전기통신 표준화부문으로 ITU의 산하기관
ITU-T G.711
IEEE
 
- 전기전자공학회(Institute of Electrical and Electronics Engineers)
- 미국표준협회(ANSI)에 의해 미국국가표준을 개발하도록 인증 받은 전문기구
IEEE 802.3
IEEE 802.11
IEEE 802.15
EIA - 전자산업협회(Electronic Industries Association)
- 미국전자공학회, 전자기계의 치수, 측정법, 표시법 등의 규격 통일을 기획하는 단체
TIA/EIA-568-B(T568B)
W3C - 월드와이드웹 컨소시엄(World Wide Web Consortium)
- 웹 표준을 제정하는 등 웹의 장기적 발전을 위해 1994년에 창립된 인터넷 관련 국제 컨소시엄
HTML 4.01/5
CSS 2/3
OMA - 개방형 모바일 연합(Open Mobile, Alliance)
- 모바일 데이터 서비스의 범세계적 활성화를 위해 기술 규격 개발 및 상호 운용성을 검증하기 위한 포럼
Push-to-talk over Cellular
(PoC)

+ Recent posts