- 변수
- 정수형 , 실수형, 문자형, 포인터형
- 기억클래스 - 자동변수
- 자동변수는 함수나 코드의 범위를 한정하는 블록내에서 선언되는 변수이다.
- 초기화 하지 않으면 쓰래기값이 들어간다.
- 기억영역은 메모리(스택), 예약어 :auto, 생존기간 : 일시적. 사용범위 : 지역적
- 기억클래스 - 외부변수
- 다른파일에서 선언된변수나, 함수를 참조하기위한변수이며 함수밖에서 선언한다.
- 함수가 종료되도 값이 소멸되지 않는다.
- 초기화하지않으면 자동으로 0으로 소멸된다.
- 다른파일에서 선언된 변수를 참조할 경우 초기화 할 수 없다.
- 기억영역 : 메모리(데이터) , 예약어 extern ,생존기간: 영구적. 사용범위 : 전역적
- 기억클래스 - 정적변수
- 함수나 블록 내에서 선언하는 내부정적변수와 함수의 외부에서 선언하는 외부정적변수가 있다.
- 내부정적변수는 블록내에서만 사용할수있고, 외부정적변수는 모든함수에서 사용할수있다.
- 두변수 모두 함수나 블록이 종료된 뒤에도 값이 소멸되지 않는다.
- 초기화는 변수 선언시에 한번만 할 수 있으며 , 초기화를 생략하면 자동으로 0으로 초기화된다.
- 기억영역 : 메모리(데이터) , 예약어 :static , 생존기간 :영구적, 사용범위 정적변수(내부) : 지역적 정적변수(외부) : 전역적
- 레지스터변수
- 메모리가 아닌 CPU내부의 레지스터에 기억영역을 할당받음
- 자주사용되는 변수를 저장하여 처리속도를 높히기 위해 사용된다.
- 함수나 블록을 벗어나면 자동으로 소멸된다.
- 사용개수가 한정되어 데이터를 저장할 레지스터가 없는 경우 자동변수로 취급되어 메모리에 할당된다.
- CPU에 저장되어 메모리 주소를 가질 수 없기 때문에 변수의 주소를 구하는 주소연산자& 사용 불가능
- 기억영역 : 레지스터 ,예약어 :register ,생존기간: 일시적, 사용범위 :지역적
- Short si = 32768이라고 저장하면 짧은 변수형인 short에 저장했기때문에 오버플로우가 발생한다.
- Float = 단정도, double , long double =배정도
- 산술연산자
- +,-,*,/,%,++,--
- 관계연산자
- ==,!=,>,>=,<,<=
- 비트연산자
- &,^,|,~,<<,>>
- 논리연산자
- && , || , !
- 대입연산자
- +=,-=,*=,/=,%=,<<==,>>==
- 조건연산자
- 조건? 수식1 : 수식2 : 조건의 수식이 참이면 수식1, 거짓이면 수식2를 실행한다.
- 기타 연산자
- Sizeof ,(콤마) , (자료형)
- 연산자의우선순위
- 단항연산자
- 이항연산자
- 산술연산자
- 시프트연산자
- 관계연산자
- 비트연산자
- 논리연산자
- 삼항연산자
- 대입연산자
- 순서연산자(콤마)
- 제어문
- 단순if문
- if(조건) 실행할문장
- 다중if문
- if ,else if .... else
- switch문
- switch(수식)
- Case 레이블1:
- 실행할문장1:
- Break:
- Case 레이블2
- 실행할문장2:
- Break:
- .
- .
- Default:
- 실행할문장:
- switch(수식)
- goto문
- goto 레이블:
- 레이블:
- 실행할문장
- 단순if문
- 반복문
- for문, while문, do~while문,break,continue문
- do-while문
- do
- 실행할문장;
- while(조건);
- do
- 배열에서의 번지수는 바이트단위
- a [3][2] = [1,1,1
1,1,1 1,1,1]
- a [3][2] = [1,1,1
- 포인터
- 변수의 주소
- 포인터변수
- 변수의 주소를 저장할때 사용하는 변수
- &
- 포인터 변수에 주소를 저장하기위하여 변수의 주소를 알아낼때는 번지연산자(&)를 붙힌다.
- *
- 간접연산자 *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말한다.
- 포인터변수의 용도
- 연결된 자료구조를 구성하기 위해 사용한다.
- 동적으로 할당된 자료구조를 지정하기위해 사용한다.
- 배열을 인수로 전달하기 위해 사용한다.
- 문자열을 표현하기 위하여 사용한다.
- 커란 배열에서 요소를 효율적으로 저장하기 위해 사용한다.
- 메모리에 직접 접근하기 위해 사용한다.
- a 변수에 100을 저장하고 a변수의 주소를 포인터변수 b에 저장시켯다.
- a는 메모리 4번지에 대한 이름이다.
- a 변수의 주소는 4이다.
- a 변수에는 100이 기억되어 있다.
- 4번지에는 100이 기억되어있다.
- &a = 4 이다.
- 포인터변수 b는 a변수의 주소를 기억하고 있다.
- 포터변수가 가리키는 곳의 값을 말할때는 *b로 나타낸다.
- *b는 100이다.
- 포인터 배열
- 배열을 포인터 변수에 저장한 후 포인터를 이용해서 배열의 요소에 접근 할 수 있다.
- int a[5] , *b;
- b =a : 배열의 대표명을 적었으므로 a배열의 시작 주소인 a[0]의 주소를 b에 저장한다.
- b = &a[0] : a배열의 첫번째 요소인 a[0]의 주소를 b에 저장한다.
- 배열에서 +1은 한번지수 증가이다.
- 데이터의 입출력
- scanf(서식문자열, 변수의 주소)
- %d :정수형 10진수를 입출력하기 위해 지정
- %u : 부호없는 정수형 10진수
- %o : 정수형 8진수를 입출력
- %x : 정수형 16진수를 입출력
- %c : 문자를 입출력
- %s : 문자열을 입출력
- %f : 소수점을 포함하는 실수를 입출력
- %e : 지수형 실수를 입출력
- %ld : long형 10진수
- %io : long형 8진수
- %ix : long형 16진수
- %p : 주소를 16진수
- scanf("%4f" , &j) 입력 : 12.123
- 소숫점포합 4자리
- Char b[8]; scarf("%s" ,b) 입력 :GIL BUT
- GIL 입력한 데이터중 빈칸(공백)이 있으면 빈 칸 앞까지만 저장된다.
- Char b[8], c[8]
- scanf('%c %5c",b ,b) 입력 LOVE ME
- b: L , c : OVE M
- c이기때문에 하나의 문자만 뺀다 출력되면 사라진다.
- scanf('%c %5c",b ,b) 입력 LOVE ME
- scanf("%d %e %s" ,&i, &j, a)
- 형식문자 615pg확인하기
- a = getchar() - > GIL BUT ->putchar(a)
- 결과: p
- putchar('G')
- 결과 :G
- putchar('G' +1)
- 결과 :H
- gets(b); ->GIL BUT ->puts(b)
- 결과 : GIL BUT
- puts('GIL BUT')
- 결과 : GIL BUT
운영체제
- 운영체제란??
- 시스템의 자원들을 효율적으로 관리하여 사용자가 컴퓨터를 관리하고 효과적으로 사용할 수 잇도록 환경을 제공하는 여러 프로그램들의 모임이다.
- 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.
- 운영체제의 목적
- 처리능력
- 일정 시간내의 시스템이 처리하는 양
- 반환시간
- 시스템에 작업을 의뢰한 시간부터 처리가 완료될때까지 걸린 시간
- 사용가능도
- 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도
- 시스템이 주어진 문제를 정확하게 해결하는 정도
- 처리능력
- 운영체제의 기능
- 프로세서 , 기억장치, 입출력장치 파일 및 정보등의 자원을 관리한다.
- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.
- 사용자와 시스템 간의 편리한 인터페이스를 제공한다.
- 시스템의 각종 하드웨어나 네트워크를 관리, 제어한다.
- 데이터를 관리하고 데이터 및 자원의 공유기능을 제공한다.
- 시스템의 오류를 검사하고 복구한다.
- 자원보호기능을 제공한다.
- 입 출력에 대한 보조 기능을 제공한다.
- 가상계산기 기능을 제공한다.
- 운영체제의 주요 자원관리
- 프로세스 관리
- 프로세스 스케줄링 및 동기화 관리 담당
- 프로세스 생성과 제거 , 시작과 정지 , 메시지 전달
- 기억장치 관리
- 프로세스에게 메모리 할당 및 회수 관리 담당
- 주변장치 관리
- 입 출력장치 스케줄링 및 전반적인 관리 담당
- 파일관리
- 파일의 생성과 삭제 , 변경 유지및 관리
- 프로세스 관리
- 운영체제의 종류
- window
- UNIX
- AT&T , 벨연구소가 공동개발한 운영체제
- LINUX
- 리누스 토발즈가 개발했고 누구에게나 오픈되어있다.
- MacOS
- UNIX기반인 애플 운영체제
- MS-DOS
- windows에서 이전에 운영되던 운영체제
- 나머지는 전부다 다중작업처리 시스템이지만 MS-DOS는 단일작업처리시스템이다.
- UNIX
- 시분할 시스템을 위해 설계된 대화식 운영체제
- 소스가 공개된 개방형 시스템이다.
- C언어로 작성되어 잇어 이식성이 높으며 프로세스간의 호환성이 높다.
- 다중사용자, 다중 작업을 지원한다.
- 많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합하다.
- 트리구조의 파일시스템을 갖는다.
- 전문적인 프로그램 개발에 용이하다
- 다양한 유틸리티 프로그램이 존재한다.
- UNIX 시스템의 구성
- 하드웨어 -커널 - 쉘- 유틸리티 -사용자
- 커널
- UNIX의 가장 핵심적인 부분이다.
- 컴퓨터가 부팅될때 주기억장치에 상주하면서 실행된다.
- 하드웨워 보호 , 프로그램과 하드웨어간 인터페이스 역할을 담당한다.
- 프로세스 관리 , 기억장치관리 , 파일관리, 입출력관리, 프로세스간 통신, 데이터 전송 및 변환
- 쉘
- 명령어를 인식, 프로그램 호출, 명령을 수행, 명령어 해석기
- 시스템과 사용자 간의 인터페이스 담당
- 주기억장치에 상주하지 않고 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체처리가 가능하다
- 파이프라인 기능 지원, 입출력의 방향변경 가능
- 공용shell , 사용자자신만의 shell
- 유틸리티 프로그램
- 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용한다
- DOS에서는 외부명령어
- 에디터 , 컴파일러 , 인터프리터 , 디버거
- UNIX에서 프로세스 간 통신
- 시그널
- 간단한 메시지를 이용하여 통신하는 것으로 초기 유닉스 시스템
- 파이프
- 단방향 통신 방식
- 소켓
- 프로세스 사이의 대화를 가능하게 하는 쌍방향 통신 방식
- 시그널
- 기억장치
- 레지스터 , 캐시기억장치 , 주기억장치 , 보조기억장치
- 상위의 기억장치 일수록 접근 속도와 접근 시간이 빠르지만 기억용량이 적고 고가이다.
- 주기억 장치는 자신의 주소를 갖는 워드 혹은 바이트로 구성되어 있으며 주소를 이용하여 엑세스 할 수 있다.
- 레지스터 , 캐시기억장치 , 주기억장치의 프로그램이나 데이터는 CPU가 직접 액세스 할수 있으나 보조기억 장치에 있는 프로그램이나 데이터는 직접 액세스 할 수 없다. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- 보조기억 장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스 될 수 있다.
- 기억장치의 관리 전략 및 개요
- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재 시키는 시기, 위치를 지정하여 주기억 장치의 공간을 효율적으로 사용하기 위함이다.
- 반입전략(언제 주기억장치로 적재할 것이냐?)
- 요구반입
- 특정 프로그램이나 데이터의 참조를 동의 할때 적재하는 것이다.
- 예상반입
- 참조될 프로그램이나 데이터를 미리 적재하는 방법이다.
- 요구반입
- 배치전략
- First FIT
- Best FIT
- Worst FIT
- 교체전략
- 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
- 반입전략(언제 주기억장치로 적재할 것이냐?)
- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재 시키는 시기, 위치를 지정하여 주기억 장치의 공간을 효율적으로 사용하기 위함이다.
- 가상기억장치의 개요
- 가상기억장치는 보조기억장치(하드디스크)의 일부를 주기억장치 처럼 사용하는 것이다. 용량이 작은 주기억 장치를 마치 큰용량을 가진 것 처럼 사용하는 기법
- 프로그램을 여러개의 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고 프로그램 실행시에는 주기억장치에 불연속적으로 할당하여 처리한다.
- 주기억장치의 이용률과 다중프로그래밍의 효율을 높힐수있다.
- 블록단위로 나누어사용하므로 연속할당 방식에서 나타나는 단편화를 해결할수있다.
- 일반적인 구현 방법에는 페이징 기법과 세그멘테이션 기법으로 나눌수 있다.
- 페이징 기법
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일하게 나눈다.
- 나눠진 프로그램(페이지)를 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법이다.
- 프로그램을 일정하게 나눈 단위 - 페이지
- 페이지크기로 일정하게 나누어진 주기억장치의 단위 - 페이지 프레임
- 외부단편화는 일어나지 않으나 내부단편화는 발생한다.
- 주소변환을 위해서는 맵테이블이 필요하다.
- 맵테이블의 사용으로 비용이 증가되고 처리속도가 감소한다.
- 세그멘테이션 기법
- 가상기억장치에 보관되어 잇는 프로그램을 다양한 크기의 논리적인 단위로 나누어 주기억장치에 적재시켜 실행시키는 기법
- 프로그램, 배열 ,함수등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고하며 고유한 이름과 크기를 갖는다.
- 기억장치의 사용자 관점을 보존하는 기억장치 관리기법
- 이 기법을 사용하는 궁극적인 목표는 기억공간의 절약이다
- 주소변환을 위해서는 세그먼트 맵 테이블이 필요하다.
- 세그먼트가 주기억장치에 전재될때 다른 세그먼트에 할당된 영역을 침범할수없으며 이를 위해 기억장치 보호키가 필요하다
- 내부단편화는 발생하지 않으나 외부단편화는 발생할수잇다.
- 페이지 교체 알고리즘
- 페이지 부재가 발생했을때 필요한 페이지를 주기억장치에 적재해야되는데 모든 페이지프레임이 사용중이라면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법이다.
- OPT
- 최적교체로써 가장 오랫동안 사용하지 않을 페이지를 교체하는 방법이다. ( 페이지 부재가 횟수가 가장 적게 발생하는 가장효율적인 알고리즘)
- FIFO
- 가장 오래 있었던 페이지를 교체하는 기법이다.(쉽고 간단)
- LRU(least recently used)
- 가장 오랫동안 사용하지 않은 페이지를 교체하는 방식이다 ( count 나 stack 이용)
- LFU(least frequently used)
- 사용빈도가 가장 적은 페이지를 교체하는 기법이다.
- NUR(not used recently)
- LRU와 비슷하게 최근에 사용하지 않은 페이지를 교체하는 기법이다.
- Reference bit 혹은 변형비트(modified bit , dirty bit)가 사용된다.
- 교체될 순서 (참조비트, 변형비트) (0,0) ->(0,1) ->(1,0) ->(1,1)
- SCR(2차 기회 교차)
- 가장 오랫동안 있었던것 중에서 자주쓰이는 것은 교체되지 않게하기위해서이다 FIFO의 단점을 보안한것이다.
- 가상기억장치를 구현할때 시스템의 성능에 영향을 미치는 페이지크기나 locality 워킹셋,페이지부재빈도 , 프리페이징에 대해서 알아보자
- 페이지 크기
- 페이지크기가 작을 경우
- 페이지 단편화가 감소되고 한개의 페이지가 주기억장치로 이동하는 시간이 줄어든다.
- 불필요한 내용이 적재될 확률이 적으므로 효율적인 워킹셋이 유지된다.
- locality에 더 일치 할수있다.
- 맵테이블의 크기가 커지고 매핑속도가 늦어진다.
- 디스크 접근횟수가 많아져서 전체적인 입 출력 시간은 늘어난다.
- 페이지크기가 클 경우
- 맵테이블의 크기가 작아지고 매핑속도가 빨라진다.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- 디스크접근횟수가 줄어들어 입출력의 효율성이 증가된다.
- 페이지 단편화가 증가되고 이동하는 시간이 늘어난다.
- 불필요한 내용가지 들어갈수있다.
- 페이지크기가 작을 경우
- Locality
- 일부페이지만 집중적으로 참조한다는 성질이있다는 것을 활용한다.
- 스레싱을 방지하기위한 워킹셋의 기본이론
- 데닝에 의해 증명되고 캐시 메모리 시스템의 이론적 근거
- 시간구역성 & 공간구역성
- 시간구역성
- 하나의 페이지를 일정시간동안 집중적으로 엑세스
- 한번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높다.
- LOOP , stack , 서브루틴, 카운팅 ..
- 공간역성
- 프로세스 실행시 일정 위치의 페이지를 집중적으로 엑세스
- 어느 하나의 페이지를 참조하면 그 근처 페이지를 계속 참조할수있다.
- 배열순회 , 순차적 코드의 실행, 프로그래머들이 관련된 변수
- 시간구역성
- 워킹 셋
- 프로세스가 일정시간 동안 자주 참조하는 페이지의 집합
- locality 특징이용
- 페이지 부재 및 교체현상이 줄어 사용이 안정된다.
- 프로세스의 정의
- 프로세스란 프로세서(cpu)에의해 처리되는 사용자프로그램, 시스템프로그램 작업(job), task fkrhgksek.
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체로서 디스패치가 가능한 단위
- 프로시저가 활동되는것
- 프로시저랑 부분프로그램을 뜻함
- 비동기적 행위를 일으키는 주체
- 지정된 결과를 얻기위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생되는 사건들의 과정
- 운영체제가 관리하는 실행의 단위
- PCB
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로 task control block or job control block이라고 한다.
- PCB에 저장되어 있는 정보
- 프로세스의 현재 상태 : 준비,대기,실행 등..
- 포인터
- 부모 프로세스에 대한 포인터
- 자식 프로세스에 대한 포인터
- 프로세스가 위치한 메모리에 대한 포인터 : 현재 프로세스가 위치한 주소기억
- 할당된 자원에 대한 포인터
- 프로스 고유 식별자
- 프로세스를 구분할 수 있는 고유한 번호
- 스케줄링 및 프로세스의 우선순위
- 스케줄링 및 프로세스가 실행될 우선순위
- CPU레지스터 정보
- 주기억장치 관리 정보
- 입출력상태정보
- 계정정보
- 프로세스상태전이
- 제출(submit)
- 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한다.
- 제출(submit)
- 접수(hold)
- 제출된 작업이 스풀공간인 디스크의 할당위치에 저장
- 준비(ready)
- 프로세스가 프로세서를 할당받기위해 기다리고 있는 상태
- 준비상태큐 레디큐에 실행을 준비하고있다.
- 접수상태에서 준비상태로 가는 것은 job scheduler에 의해서 수행된다.
- 실행(run)
- 준비상태큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
- timeout 이 발생하면 준비(ready)상태로 돌아간다.
- I/O의 입출력이 필요하면 대기 상태로 전환한다(wait)
- Ready 에서 run 으로 가기 위해서는 cpu scheduler에 의해서 실행된다.
- Wait/block
- 프로세스에 I/o가 발생하면 현재 실행중인 프로세스가 종료되고 입출력 처리가 완료될때까지 대기하고있다
- terminate(종료)
- 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태이다
- dispatch
- Ready ->run 준비상태에 있는 프로세스중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정이다.
- wakeup
- 입 출력 작업이 완료되어 프로세스가 wait 에서 ready상태로 전환되는 과정이다.
- spooling
- 입출력 장치의 처리속도를 보안하고 다중프로그래밍 시스템의 성능을 향상시키기위해 입출력 데이터를 직접 입출력장치에 보내지 않고 나중에 한번에 입출력하기위하여 디스크에 저장하는것이다.
- 교통제어기
- 프세스의 상태에 대한 조사와 통보를 담당한다.
- 스레드(thread)
- 프로세스 내부의 작업단위다.
- 한개일때는 단일 스레드 여러개일때는 다중스레드라고한다.
- 일부 특성을 가지고 있기 때문에 경량 프로세스라고한다.
- 독립적인 스케줄링의 최소단위로서 프로세스의 역할을 담당한다.
- 사용자수준의 스레드
- 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.
- 속도는 빠르지만 구현이 어렵다.
- 커널 수준의 스레드
- 운영체제의 커널에 의해 스레드를 운용한다.
- 구현이 쉽지만 속도가 느리다.
- 스레드의 장점
- 병행성을 증진시킨다.
- 프그램의 처리율을 향상시킨다.
- 응답시간을 단축시킨다.
- 실행환경을 공유하여 기억장소의 낭비가 줄어든다.
- 프로세스간의 통신이 향상된다.
- 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신한다.
- 프로세스 내부의 작업단위다.
인터넷
- 인터넷이란
- TCP/IP 프로토콜을 기반으로 전세계 수많은 컴퓨터와 네트워크들이 연결된 광범위 통신망이다.
- ARPNET에서 시작되었다.
- 유닉스기반
- 시간과 장소를 구애받지 않는다.
- 고유한 IP
- 브리지 , 라우터 , 게이트웨이가 사용된다.
- Back bone - 네트워크들중에서 중추적인 역할을 하는것
- A class
- 국나 대형 통신망에 사용 (0-127)
- B class
- 중대형 통신마야에 사용 (128-191)
- C class
- 소규모 통신망에 사용된다. (192 - 223)
- D class
- 멀티캐스트 용으로 사용된다.
- 멀티캐스트란 : 한명이상의 송신자들이 특정한 한명이상의 수신자에게 전송하는것
- 멀티캐스트 용으로 사용된다.
- E class
- 실험용 주소
- 서브네팅
- 네트워크 주소를 다시 여러개의 작은 네트워크로 나누어 사용한다.
- 4byte의 ip주소중에서 네트워크 주소와 호스트 주소를 구분하기위한 비트를 서브넷마스크라고한다.
- 서브넷 마스크는 각 클래스마다 다르게 사용한다.
- IPv6
- ipv4의 주소부족문제를 해결하기위하여
- 전송속도가 빠르다
- 인증성, 기밀성, 데이터무결성의 지원으로 보안문제를 해결할수있다.
- IPv4와 호환성이 뛰어나다
- 실시간 흐름제어로 향상된 멀티미디어 기능을 지원한다.
- 품질 보장이 용이하다
유니캐스트
- 1대1통신
- 애니캐스트
- 가장가까이 있는 것과 1대1통신
- 멀티캐스트
- 1대다
- OSI참조모델의 개요
- 다른시스템간의 원할한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신규약이다.
- 1
3은 하위계층 47계층은 상위계층이라고한다. - 하위계층
- 물리계층 ->데이터링크계층->네트워크계층
- 상위계층
- 전송계층 ->세션계층->표현계층->응용계층
- 프로토콜의 데이터단위(PDU)
- 물리계층 : 비트
- 데이터링크계층 : 프레임
- 네트워크 계층 : 패킷
- 전송계층 : 세그먼트
- 세션 표현 응용계층 : 메시지
- 서비스 데이터 단위(SDU)
- 서비스의 접근점 sap을 통해 상 하위 계층끼리 주고받는 정보의 단위
- 물리계층
- 전기적 기계적 절차적특성에 대한 규칙을 정의한다.
- 물리적 전송매체와 전송신호방식을 정의하 절차적 특성에 대한 규칙을 정의한다.
- 관련장비 : 리피터, 허브
- 데이터링크계층
- 두개의 인접한 개방시스템간의 신뢰성있고 효율적인 정보전송
- 속도차이를 해결하기위한 흐름제어
- 시작과 끝을 구분하기위한 프레임의 동기화
- 오의 검출과 회복을 위한 오류제어기능
- 프임을 순차적으로하기위한 순서제어
- 즉 , 흐름제어 , 오류제어 , 순서제어
- HDLC , LAPB , LLC,MAC,LAPD,PPP
- 네트워크계층
- 개방시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계기능
- 라우터
- 전송계층
- 균일한 데이터 전송서비스 , end to end
- 하위계층과 상위 계층의 인터페이스를 담당한다.
- TCP/UDP
- 게이트웨이
- 세션계층
- 송,수신간의 관련성을 유지하고 대화 제어를 담당한다.
- 대화 구성 및 동기 제어, 데이터 교환 관리기능
- 채크점을 두어서 수신체크 , 체크점을 동기점이라고한다. 소동기점, 대동기점
- 표현계층
- 응용계층으로부터 받은 데이터를 세션계층에 보내기위해 적당한 형태로 변환하고 세션계층에서 받은데이터는 응용계층으로 보내기위한 적당한 형식으로 변환한다.
- 응용계층
- 사용자가 osi 환경에 접근할수있도록 서비스를 제공한다.
- TCP/IP
- 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을수있도록 하는 표준프로토콜이다.
- TCP
- osi 7계층의 전송계층
- 신뢰성있는 연결형 서비스 제공
- 페킷의 다중화 ,순서제어, 오류제어,흐름제어
- 스트림 전송 기능제공
- IP
- osi 7계층중에 네트워크계층
- 데이터그램을 기반으로 비연결형서비스제공
- 페킷의 분해, 조립 , 주소지정, 경로선택기능 제공
- osi 응용계층, 표현계층, 세션계층 ->tcp/ip의 응용계층
- osi의 전송계층 ->전송계층
- osi의 네트워크 계층 ->인터넷계층
- osi의 데이터링크계층, 물리계층 ->네트워크 엑세스 계층
- 응용계층의 주요 프로토콜
- FTP
- 파일주고받는 프로토콜
- SMTP
- 전자우편 주고받는 프로토콜
- TELNET
- 원격 , 가상의 터미널
- SNMP
- 네트워크 정보를 관리시스템에 보내는 규약
- DNS
- ip주소로 매핑
- HTTP
- 웹에서 HTML문서를 송수신하기위한 프로토콜
- FTP
- 전송 계층의 주요 프로토콜
- TCP
- 양방향 연결
- 가상회선 연결
- 스트림 위주의 전달
- 신뢰성 잇는 경로 확립
- 순서제어 , 오류제어 , 흐름제어
- UDP
- 비연결형 서비스
- 오버헤드가 적다.
- 빠른 속도를 필요로 하는경우
- 신뢰성보다는 속도가 중요시 여기는 네트워크
- RTCP
- 패킷의 전송품질을 제어하기 위하여
- 세션에 참여한 참여자들에게 주기적으로 제어정보를 전송한다.
- 제 패킷의 다중화를 제공한다.
- 최소한의 제어와 인증기능만을 제공
- RTCP패킷은 항상 32비트의 경계로 끝난다.
- TCP
- 인터넷 계층의 주요 프로토콜
- IP
- 전송할 데이터에 주소를 지정하고 경로를 설정하는 기능
- 데이터 방식을 사용하는 것으로 신뢰성이 보장되지 않는다.
- ICMP
- 오류 처리와 전송경로 변경
- IGMP
- 호스트나 라우터 사이에서 멀티캐스트 그룹유지를 위해 사용
- ARP
- ip주소를 물리적 주소로 변환한다.
- RARP
- arp와 반대로 물리적 주소를 ip주소로 변환한다.
- IP
'[정보처리기사]' 카테고리의 다른 글
[정보처리기사]#5.Chapter5 -A grade (0) | 2020.05.16 |
---|---|
[정보처리기사]#3.Chapter3 -A grade (0) | 2020.05.16 |
[정보처리기사]#2.Chapter2 -A grade (0) | 2020.05.16 |
[정보처리기사] #1.Chapter1 -A grade (0) | 2020.05.16 |