코드 훔쳐보는 변태 코더
춤 좋아하는 백엔드 개발자(였으면 좋겠다)
학교공부 (10)
프로세스랑 스레드는 무슨관계?? ;ㅅ;

프로세스

프로그램 → 하드디스크 등의 저장매체에 저장되는 실행 파일의 형태를 갖고있는 것

프로세스 → 프로그램이 메모리에 적재되어있는 상태를 뜻한다.

  • 프로세스는 프로그램 실행에 필요한 모든 자원을 할당받는다.
  • 코드공간 / 힙공간 / 스택공간 / 데이터공간 을 갖고있다.

프로세스는 기본적으로 코드공간 힙공간 스택공간 데이터공간 을 가집니다. (코데힙스)

프로세스의 특징

  • 운영체제는 프로그램을 메모리에 적재하고 프로세스로 다루게 된다.
  • 메모리 할당 → 코드 , 데이터 적재
  • 프로세스들은 서로 독립적인 메모리 공간을 가지고 프로세스마다 고유한 번호 **(PID)**를 할당한다.
  • 프로세스의 모든 정보는 커널에 의해 관리된다.
  • 프로세스는 기본적으로 실행 - 대기 - 잠자기 - 대기 - 실행 - 종료 등의 생명주기를 가지고 커널에 의해 수행된다.

운용되는 동안에는 대기하고있는 프로세스 (기본적으로는 단순히 대기도 아닌 하드디스크에 저장되어있다.)

  • 그럼 프로세서는 ? → 하드웨어적인 부분으로 하드웨어 처리기라는 의미를 갖고있다.

프로세스는 프로그램의 단위라고 할 수 있으며 프로그램의 정보를 저장한 인스턴스라고도 볼 수 있습니다.

프로세스 관리

  • 커널 (운영체제의 핵심 부분을 의미합니다. 이 부분은 하드웨어와 소프트웨어 간의 인터페이스 역할을 하며, 프로세스 관리, 메모리 관리, 입출력 관리 등 시스템의 핵심적인 기능을 제공합니다. )
    • 커널에 의해 커널 영역에 프로세스 테이블을 만들고 프로세스 목록을 관리한다.
  • 그렇다면 한 프로그램을 여러번 실행할땐 ?
    • 프로그램 실행시마다 독립된 프로세스가 생성되고 다중 인스턴스라고 부른다.
      • 각 프로세스에 독립된 메모리 공간이 할당되며 별개의 프로세스로 취급한다.

프로세스 구성

  • 코드 영역
    • 프로그램의 코드가 적재되는 영역이다.
  • 데이터 영역
    • 프로그램의 변수 공간이라 볼 수 있다.
    • 프로세스 적재시 할당되며 종료시 소멸된다.
  • 힙 영역
    • 동적으로 사용할 수 있도록 할당된 공간이다.
  • 스택 영역
    • 함수가 실행될 때 사용될 데이터를 위해 할당된 공간이다.

프로세스는 기본적으로 자바 혹은 자바스크립트와 같은 언어들의 컨텍스트와 비슷한 영역을 갖고있습니다.

스레드

  • 스레드의 출현 목적
    • 멀티태스킹의 문제점
      • 커널에 많은 시간과 공간이 부담되며 시스템의 전체 속도를 저하시킨다.
    • 효율적인 새로운 실행 단위가 필요했기 때문에 스레드가 출현했다.
  • 스레드는 기본적으로 프로세스보다 크기가 작다.
  • 프로세스보다 생성 및 소멸이 빠르고 이로인해 컨텍스트 스위칭이 빠르다.

스레드의 개념

  • 스레드는 실행 단위이며 스케줄링 단위이다.
    • 하나의 작업의 개념을 갖고있다.
  • 운영체제에게는 실행단위이고 스케줄링 단위이다.
    • 스케줄링이란 ? → 시스템 내에서 실행될 작업들을 어떤 순서에 따라 할당하고 관리하는 것을 의미합니다.
  • 스레드 또한 코드 데이터 힙 스택을 가진 실체이며 프로세스와 마찬가지로 스레드마다 TCB (스레드 컨트롤 블럭) 이 존재한다.
    • 프로세스는 스레드들의 컨테이너라고 볼 수 있다.
      • 쉽게 생각하자면 리액트의 useState 가 클로저 개념을 사용해서 캐싱하고 변화를 눈치채는것처럼 프로세스는 스레드를 캐싱해두고 작업에 대한 정보를 얻어서 관리한다고 생각하시면 돼요!
    • 마찬가지로 프로세스는 회사 / 스레드는 직원에 비유할 수 있다.
      • 직원 → 회사의 목적을 위해 일을 하는 단위
      • 스레드 → 프로세스의 목적을 위해 동시에 실행될 작업 단위
    • 프로세스는 스레드들의 공유 공간을 제공한다.
      • 모든 스레드는 프로세스의 코드 데이터 힙을 공유하며 프로세스의 스택 공간을 나누어 사용한다. 따라서 스레드 사이의 통신이 용이하다. (멀티 프로세스와의 가장 큰 차이점)
    • 프로세스의 속한 모든 스레드가 종료되면 프로세스가 종료된다.
  Comments,     Trackbacks
운영체제 이론 03-28 (정리) 프로세스와 커널

인터럽트

  • 입출력 장치들이 비동기적 사건을 CPU에게 알리는 행위
    • 비동기 → 동기와 다르게 요청을 보냈을 때 응답이 도착하지 않아도 요청을 보낼 수 있다.
    • 마우스 조작 , 키보드 입력
    • 네트워크로부터 데이터 도착 등등

인터럽트 발생 전 프로그램 실행 중 → 입력장치로부터 인터럽트 발생 → 인터럽트 메시지 CPU로 전송 → CPU코어로부터 전송 및 인터럽트 벡트 번호 반환 → 인터럽트 벡터 테이블에서 인터럽트의 서비스 루틴의 주소를 알아낸다. → 인터럽트 서비스 루틴 실행 → CPU는 인터럽트 발생 전에 하던 작업을 지속한다.

 

 

  • 인터럽트 서비스 루틴
    • ISR → 인터럽트 핸들러
    • 위치 : 디바이스 드라이버나 커널 코드, 임베디드 컴퓨터 ROM

인터럽트는 다중 프로그래밍 실현의 키이다.

  • 다중 프로그래밍 리뷰
    • 여러 프로세스를 동시에 실행한다. (멀티 프로그래밍)
    • 프로그래밍과 프로세서는 프로그램 하나가 프로세서 하나를 같이 운영 할 수 있다.
    • 한 프로세스가 입출력을 시행하면 다른 프로세스로 교체 실행된다.
    • 입출력이 완료될 때, 장치로부터 입출력 완료 통보를 받는 방법이 필요하고 그것이 바로 인터럽트이다.
      • 인터럽트가 없다면 ? → CPU는 폴링을 실행해야 하므로 비효율정이다.
        • 폴링 ⇒ 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식
      • 다중 프로그래밍 운영체제의 구현은 사실상 거의 불가능하다.
  • 인터럽트의 효과
    • 컴퓨터 시스템이 효율적으로 작동한다.
      • CPU 활용률이 높아진다. (시스템 처리율 향상)
    • 입출력 장치와 CPU가 동시에 각자의 작업을 실행한다.
      • 입출력 장치 → 지시받은 입출력 진행 / CPU → 다른 프로그램 실행
더보기

인터럽트는 프로세스가 입출력 등의 외부 사건에 의해 중단 후 처리 후에 다시 프로세스를 계속 실행시키는 것을 의미한다.

인터럽트 발생 시 ISR (Interrupt Service Routine) 혹은 Interrupt Handler 가 실행된다.

인터럽트가 존재하지 않는다면 다중 프로그래밍 운영체제의 구현은 사실상 불가능하다.

프로세스

  • 프로그램
    • 하드디스크 등의 저장 매체에 저장된다. (실행 파일의 형태)
  • 프로세스
    • 프로그램이 메모리에 적재되어 실행 되는 상태
      • 필요한 모든 자원을 할당받는다.
      • 코드공간, 데이터공간, 스택공간, 힙공간
    • 프로세스 특징
      • 운영체제는 프로그램을 메모리에 적재하고 프로세스로 다룬다.
      • 메모리를 할당 후 코드와 데이터 등을 적재한다.
      • 프로세스들은 서로 독립적인 메모리 공간을 가진다.
      • 운영체제는 프로세스마다 고유한 번호를 할당한다. ⇒ PID
      • 운영체제는 각 프로세스의 메모리 위치와 크기 정보를 관리한다.
      • 프로세스의 모든 정보는 커널에 의해 관리된다.
      • 프로세스는 실행 - 대기 - 잠자기 - 대기 - 실행 - 종료 등의 생명 주기를 가진다. (모든 관리는 커널에 의해 수행된다.)

  • 프로세서
    • CPU , 그래픽 프로세스 (실제 칩으로 되어있는 것들)
    • 하드웨어 처리기라는 의미를 갖고있다. (하드웨어 적인 부분)
  • 프로세스
    • 프로그램에 대한 실행 (소프트웨어적인 부분)

 

더보기

프로세스는 프로그램이 메모리에 적재되어 실행되는 상태를 뜻한다. 프로세스의 모든 정보는 커널에 의해 관리되며 프로세스마다 고유한 번호를 가지게 된다.

프로세스 관리

  • 프로세스의 생성에서 종료까지 관리는 모두 커널에 의해 이루어진다.
    • 커널 영역에 프로세스 테이블을 만들고 프로세스 목록을 관리한다.
  • 관리 내용
    • 프로세스 생성, 실행, 일시중단 및 재개, 정보 관리, 프로세스 통신, 프로세스 동기화, 프로세스 중단, 프로세스 컨텍스트 스위칭
  • 한 프로그램을 여러 번 실행시킬 때
    • 프로그램 실행 시 마다 독립된 프로세스 생성 → 프로세스들을 프로그램의 다중 인스턴스라고 부른다.
      • 각 프로세스에 독립된 메모리 공간을 할당
      • 각 프로세스를 별개의 프로세스로 취급한다.

 

더보기

프로그램을 여러 번 실행 시킬땐, 다중 인스턴스화 된다.

각 프로세스 마다 독립된 메모리 공간을 할당받는다.

응용 프로그램의 자원 접근 문제

  • 오늘날 운영체제는 다중 프로그래밍 운영체제이다.
    • 응용 프로그램이 직접 컴퓨터 자원에 접근하면 충돌과 훼손이 발생한다.
      • 다른 응용프로그램이 적재된 메모리를 훼손 할 수 있다.
      • 다른 응용프로그램이 만든 파일 삭제 및 훼손이 가능하다.
      • 응용 프로그램이 커널이 적재된 영역 훼손 가능
    • 해결 방안
      • 자원에 대한 모든 접근은 커널에만 부여한다.
  • 구체적인 해결 방법
    • 사용자 공간 → 응용 프로그램만 있는 공간
    • 커널은 커널 공간에만 적재한다.
    • CPU의 실행모드를 사용자 모드와 커널 모드로 분리한다.
    • 응용 프로그램이 커널 기능을 이용할 때, 시스템 호출을 잉요해서만 커널 코드를 이용하도록 한다.

사용자 공간과 커널 공간

  • 사용자 공간
    • 응용 프로그램들이 적재되는 공간
  • 커널 공간
    • 커널 코드, 커널 데이터 등 커널에 의해 배타적으로 사용되는 공간
    • 디바이스 드라이버를 포함한다.
  • 분리하는 이유
    • 커널 코드와 데이터를 악의적인 응용프로그램이나 코딩 실수로부터 지키기 위함이다.

 

더보기

프로그램이 직접 컴퓨터 자원에 접근하여 발생하는 충돌을 막기 위해 자원에 대한 접근은 커널에만 부여한다.

사용자 공간 크기의 의미

  • 한 응용프로그램의 최대 크기 결정
    • 프로그램 코드 + 데이터 (전역 변수) + 힙(동적 할당) + 스택
    • 운영체제에서 사용자 공간이 2GB → 응용프로그램을 2GB 크기 이상 개발 X
  • 사용자 공간의 주소 범위
    • 운영체제가 설정한 사용자 공간의 주소 범위를 넘어설 수 없다.
      • 바로 종료됨 (심각한 오류 예 : 블루스크린)

주소공간은 가상 공간이다. (사용자나 응용프로그램 관점에서 보는 주소 범위) / 사용자가 전체 메모리를 사용하고 있다고 착각하지만 실제론 아니다.

 

 

  • 사용자 공간의 충돌 해결 → 가상 주소 공간을 물리 메모리에 매핑한다.
    • 매핑 테이블 (주소 공간을 갖고 있는) → 운영체제가 소유하고 관리한다.
    • 물리 메모리를 여러 프로그램의 사용자 공긴이 나누어 사용
      • 실제로는 각 프로그램이 사용자 공간의 일부만 사용한다.
    • 커널 공간 역시 물리 메모리에 매핑 될 수 있다.
  • 물리 메모리가 작은 경우에는 하드 디스크에 저장하여 물리 메모리의 빈 영역을 확보한다. (가상 메모리 기법)

 

더보기

사용자 공간은 운영체제가 정한 범위 이상을 가질 수 없다.

해결 방법은 가상 주소 공간을 물리 메모리에 매핑하는 가상 메모리 기법 등이 있다.

 

 

사용자 모드와 커널 모드

  • CPU는 사용자 모드와 커널 모드 중 한 모드로 실행한다.
    • CPU 내부에 모드 레지스터 존재 → 모드 상태를 나타냄
  • 사용자 모드
    • CPU의 모드 비트 → 1
    • CPU는 커널을 쓸 수 없다. → 응용 프로그램으로부터 커널 영역을 보호한다.
    • 특권 명령 실행을 불허한다.
      • 특권명령 ? 입출력 장치 등 하드웨어나 시스템 중단 등 시스템 관련 처리를 위해 설계된 특별한 명령
  • 커널 모드
    • CPU의 모드 비트 → 0
    • CPU가 커널 공간에서 실행하는 중, 혹은 사용자 코드를 실행하는 중
    • 특권 명령 사용 가능
  • 사용자 모드에서 커널 모드로 전환하는 경우
    • 시스템 호출과 인터럽트
  • 시스템 호출
    • 특별한 기계 명령에 의해 진행된다.
      • 각 장비들마다 기계 명령이 다르다.
    • 기계 명령이 CPU의 모든 비트를 커널 모드로 전환한다.
  • 인터럽트
    • CPU가 인터럽트를 수신하면 커널 모드로 자동으로 전환한다.
    • CPU는 인터럽트 서비스 루틴을 실행한다.
    • 인터럽트 서비스 루틴이 끝나면 사용자 모드로 자동 전환한다.

더보기

사용자 모드에서 커널 모드로 전환하는 경우는 시스템 콜이 일어나거나 인터럽트가 발생했을때이다.

CPU는 인터럽트를 수신하면 커널 모드로 자동으로 전환 후 서비스 루틴이 끝나면 사용자 모드로 자동 전환한다.

특권 명령

  • 특별한 목적으로 설계된 CPU 명령
  • 커널 모드에서만 실행된다.
  • 종류
    • I/O 명령
    • Halt 명령
      • CPU 작동 중지 (유휴 상태로 만듬)
    • 인터럽트 플래그를 켜고 끄는 명령
      • CPU가 인터럽트를 허용하거나 무시하도록 지시한다.
    • 타이머 설정 명령
    • 컨텍스트 스위칭 명령
    • 메모리 지우기 명령
    • 장치 상태 테이블 수정 등의 명령
  • 사용자 모드와 커널 모드는 CPU에 의해 구현되는가, 운영체제에 의해 구현되는가
    • 운영체제는 CPU 모드 레지스터를 이용하여 커널 영역을 지킨다.
    • 모드는 CPU에 의해 구현, 운영체제가 활용할 수는 있다.
  • 운영체제가 사용자 모드와 커널 모드로 나누는 이유는?
    • 커널 공간에 대한 보안과 보호
    • 사용자 응용프로그램은 사용자 모드에서 심각한 오류가 발생해도 시스템을 중단시키지는 못한다.
  • 사용자 응용프로그램이 커널 코드를 호출하는 일이 있는가?
    • 직접 커널 코드 호출 불가
  • CPU가 커널 모드와 사용자 모드 중 어떤 모드로 많이 실행될까?
    • 시스템 전체 통계를 보면 커널 모드에서 많이 실행된다.
    • 장치 액세스의 경우가 많으면 커널 모드 시간 비율이 높아진다.
더보기

특권 명령은 커널 모드에서만 실행되는 CPU 명령이다.

커널

  • 커널은 컴파일된 바이너리 형태, 하드디스크 특정 영역에 저장된다. (부팅 시에 커널 공간의 메모리에 적재된다.)
  • 커널 코드는 함수들의 집합이다.
    • 커널 모드에서 실행되는 함수들과 데이터들의 집합이다.

 

커널 자체가 프로세스가 될 순 없다.

 

  • 커널은 스스로 실행되는 프로세스가 아니다.
    • 함수들의 단순 집합, 시스템 호출을 통해 호출되는 함수들이다.
      • 시스템 호출인터럽트 서비스 루틴에 의해 커널 내 스케줄러 함수가 호출되어 실행된다.
  • 커널은 실행 중이 아니다.
    • 커널은 프로세스도 스레드도 아니다.
      • 커널 코드를 실행하고 있다 / 인터럽트 서비스 루틴이 실행되고 있다.
  • 커널은 스택이나 힙을 갖지 않는다.
    • 함수들의 단순 집합이기 때문 / 스레드가 가진다.
    • 스레드마다 사용자 스택과 커널 스택을 소유한다.
      • 스레드가 생성될 때 프로세스의 사용자 공간에 사용자 스택 할당 / 커널 공간에 커널 스택 할당 (시스템 호출을 통해)
더보기

커널은 컴파일 된 바이너리 형태의 함수들의 집합이다.

커널은 프로세스도 스레드도 아닌 단순 함수의 집합이다.

 

 

라이브러리

  • 프로그램에서 활용하도록 미리 작성된 함수들이 컴파일 되어 바이너리 형태로 제공되는 파일
  • 개발자는 라이브러리 활용이 없이는 응용프로그램 작성이 불가능하다.
  • 활용되는 라이브러리는 2가지 유형을 갖는다.
    • 표준 라이브러리
      • 사용자가 작성하기 힘든 함수를 제공한다.
      • 운영체제나 컴퓨터 하드웨어에 상관없이 이름과 사용법이 동일하다.
    • 시스템 호출 라이브러리
      • 시스템 호출 함수를 포함한다.
      • 시스템 호출을 진행하여 커널 모드로 바꾸고 커널로 진입하여 커널에 만들어진 함수를 실행한다.
      • 시스템콜 함수를 커널 API라고 부른다.
      • 운영체제마다 시스템콜 함수의 이름이 서로 다르다.

링킹

  • 실행 파일이 만들어지는 과정이다.
  • 응용프로그램이 사용자 공간에 적재 → 실행 파일 내 사용자 코드와 라이브러리 코드의 메모리 적재 → 사용자 전역 변수와 라이브러리의 전역 변수 모두 메모리에 적재 → 응용 프로그램은 사용자 모드로 실행 시작

함수 호출과 시스템 호출

  • 함수 호출로 라이브러리를 활용한다.
    • 사용자 공간에 적재된 함수가 사용자 공간에 적재된 다른 함수를 호출한다.
      • 스택에 돌아올 주소, 매개변수를 전달 → 호출된 함수의 지역 변수를 생성한다.
      • 사용자 공간에 적재된 함수의 주소로 점프
      • 함수가 끝나면 함수를 호출한 곳으로 복귀시킨다.
  • 시스템 호출로 커널 코드를 실행한다.
    • 커널에 작성된 함수 실행
      • 시스템 호출 라이브러리에 포함된 시스템 호출 함수가 시스템 호출을 일으킨다.
    • 기계 명령어를 실행한다.
    • 커널 모드로 전환되고 커널 함수마다 고유 번호를 전달한다.
    • 커널의 시스템 호출 핸들러를 실행한다.
    • 커널 함수의 고유 번호 분석, 해당 커널 함수 호출
    • 리턴할 때 사용자 모드로 전환, 사용자 프로그램으로 복귀

시스템 호출

  • 사용자 공간의 코드에서 커널 서비스를 요청하는 과정이다.
    • 커널 콜 / 트랩 이라고도 불린다.
    • 응용프로그램에서 커널 기능을 활용하도록 만들어 놓은 기능이다.
  • 운영체제는 시스템 호출 라이브러리를 제공한다.
    • 시스템 호출 함수 혹은 커널 API를 포함한다.
    • 대략 200개 이상의 시스템 호출 함수가 존재한다.
  • 시스템 호출을 일으키는 기계 명령
    • CPU마다 시스템 호출을 실행하는 특별한 기계 명령을 제공한다.

 

fread()와 read() 의 비교

  • 시스템 호출은 함수 호출에 비해 많은 시간 비용이 든다.
    • 시스템 호출을 많이 할수록 프로그램 실행 속도가 저하된다.
    • fread() ⇒ 1번의 시스템 호출
    • read() ⇒ 10번의 시스템 호출 (느리고 비효율적이다.)

프로세스 구성

  • 코드 영역
    • 프로그램 코드가 적재되는 영역
  • 데이터 영역
    • 프로그램에서 고정적으로 만든 변수 공간
    • 프로세스 적재시 할당, 종료시 소멸
  • 힙 영역
    • 프로세스의 실행 도중 동적으로 사용할 수 있도록 할당된 공간
  • 스택 영역
    • 함수가 실행될 때 사용될 데이터를 위해 할당된 공간
    • 함수 호출 외에 프로세스에서 필요시 사용이 가능하다.

프로세스 주소 공간

  • 실행중에 접근할 수 있도록 허용된 주소의 최대 범위 (범위를 벗어나지 않음)
  • 논리공간이다. (가상공간)
    • 0번지에서 시작하여 연속적인 주소를 가진다. (실제는 0번지가 아니라고 볼 수 있다.)
  • 32비트 CPU의 경우 4GB 까지 크기를 가질 수 있다.
  • 프로세스 크기 : 적재된 코드 + 전역 변수 + 힙 영역에서 할당받은 동적 메모리 공간 + 스택 영역에 현재 저장된 데이터 크기 로 매번 달라질 수 있다.

커널 공간

  • 시스템 호출을 통해 이용하는 커널 공간
  • 커널 코드 , 커널 데이터, 커널 스택(커널 코드가 실행될 때만) 이 존재한다.

결론

  • 프로세스의 코드와 데이터는 실행 파일에 결정된 상태로 코드 영역과 데이터 영역에 적재된다. → 실행 중에 크기가 변하지 않는다. (메모리를 아껴써야 한다.)
  • 프로세스는 사용자 공간의 최대 범위까지 동적할당 받으면서 힙 영역과 스택 영역을 늘려갈 수 있다.

커널 공간의 의미

  • 각 프로세스는 독립된 사용자공간을 소유하고 커널 공간을 공유한다.
    • 프로세스가 사용자 코드에서 시스템 호출을 통해 커널 코드를 실행할 때 커널 공간을 사용한다.
  • 결론
    • 프로세스마다 각각 사용자 주소 공간이 존재한다.
    • 시스템 전체에는 하나의 커널 주소 공간이 있다.
    • 모든 프로세스는 커널 주소 공간을 공유한다.

프로세스의 주소 공간

  • 프로세스의 주소 공간은 가상 공간이다.
    • 프로세스에서의 0번지는 가상 주소 0번지를 의미한다.
    • 가상 주소는 0번지부터 시작된다.
    • 코드 주소 변수 주소 등등은 모두 가상 주소이다.
  • 프로세스의 주소 공간은 각 프로세스마다 주어지고, 가상 주소가 물리 주소로 매핑되기 때문에 물리 메모리에서는 충돌하지 않는다.
  Comments,     Trackbacks
정보통신 개론 03-27 (정리) 컴퓨터, 부울대수 , 데이터표현

통신 시스템의 하드웨어

  • 통신 제어장치
    • 컴퓨터 ← 단말장치 → 모뎀
    • 컴퓨터 중앙처리장치와 데이터 전송회선 사이에서 전기적으로 연결된다.
      • 전송문자의 조립 / 분해
      • 코드 변환
      • 회선의 제어
      • 에러 제어 등
    • 네트워크 제어 장치 (NCU) 라고도 한다. (Network Control Unit)

통신 제어장치

  • 장비 측 (디지털 신호) 와 선로 (아날로그 → 전기신호) 측의 상호 교류를 지원한다.
  • 선로 낭비를 줄이기 위해 다중화, 역 다중화를 사용한다.
  • 다중화 (전송문자)
    • 여러대의 장비 → 한 선로
    • 한 선로 → 여러대의 장비

동기 제어 ** → 송신 측과 수신 측을 일치 시키도록 제어 / 흐름 제어 → 버퍼 초과 방지 ( 버퍼 : 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역 ) / 응답 제어 → 응답용 확인 메시지 전송 (3Way handshake방식)

 

더보기

통신 제어장치는 중앙 처리장치와 모뎀 사이에서 전기적으로 연결된다.

선로 낭비를 줄이기 위해 다중화 / 역다중화를 사용한다.

정보전송 기능 → 동기제어, 흐름제어 (버퍼 초과 방지 : 데이터 용량 초과 방지) , 응답제어 등

통신 제어장치의 부가 장치

  • 전위 처리기 (FEP) → 앞에 있어서 전위
    • 컴퓨터의 바로 앞에 있는 것은 대부분 전위 처리기이다.
    • 통신기능을 보강하는 특수한 일만 하는 주 프로세서에 결합되어있다. (통신용 cpu)
  • 후위 처리기 (BEP) → 뒤에 있어서 후위
    • 컴퓨터의 뒤에 있는것이 대부분 후위 처리기이다.
    • 컴퓨터의 부하를 줄이는 역할을 담당한다.
  • 통신 제어 처리 장치 (CCP)
    • 프로그래밍을 사용하여 통신 제어장치를 개선한다.
    • 필요에 의해서 연결시켜준다.
    • 프로그램 가능한 또는 프로그램 제어 방식의 통신 제어장치
    • CPU의 부담을 감소 시킬 수 있다.
    • CCP 가 없으면 CPU가 모든 일을 담당해야 한다.
    • 확장성이 좋다.
  • 주로 T1 급을 많이 사용한다. (24채널,30 채널까지도 확장이 가능하다.)

인터페이스와 접속 규격

  • 인터페이스 → 마주보다
    • 데이터 단말장치 ↔ 데이터 통신장치 간의 접속 관계를 표시한다. (어떠한 매체 간의 접속 관계를 뜻하기도 하는것같다.)
    • 연결기의 신호선 핀 배치에 따라 종류가 다르다.
    • RS-232
      • 가장 대표적이다.
      • DTE와 DCE 간의 물리적 연결과 신호 수준정의한다.
      • 25핀 , 9핀 연결기를 모두 지원한다.

  • 접속 규격
    • DTE - DCE 인터페이스 규격은 ITU - T (Telecom) 권고에 정의되어 있다. (ITU - R → 무선)
    • V시리즈 : DTE 와 아날로그 통신회선 간의 접속 규정을 정의한다.
    • X시리즈 : DTE 와 디지털 교환망 간의 접속 규정을 정의한다.
    • I시리즈 : DTE와 종합정보통신망(ISDN) 간의 접속 규정을 정의한다.
  • 기계적 → 연결기 를 정의한다. (연결기 크기 , 핀 개수 등)
  • 전기적 → 형식을 알려준다. (신호 전압 , 전압 변동, 잡음 정도 등)
  • 기능적 → 데이터 제어, 타이밍, 접지 등 수행 기능 규정
  • 절차적 → 데이터를 전송하기 위한 사건이 일어나는 순서를 규정한다.

 

정보전송 시스템의 소프트웨어

  • 소프트웨어
    • 하드웨어의 전체 동작을 지시하고 제어하는 모든 프로그램
    • 하드웨어를 지시하고 통제하여 결과를 얻도록 하는 명령의 집합이다.
    • 시스템 소프트웨어응용 소프트웨어로 분류된다.
  • 시스템 소프트웨어
    • 컴파일러 → 기계어로 번역해준다.
    • 인터프리터 → ****코드를 한 줄씩 읽어 내려가며 실행하는 프로그램 (베이직 / 파이썬)
    • 운영체제
    • 언어 번역 프로그램
  • 응용 소프트웨어
    • 고급 프로그래밍 언어를 주로 사용한다.
  • 통신 소프트웨어
    • 컴퓨터 상호 간에 접속하여 정보를 교환할 수 있게 하는 소프트웨어 프로그램의 총칭이다.
    • 월드 와이드 웹 브라우저 소프트웨어, 단말 대행 소프트웨어 등
  • 세부적인 구조를 몰라도 통신 프로그램에 동작 지시가 가능하다.
더보기

통신 제어장치는 통신 기능을 보강하는 전위처리기, 부하를 줄여주는 후위처리기, 장치를 개선해주는 통신 제어 처리장치 정도가 있다.

RS 232→ 대표적인 인터페이스

정보 전송 소프트웨어엔 시스템 소프트웨어, 응용 소프트웨어, 통신 소프트웨어가 있다.

컴퓨터 (정보처리) 시스템

  • 컴퓨터
    • 하드웨어와 소프트웨어로 구분된다.
    • 사용자는 응용 소프트웨어를 사용한다.
  • 컴퓨터의 세대별 구분
    • 1세대 컴퓨터
      • 진공관 , 릴레이
      • 논리 소자 역할을 했다. (0 과 1을 표현하는데에 활용되었다.)
      • 1946 ~ 1959
    • 2세대 컴퓨터
      • 트랜지스터
      • 신호를 증폭시키는 역할을 했다. (0의 신호를 증폭시켜서 1을 만드는 행위 등)
      • 1959 ~ 1964
    • 3세대 컴퓨터
      • 반도체를 만나며 집적회로가 되었다. (작아짐)
      • 1965 ~ 1974
    • 4세대 컴퓨터
      • LSI
      • 1975 ~ 1984
    • 5세대 컴퓨터
      • VLSI (초고밀도 집적회로)
      • 1985 ~ 현재
  • 컴퓨터의 분류
    • 디지털 컴퓨터
      • 모든 데이터를 값으로 수치화하여 사용하는 계수형 자료를 취급하는 컴퓨터를 의미한다.
      • 일반적인 컴퓨터 → 디지털 컴퓨터
    • 아날로그 컴퓨터
      • 물리량을 입력으로 받아들여서 처리
    • 하이브리드 컴퓨터
      • 디지털 컴퓨터 + 아날로그 컴퓨터
      • 모든 자료에 대해서 처리가 가능하다.
      • 결과도 아날로그와 디지털로 표현할 수 있다.
  • 사용 목적에 따른 분류
    • 범용
      • 일반적인 모든 업무에 사용되는 컴퓨터
    • 전용
      • 특수 목적에만 사용되는 컴퓨터
  • 처리 성능에 따른 분류
    • 컴퓨터의 모든 자원을 고려하여 분류
    • 마이크로 컴퓨터 / 미니 컴퓨터 / 메인 프레임 컴퓨터 / 초대형 컴퓨터 등
      • 현재는 기술이 발전하여 처리 성능의 구분이 모호해지고 있는 실정이다.
더보기

컴퓨터는 데이터를 수치화 하여 계수형 자료를 취급하는 디지털 컴퓨터와, 물리량을 입력으로 받아들여서 처리하는 아날로그 컴퓨터 로 분류된다

컴퓨터 하드웨어 구성과 기능

  • 중앙처리장치
    • 연산 장치 , 제어 장치 구성
      • 연산 장치
        • 프로그램에 따라 계산을 처리하는 산술 연산과 비교 / 판단을 처리하는 논리 연산을 실행한다.
        • 말그대로 연산을 한다.
      • 제어 장치
        • 컴퓨터의 각 장치에 작업을 처리하는 순서를 지시한다.
        • 주 기억장치 → 실행명령 해석 → 제어 신호 생성
        • 시스템 전체에서 정확하게 수행되도록 통제한다.
        • 말그대로 제어를 한다.
  • 하드웨어 구성과 기능
    • 주기억장치
      • 수행 중인 프로그램과 필요한 데이터를 저장한다.
      • 용량에 제한이 있다.
          • 읽기만 가능한 비휘발성기억 소자
          • 읽기와 쓰기가 모두 가능한 휘발성 기억 소자
    • 보조기억장치
      • 하드디스크
        • 알루미늄 또는 플라스틱 판의 표면에 자기 물질을 얇게 입힌 것
      • CD / DVD
        • 레이저 광선을 투사하여 반사되는 빛을 읽어 자료를 해독한 후 처리하는 방식 사용
        • 컴퓨터의 정보 저장매체로 발전했다.
      • USB
        • 컴퓨터 ↔ 주변기기 연결하는데 사용되는 입출력 장치
    • 입출력 장치
      • 입력 장치
        • 컴퓨터가 처리하는 명령이나 데이터를 컴퓨터 내부로 읽어들이는 역할
      • 출력 장치
        • 프로그램 순서에 따라 실행을 마친 후 처리 결과를 사용자에게 보여주는 장치
더보기

컴퓨터는 중앙처리장치와 부가적인 하드웨어로 구성된다.

중앙처리장치는 산술연산과 논리연산을 수행하는 연산장치와 제어를 담당하는 제어장치로 구성되어있다.

부울 대수의 개념과 연산 **

  • 부울 대수
    • 하나의 명제가 참 (1) 또는 거짓 (0) 인가를 판단하는데 사용되는 수학적인 방법
      • AND (*) OR (+) NOT (’)
      • 참과 거짓으로만 생각하면 된다.

  • 논리회로 개념과 연산
    • 논리회로
      • 디지털 정보 입력을 디지털 신호 0,1로 출력한다.
      • 기본 게이트 AND, OR , NOT 게이트를 조합하여 구성한다.
      • 범용 게이트 NAND, NOR 게이트는 트랜지스터로 제조한다.
    • 조합 논리회로
      • 8개의 논리 게이트의 조합으로 이루어진 회로이다.
        • 0과 1의 조합에 의해 출력이 결정된다. (과거의 값을 갖고있지 않다.)
    • 순차 논리회로
      • 저장 능력이 있는 플립플롭과 게이트를 서로 연결하여 구성된다. (과거의 값을 갖고있다.)
    • 플립플롭
      • 1비트를 저장한다. ( 두가지 상태로만 변하는 전자회로이다. )
    • 레지스터
      • 여러개의 플립플롭의 묶음 (비트의 묶음) ,

기본 논리회로와 논리 게이트

 

  • 일반적으로 2개의 입력이 기본으로 들어간다.
  • AND → 작은 수가 결정 논리곱
  • OR → 큰 수가 결정 논리 합
  • NOT → 반대 (출력이 2개가 나올 수 있음) 논리 부정

 

 

더보기

부울대수는 0과 1로 참 또는 거짓을 판단하는 이산수학의 한 분야이다.

AND → * , OR → + , NOT→ 반대

XOR → 같으면 0 다르면 1 , XNOR → 같으면 1 다르면 0

NAND , NOR → AND ,OR 과 반대

각각의 게이트는 하나로 보이지만 더 많을 수 있다.

개인용 컴퓨터와 CPU

  • 4비트 → 8비트 → 16비트 → 32비트
  • CPU의 분류
    • CISC
      • 명령 복합형 프로세서
        • 연산용 명령어를 수백 개 탑재하고 있는 마이크로 프로세서
        • 명령어 개수 증가에 따라서 구조가 복잡하고 빠른 작동의 프로세서 제작이 어렵다.
    • RISC
      • 소수의 주소 기법을 사용한다.
      • 길이가 일정하고 한개의 클록 사이클로 처리된다.
      • 명령 축약형 프로세서
    • 플린 분류
      • 컴퓨터 시스템을 구조적 특징에 따라 분류하는 방식 중에서 가장 널리 사용된다.

컴퓨터의 데이터 표현

  • 10진수의 데이터를 입력받는다.
  • 입력 받은 10진수를 2진수로 변환하여 계산 / 분석한다.
  • 처리된 2진수의 결과를 10진수의 정보로 출력한다.
  • 리회로로 표현 할 수 있는 2진수로 표현된다.
  • 10진수를 2진수(혹은 n진수) 로 변환하는 법
    • 10진수 → 정수부분 / 소수부분 으로 나눈다.
    • 정수 부분을 2로 인수분해 한다. ( n진수일 경우엔 n으로 ) 인수분해
    • 나머지를 순서대로 읽는다.

 

 

  • 자료의 표현
    • ASCII 코드
      • 통신목적으로 제작되었다.
      • 7비트로 구성되어 128개의 문자를 표현한다.
      • 현재는 1비트를 추가해 8비트로 확장된 ASCII 코드도 많이쓰인다.
    • EBCDIC 코드
      • 최대 256 가지의 정보를 나타낼 수 있다.
      • IBM 에서 제작되었으며 모든 IBM 장비에 사용된다.
    • 2진화 10진 코드
      • 6비트 BCD 코드라고 한다.
      • 숫자 / 영문자 / 특수문자 를 코드화 햇다.
    • 유니코드
      • 텍스트나 스크립트 문자에 대해 바이너리 코드를 확립하기 위한 것
      • 2바이트 코드의 형식을 갖고있다. 조합형 코드
      • 아래한글이 나오면서 조합형 문자를 쓰게 되었다. (한글)
    • 논리자료와 포인터 자료의 표현 방식
      • 논리자료 → 부울식 (참과 거짓)
      • 포인터자료 → 주소를 직접 액세스 할것이냐, 간접적으로 액세스 할것이냐
        • 일반적으로 링크라고 불린다.
    • 정수의 표현 방식
      • 비 부호 방식
        • 음수 표현이 불가능 하다.
      • 부호 절댓값 방식
        • 앞자리가 0이면 양, 1이면 음
        • 음수 표현이 가능하다.
      • 1의 보수 방식
        • 절댓값에 대한 방식과 같으나 음수 표시가 다르다.
        • 1의 보수이기 때문에 0이면 1로, 1이면 0으로 바꿔준다.
        • 부호 절댓값과 동일하게 -0 같은 형식이 나온다.
      • 2의 보수 방식
        • 0의 자리를 찾을 수 있다.
        • 다른 값에 비해서 한자릿수가 더 크다.
    • 실수의 표현 방식
      • 부동 소수점 방식
        • 임의의 수를 가수부분과 지수부분으로 나누어 컴퓨터의 기억공간에 저장한다.
  Comments,     Trackbacks
네트워크 일반 03-22 (정리) OSI 7계층과 프로토콜

계층 구조

  • OSI 참조모델은 7개의 계층으로 나누어 정의된다.
  • Divide and Conquer 개념을 통해 각 계층간의 독립성 을 유지한다.
  • 의존성을 낮춘다.
  • IP주소 → 사용자가 변경 할 수 있다. / MAC 주소 → 제작 시에 정해져서 나온다.
  • 맥주소 → 48비트(앞 24비트 : 브랜드 / 뒤 24비트 : 기기별 고유번호) , 아이피주소 → (버전4) 32비트 , 포트 → (프로세스로 구분) 16비트

OSI 7계층과 TCP / IP 계층을 각각 노드라고 할 수 있다. OSI 7 계층의 네트워크 계층 ↔ TCP/IP 계층 네트워크 : 프로토콜

  • 헤더 → 데이터의 정보를 나타내는 부분
  • 레이어 2 ⇒ 프레임 / 레이어 3 ⇒ 데이타그램 (패킷) / 레이어 4 ⇒ 세그먼트 (나누다) , 그 사이에 있는걸 데이터라고 한다.
  • 총 데이터를 3번 포장한다 . (세그먼트 → 패킷 → 프레임 ) (캡슐화)
더보기

OSI 참조모델은 각 계층의 독립성을 위해 7개의 계층으로 나뉘어져 있다.

레이어 2 → 맥주소 / 프레임 : 정해져서 나온다.

레이어 3 → IP / 패킷 : 사용자가 변경 할 수 있다.

레이어 4 → 포트 / 세그먼트

동등 계층간의 통신

  • 피어 투 피어 → 상대편 동일 계층의 모듈과 통신하는 프로세스
  • 각 계층에서 통신을 해야할 일들이 헤더에 들어가 있다. 해당 형식으로 계층에서 필요한 정보를 전달한다.

  • IDU ⇒ 인터페이스 (서로 마주본다는 뜻 : 계층과 계층 사이에 존재한다.) Interface Data Unit : 상위계층 → 하위계층 : 서비스를 요청한다. / 하위계층 → 상위계층 : 응답을 전달한다.
  • 3계층 → 데이터가 상위 계층에서 내려온다. (일의 역할은 헤더에 존재) PCI 와 SDU, ICI 를 합치는 작업을 캡슐화라 한다.
    • SDU : Service Data Unit , PCI : Protocol Control Information
    • PDU : Protocol Data Unit
더보기

계층간의 통신에는 IDU (인터페이스 데이타 유닛) 이 전달되고 이는 헤더,트레일러, 데이터, 등의 정보를 전부 포함하는 단위이다.

해당 계층에서는 데이터 (SDU)와 제어정보(PCI) 를 캡슐화 하여 상위 계층으로 다시 IDU를 전달한다.

물리계층

  • 물리적 링크를 설정, 유지, 해제 하기위한 특성을 규정한다.
  • 데이터를 받아서 전송매체로 전송할 수 있도록 변환한다.
  • 비트의 흐름을 전자기 또는 광신호로 변환과 인코딩
  • 데이터 전송방식에서는 단방향, 반이중 (한번에 한쪽 방향으로만 교대로 이뤄진다.) , 전이중 (동시에 양방향으로 이뤄진다.) 방식을 결정한다.
  • 접속 형태 ** : 연결방식에 따라서 형태를 정한다.
    • 노드 링크 계산식은 n(n-1) / 2 가 된다. : 풀 메쉬
    • 트리형
    • 버스형
    • 스타형
    • 링형
    • 메쉬형
  • 전송 매체 : UTP / 광케이블 / 무선 3개만 기억하면 된다
더보기

상위 계층에서 내려온 데이터는 비트열로 받아온 후 물리 계층에서 전송 방식을 결정 후 신호로 (무선,UTP,광케이블) 로 라우터로 전달 그리고 상대 송신측으로 다시 라우터로부터 받아서 작업 반복

데이터링크 계층

  • 노드간의 데이터 전송을 hop-by-hop 으로 수행한다. (노드와 노드가 서로 옆에 존재하는 것을 hop-by-hop 이라 한다.)
  • 헤더를 앞부분에 , 트레일러를 뒷부분에 덧붙인다.
  • 헤더 → 데이터 시작, 주소 등을 포함한다.
  • 트레일러 → 에러 검출 코드
  • 헤더, 데이터, 트레일러를 통틀어 프레임이라고 한다. (PDU)
  • 비트들의 경계를 구분하기 위한 데이터 동기를 제공한다.

  • 주소지정 → 계층에서 사용하는 주소 : 하드웨어 주소, 헤더에 송신지와 수신지의 물리 주소가 포함되어 전송된다.
  • 접근 방식 → 어느 시스템이 어떤 데이터를 전송할 것인지 결정한다.
  • 흐름 제어 → 오버 플로우가 발생하지 않도록 상태를 전달하는 것을 흐름 제어라고 한다.
  • 에러 제어 → 트레일러에서 에러를 체크하는 것
  • 동기화 → 각각의 전송된 프레임의 타이밍을 맞추는 것

데이터링크 동작

  • 회선을 통해서 전송된 데이터는 수신지의 데이터링크 계층에서 헤더와 트레일러를 떼어낸 후 , 네트워크 계층으로 올려보낸다.

 

더보기

데이터링크 계층은 바로 옆 노드에 해당 데이터에 수신자의 물리 주소를 갖는 헤더와 오류 검출 코드인 트레일러를 추가하여 물리 계층으로 보내고,

수신측에서는 헤더와 트레이러를 떼어낸 후 네트워크 계층으로 올려보낸다.

네트워크 계층 특성

  • 네트워크 연결을 관리하고 유지하며 해제하는 기능을 담당한다.
  • 스위칭과 라우팅이라는 두가지 경로배정에 관한 서비스를 제공한다.
  • Host-to-Host 전송을 담당한다.
    • 전송지와 수신지 : Host to Host : IP 주소 : 라우터
    • 양옆의 노드간의 데이터 전송 : hop by hop : 맥주소 : 스위치
  • 라우팅 : IP주소를 보고 주소를 찾아준다.
    • 패킷을 보내기 위한 가장 좋은 경로
  • 스위칭 : 라우터보다 속도가 일반적으로 빠르다. 전화 네트워크가 스위칭의 대표적인 예이다.

더보기

네트워크 계층은 라우터를 이용하여 통신하고 IP주소를 보고 주소를 찾아준다.

전송계층

  • 하위계층으로 이루어진 네트워크 서비스와 상위 계층으로 이루어진 사용자 서비스로 구별된다.
  • 송수신 프로세스 간의 인터페이스 기능과 데이터에 대한 프로세스 단위 Process to Process 전송을 담당한다.
    • 포트 번호로 구분한다.
    • 해당
  • hop by hop → 맥주소 → 프레임
  • host to host → 아이피 → 패킷
  • Process to Process → 포트 → 세그먼트

세션 계층

  • 둘이 연결되있는 상태

표현 계층

  • 사용자의 데이터를 송수신지가 공통으로 이해할 수 있는 데이터 표현 방식을 바꾸는 기능을 담당한다.
  • 아스키코드 → 7비트 ⇒ 128개의 문자를 표현할 수 있다. (한국어 표기 못함)
  • 유니 코드 → 16비트

응용 계층

  • 응용 프로세스들이 상호 간에 유용한 정보교환을 할 수 있도록 하는 창구 역할을 담당한다.
    • 예 : 웹 브라우저
더보기

전송계층 → Process to Process 방식으로 포트 번호로 구별한다.

세션계층 → 세션이라 불리는 가상연결을 확립하고 유지하며 동기화 기능을 제공.

표현계층 → 송수신지가 공통으로 이해할 수 있는 데이터 표현 방식으로 바꾸는 기능.

응용계층 → 응용 프로세스들이 상호간에 유용한 정보 교환을 할 수 있도록 하는 창구 역할을 담당한다.

프로토콜

  • 통신규약
    • 각 노드간의 약속을 프로토콜이라 한다.
    • 상호간에 통신이나 전달방식, 통신방식, 자료형식 및 효과적인 통신을 위한 오류 검출 방식 및 전송속도 등에 대하여 정하고 이를 지켜나가는 것
    • 프로토콜로 무엇을 어떻게 그리고 언제 통신할 것인가를 규정한다.
  • 프로토콜의 구성 요소
    • 구문 Syntax
      • 약속
    • 의미 Semantics
      • syntax 가 있으면 의미가 존재한다.
    • 타이밍

더보기

프로토콜은 네트워크 사이의 약속이다.

Syntax, Semantics, Timing 으로 구성되어있다.

인터네트워킹

  • 각 제조사들이 개발한 네트워크 장비들을 변경하지 않으면서 여러 제조사들의 네트워크를 공동으로 사용하고자 하는 요구
  • 인터네트워크 상에서 서로 다른 제조사들의 시스템간 데이터 통신을 위한 공통의 프로토콜이 필요하다.
  •  개념
    • 서로 떨어져 있는 각각의 네트워크를 연결하여 하나의 네트워크 처럼 사용할 수 있는 기술로 서로 다른 네트워크들을 상호 접속시킴으로써 네트워크의 집합을 형성하거나 광역화 하는 것
  • 요구 사항
    • 네트워크 사이의 하나의 링크를 제공해야 하며, 최소한의 물리 계층과 데이터링크 계층 제어가 필요하다.
    • 네트워크 구조 자체의 변경 없이 네트워크 연결을 제공해야 한다.

더보기

인터네트워킹은 네트워크 구조의 변경 없이 각각의 네트워크를 하나의 네트워크처럼 사용할 수 있도록 하는 기술이다. 최소한의 1,2계층 제어가 필요하다.

인터네트워크 장비

  • 리피터
    • 물리계층에서 동작
    • 동일 LAN 에서 거리의 연장이나 접속 시스템의 수를 증가시키기 위한 장비이다.
    • 전송 신호를 원래 신호로 재생하여 다시 전송하는 역할을 한다.
    • 주소가 없다.
  • 허브
    • 여러 컴퓨터들을 연결하기 위해서 중앙 연결지점을 제공하는 네트워크 장비이다.
    • 리피터의 모음이라고 할 수 있다. (멀티 리피터)
    • 물리계층 (리피터, 허브)
    • 더미 허브
      • 중계 역할 만을 담당하는 장비
    • 스위칭 허브
      • point to point 로 접속, 전이중 방식 통신
      • 충돌이 발생하지 않는다.
    • 스태커블 허브
      • 허브와 허브 사이를 연결하는 장비
      • 전송 속도의 저하가 발생되지 않는다.
  • 브리지
    • 여러개의 LAN을 연결하기 위한 장비
    • 데이터링크 계층에서 동작한다.
    • 충돌 도메인을 줄임과 동시에 전체 네트워크 확장이 가능하다.
    • 네트워크를 분산적으로 구성함으로써 보안성을 높일 수 있다.

  • 스위치
    • 맥주소를 이용하여 동작한다
    • 네트워크 상에 프레임을 고속으로 전송하기 위해 개발되었다.
    • 맥주소를 가지고 포워드 한다.
      • Cut Through 스위치
        • 에러 검사 없이 목적지 포트로 전달 프레임의 대기시간과 전달 시간을 최소화한다.
      • Interim Cut Through 스위치
        • 에러가 발생한 프레임은 여전히 처리하지 못하는 단점이 있다.
      • Store and Forward 스위치
        • 전체 프레임의 버퍼링 과정에서 대기시간이 길다는 단점이 있다.
  • 라우터
    • IP주소로 경로를 찾는 기능을 수행한다.
    • 네트워크 계층 주소인 논리 주소를 기반으로 네트워크 간의 패킷 전달 기능을 수행한다.
  • 게이트웨이
    • 다른 장비들과 다르게 모든 계층에 대해서 동작한다.
    • 서로 다른 프로토콜을 사용하는 네트워크의 프로토콜을 변환한다. (데이터 형식 변화)
    • 네트워크 병목현상을 일으키는 원인이다.
더보기

인터네트워킹 장비에는 리피터, 허브 , 브릿지, 스위치, 라우터, 게이트웨이가 있다.

리피터 → 주소가 없고 전송 신호를 재생하여 다시 재생하는 역할을 하고, 물리적 거리 확장에는 한계가 있다.

허브 → 리피터의 모음이라 할 수 있다. (4개까지 연결 가능, 다른말로 멀티 리피터) 여러 컴퓨터를 연결하기 위한 중앙 연결 지점을 제공하는 네트워크 장비이다.

브릿지 → 데이터링크 계층에서 동작하는 여러개의 LAN을 연결하는 장비이다.

스위치 → 맥주소를 이용하여 동작한다. 프레임을 고속으로 전송하기 위해 개발되었다.

라우터 → IP주소로 경로를 찾는 동작을 수행한다. 패킷전달 기능을 수행

게이트웨이 → 프로토콜 변환 모든 계층에 동작하는 장비

  Comments,     Trackbacks
운영체제 이론 03-21 (정리)

컴퓨터 시스템의 범위

  • 컴퓨터 시스템의 계층
    • 응용프로그램
    • 운영체제
    • 컴퓨터 하드웨어
  • 컴퓨터 시스템 계층 구조의 특징
    • 사용자는 응용프로그램과 GUI / 도구 프로그램 (툴, 유틸리티) 을 통해 컴퓨터를 활용할 수 있다.
    • 하드웨어는 모두 운영체제의 독점적 지배를 받는다.
    • 사용자나 응용 프로그램의 하드웨어에 대한 직접 접근이 불가능하다.
      • 운영체제를 통해서만 접근이 가능하다.
  • 계층 구조로 보는 운영체제의 기능
    • 사용자가 하드웨어에 대해서 알지 못해도 컴퓨터를 사용할 수 있도록 한다.
    • 응용프로그램과 하드웨어 사이를 중계해준다.
      • 응용프로그램 ↔ 하드웨어, 인터페이스

하드웨어 설명

  • CPU (중앙 제어 장치)
    • 프로그램 코드를 해석하여 실행하는 중앙처리 장치
    • 가장 핵심 장치이다.
    • 전원이 공급될 때 작동이 시작되고, 메모리에 적재된 프로그램을 실행한다.
  • 메모리
    • CPU에 의해 실행되는 프로그램 코드와 데이터가 적재되는 공간이다.
    • RAM
    • 프로그램은 실행되기 위해선 반드시 메모리에 적재되어야 한다.
  • 캐시 메모리
    • CPU의 프로그램 실행 속도를 높이기 위해서 CPU와 메모리 사이에 빠른 메모리를 설치하게 되어서 탄생하였다.
    • 온칩 캐시 → CPU 내부에 만들어진 캐시. (대부분 온칩 캐시를 사용한다.)
    • 옵칩 캐시 → CPU 외부에 설치되는 캐시
    • 캐시 메모리가 있는 경우엔 CPU는 캐시 메모리에서만 프로그램을 실행한다.
      • 캐시는 용량이 작기 때문에 현재 실행할 코드와 데이터의 극히 일부분 만 저장한다.
  • 버스
    • 하드웨어들이 데이터를 주고받기 위해 0과 1의 디지털 신호가 지나가는 여러 가닥의 선을 다발로 묶어 부르는 용어이다.
      • 컴퓨터의 버스 → 도로, 컴퓨터의 데이터 → 자동차
    • 버스의 종류
      • 주소 버스 → 주소 신호가 지나다니는 버스
      • 데이터 버스 → 데이터 신호가 지나다니는 버스
      • 제어 버스 → 제어 신호가 지나다니는 버스
    • 주소
      • 레지스터에 대한 번지수
      • 0번지에서 시작하는 양수이다.
      • 주소 버스는 주소 값이 전달되는 여러 선의 다발이다.
      • CPU는 메모리나 입출력 장치에 값을 쓰거나 읽을때 반드시 주소를 발생시킨다.
  • 목적에 따라서 버스를 구분한다.
    • 시스템 버스
      • CPU, 캐시 메모리, 메모리 등 빠른 하드웨어 사이에 데이터를 전송한다.
      • 고속도로에 비유된다.
    • 입출력 버스
      • 상대적으로 느린 입출력 장치들로부터 입출력 데이터를 전송한다.
      • 일반 도로 에 비유된다.
  • IO 컨트롤러 & 컨트롤 서킷
    • 입출력 장치들을 제어하기 위한 여러 하드웨어이다.
      • 입출력 장치에게 명령 하달 → 메모리와 입출력 장치 사이에 혹은 CPU와 입출력 장치 사이에 데이터를 전달 중계한다.
      • DMAC, 인터럽트 제어장치 등을 포함한다.

 

더보기

컴퓨터는 응용소프트웨어, 시스템소프트웨어, 하드웨어 이렇게 볼 수 있다.

운영체제는 소프트웨어와 하드웨어 사이의 중계를 하고, 하드웨어에 대한 독점적인 지배 권한을 갖는다.

사용자는 운영체제를 통해 하드웨어에 대해 몰라도 컴퓨터를 사용 할 수 있다.

하드웨어 → CPU, 메모리, 입출력장치 정도 (폰노이만구조 1940년대)

버스 → 주소버스, 데이터 버스, 제어버스, CPU는 입출력 장치에 값을 쓰거나 읽을때 반드시 주소를 발생시킨다.

시스템 버스와 입출력 버스로 목적에 따라 버스를 구분한다.

I / O 컨트롤러는 입력 및 출력 장치 인 다양한 주변 장치를 연결하고 제어하는 데 도움이 된다.

 

 

  • CPU
    • 능동적 소자이다. 메모리 액세스 시 주소를 발생시킨다. (주소번지에 있는 명령을 가져올 수 있도록 처리를 한다.)
    • 32비트 CPU, 32비트 운영체제, 32비트 컴퓨터란 ?
      • CPU에 32개의 주소선이 존재하는 것
        • CPU의 액세스 범위 : 2^32개의 서로 다른 주소
        • CPU가 최대 액세스 할 수 있는 메모리의 크기가 4GB가 된다.
        • 한 번지의 공간이 1바이트 이므로, 2^32 개의 주소 = 2^32 바이트 = 4GB
        • 32비트 CPU를 가진 컴퓨터는 4GB를 넘어선 영역은 사용할 수 없다.
      • CPU에 입출력되는 32개의 데이터 선이 존재한다.
        • 한번에 32비트 읽고 쓰기가 가능하다.
  • CPU 명령
    • CPU가 해석하고 실행할 수 있도록 하는 기계명령
      • C언어나 자바의 프로그램 소스 코드와는 다르다.
      • CPU를 설계하는 기업이 명령어들, 명령어 개수, 형태 등을 결정한다.
      • CPU의 명령 개수는 수십개에서 수백개가 된다.
      • CPU마다 명령 이름, 기계어 코드, 크기, 개수 등이 다르다.
      • CPU 사이에 명령들의 호환성은 없다.
        • 컴파일된 코드는 CPU사이에 호환성이 없다.
  • CPU 레지스터
    • PC (Program Counter) → 다음에 실행할 명령의 메모리 주소를 저장한다.
    • IR (Instruction Register) → 현재 실행하기 위해 메모리로부터 읽어온 명령을 저장한다.
    • SP (Stack Pointer) → 스택의 톱 메모리 주소를 저장한다.
    • 데이터 레지스터 (data registers) → 연산에 사용되거나 사용될 데이터들을 저장한다.
    • 상태 레지스터 (status register) → CPU의 상태 정보나 인터럽트 금지 등의 제어 정보를 저장한다.
    • 기타 레지스터 → 페이지 테이블이 저장된 메모리 주소를 가리키는 레지스터 등
  • CPU 명령 사이클 → CPU가 하나의 명령을 실행하는 과정 / CPU는 전원이 켜진 후 단순하게 명령 사이클을 반복한다.

 

스택은 어디에 있는가?

  • 프로그램이 실행되기 위해 운영체제에 의해 할당되는 4공간
    • 코드 공간 → 프로그램 코드를 적재한다.
      • 운영체제도 코드로 이뤄져있다.
    • 데이터 공간 → 전역 변수들이 적재되는 공간
    • 힙 공간 → 프로그램에서 동적 할당받는 공간
    • 스택 공간 → 함수가 호출될 때 매개변수,지역변수 등을 저장한다.
  • 스택
    • 메모리의 일부를 스택으로 사용하도록 할당된 공간이다.
      • 물리적으로는 존재하지 않는다.
    • 운영체제는 각 프로그램에게 스택 공간을 할당시켜준다.
    • CPU의 SP 레지스터는 현재 CPU가 실행중인 프로그램의 스택 꼭대기에 주소를 가리킨다.
    • 스텍에 저장되는 내용 (함수일 수도 있지만 프로그램일 수도 있다.)
      • 함수의 지역변수 (함수 안)
      • 함수가 호출될 때 전달받은 매개변수 값들 (매개인자)
      • 함수가 실행된 후 돌아갈 주소
      • 함수가 의도적으로 저장해 두기 위한 값

 

 

 

더보기

CPU → 능동적 소자이다. 메모리 엑세스 시에 주소를 발생한다.

예 : 32비트 , 32비트 운영체제 등 → 32개의 주소선이 CPU에 있다는 뜻 → 액세스 할 수 있는 최대 메모리 크기는 4GB

CPU 명령은 기계명령이다.

CPU 레지스터 → PC , IR , SP , 데이터레지스터들, 상태 레지스터, 기타 여러 레지스터

명령 사이클 → CPU가 하나의 명령을 실행하는 과정. CPU는 전원이 켜진 후 명령 사이클 반복

운영체제 4공간 → 코드 공간: 코드저장 , 데이터 공간 : 변수 저장, 힙공간, 스택공간

컨텍스트 **

  • 한 프로그램이 실행 중인 일체의 상황 혹은 상황 정보
    • 메모리
      • 프로그램 코드와 데이터, 스택, 동적할당 받아 저장한 값
    • CPU 레지스터들의 값
      • PC ← 코드의 주소
      • SP ← 스택의 주소
      • 다른 레지스터는 이전의 실행결과나 현재 실행에 사용되는 데이터들
  • 축소 정의
    • 현재 CPU에 들어있는 레지스터의 값들 (메모리에 저장된 상황 정보는 그대로 있기 때문)

컨텍스트 스위칭 **

  • 발생
    • CPU가 현재 프로그램의 실행을 중지하고 다른 프로그램을 실행할 때 발생한다.
  • 과정
    • 실행중인 프로그램의 컨텍스트 → 메모리에 저장 → 새로 실행시킬 프로그램의 저장된 컨텍스트 (CPU레지스터들의 값) → CPU

 

더보기

컨텍스트 : CPU에 저장된 레지스터들의 값

컨텍스트 스위칭 : 실행중인 프로그램의 컨텍스트를 메모리에 저장 후 실행할 프로그램의 컨텍스트를 CPU 에 복귀

멀티코어 : CPU에 프로세서 두개 , 2개 프로그램 동시 실행

  Comments,     Trackbacks
정보통신 개론 03-20 (정리) 정보통신 시스템의 구성

정보통신 시스템의 구성

  • 정보전송 시스템
    • 데이터를 전송하는 역할
    • 데이터를 얻어내는 곳 → 단말장치 : 정보의 입력과 수신
    • 데이터를 보내는 구간 → 회선 (정보전송 회선 / 신호 변환장치와 통신 회선) : 변조와 복조 (예: 모뎀)
    • 정상적인 동장이 되기 위해서 제어해주는 장치 → 통신 제어장치 : 컴퓨터 ↔ 모뎀 사이의 데이터를 처리하기 좋은 형식으로 변환
  • 정보처리 시스템 (연산해주고 가공해주는 곳)
    • 데이터 가공 및 처리하여 보관하는 역할 :
    • 컴퓨터와 주변기기로 구성 (가장 핵심적인것은 중앙처리장치, 기억장치, 입출력 장치, 임베디드 : 필요한것만 빼와서 사용하는 시스템)
      • 중앙처리장치 → 컴퓨터에서 입력되는 데이터를 가공, 처리, 축적, 수정, 변경, 추가
      • 기억장치와 입출력 장치 → 컴퓨터에서 데이터를 저장하는 저장 장치입출력 장치로 구성
더보기

정보통신 시스템은 전송처리로 나뉘어진다.

전송 → 단말장치 , 전송 회선, 제어장치, 변환장치 (모뎀)

처리 → 중앙처리장치, 기억장치와 입출력장치

정보통신 시스템의 분류

  • 구조별 분류
    • 정보전송 시스템 : 정보전송 하드웨어, 정보전송 소프트웨어
    • 정보처리 시스템 : 정보처리 하드웨어, 정보처리 소프트웨어
  • 우리가 쓰이는 형식은 오프라인 처리 / 온라인 처리 / 즉시 처리/ 배치처리 로 분류된다.
    • 정보전송 시스템 :
      • 오프라인 → 단순 데이터를 들고 가는것과 비슷
      • 배치 처리 → 일들을 루틴으로 처리시킨다. 데이터를 모아서 필요한 시점에 처리한다 (즉시 처리도 가능하다.)
      • 온라인 → 연결되어 있는 상태에서 처리
      • 즉시 처리
    • 정보처리 시스템 :
      • 즉시처리
      • 온라인 / 배치 처리

 

 

통신 시스템의 하드웨어

  • 단말 장치 ( 데이터를 입 / 출력 하는데 사용되는 장치 )
    • 컴퓨터와 연결되는 모든 주변 장치
    • 처리는 안에서 하고 내보내는것을 담당한다
  • 공통적으로 ‘제어’ 라는 단어가 들어간다.
  • 단말장치의 종류와 기능
    • 점차 지능화 되어가고 있으며 특수 용도에 맞게 발전하고 있다.

일반적으론 단말장치와 범용 단말장치로 분류된다.

보통 용도에 따라 분류된다.

통신 시스템의 하드웨어

  • 단말 장치 ( 데이터를 입 / 출력 하는데 사용되는 장치 )
    • 컴퓨터와 연결되는 모든 주변 장치
    • 처리는 안에서 하고 내보내는것을 담당한다
  • 공통적으로 ‘제어’ 라는 단어가 들어간다.
  • 단말장치의 종류와 기능
    • 점차 지능화 되어가고 있으며 특수 용도에 맞게 발전하고 있다.

일반적으론 단말장치와 범용 단말장치로 분류된다.

보통 용도에 따라 분류된다.

통신 시스템의 하드웨어

  • 단말 장치 ( 데이터를 입 / 출력 하는데 사용되는 장치 )
    • 컴퓨터와 연결되는 모든 주변 장치
    • 처리는 안에서 하고 내보내는것을 담당한다
  • 공통적으로 ‘제어’ 라는 단어가 들어간다.
  • 단말장치의 종류와 기능
    • 점차 지능화 되어가고 있으며 특수 용도에 맞게 발전하고 있다.

일반적으론 단말장치와 범용 단말장치로 분류된다.

더보기

전송 시스템 → 오프라인 / 배치 처리, 온라인 즉시 처리

처리 시스템 → 즉시 처리, 온라인 / 배치 처리

즉시 ⇒ 바로 처리

배치 ⇒ 모아서 처리

단말장치 → 데이터 입출력 장치

단말장치는 보통 용도에 따라 분류되고, 범용 단말 장치단말 장치로 분류된다.

신호 변환 장치는 정보를 전기적 신호로 변환

DCE 에는 모뎀과 인터페이스 카드가 포함 / 네트워크로 연결되는 물리적 수단 (단말 장치를 영어로 표현 한 것 같은 느낌이 있다.)

 

  • 신호 변환장치
    • 송신자 의 정보를 전기적 신호 로 변환한 후 전송매체(통신회선) 을 거쳐 전송된다.
    • 전기적 신호신호 변환장치를 이용해 원래의 정보로 변환된다.
    • DCE : 단말의 역할을 한다. → 신호변환, 전송 신호의 동기 제어 송수신 확인 , 전송 조작 절차 (프로토콜) 의 제어 등을 담당

축약해서 송신자 ↔ 수신자 사이에서 정보 → 신호변환 장치 → 전기신호 로 변환된다. (전기신호가 들어갈땐 정보로 출력)

  • 신호는 아날로그 신호와 디지털 신호로 나뉘어진다. **중요
  • 한 주기로 본다. (일정한 시간)
  • 아날로그
    • 주기적인 신호들이 합쳐지면 해당 그래프처럼 볼 수 있다.
    • 비슷하다 (Analogous) 에서 파생되었다.
    • 연속적으로 변하는 신호
    • 자연스럽다.
    • 음성, 음악, 텔레비전 영상, 그림, 사진
      • 단순 삐~ 하는 소리 → 순음 (예시 아날로그 신호의 모습을 하고 있다.)
    • 전압값이 여러개이다.
  • 디지털
    • 손가락에서 유래되었다. (Digit)
    • 인공적이다.
    • 이산적인 신호 (신호를 일정한 시간별로 잘라서 샘플링한다. (샘플링 주기라고 한다.) / 크기별로 끊는것은 양자화 라고 한다. (Quantization) )
    • 전압 값이 정해져있다.
    • 단말장치, 컴퓨터, 팩스
  • 디지털 → 아날로그로의 변환을 세밀하게 할 때는 두가지 방법이 있다.
    • 주기를 더 세밀하게 나눈다. (구간이 짧아졌기 때문에 데이터가 더 늘어난다.) → 샘플링
    • 크기를 더 세밀하게 나눈다. → 양자화 (아무리 세분화 해도 정확한 값을 얻어낼 순 없다.)
    • X : 주기 Y : 크기 (진폭)
  • 아날로그 → 디지털 → 정확한 아날로그 : 할 수 없다. (최대한 비슷하게는 가능하다.)
  • 정보의 가치에 따라서 비트를 정한다 . (1비트 : 2V)

불규칙한 아날로그 신호와 규칙적인 디지털 신호

 

  • 신호 변환장치를 이용한 정보전송 과정
    • 변조와 복조 기능을 수행하는 장치
    • 일반적으로 병렬-직렬 처리된다. (동시에 들어오니 묶어서 하나의 처리 과정을 거쳐서 내보낸다. )
    • 나갈때에는 아날로그 신호로 내보낸다.
    • 정보전송 과정
      • 변조 과정을 거친 후 송신 : 아날로그→디지털 → 아날로그
      • 복조 과정을 거쳐 수신부에 디지털 신호로 입력 : 아날로그 → 디지털 → 아날로그
    • 왜 디지털로 관리할까 ? ** 중요
      • 각각의 전송로 상에서 기계적인 노이즈가 존재해 신호 감쇄가 일어난다.
      • 따라서 중간에 노이즈를 필터링을 하고 신호를 키워주는 작업이 필요하다.
      • 아날로그 같은 경우엔 최종적으로 감쇄가 많이 되어 도착 할 수있다.
      • 디지털로 관리할 시에 디지털 신호는 정확히 0과 1로 이루어져 있기 때문에 손실이 거의 없다.
      • 디지털 신호 같은 경우엔 깨지게 되면 블록 단위로 깨지며, 단순 1비트가 깨져도 티가 안난다.
      • 신호 변환장치
        • 송신자 의 정보를 전기적 신호 로 변환한 후 전송매체(통신회선) 을 거쳐 전송된다.
        • 전기적 신호신호 변환장치를 이용해 원래의 정보로 변환된다.
        • DCE : 단말의 역할을 한다. → 신호변환, 전송 신호의 동기 제어 송수신 확인 , 전송 조작 절차 (프로토콜) 의 제어 등을 담당
          • 신호는 아날로그 신호와 디지털 신호로 나뉘어진다. **중요
          • 한 주기로 본다. (일정한 시간)
          • 아날로그
            • 주기적인 신호들이 합쳐지면 해당 그래프처럼 볼 수 있다.
            • 비슷하다 (Analogous) 에서 파생되었다.
            • 연속적으로 변하는 신호
            • 자연스럽다.
            • 음성, 음악, 텔레비전 영상, 그림, 사진
              • 단순 삐~ 하는 소리 → 순음 (예시 아날로그 신호의 모습을 하고 있다.)
            • 전압값이 여러개이다.
          • 디지털
            • 손가락에서 유래되었다. (Digit)
            • 인공적이다.
            • 이산적인 신호 (신호를 일정한 시간별로 잘라서 샘플링한다. (샘플링 주기라고 한다.) / 크기별로 끊는것은 양자화 라고 한다. (Quantization) )
            • 전압 값이 정해져있다.
            • 단말장치, 컴퓨터, 팩스
          • 디지털 → 아날로그로의 변환을 세밀하게 할 때는 두가지 방법이 있다.
            • 주기를 더 세밀하게 나눈다. (구간이 짧아졌기 때문에 데이터가 더 늘어난다.) → 샘플링
            • 크기를 더 세밀하게 나눈다. → 양자화 (아무리 세분화 해도 정확한 값을 얻어낼 순 없다.)
            • X : 주기 Y : 크기 (진폭)
          • 아날로그 → 디지털 → 정확한 아날로그 : 할 수 없다. (최대한 비슷하게는 가능하다.)
          • 정보의 가치에 따라서 비트를 정한다 . (1비트 : 2V)

          • 신호 변환장치를 이용한 정보전송 과정
            • 변조와 복조 기능을 수행하는 장치
            • 일반적으로 병렬-직렬 처리된다. (동시에 들어오니 묶어서 하나의 처리 과정을 거쳐서 내보낸다. )
            • 나갈때에는 아날로그 신호로 내보낸다.
            • 정보전송 과정
              • 변조 과정을 거친 후 송신 : 아날로그→디지털 → 아날로그
              • 복조 과정을 거쳐 수신부에 디지털 신호로 입력 : 아날로그 → 디지털 → 아날로그
            • 왜 디지털로 관리할까 ? ** 중요
              • 각각의 전송로 상에서 기계적인 노이즈가 존재해 신호 감쇄가 일어난다.
              • 따라서 중간에 노이즈를 필터링을 하고 신호를 키워주는 작업이 필요하다.
              • 아날로그 같은 경우엔 최종적으로 감쇄가 많이 되어 도착 할 수있다.
              • 디지털로 관리할 시에 디지털 신호는 정확히 0과 1로 이루어져 있기 때문에 손실이 거의 없다.
              • 디지털 신호 같은 경우엔 깨지게 되면 블록 단위로 깨지며, 단순 1비트가 깨져도 티가 안난다.
더보기

신호는 아날로그 (곡선) 디지털 (0,1) 로 나뉘어져 있다.

신호 변환장치는 변조복조 기능을 수행하고 수신부에 디지털 신호를 전달한다.

디지털 신호로 관리하는 이유는 아날로그 신호는 감쇄가 많이 되어 도착 할 수 있기 때문에, 0과 1로만 이루어져 있는 디지털 신호는 손실이 거의 없고, 깨지게 되면 블록 단위로 깨진다.

 

 

모뎀

  • 예 : 랜카드 / 라우터는 공유기
  • 모듈레이터와 DE모듈레이터의 합성어이다.
  • 디지털 신호를 아날로그 신호로 변환하여 전송시키는 역할을 한다.
  • 송신부
    • 데이터 부호화기, 변조기, 스크램블러, 주파수 체배기
  • 수신부
    • 동화기 , 대역 제한 여파기(검증하고 출력한다 : 필터링 ), 자동 이득 조절기(신호에 대한 크기를 조절시킨다.) , 복조기 , 데이터 복호화기, 스크램블러(암호화) 의 역기능인 디스크램블러
      • 스크램블러 ⇒ 디지털 신호의 순서를 재배치 후 정해둔 순서로 통신 (스크램블 된 신호는 깨져도 원복이 가능하다.)

모뎀끼리는 아날로그 신호를 송수신 하고 각각의 송수신 장비에는 디지털 신호를 송수신한다.

  • 아날로그에서는 디지털 신호 데이터를 송수신 할 수 없어 주변 노이즈에 강한 대응력을 보이는 전압으로 변조한다.
    • 단순 전화로 예를 들자면 통화를 하면서 발생하는 열이 노이즈를 발생시킨다.

 

 

 

디지털 서비스 유닛 (DSU)

  • 디지털망에 사용하는 회선 종단 장치 (DCE)
  • 디지털 회선을 이용해 디지털 데이터나 신호를 먼 곳까지 안전하게 전송할 수 있도록 단극성 신호를 양극성 신호로 변환한다.
    • 각 데이터의 타이밍을 맞춰준다.

 

더보기

모뎀 → 랜카드와 비슷 (모뎀이 없으면 인터넷에 연결도 못함) / 신호 변환 장치, 송신부 수신부 존재

아날로그 → 디지털 신호 일때는 노이즈에 강한 대응력을 보이는 전압으로 변조

라우터 → 공유기

DCE (데이터 커뮤니케이션 이큅먼트)→ 단극성 신호를 양극성 신호로 변환한다. (데이터의 타이밍을 맞춰준다.)

통신 회선

  • 데이터를 전송하는 통로
    • 전송 선로는 유선과 무선으로 구분된다.
  • 통신기기 사이를 연결하는 역할을 한다.
  • 유선 선로
    • 꼬임선
      • 구리선 두 가닥을 균일하게 꼬아서 여러 다발로 묶어 보호용 피복선을 입힌 케이블
      • 트위스티드 페어 케이블이라고도 한다.
      • 간섭 현상을 줄이려고 전선을 꼬아서 사용한다.
  • 동축 케이블
    • 케이블 방송에서 많이 사용된다.
    • 내부에 있는 단열 구리선과 외부 도체로 구성된다.
    • 높은 주파수에서 도선의 실효 저항이 상승하는 트위스티드 페어 케이블의 결점을 보완한 것이다.
    • 초창기때 대부분 동축 케이블을 사용했다.
    • 수십~500Mbps 의 전송 속도를 갖고있다.
    • 아날로그용으로 많이 사용된다.
    • 트렌드가 동축 케이블 → UTP / 광케이블 로 바뀌고 있다.

 

  • ,광섬유 케이블 (빛)
    • 지름의 굵기가 0.1mm 정도인 석영을 케이블 안에 여러 가닥 넣어서 레이저광의 전반사 현상을 이용해 데이터를 전송하는 원통형 선로
    • 장점
      • 고속이면서 감쇄 영향도 상대적으로 아주 낮다.
      • 케이블이 작고 가벼우며 오류 발생률도 매우 낮다.
    • 단점
      • 가격이 비싸다.
      • 정교한 납땜 기술이 필요하다.
  • 무선 선로
    • 지형 기후에 따라 전파 방법이 다르다.
      • 대기 등에서 전자기파를 이용하여 데이터를 전송하는 비유도체
      • 마이크로파와 라디오파로 분류된다.
    • 마이크로파
      • 강으로 분리된 지역에 유선선로를 설치할 때 발생하는 어려움과 높은 비용이 드는 문제를 해결해준다.
      • 위성 마이크로파
        • 지상에서 상공에 위성을 띄워 놓고 지상의 여러 송수신국을 서로 연결해준다.
        • 상호 간의 간섭을 방지하기 위하여 업링크 주파수는 다운링크 주파수보다 높은 대역을 사용한다.
        • 중계역할 밖에 안한다. (받은 것을 보내주는 역할만 한다.)
      • 정지궤도 위성
        • 고정된 것처럼 관측되는 통신 위성
      • 지상 마이크로파
        • 극초단파 전송 또는 마이크로파 라디오라고도 한다.
        • 장거리 통신에 더 적합하다.
        • 주로 높은 지대에 설치하기 때문에 중계소가 필요하다.
    • 라디오파
      • 방향성이 없다. → 주로 방송용으로 이용한다.
      • 안테나를 정해진 위치에 설치하지 않아도 된다.
      • 디지털 통신에서는 전송률이 높지 않다는 단점이 있다.
  • 이동 통신
    • 이동체 상호 간에 일어나는 무선 통신을 의미한다.
    • 이동국 , 기지국 , 교환국으로 구성된다.
      • 이동국 → 통신 단말기
      • 기지국 → 이동국과 교환국을 연결하는 기능을 한다.
      • 교환국 → 이동통신망과 일반 공중망을 연결하는 기능을 한다.

 

더보기

통신회선은 무선과 유선으로 분리된다.

유선 → UTP (트위스티드 페어 케이블) , 동축 케이블 (트위스티드 페어 케이블의 결함을 보완 ,구리/ 아날로그에 적합 , 요즘엔 UTP / 광케이블 사용하는 추세), 광케이블 (레이저광의 전반사 , 석영 / 현재는 해저 광케이블 주로 사용 )

무선 → 공기(마이크로파 : 위성, 지상 마이크로파 / 라디오파 )

  Comments,     Trackbacks
정보보안개론 03-15 (정리) 보안공격 사례와 시스템 보안 관리

랜섬웨어 사고의 재구성

  • 2017년 6월 10일 국내 호스팅 업체가 보안 공격으로 서비스가 중지되는 사고가 발생하였다.
    • 150여 대의 서버가 랜섬웨어 라는 악성코드 공격으로 서비스가 중지되었다.
    • 고객사 중요 파일들이 암호화 랜섬웨어 공격으로 서비스 장애 공지가 되었다.
  • 랜섬웨어 공격이란
    • 일반파일을 암호화시켜 뒤에 새로운 확장자를 추가함
  • 최초의 악성코드 설치는 APT 공격에 의한 것으로 추정된다. (Advanced Persistent Threats, 지능형 지속 위협)
    • 하나의 타겟을 목표로 오랜 시간 동안 흔적을 남기지 않고 정보를 수집해 공격한다.
  • APT 보안 공격
    • 숨바꼭질형 보안 공격으로도 불린다.
  • 랜섬웨어 공격 예제
    • 관리자 PC 공격 및 계정 정보 탈취
      • 악성코드를 설치하여 관리자 PC에서 내부 정보를 수집한다.
    • 게이트웨이 서버를 통해 서버 접속 및 악성코드 설치
      • 백업 서버에도 랜섬웨어를 설치한다.
    • 랜섬웨어를 실행한다.
    • APT 공격에 의한 것으로 추정된다.
      • 오랜 잠복기간을 거쳐 정보를 수집 하기 때문에 어느 순간에 공격을 당하게 되었는지 확인하기 쉽지 않다.

개인정보 유출 사고 예제

  • 업데이트 서버 해킹
    • 보안 공격자가 업데이트 파일을 서버에서 본인이 만든 업데이트 파일로 교체
  • 감염된 업데이트 파일에 의한 좀비 PC 생성
    • 공격대상으로 삼은 기업만 대상으로 하여 데이터베이스 관리자 ID와 비밀번호까지 탈취
  • 좀비 PC를 통하여 개인정보 유출

보안 공격의 이해 및 필요 지식

  • 보안 관련 선수 지식
    • 운영체제 (OS) : 공격을 하려고 하거나 어떤 공격에 대한 것을 탐지를 하려고 할때 운영체제를 모르면 깊이가 없다. 내부적으로 하드웨어를 컨트롤 하는것 등 중요 부분 을 담당하기 때문
    • 네트워크 : 네트워크를 타고 들어와서 공격하는 경우가 있기 때문에 공격의 이해를 위해 필요하다.
    • 서버 : 해당 서버가 어떤 서비스를 제공하고 어떤 방식에 의해 동작되는지 알아야 공격으로부터 수비하는 방법을 알 수 있다. (리눅스에 대해서 알고있어야 한다.)
    • 프로그래밍 : 해킹 프로그램에 대응하려면 프로그래밍에 대한 기본적인 지식이 필요하다.

보안 모델과 솔루션

  • 보안의 3대 요소
    • 기밀성
      • 정보를 오직 인가된 사용자에게만 허가한다.
    • 무결성
      • 허락되지 않은 자가 정보를 수정하거나 위/변조 할 수 없도록 하는것 (정일완)
        • 정확성 → 틀린 내용 X
        • 완전성 → 내용중에 빠진것이 있으면 X
        • 일관성 → 다른 정보와 일치해야한다.
    • 가용성
      • 접근 권한이 있으면 정보에 정해진 시간 내에 접근할 수 있음을 보장
  • 보안성 강화
    • 기술적 보호 조치 (보안 솔루션)
    • 보안 정책에 의한 절차적 보안 조치도 필요하다. (직원 교육)
    • 보안 정책과 기준을 기반으로 적합한 보안 제품을 도입한다.
  • 정리보안 솔루션 구축, 직원 교육으로 절차적 보안 조치, 보안 제품 도입
  • 보안의 3대 요소로 기무가 (기밀성 무결성(정일완) 가용성)

시스템 보안

  • 최근의 많은 보안 사고들은 네트워크를 통해 외부에서 침입한 공격에 의해 발생하고있다.
    • 제로데이 공격과 같은 기존에 알려지지 않은 최신 공격 기법을 사용한 경우에는 어쩔 수 없지만**, 많은 보안 사고들은 미리 준비를 하면 막을 수 있는 경우가 대부분**이다.
      • 정상적인 패치가 나오기 전 까진 무방비 상태
      • 아직 알려지지 않은 컴퓨터 소프트웨어 취약점을 의미한다.
        • 취약점이 발견되면 제작자나 개발자가 취약점을 보완하는 패치를 배포하고 사용자는 이를 다운받아 대응한다.
        • 제로데이 공격은 공격의 신속성을 의미하는 것 (대처 방법이 없다.)

시스템

  • 서버
    • 서비스를 제공하는 시스템
    • 웹 서버 프로그램을 설치하면 → 웹서버
    • DBMS 서버 프로그램을 설치하면 DB 서버
    • 대표적인 서버 운영체제 → 윈도우 / 유닉스 (금융쪽에서 많이 사용한다.) / 리눅스
  • 정보 시스템 개요
    • 데이터를 수집 저장 가공 배분하는 시스템으로 정의한다.
    • 하드웨어 소프트웨어 사람 데이터 프로세스 로 구성된다.
  • 시스템 : 보안 공격 대상이 될 수 있는 단위
    • 대표적인 시스템 → 리눅스 / 윈도우 / 유닉스 (서버용 운영체제)
  • 서버
    • 서비스를 제공하는 시스템
    • 서버용 운영체제가 설치된 컴퓨터
      • 웹서버 프로그램 → 웹서버
      • DBMS 서버 프로그램 → DB서버

  • 시스템의 보안성을 평가하는 4가지 항목 (각각의 항목들이 제대로 보안성을 갖추고 있는지가 안정성을 평가하는 측도가 된다.)
    • 계정관리
      • 계정 → 허가된 사용자인지 검증을 위한 정보 (신분증)
      • 관리자 계정 → 엄격한 관리가 필요하다. (전체적으로 컴퓨터를 관리할 수 있는 권한이 있는 계정)
        • 탈취당하면 상당히 심각한 문제가 발생한다.
      • 가능한 관리자 계정의 개수는 줄여라
        • 관리자 계정에 대한 보안 위험 범위가 확대된다. (문이 많은 것;;;)
        • 보안상 관리 비용 증가 (문 고장나면 어쩔겨)
        • 시스템 및 보안 → 관리 도구 → 컴퓨터 관리에서 계정 관리
      • 관리자 아이디를 변경하라
        • 무차별 공격 (브루트 포스) 대비
        • 시스템 및 보안 → 관리 도구 → 로컬 보안 정책
    • 암호 관리
      • 보안 공격자는 사람들이 쉽게 사용하는 암호들을 미리 관리한 암호 사전이 있다. (밥먹듯이 해킹하는데 없으면 이상;;)
      • 좋은 암호가 가지는 특징
        • 길이가 길어야 한다.
        • 영어 숫자 특수문자 등을 조합
        • 로컬 보안 정책 설정 → 비밀번호의 보안 강도를 강제적으로 설정해준다.
    • 서비스 관리
      • 공유 폴더에 대한 익명 사용자의 접근을 막아라.
        • 컴퓨터 관리 → 공유 폴터
        • 인가 되지 않은 익명의 사용자가 네트워크를 통하여 중요한 문서에 접근할 수 있다면 보안적으로 심각한 문제가 발생할 수 있다. (우리집에 쌩판 남 들어오면 안됨;;)
      • 불필요한 서비스를 제거하라
        • 보안 가이드에서 권고되는 중지 대상 서비스를 제거

      • FTP 서비스를 가능한 사용하지 않거나 접근 제어를 엄격하게 관리한다.
        • FTP
          • 서버 ↔ 클라이언트 사이의 파일 전송을 위한 통신 프로토콜 중 하나
          • 윈도우 서버 운영체제에서는 FTP 서비스를 제공한다.
          • www 방식보다 파일을 빠른 속도로 한꺼번에 주고 받을 수 있다.
          • 사진, 음악, 동영상 등의 멀티미디어 콘텐츠는 내려받기가 완료 후 다음에 확인이 가능하다.
        • 익명 인증 금지
        • Everyone 계정 제거
        • 접근 제어 설정
          • 접속 가능한 IP주소 대역을 설정한다.
        • SFTP 가 권장된다.
          • SSL 암호화 통신 프로토콜을 사용한다.
          • 스니핑을 통한 유출 가능성이 낮다.
          • SSH 개요
            • 안전하게 통신할 수 있는 기능을 제공하는 응용 프로그램 또는 프로토콜
          • SSL
            • 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약
    • 패치 관리
      • 소프트웨어의 사소한 기능 개선 또는 버그나 오류 등을 수정하기 위해 개선한 프로그램
      • 핫픽스와 서비스 팩
        • 핫픽스 → 버그 수정이나 보안 취약점 보완을 위해 긴급히 배보하는 패치 (so hot..)
        • 하나의 핫픽스는 하나의 취약점 혹은 버그만 다룬다.
      • 서비스 팩
        • 여러개의 패치 및 개선 사항이 모여있는 프로그램
        • 운영체제의 핵심인 커널이 변경되기도 한다.
        • 패치를 따로 설치하는 것보다 서비스 팩을 설치하는 것을 권장한다.
    • 로그 관리
      • 로그 : 책임 추적성을 가능하게 하는 기반 자료
        • 책임 추적성 → 사용자의 행위에 대해 추적이 가능하다. (발자취..)

랜섬웨어 사고의 재구성

  • 2017년 6월 10일 국내 호스팅 업체가 보안 공격으로 서비스가 중지되는 사고가 발생하였다.
    • 150여 대의 서버가 랜섬웨어 라는 악성코드 공격으로 서비스가 중지되었다.
    • 고객사 중요 파일들이 암호화 랜섬웨어 공격으로 서비스 장애 공지가 되었다.
  • 랜섬웨어 공격이란
    • 일반파일을 암호화시켜 뒤에 새로운 확장자를 추가함
  • 최초의 악성코드 설치는 APT 공격에 의한 것으로 추정된다. (Advanced Persistent Threats, 지능형 지속 위협)
    • 하나의 타겟을 목표로 오랜 시간 동안 흔적을 남기지 않고 정보를 수집해 공격한다.
  • APT 보안 공격
    • 숨바꼭질형 보안 공격으로도 불린다.
  • 랜섬웨어 공격 예제
    • 관리자 PC 공격 및 계정 정보 탈취
      • 악성코드를 설치하여 관리자 PC에서 내부 정보를 수집한다.
    • 게이트웨이 서버를 통해 서버 접속 및 악성코드 설치
      • 백업 서버에도 랜섬웨어를 설치한다.
    • 랜섬웨어를 실행한다.
    • APT 공격에 의한 것으로 추정된다.
      • 오랜 잠복기간을 거쳐 정보를 수집 하기 때문에 어느 순간에 공격을 당하게 되었는지 확인하기 쉽지 않다.

개인정보 유출 사고 예제

  • 업데이트 서버 해킹
    • 보안 공격자가 업데이트 파일을 서버에서 본인이 만든 업데이트 파일로 교체
  • 감염된 업데이트 파일에 의한 좀비 PC 생성
    • 공격대상으로 삼은 기업만 대상으로 하여 데이터베이스 관리자 ID와 비밀번호까지 탈취
  • 좀비 PC를 통하여 개인정보 유출

보안 공격의 이해 및 필요 지식

  • 보안 관련 선수 지식
    • 운영체제 (OS) : 공격을 하려고 하거나 어떤 공격에 대한 것을 탐지를 하려고 할때 운영체제를 모르면 깊이가 없다. 내부적으로 하드웨어를 컨트롤 하는것 등 중요 부분 을 담당하기 때문
    • 네트워크 : 네트워크를 타고 들어와서 공격하는 경우가 있기 때문에 공격의 이해를 위해 필요하다.
    • 서버 : 해당 서버가 어떤 서비스를 제공하고 어떤 방식에 의해 동작되는지 알아야 공격으로부터 수비하는 방법을 알 수 있다. (리눅스에 대해서 알고있어야 한다.)
    • 프로그래밍 : 해킹 프로그램에 대응하려면 프로그래밍에 대한 기본적인 지식이 필요하다.

보안 모델과 솔루션

  • 보안의 3대 요소
    • 기밀성
      • 정보를 오직 인가된 사용자에게만 허가한다.
    • 무결성
      • 허락되지 않은 자가 정보를 수정하거나 위/변조 할 수 없도록 하는것 (정일완)
        • 정확성 → 틀린 내용 X
        • 완전성 → 내용중에 빠진것이 있으면 X
        • 일관성 → 다른 정보와 일치해야한다.
    • 가용성
      • 접근 권한이 있으면 정보에 정해진 시간 내에 접근할 수 있음을 보장
  • 보안성 강화
    • 기술적 보호 조치 (보안 솔루션)
    • 보안 정책에 의한 절차적 보안 조치도 필요하다. (직원 교육)
    • 보안 정책과 기준을 기반으로 적합한 보안 제품을 도입한다.
  • 정리보안 솔루션 구축, 직원 교육으로 절차적 보안 조치, 보안 제품 도입
  • 보안의 3대 요소로 기무가 (기밀성 무결성(정일완) 가용성)

시스템 보안

  • 최근의 많은 보안 사고들은 네트워크를 통해 외부에서 침입한 공격에 의해 발생하고있다.
    • 제로데이 공격과 같은 기존에 알려지지 않은 최신 공격 기법을 사용한 경우에는 어쩔 수 없지만**, 많은 보안 사고들은 미리 준비를 하면 막을 수 있는 경우가 대부분**이다.
      • 정상적인 패치가 나오기 전 까진 무방비 상태
      • 아직 알려지지 않은 컴퓨터 소프트웨어 취약점을 의미한다.
        • 취약점이 발견되면 제작자나 개발자가 취약점을 보완하는 패치를 배포하고 사용자는 이를 다운받아 대응한다.
        • 제로데이 공격은 공격의 신속성을 의미하는 것 (대처 방법이 없다.)

시스템

  • 서버
    • 서비스를 제공하는 시스템
    • 웹 서버 프로그램을 설치하면 → 웹서버
    • DBMS 서버 프로그램을 설치하면 DB 서버
    • 대표적인 서버 운영체제 → 윈도우 / 유닉스 (금융쪽에서 많이 사용한다.) / 리눅스
  • 정보 시스템 개요
    • 데이터를 수집 저장 가공 배분하는 시스템으로 정의한다.
    • 하드웨어 소프트웨어 사람 데이터 프로세스 로 구성된다.
  • 시스템 : 보안 공격 대상이 될 수 있는 단위
    • 대표적인 시스템 → 리눅스 / 윈도우 / 유닉스 (서버용 운영체제)
  • 서버
    • 서비스를 제공하는 시스템
    • 서버용 운영체제가 설치된 컴퓨터
      • 웹서버 프로그램 → 웹서버
      • DBMS 서버 프로그램 → DB서버
  • 시스템의 보안성을 평가하는 4가지 항목 (각각의 항목들이 제대로 보안성을 갖추고 있는지가 안정성을 평가하는 측도가 된다.)
    • 계정관리
      • 계정 → 허가된 사용자인지 검증을 위한 정보 (신분증)
      • 관리자 계정 → 엄격한 관리가 필요하다. (전체적으로 컴퓨터를 관리할 수 있는 권한이 있는 계정)
        • 탈취당하면 상당히 심각한 문제가 발생한다.
      • 가능한 관리자 계정의 개수는 줄여라
        • 관리자 계정에 대한 보안 위험 범위가 확대된다. (문이 많은 것;;;)
        • 보안상 관리 비용 증가 (문 고장나면 어쩔겨)
        • 시스템 및 보안 → 관리 도구 → 컴퓨터 관리에서 계정 관리
      • 관리자 아이디를 변경하라
        • 무차별 공격 (브루트 포스) 대비
        • 시스템 및 보안 → 관리 도구 → 로컬 보안 정책
    • 암호 관리
      • 보안 공격자는 사람들이 쉽게 사용하는 암호들을 미리 관리한 암호 사전이 있다. (밥먹듯이 해킹하는데 없으면 이상;;)
      • 좋은 암호가 가지는 특징
        • 길이가 길어야 한다.
        • 영어 숫자 특수문자 등을 조합
        • 로컬 보안 정책 설정 → 비밀번호의 보안 강도를 강제적으로 설정해준다.
    • 서비스 관리
      • 공유 폴더에 대한 익명 사용자의 접근을 막아라.
        • 컴퓨터 관리 → 공유 폴터
        • 인가 되지 않은 익명의 사용자가 네트워크를 통하여 중요한 문서에 접근할 수 있다면 보안적으로 심각한 문제가 발생할 수 있다. (우리집에 쌩판 남 들어오면 안됨;;)
      • 불필요한 서비스를 제거하라
        • 보안 가이드에서 권고되는 중지 대상 서비스를 제거

      • FTP 서비스를 가능한 사용하지 않거나 접근 제어를 엄격하게 관리한다.
        • FTP
          • 서버 ↔ 클라이언트 사이의 파일 전송을 위한 통신 프로토콜 중 하나
          • 윈도우 서버 운영체제에서는 FTP 서비스를 제공한다.
          • www 방식보다 파일을 빠른 속도로 한꺼번에 주고 받을 수 있다.
          • 사진, 음악, 동영상 등의 멀티미디어 콘텐츠는 내려받기가 완료 후 다음에 확인이 가능하다.
        • 익명 인증 금지
        • Everyone 계정 제거
        • 접근 제어 설정
          • 접속 가능한 IP주소 대역을 설정한다.
        • SFTP 가 권장된다.
          • SSL 암호화 통신 프로토콜을 사용한다.
          • 스니핑을 통한 유출 가능성이 낮다.
          • SSH 개요
            • 안전하게 통신할 수 있는 기능을 제공하는 응용 프로그램 또는 프로토콜
          • SSL
            • 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약
    • 패치 관리
      • 소프트웨어의 사소한 기능 개선 또는 버그나 오류 등을 수정하기 위해 개선한 프로그램
      • 핫픽스와 서비스 팩
        • 핫픽스 → 버그 수정이나 보안 취약점 보완을 위해 긴급히 배보하는 패치 (so hot..)
        • 하나의 핫픽스는 하나의 취약점 혹은 버그만 다룬다.
      • 서비스 팩
        • 여러개의 패치 및 개선 사항이 모여있는 프로그램
        • 운영체제의 핵심인 커널이 변경되기도 한다.
        • 패치를 따로 설치하는 것보다 서비스 팩을 설치하는 것을 권장한다.
    • 로그 관리
      • 로그 : 책임 추적성을 가능하게 하는 기반 자료
        • 책임 추적성 → 사용자의 행위에 대해 추적이 가능하다. (발자취..)

 

  Comments,     Trackbacks
운영체제 이론 03-14 (정리) 운영체제의 정의와 탄생 배경
더보기
  • 강의 목표
    • 운영체제의 정의와 목표를 알고 기능을 간단히 이해한다.
    • 운영체제가 없던 시절에서 운영체제가 생겨나는 태동 과정을 앎으로써 운영체제의 발단과 역할을 이해한다.
    • 원시 운영체제 이후 운영체제의 발전 과정을 이해한다.
    • 다중프로그래밍 (멀티태스크) 의 출현이 가져온 컴퓨터 시스템과 운영체제의 발전과 영향을 이해한다.
    • 운영체제의 종류와 특징을 간단히 이해한다.

운영체제 정의

  • 사용자와 컴퓨터 하드웨어 사이에 중계 역할을 하면서 프로그램을 실행/제어하는 시스템 소프트웨어이다.
    • 운영체제는 컴퓨터가 아니다.
    • 운영체제는 실체가 있는 소프트웨어이다.
    • 우리가 실제 사용하는 것들은 모두 응용 소프트웨어이다.
  • 컴퓨터가 켜질 때 처음으로 적재되어 나머지 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어
  • 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어
더보기
  • 정리컴퓨터의 자원을 독점적으로 관리한다.
  • 운영체제는 컴퓨터가 아니고 소프트웨어이다. (시스템 소프트웨어)

 

  • 응용소프트웨어
    • 흔히 아는 실행 프로그램
      • 크롬 / 한글 / 엑셀 등등
    • 실제 시스템 소프트웨어는 보이지않는다.
    • Linux , Unix, Windows, Mac Os 등
      • 하드웨어를 제어해준다.
      • Cpu, Cache , Ram, 디스크, 네트워크, MNU, DMAC (외부적인 장치)
  • 운영체제는 컴퓨터의 모든 자원을 관리한다.
    • 자원
      • 하드웨어 자원 - Cpu, Cache , Ram, 디스크, 네트워크, MNU, DMAC (외부적인 장치)
      • 소프트웨어 자원 - 응용프로그램
      • 데이터 자원 - 파일, 데이터베이스 등
  • 운영체제는 자원에 대한 독점 권한을 소유한다.
    • 자원에 대한 모든 관리 권한은 운영체제에 있다.
      • 자원 할당, 자원 공유, 자원 액세스, 자원 입출력 등
        • 램이 한정적이기 때문에 효율적으로 관리할 수 있도록 관리 권한을 위임한다.
      • 에 ) 파일 생성 → 디스크의 빈 공간 관리, 파일 저장 위치 관리, 파일 입출력 등
  • 운영체제는 관리자이다. (Supervisor)
    • 실행중인 프로그램 관리, 메모리 관리
    • 파일과 디스크 장치 관리, 입출력 장치 관리, 사용자 계정 등 관리 등
  • 운영체제는 소프트웨어이다.
    • 커널(kernel) 이라고 불리는 핵심 코드와 UI를 비롯한 도구 프로그램들 (tool/utility) , 장치를 제어하는 디바이스 드라이버들로 구성된다.
    • 커널이 가장 중요한 역할을 가진다.
더보기

시스템 소프트웨어는 눈에 보이지 않는다.

운영체제는 하드웨어 자원과 소프트웨어 자원, 데이터 자원 을 관리한다.

자원에 대한 독접 권한을 소유하고 관리자 역할을 하는 소프트웨어이다. (커널, 도구프로그램, 디바이스 드라이버 들로 구성)

 

운영체제의 목적과 기능

  • 운영체제의 목적
    • 사용자의 컴퓨터 사용 편리성
      • 사용자에게 편리성을 제공한다.
    • 컴퓨터의 자원 관리 효율성
  • 운영체제의 기능
    • CPU / 프로세스 관리
      • 과거엔 cpu에는 하나의 프로세스밖에 없었다.
      • 요즘엔 여러개의 프로세스를 갖고있다.
      • 필요할때만 프로세스가 동작하거나 쉬도록 관리한다.
      • 단순히 디스플레이만 해도 그래픽카드의 프로세스가 동작하고 있는 것이다.
      • 스레드에 대한 개념도 들어간다.
    • 메모리 관리
    • 파일 시스템 관리
    • 장치 관리
    • 네트워크 관리
    • 보안 관리
    • 기타 관리
      • 사용자 관리 / 사용자 계정 관리
      • 통계 → CPU / 메모리 / 네트워크의 사용 시간, 사용자의 접속 시간 등
      • 오류 발견 및 대응
      • 부팅
    • 하드웨어 / 소프트웨어 사이의 전반적인 관리를 담당한다.
    • 응용프로그램을 위해선 실행 언어가 필요하다. (대표적으로 C언어)
더보기

운영체제는 사용자에게 편리성을 제공한다.

하드웨어 / 소프트웨어 사이의 전반적인 관리를 담당한다.

 

운영체제의 태동

  • 고정 프로그램 방식
    • 1940년대 전자식 디지털 컴퓨터가 만들어지기 시작하는 시대
    • 0과 1로 , 고정식으로 모든 연산이 이루어졌다. (로터리 방식 Lottery)
    • 운영체제에 대한 개념이 없었다.
    • 소프트웨어 / 하드웨어 분리 개념이 없고 모든것이 하드웨어로 제작되었다.
    • 프로그래밍
      • 종이에 스위치와 전선 연결로 작성
      • 배선판에 전선 연결, 프로그램을 기계에 고척화 했다.
      • 하나의 명령을 구성하기 위해 여러가닥의 전선 연결
        • 프로그램의 전체 구축에 수천개의 전선 연결 (유지보수 힘듬)
      • 새로운 프로그램을 작성할 때 큰 고통이 있었다.
        1. 41 년 Z3 펌퓨터
        2. 44년 콜로서스
        3. 43~45년 애니악
          1. 진공관 약 18000개로 구성된 30톤크기의 컴퓨터
  • 내장 프로그래밍 방식
    • 45년 폰노이만에 의해 제안되었다.
    • 51년 EDVAC 컴퓨터를 만들 때 적용
    • 오늘날 컴퓨터의 구조가 되었다.
  • 내장 프로그램 컴퓨터의 의미
    • CPU와 메모리 분리
      • 처음부터 메모리에 대한 개념이 나오진 않았을 수도 있다.
      • 계산은 CPU가 했기 때문
    • 소프트웨어 하드웨어 분리
    • 실행할 프로그램을 메모리에 담고 CPU가 프로그램을 실행하는 방식
    • 프로그램은 입력장치를 통해 메모리에 적재
      • 펀치카드에 구멍을 뚫어 프로그램을 작성했다. (새로운 입력장치)
      • 카드 리더기로 프로그램을 메모리에 적재했다.
    • 메모리 장치 ↔
      • 제어장치 CU
      • 연산장치 ALU
      • 레지스터
        • 모든 cpu마다 각각 다른 형태의 레지스터가 있을 수도 있다.
    • 컴노이만 구조에서 기본적인 구조가 바뀌지 않았다.
더보기
  1. 운영체제에 대한 개념이 없던 고정 프로그램 방식 (0과 1로만 연산됨, 하드웨어만 존재)
  2. 오늘날 컴퓨터의 구조가 된 폰노이만 구조를 따르는 내장 프로그래밍 방식 (CPU와 메모리, 소프트웨어와 하드웨어 분리) / 메모리에 프로그램을 적재 후 실행
폰노이만 구조
  • 프로그램 로딩 시대
    • 운영체제 개념의 시작
    • IBM 701 메인프레임
      • 54년 IBM에서 만든 첫 번째 내장 프로그래밍 컴퓨터
      • 첫번째 범용 컴퓨터
      • 판매하지 않고 대여만 가능했다. (완벽하지 않았기 때문)
      • 기계만 대여 , 소프트웨어 제공 X
        • 대여한 고객(기업) 이 모든 것을 했어야 했다.
      • 일반적인 개발 형태
        • 첫번째 카드
          • 카드에 작성된 프로그램을 메모리에 적재하는 코드만 작성 (컴파일)
        • 두번째카드부터 행동하는 프로그램을 작성했다. (실행)
      • 로더 프로그램 필요
        • 개발자가 뒷 카드들을 메모리에 적재하는 프로그램을 첫번째 카드에 작성하는 반복되는 시간 낭비를 줄일 필요가 있었다.
          • 이 코드를 로더라고 부른다.
          • 로더는 모든 개발자에게 공통으로 필요했다.
        • 로더가 운영체제로 발전
          • 오늘날 운영체제의 가장 기본적인 기능
    • GM OS
      • 55년 IBM 701의 고객 기업 GM에 의해 개발되었다.
      • 핵심 개념
        • 로더 프로그램을 사용자 프로그램에서 분리
        • 사용자의 직접 적재해야하는 로더 프로그램 작성의 번거로움을 해소했다.
        • 테이프에 저장, 필요할 때마다 실행
        • 해당 로더 프로그램을 모니터 라고 불렀다.
        • 후세대 Genera lMotors Operating System (GM OS) 라고 불러졌다.
      • 테이프 장치 → 로더 프로그램 → 사용자 프로그램 (여기까지 한번만) → CPU
    • GM은 IBM 701의 처리 속도를 높인 IBM 704를 주문
      • 최초의 운영체제인 GM-NAA I/O 개발
        • 56년 GM과 NAA의 공동개발
          • 운영체제로서의 모습 갖춤
            • 배치 방식으로 작동 (batch operating system)
              • (컴퓨터의 setup과 비슷하다. 루틴을 만들어주는것)
              • 개발자들이 작성해놓은 순서대로 하나씩 메모리에 적재후 실행
          • I/O 프로그램을 메모리에 상주 (오늘날 운영체제 방식)
            • 실제 cpu 는 성능이 좋지만 외부로 나가는것은 그만큼 성능이 떨어진다.
            • cpu는 대부분 64비트 이지만 출력하는 것들은 대부분 32비트 (데이터가 반절)
            • 그런것들을 효율적으로 쓰기 위해서 루틴들을 라이브러리 형식으로 갖추고 프로그램 사이에 공유
      • 어셈블러 코드
        • 어셈블리어 프로그램을 기계어 코드로 번역해줌
      • 운영체제 메인 코드와 공통 입출력 코드
        • 운영체제 메인 코드 - 시작 코드
        • 공통 입출력 코드 - 장치 입출력을 다루는 프로그램 코드
          • 라이브러리 개념 등장
            • 별도로 제어할 수 있도록

 

더보기
  1. 로더 프로그램이 필요했던 운영체제 개념의 탄생
    • 로더가 운영체제로 발전되었다.
  2. 로더 프로그램 , 사용자 프로그램을 분리한 GM OS 탄생 (로더 프로그램 작성의 번거로움 해결)
  3. 배치 방식으로 작동하는 제대로된 운영체제라 할 수 있는 GM-NAA I/O 개발 (작성해놓은 프로그램 순서대로 메모리에 적재후 실행되는 방식, 루틴을 라이브러리 형식으로 갖춤)

운영체제 태동 시절

  • 1세대 컴퓨터 시절 → 운영체제 암흑 시대
    • 운영체제 개념이 없었다.
  • 배치 운영체제
    • 컴퓨터가 유효시간이 발생하게 되었다.
    • 효율적으로 사용하기 위해서 개발자와 관리자가 구분되었다.
    • 개발자 → 펀치카드를 입력 덱에 두고 결과를 기다림
    • 관리자 → 한번에 하나씩 적재하고 실행하도록 관리
  • 다중 프로그래밍 운영체제
    • CPU속도 개선, 컴퓨터 가격 증가
    • 많은 사업자들이 활용할 수 있는 기회가 생겼다.
    • CPU작업 →IO 작업 → CPU작업 → ..의 반복
    • IO작업이 이루어지는 동안 CPU는 놀면서 대기했기 때문에 CPU의 유효시간을 줄일 필요가 있었기때문에 다중 프로그래밍 기법 출현
      • 프로그램 실행중에도 입출력을 계속 해라!
  • 다중 프로그래밍으로 인한 이슈
    • 메모리의 크기를 늘릴 필요가 있었다.
    • 메모리 할당 및 관리 이슈
    • 프로그램이 다른 영역을 침범하지 못하도록 막는 방법이 필요했다.
    • CPU 스케줄링과 컨텍스트 스위칭
      • 프로그램의 실행 상태를 저장할 컨텍스트 정의
      • 컨텍스트 스위칭이 필요했다.
        • 여러개의 프로세스가 실행되고 있을 때 기존에 실행되던 프로세스를 중단하고 다른 프로세스를 실행하는 것. 즉, CPU에 실행할 프로세스를 교체하는 기술이다.
        • 컨텍스트 스위칭을 하는 주체는 스케줄러이다.
    • 인터럽트 개념 도입
      • IO 장치로부터 입출력 완료를 전달받는 방법이 필요했다.
    • 동기화
      • 여러 프로그램이 동일한 자원을 동시에 액세스할때 발생하는 문제 해결 필요
    • 교착 상태 해결
      • 프로세스들이 상대가 가진 자원을 서로 요청하면서 발생하는 문제 해결 필요
  • 시분할 다중 프로그래밍 운영체제
    • 시분할 운영 체제는 많은 사용자들이 컴퓨터를 공유하도록 한다 .
    • 다중 프로그래밍 운영체제와 거의 동시에 연구가 시작됨
      • 비 대화식 처리방식과 느린 응답시간, 오랜 대기시간의 문제점 인식
    • 사용자에게 빠른 응답을 제공하는 대화식 시스템 제안
      • 터미널 → 키보드 + 모니터 + 전화선 + 모뎀
      • 사용자들은 터미널을 이용하여 메인 컴퓨터에 원격으로 접속하였다.
      • 운영체제는 시간을 나누어 돌아가면서 각 터미널의 명령을 처리 할 수 있다. → CTSS 시분할 시스템 (1962 MIT)
        • 프로그램 ↔ 시분할 운영체제 ↔ 터미널

 

더보기
  1. 배치 운영체제다중 프로그래밍 운영체제시분할 다중 프로그래밍 운영체제 순서로 발전
  2. 유효시간을 줄일 필요가 있었기에 배치 운영체제에서 다중 프로그래밍 운영체제로 발전
  3. 컨텍스트 스위칭과 인터럽트의 개념이 생겼다.

https://velog.io/@hayeon/Context-Switching%EC%99%80-Interrupt

 

Context Switching와 Interrupt

우리 눈에는 여러가지 프로그램은 동시에 실행시키는 것으로 보이지만, 사실 여러개의 프로세스를 짧은 시간 번갈아 실행시키면서 동시에 실행하는 것처럼 보이는 것입니다. 이는 CPU는 한번에

velog.io

 

개인용 운영체제

  • 출현 배경
    • 메인 프레임 → 성능 향상된 미니 컴퓨터 시대
    • 사용자가 늘어나게 되면서 개인용 컴퓨터의 필요성을 느끼게 됨
      • 원격 접속 X 개인으로 사용
    • 인텔 4004 가 시장에 등장 (1971) 마이크로 프로세서 CPU장치 (애니악에 버금가는)
    • CPM을 모티브해 나온것이 1980년 개인용 운영체제 MS-DOS 등장 (320KB)
  • 임베디드 컴퓨터 (내장형)
    • OS를 기본으로 사용하는 다양한 시스템이 나오게 되었다.
    • 소형 컴퓨터
    • 임베디드 시스템 : (영어: embedded system, 내장형 시스템 )은 기계나 기타 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내에 존재하는 전자 시스템이다.
  • 임베디드 운영체제
  • 모바일 컴퓨터
    • 휴대 가능한 크기로 들고 다닐 수 있는 모바일 장치 혹은 모바일 컴퓨터 출현
  • 모바일 운영체제
  Comments,     Trackbacks