교착상태(DeadLock)
  - 상호 배제에 의해 나타나는 문제
  - 둘 이상의 프로세스가 자원을 점유
  - 다른 프로세스가 무한정 기다리는 현상
  - 스타베이션 현상이라고도 한다

교착상태 발생조건
  1. 상포배제(Mutual Exclusion)
  2. 점유 및 대기(Hold and Wait)
  3. 비선점(Non-Preemption)
    * 선점(Preemption)이란 쉽게말해 운영체제를 제어하는 힘을 말한다.(교착상태를 막을 수 있다)
  4. 환형 대기(Circular Wait)
      : 프로세스가 자신이 가진 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구하는 것

회피기법(Avoidance)
  1. 은행원 알고리즘(Banker's Algorithm)
     - E. J. Dijkstra가 제안
     - 각 프로세스에 자원을 할당하여 교착상태가 발생하지 않고 모든 프로세스가 완료될 수 있는 상태를 안정상태,
        교착상태가 발생할 수 있는 상태를 불안정 상태라 한다.
     - 자원의 양과 사용자(프로세스)수가 일정해야 한다.
병행 프로세스(Concurrent Process)
  : 여러개의 프로세스가 동시에 실행상태에 있는 것을 의미한다.

임계구역(Critical Section)
  - 여러 프로세스가 공유하는 Data 및 자원을 한 프로세스만 쓸수 있게 공유
  - 특정 프로세스가 독점할 수 없다
  - 규칙 : 한 프로세스가 자원을 반납한 후 다른 프로세스가 사용가능

상호 배제 기법(MUTEX; Mutual Exclusion)
  - 공유 자원은 한 프로세스만 사용하게 하고 다른 프로세스가 접근 못하게 제어
  - 여러 프로세스가 동시에 자원 공유시 각 프로세스가 번갈아 가며 사용하게 하므로 임계구역을 유지
  - DeadLock이 일어나지 않게 하기 위해서 꼭 필요하다.

동기화 기법(Synchronization)
  - 두개 이상의 프로세스를 동시에 처리할 수 없기 때문에 각 프로세스의 처리 순서를 결정하는 것
  - 상호배제의 한 형태이다
  - 동기화를 구현할 수 있는 방법에는 세마포어와 모니터가 있다.

  1. 세마포어(Semaphore)
     - 다익스트라(E. J. Dijkstra)가 제안하였으며, 수신호 깃발을 뜻한다.
     - S는 P와 V 2개의 연산에 의해 동기화를 유지한다.

      * S가 0일때 사용중, 1일때 사용가능한 상태이다
         한개의 프로세스가 들어갈때 S=S-1이라는 P연산으로 사용중을 나타내고
         사용이 끝나면 S=S+1이라는 V연산으로 사용가능하게 바꾸어 준다.

  2. 모니터(Monitor)
     - 모니터 내의 공유자원을 사용하려면 반드시 모니터의 진입부를 호출해야 한다.
     - 모니터 경계에서 상호배제가 시행된다.
     - Wait와 Signal 연산이 사용된다.
     - 화장실의 잠금장치와 비슷한 개념이다.
프로세스(Process)의 정의
  - PCB를 가진 프로그램
  - 실행중인 프로그램
  - 실기억장치(RAM)에 저장된 프로그램(HDD에 저장된게 아니다)
  - CPU가 할당되는 실체
  - 비동기적 행위를 일으키는 주체(언제 어느때 실행할지 모르니 비동기적이다)


PCB(Process Control Block)란
  : CPU에게 주는 해당 Process에 대한 정보를 담은 블록


PCB의 저장 정보
  - Pointer : 프로세스 식별자 ID
  - Process State : 프로세스의 현재 상태
  - Process Number : 프로세스의 우선순위, 스케줄링
  - Program Counter : 프로그램의 위치
  - Registers : CPU레지스터 정보
  - Memory Limits : 기억장치 관리정보
  - List of Open Files : 입출력정보
  - 부모자식 프로세스 포인터 : 해당 처리 후 따라 처리 되야 하는 프로세스 정보


프로세스의 상태 전이



  - 준비(Ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
  - 실행(Run) : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
  - 대기(Block) : 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고 입출력이 완료될 때까지 대기하는 상태
   * 대기단계가 끝나면 다시 실행단계로 가지 않고 준비단계로 가게된다.
   * 할당받은 시간이 모두 소진되면 작업 중이어도 Time Out후 다시 Dispatch된다.

전송 트래픽 제어란
  : 네트워크의 보호, 성능 유지, 네트워크 자원의 효율적인 이용을 위해 전송되는 패킷의 흐름 또는 그 양을 조절하는 기능


흐름제어(Flow Control)
  : 통신망 내에 트래픽 제어의 원활한 흐름을 위해 망 내의 노드와 노드 사이에 전송하는 프레임(패킷)의 양이나
    속도를 규제하는 제어

  1. 정지-대기(Stop-and-Wait)
     - 수신 측으로부터 ACK를 받은 후에 다음 프레임을 전송하는 방식

  2. 슬라이딩 윈도우(Sliding Window)
    - 실제 P2P방식에서 사용되는 방식
    - 수신 측에서 받을 수 있는 데이터의 크기를 알려주면 송신측에서 그 크기 만큼 데이터를 묶어서 보내는 방식
    - 윈도우(Window) : 전송할 수 있는 프레임의 개수


혼잡(폭주)제어(Congestion Control)
  : 네트워크 내에서 패킷의 대기지연이 너무 높아지게 되어 트래픽이 붕괴되지 않도록 네트워크 측면에서
    패킷의 흐름을 제어하는 트래픽 제어


교착 상태 회피(Deadlock Avoidance)
  - 교환기 내에 패킷들을 기억 할 수 있는 공간이 포화 상태에서 있을때 다음 패킷들이 기억 공간에 들어가기 위해
    무한정 기다리는 현상을 교착상태라고 함
  - 교착 상태 발생 시 교착 상태에 있는 한 단말 장치를 선택하여 패킷 버퍼를 폐기함

에러의 발생원인

  1. 감쇠(Attenuation)
     : 전송 신호가 전송 매체를 통과하는 과정에서 거리에 따라 점차 약해지는 현상 (리피터를 사용하여 감쇠현상을 막는다)

  2. 지연왜곡(Delay Distortion)
     : 주로 하드와이어 전송 매체에서 발생되며, 전송 매체를 통한 신호 전달이 주파수에 따라 그 속도를 달리 함으로써
       유발되는 신호 손상

  3. 상호 변조 잡음(Intermodulation Noise)
     : 서로 다른 주파수들이 똑같은 전송 매체를 공유할 때 이 주파수들이 서로의 합과 차의 신호를 발생함으로 발생되는 잡음

  4. 충격 잡음(Impulse Noise)
     - 비연속적이고 불규칙한 진폭을 가지며, 순간적으로 높은 진폭이 발생하는 잡음
     - 외부의 전자기적 충격이나 기계적인 통신 시스템에서의 결함 등이 원인
     - 디지털 데이터를 전송하는 경우 중요한 오류 발생의 원인이 됨


에러 검출 방식

  1. 패리티(Parity) 검사
    - 데이터 한 블록 끝에 1비트의 검사 비트인 패리티 비트(Parity Bit)를 추가하여 전송 에러를 검출하는 방식
    - 짝수(우수) 패리티 : 전송 비트 내에 1의 개수가 짝수가 되도록 하는 것
    - 홀수(기수) 패리티 : 전송 비트 내에 1의 개수가 홀수가 되도록 하는 것
    - 짝수개의 에러가 검출 시 찾지 못하는 단점이 있다.

  2. 순환 중복 검사(CRC; Cyclic Redundancy Check)
    - 특정 다항식에 의한 연산 결과를 데이터에 삽입하여 에러를 검출
    - HDLC 프레임의 FCS에 사용되는 방식
    - 집단에러까지 검출 가능

  3. 해밍 코드(Hamming Code)방식
    - 자기 정정 부호의 하나로 비트 착오를 검출해서 1bit 착오를 정정하는 부호 방식
    - 전진에러수정 방식이라고도 한다.
    - 패리티 비트는 에러를 검출만 하지만 해밍코드는 에러를 검출하고 정정까지 한다.
   * 2ⁿ자리 = 패리티 비트(1, 2, 4, 8, 16 …)


에러 제어 방식

  1. 자동 반복 요청(ARQ; Automatic Repeat reQuest)

      : 통신 경로에서 에러 발생 시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재전송

   ① 정지-대기(Stop-and-Wait) ARQ
     - 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지
        기다리는 방식
     - 수신 측에서 에러 점검 후 제어 신호를 보내올 때까지 오버헤드(overhead)가 효율 면에서 가장 부담이 큼 

   ② 연속(Continuous) ARQ
     - Go-Back-N ARQ
        : 에러가 발생한 블록 이후의 모든 블록을 다시 재전송하는 방식
          에러가 발생한 부분부터 모두 재전송 하므로 중복 전송의 단점이 있음
          HDLC방식에서 사용
     - 선택적 재전송(Selective-Repeat ARQ)
        : 수신 측에서 NAK를 보내오면 에러가 발생한 블록만 재전송
          복잡한 논리 회로와 큰 용량의 버퍼가 필요
               
   ③ 적응적(Adaptive) ARQ
     - 데이터 블록의 길이를 채널의 상태에 따라 동적으로 변경시키는 방식


전송 에러 제어 방식

  1. 전진 에러 수정(FEC, Forward Error Correction)
    - 송신 측에서 정보비트에 오류 정정을 위한 제어 비트를 추가하여 전송하면 수신 측에서 이 비트를 사용하여
       에러를 검출하고 수정하는 방식
    - 대표적인 예로 해밍(Hamming)코드 방식과 상승 코드 방식이 있음

데이터 링크
  : 물리적 연결을 완료 후 신뢰성 있는 데이터 전송을 위한 단계


데이터 링크 제어 프로토콜

 1. 문자 위주 동기 방식 데이터 링크 프로토콜

 
  BSC(Binary Synchronous Control)
     - 프레임에 전송 제어 문자를 삽입하여 전송
     - 문자방식

  ② BSC의 특징
     - 에러제어와 흐름 제어를 위해서 정지-대기(Stop and Wait)방식을 사용
     - 1:1 링크 뿐만 아니라 멀티 포인트 링크에서도 사용
     - 주로 동기 전송을 사용하나 비동기 전송 방식을 사용하기도 함
     - 반이중(Half Duplex)전송만 지원

   * 정지-대기 방식(Stop and Wait)
       : 프레임을 보내고 오류가 없이 전송이 되었나 응답이 올때까지 멈춰서 기다리는 방식

  ③ BSC 프레임 구조(전송제어 문자)

 SYN SYN  SOH  Heading  STX  TEXT  ETX  BCC 


  - SYN(SYNchronous idle) : 동기 맞춤 문자
  - SOH(Start Of Heading) : 헤딩의 시작를 표시
  - STX(Start of TEXT) : 실제 전송할 데이터 집합의 시작임을 의미
  - ETX(End of TEXT) : 본문의 종료
  - BCC : 오류검출
  - ETB(End of Transmission Block) : 블록의 종료
  - EOT(End Of Transmission) : 한개 또는 그 이상의 전송 종료를 표시
  - DLE(Data Link Escape)
  - ACK(ACKnowledge) : 수신 측에서 송신 측으로 긍정 응답을 보내는 문자(오류 없음)
  - NAK(Negative AcKnowledge) : 수신 측에서 송신 측으로 부정 응답을 보내는 문자(오류 검출)
  - ENQ(EnQuiry) : 링크 설정 요청, 상대국의 응답 요청

  ④ 제어 문자의 종류
     - 전송 제어 문자
     - 장치 제어 문자
     - 포맷 제어 문자
     - 정보 분리 문자



 2. 비트 위주 동기 방식 데이터 링크 프로토콜

  ① HDLC(High-level Data Link Control)
     - 각 프레임에 데이터 흐름을 제어하고 오류를 검출할 수 있는 비트열을 삽입하여 전송
     - 비트방식
   
  ② HDLC의 특징
    - 전송 효율과 신뢰성이 높음
    - 정보 전송 단위가 프레임
    - 전송 제어상의 제어를 받지 않고 문자 코드 종류와 무관하게 투명하게 동작(비트 투과성)
    - 단방향, 반이중, 전이중 모두 사용 가능
    - Go-Back-N ARQ 에러 제어 방식을 사용(고난이도 에러 제어 방식)
    - 데이터 링크 형식은 Point-to-Point, Multi-Point, Loop 모두 가능

  ③ HDLC 프레임 구조

Flag  Address  Control  Information  FCS  Flag 

  - Flag(플래그)
     : 프레임의 동기를 제공하기 위해 사용, 시작과 끝을 표시, 항상 01111110의 형식을 취함
  - Address(주소부)
     : 송수신하는 스테이션을 구별하기 위해서 사용(데이터를 받을 주소)
  - Control(제어부)
     : 프레임의 종류를 식별하기 위해서 사용
  - Information(정보부)
     : 실제 정보 메세지가 들어가는 부분
  - FCS(Frame Check Sequence Field, 검사부)
     : 전송 오류 검출 기능

  ④ 프레임 종류
    - 정보 프레임(I-frame; Information Frame)
       : 제어부가 '0'으로 시작하고, 사용자 데이터(User data)를 전달하는 기능, 순수 데이터
    - 감독 프레임(S-frame; Supervisory Frame)
       : 제어부가 '10'으로 시작하고, 흐름제어, 에러제어 등의 기능, 데이터와 상관없는 프레임
    - 비번호(무번호) 프레임(U-frame; Unnumbered Frame)
       : 제어부가 '11'로 시작하고, 링크의 동작 모드 설정과 관리의 기능

  ⑤ HDLC의 수행 국(Station)
    - 주국(주스테이션, 일차국, 서버)
       : 종속된 단말기 제어하거나 정보를 제공 하는 컴퓨터
    - 종국(부스테이션, 이차국, 클라이언트)
       : 주국으로부터 제어를 받고 정보를 제공 받는 컴퓨터
    - 혼합국(복합국)
       : 상대국 컴퓨터를 제어하기도 하고 받기도 하는 컴퓨터

     * 불균형 구성 : 주스테이션, 부스테이션
        균형 구성 : 혼합스테이션

전송 제어란?
  : 데이터의 원활한 흐름을 위해 입출력 제어, 동기제어, 오류제어, 회선제어, 흐름제어 등을 수행

전송 제어 프로세스

     데이터 통신 회선의 접속     : 통신회선과 단말기의 물리적 접속단계
                    ↓
      데이터 링크 설정(확립)     : 송수신측간의 데이터 전송을 수행하기 위해 논리적 경로를 구성
                    ↓
           정보 메시지 전송          : 데이터를 수신 측에 전송하며 잡음에 의한 데이터의 오류 제어와 순서 제어를 수행
                    ↓
          링크의 종료(해제)         : 송수신측간의 논리적 경로를 해제하는 단계
                    ↓
     데이터 통신 회선의 절단    : 통신 회선과 단말기의 물리적 접속을 절단하는 단계

  - 디지털 데이터를 디지털 회선을 통해 전송하기 위해 디지털 형태로 변환
  - DSU/CSU를 이용

진폭 편이 변조(ASK; Amplitude Shift Keying)
  - 2진수 0과 1을 각각 서로 다른 진폭의 신호로 변조하는 방식

주파수 편이 변조(FSK; Frequency Shift Keying)
  - 2진수 0과 1을 각각 서로 다른 주파수로 변조하는 방식

위상 편이 변조(PSK; Phase Shift Keying)
  - 2진수 0과 1을 각각 서로 다른 위상을 가진 신호로 변조하는 방식
  - 동기식 변복조기(MODEM)에거 주로 사용(고속에 사용된다)

진폭 위상 편이 변조(QAM : Quadrature Amplitude Modulation)
  - 진폭 편이 변조 + 위상 편이 변조이므로 APAM이기도 하다
  - 4위상 2진폭은 한번에 3비트, 8위상 2진폭은 한번에 4비트를 전송한다.

펄스 코드 변조(PCM; Pulse Code Modulation)
  : 아날로그 신호를 디지털 신호로 변조
    대표적인 펄스 코드 변조에는 CODEC이 있다

펄스 코드 변조 과정

       표본화(Sampling)  →  양자화(Quantizing)  →  부호화(Encoding)   


샤논의 표본화(Sampling) 이론(셈플링 이론)
  : 변조하려고 하는 주파수를 기준으로 그 주파수의 2배수로 신호를 잘라주면 원래 신호가 크게 변하지 않고 
    디지털로 바뀔 수 있는 이론
  * 표본화 횟수 : 2 x 최고 주파수,  표본화 간격 : 1/표본화 횟수

양자화 잡음
  : 실직적인 신호의 왜곡이 일어나는 단계(잡음이 생기는 단계)
부호화
  : 실직적은로 디지털 신호로 변화되는 과정
복호화
  : 디지털신호로 변조한 신호를 다시 아날로그 신호로 변경하는 것

+ Recent posts