반응형

 

 

 

 

 

1. 채널

 

- 데이터가 흐르는 개별적인 경로

- 소매점 체인이 채널의 예

 

2. 다중접속 프로토콜의 바람직한 특성 (초당 R 비트의 전송률을 가질 때)

 

- 효율성 : 전송하는 노드가 하나 있다면 노드의 데이터 전송 속도는 R이 될 수 있다.

- 공정성 : M개의 노드가 동시에 전송을 한다면 각자 R/M의 전송 속도를 가진다.

- 안정성 : 프로토콜이 분산되어 있다. 즉, 특정 노드의 고장으로 인해 전체 시스템이 정지하는 경우가 발생하지 않느다.

- 프로토콜이 단순하여 구현 비용이 크지 않다.

 

3. LAN 토폴로지(LAN 형태)

 

- 버스형   ----a----b----c----d----

- 링형     a----b----c----d----a

- 성형     a---중앙 ---b

 

 

4. 버스형

 

- 전기 신호가 브로드캐스팅 됨

- 동시 전송 시, 충돌 발생 가능

- 예) Ethernet

- 링크의 길이가 길어지면 신호의 감쇄현상으로 중계기가 필요할 수 있음

 

 

5. 링형

 

- 한쪽 방향으로 데이터가 전송됨(시계 방향 혹은 반시계 방향)

- 전송 호스트와 목적지 호스트 주소가 기록됨, 링을 돌다가 목적지 호스트에 도착하면 데이터를 자신의 버퍼에 복사

- 데이터는 링을 돌다가 초기 데이터를 전송했던 호스트에 의해 제거됨

- 제어 절차가 상대적으로 복잡 (토큰 사용)

- 한 노드에 발생한 고장이 전체 링에 영향을 줄 수 있음

- 토큰 링의 형태로 사용되는 것이 일반적

 

** 효율성 낮음, 공정성 그저그럼, 안정성 낮음

 

 

6. 성형

 

- 스위치 허브의 사용이 보편화 되면서 성형 구조의 LAN이 많이 사용되고 있는 상황

- 하나의 링크에 발생하는 문제는 다른 노드에 영향 주지 않음 (안정성 높음)

- 단, 중앙 스위치에 문제가 발생하면 LAN 전체에 문제 발생

 

 

 

 

 

 

반응형
반응형

 

 

 

 

1. OSI[Open System Interconnection] Reference Model - 참조 모델

 

- 국제 표준화 단체 ISO에서 OSI reference model을 정의

-  네트워크에서 통신 호스트들이 계속 추가될 수 있어야 한다. 그러려면 미리 정의된 통신 관련 표준이 필요하다. 그것이 OSI이다.

- 7개의 layer로 구성 

 

2. 7 layers

 

- 응용계층 (Application layer)

- 표현계층

- 세션계층

- 전송계층 (Transport layer) : TCP / UDP

- 네트워크계층 : IP

- 데이터링크계층

- 물리계층 (Physical layer)

 

-> Top - Down : application protocol에 맞춰 application process가 진행됨

-> Application Layer의 프로그램을 짤 때, Transport Layer의 기능을 이용

-> 운영체제 : 전송 / 네트워크 / 데이터링크 계층

 

3. 인터페이스(interface)

- 서로 다른 시스템이나 소프트웨어 간의 연결을 위해 정해둔 방식 

 

4. 프로토콜(Protocol)

-  통신규약

-  1) 메시지 포맷과 순서 2) 절차 정의

-  HTTP : 웹 브라우저와 웹 서버간 프로토콜

-  SMTP : 데이터를 email 서버로 보내기 위한 프로토콜

 

(나) 응용 -> 표현 -> 세션 -> 트랜스포트 -> 네트워크 -> 데이터링크 -> 물리

(상대방) 물리 -> 데이터링크 -> 네트워크 -> 트랜스포트 -> 세션 -> 표현 -> 응용

 

5. 프로토콜 예

 

1) 연결

2) GET / Res

3) 데이터 전송

4) 연결해제

 

6. 프로토콜 계층

 

- 상위 계층은 하위 계층에 존재하는 기능 이용

- 응용 프로세스(응용 계층에 위치)가 상대편 응용 프로세스로 데이터를 전송

: 여러 개의 프로토콜 계층 통과

 

7. 7 layers

 

응용 계층

  : HTTP, FTP, SMTP등 통신 프로토콜 정의

전송 계층

  : TCP, UDP 운영체제에 구현되며, 운영체제로부터 기능 호출(시스템 콜)

네트워크 계층

  : IP, 멀리 떨어져 있는 두 호스트 간의 데이터 전달 (라우터 장비 필요)

  : 라우터는 IP 주소를 차고하여 전달

데이터링크 계층

  : 유선 LAN카드, WiFi 카드, 물리적인 전송 매체 이용

물리 계층

구리선, 광케이블선, 비트 열을 전기적 신호로 변환

 

 

 

 

 

 

 

반응형
반응형

운영체제가 없어도 컴퓨터 하드웨어는 사용이 가능하다. 다만, 운영체제는 컴퓨터의 사용을 용이하게 해주는 역할을 한다.

 

1. 운영체제 서비스

: 프로그래머와 사용자들에게 편리한 서비스 제공

: 자원관리의 효율성을 위한 서비스

 

 

2. 운영체제의 구성요소

: 인터페이스 / 자원관리 / 자체관리기능

 

- 인터페이스

: 명령어 해석기 시스템

 

- 자원관리 -> 전통적 의미의 운영체제

: 프로세스

: 메모리, 보조 기억 장치

: 입출력, 파일, 네트워크

 

-자체관리

: 부팅 및 초기화

: 시스템 생성 및 튜닝

운영체제의 구성요소

 

 

 

 

 

 

3.  사용자 인터페이스

명령 라인 해석기(Command Line Interpreter) : Shell

Graphic User Interface 

 

 

시스템 호출

: 프로세스와 운영체제 간의 인터페이스(API)

- 프로그램에서 명령 또는 서브 루틴의 호출 형태로 실행한다.

- 시스템에서 명령 해석기를 통해 대화 형태로 호출한다.

 

시스템 호출의 원리

 

 

 

 

 

4. 자체 관리

- 부트스트래핑(부팅)

: 운영체제에서 자기 자신을 적재하는 과정

 

1) 부트스트랩 로더

: 전원 입력시 ROM에 있는 작은 로더가 실행된다.

: 로더는 디스크에 있는 부트스트랩 로더를 메모리에 적재하고 실행시킨다.

: 운영체제를 적재하고 초기화시킨다.

2) 운영체제의 초기화

: 시스템 장치의 초기화

: 명령어 해석기 등을 적재하여 실행시킨다.

 

 

 

 

 

 

4. 운영체제 구조

1) 단순 구조

: 모듈로 분할되지 않는다.

: 수행효율은 높으나 기능 추가 및 유지 보수에 어려움이 있다.

: MS-DOS, 초기의 UNIX

 

 

 

2) 계층 구조

- 모듈성

: 하나의 프로그램을 서로 영향받지 않는 부분들로 분리한다.

: 시스템 오류 제거와 검증에 용이하다.

 

- 계층 기법(Layer)

: 운영체제를 여러 계층으로 나눈다.

: 각 계층은 하위 계층에서 제공되는 기능과 서비스만을 사용한다.

 

- 계층 구조의 어려움

: 계층의 정의 또는 결정

: 계층 정의에 위배되는 경우가 자주 발생한다.

 

 

 

3) 마이크로커널 구조

: 커널로부터 많은 기능을 제거하고 "사용자"공간으로 이전

: 커널은 최소한의 프로세스 및 메모리 관리와 통신 기능을 담당한다.

MACH, QNX, Windows NT

 

[ 장점 ] 

- 운영체제 확장의 용이성

- 운영체제를 새로운 하드웨어로 포맷하기가 쉽다.

- 보안과 신뢰성

 

 

 

 

 

 

 

4) 가상 기계(Virtual Machine)

: 하드웨어와 운영체제 커널을 모두 하드웨어처럼 취급한다.

: 각 프로세스는 실제 컴퓨터의 사본을 제공함으로써 마치 실제 컴퓨터를 사용하는 것과 같은 환경을 제공한다.

-> 조금 더 진화된 것이 "도커"

 

- 자바 가상 기계(JVM)

 

 

 

 

 

 

 

5. 운영체제의 발전 과정

1970년대 UNIX 개발

1980년대 개인용 컴퓨터를 위한 운영체제의 발전

 

 

 

 

1) 일괄처리 시스템(Batch System)

: 유사한 작업들을 묶어서 순차적으로 처리한다.

 

- 상주 모니터

: 메모리에 상주하여 CPU 등 자원의 비효율적 사용을 해결한다.

: 입출력 관리 또는 인터럽트 처리 루틴들의 집합

 

- 제어 카드

: 상주 모니터의 프로그램 수행을 지시한다.

 

- 오프라인 처리

: 위성 컴퓨터, 테이프, 카드, 프린트, 장치 독립성 보장

 

 

 

 

 

 

2) 다중 프로그래밍

: 동시에 실행 상태에 있는 프로세스가 여러 개

-> 자원의 공유가 필요하다. (CPU, 메모리, 주변장치 등)

 

 

 

 

 

 

3) 시분할 시스템(Time Sharing) = 대화형 처리 시스템

: 시간을 나누어서 처리한다.

-> 다중 프로그래밍을 통해 각 사용자가 컴퓨터를 분할하여 사용

-> 메모리와 디스크 사이에 교체 필요

 

 

 

대화형 처리 시스템 vs 일괄 처리 시스템

- 일괄 처리 시스템

: 한 사용자가 주문을 끝까지 받고, 그 다음 사람이 순서대로

: 작업을 준비하여 제출하면 일정 시간 내 결과가 나온다 .

: 반환 시간이 길다. 대화가 거의 필요없는 대형 작업에 적합하다.

 

- 대화형 처리 시스템

: 여러 사용자를 이 사람, 저 사람 번갈아가며 동시에

: 사용자와 시스템 간에 온라인 통신 마련

: 사용자가 컴퓨터에 직접 명령을 주고 응답을 받는다.

 

 

 

 

 

 

 

 

4) 입출력 버퍼링

: 입출력 데이터를 버퍼에 미리 담아오는 것

: 입출력장치와 CPU의 속도 차이를 해소시킨다.

: 한 작업의 계산과 함께 입출력을 동시에 수행한다.

: 버퍼를 사용하여 문자나 데이터를 미리 읽어온 후, 필요할 때마다 사용하게 하면 효율적이다.

 

 

 

 

 

 

 

 

5) 스풀링

: 버퍼를 하드디스크로

: 디스크의 일부 공간을 스풀 공간이라고 부르는 매우 큰 버퍼처럼 사용한다.

: 입출력장치와 CPU의 속도 차이 해소해준다.

 

- 다중 프로그래밍 환경에서 스풀링을 사용한다.

: 다수의 프로세스들이 동시에 입출력을 요구하거나 입출력 장치 수에 제한이 있기 때문에 스풀링을 사용한다.

: 다수의 프로세스에게 각각 독립적인 입출력 장치를 제공한다.

 

 

 

 

 

 

 

 

 

 

6) 병렬 시스템 = 다중 처리기

: 고만고만한 CPU가 여러개 있는 시스템

 

<장점>

- 처리율 증가

- 다양한 주변 장치 공유

- 신뢰성 향상 

 

<단점>

- 프로그래밍 작성이 어려움

 

연결구조

 

 

 

 

7) 분산 시스템

: CPU와 메모리가 각각 별도로 존재 (병렬 시스템은 CPU만 여러개이고, 메모리와 입출력장치는 하나이다)

: 느슨하게 결합

<장점> 자원공유, 계산의 신속화, 신뢰성, 통신

 

 

 

 

 

 

 

 

 

8) 실시간 시스템

: 실행 완료 데드라인이 있다.

-> 특수 목적 시스템에 이용 (공정 제어, 의료 영상, 자동차 엔진 제어)

 

- 경성 실시간 시스템 : 데드라인 반드시 만족

ex) 항공 제어

- 연성 실시간 시스템 : 데드라인 일정 수준 이상 만족

ex) 멀티미디어 서비스

반응형
반응형

 

 

 

 

0. 관리자 모드에서 gcc 설치

$ su

암호 : 

$ yum install gcc

y/n 물을 때마다 y

 

 

1. gcc란?

GNU에서 만든 컴파일러

: C or C++에서 작성된 프로그램을 CPU가 이해할 수 있는 실행파일로 변경

 

 

 

2. 한 개의 소스파일을 이용하여 실행파일 만들기(컴파일하기)

: gcc hello.c    -> 아무런 옵션이 없으면 a.out 이라는 이름의 실행파일이 자동으로 생성

: gcc hello.c -o hello ->hello라는 이름의 실행파일이 생성

 

 

 

4. 두 개 이상의 소스파일을 이용하여 실행파일 만들기

: gcc -c test1.c     -> test1.o 라는 오브젝트 파일 생성

: gcc -c test2.c  -> test2.o 라는 오브젝트 파일 생성

: gcc test1.o test2.o -o run

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

1. 동작모드

 

1) 입력모드 : 명령 모드에서 <a> or <i> 키를 누르면 시작

2) 명령모드 : 처음 vi편집기 열면 명령 모드에서 시작, 입력모드에서 명령모드로 돌아오려면 esc

3) 최종라인모드 : esc키를 누르고 프롬프트에서 명령을 입력하여 저장, 편집, 검색 기능

-> 명령모드에서  콜론(:) 입력 -> wq 명령어 입력(write & quit)

 

4) vi편집기 열기 : vi [파일명]

 

 

2. 명령모드에서 커서 이동하기 

 

1) h, j, k, l(왼, 아, 위, 오른)

2) left or backspace : 왼

down

up

right or space : 오른

 

3) nG : 줄번호 n번으로 이동

1G : 편집버퍼의 첫 줄로 이동

G : 편집버퍼의 마지막 줄로 이동

 

 

 

 

 

3. 명령모드에서 입력모드로 전환

 

 

 

 

4. 삭제 명령 

 

x : 커서가 있는 문자 1개 삭제

dd : 커서가 있는 곳부터 1행 삭제

ndd : 커서가 있는 곳부터 n행 삭제

p(소문자) : 삭제한 행을 현재 커서가 있는 행의 아래에 붙여넣기

P(대문자) : 현재 커서가 있는 행의 위에 붙여넣기

 

 

5. 복사 명령

 

yy : 커서가 있는 행을 복사

nyy : 커석 있는 행부터 n행을 복사

 

 

 

 

 

6. 편집기 종료

 

:q : 변화가 없을 때 저장없이 종료하고 빠져나옴

:q! : 변화가 있음에도 저장없이 종료하고 빠져나옴

:w : 현재의 파일 이름으로 저장

:wq : 현재의 파일 이름으로 저장하고 빠져나옴

 

 

 

 

7. 최종라인 모드에서 vi 환경설정

:set nu   행 번호 보이게

:set nonu    행 번호 안보이게

반응형
반응형

 

 

파일 및 디렉토리 관리


 

ls : 현재 디렉토리에 저장된 내용을 확인하는 명령이다.

ls -a : all의 뜻, 시스템이 숨겨져 일반 사용자에게 보이지 않는 파일을 포함한 모든 파일 및 디렉토리를 보여준다.

ls -l : long의 뜻, 파일 및 디렉토리 표시, 접근에 대한 허가사항, 링크 수, 사용자, 등록명(그룹명), 파일 크기, 최종 수정시간


mkdir [새로운 디렉토리명] : 새로운 디렉토리를 만들어주는 명령이다.

pwd : 현재 디렉토리의 절대 경로를 알려주는 명령이다.

 

cd [변경하고자 하는 디렉토리명] : 다른 디렉토리로 이동하는 명령

-> cd . : 현재 디렉토리로 이동

-> cd ~ : 계정 홈 디렉토리로 이동

-> cd .. : 상위 디렉토리로 이동

-> cd / : 루트로 이동

-> cd ./a/b : 상대경로를 이용해 하위 경로로 이동

-> cd /home/na/a/b : 절대경로를 이용해 하위 경로로 이동

 

cat > [새로 만들 파일이름] : 새로운 파일에 텍스트 문자를 입력하는 명령이다.

: ctrl + D 로 문자 입력을 종료한다.

cat [파일이름] : 기존 파일에 저장된 내용을 확인하는 명령이다.

cat >> [기존 파일이름] : 기존 파일에 저장된 내용을 변경하는 명령이다.

: ctrl + D 로 문자 입력을 종료한다.

 

cp [옵션][복사할파일] [복사될파일 또는 디렉토리] :  파일 또는 디렉토리를 복사하는 명령이다.

1) cp source copy_source : 같은 디렉토리 안에 다른 파일이름으로 복사하는 경우

2) cp source /home/naeun/work : 다른 디렉토리에 같은 파일이름으로 복사하는 경우

3) cp source copy_source /home/naeun/test : source와 copy_source 파일을 동시에 test 디렉토리에 복사

4) cp -r test /home/naeun/test2 : test 디렉토리 안의 파일을 test2에 복사

[옵션] : -f (기존 파일을 강제로 덮어쓰기), -i (덮어쓰기 전에 여부를 물음)

 

mv [옵션][원본파일명] [변경파일명] : 파일을 이동시키는 명령어이다.

ex) mv source source2

mv [옵션][다수의 원본 파일명][이동 디렉토리] : 현재 디렉토리에서 다른 디렉토리로 파일을 이동시키는 명령

[옵션] : -i : 파일을 이동하기 전에 겹쳐쓰기 여부를 확인한다. 

          -f : 강제로 이동시킨다.

 

 

rm [옵션][삭제할 파일명 또는 디렉토리명] : 파일 또는 디렉토리를 삭제하는 명령어이다.

[옵션] : -i : 파일 삭제하기 전에 삭제 여부를 확인한다.

          -f : 강제로 삭제한다.

          -r : 파일이면 삭제를 하고, 디렉토리일 경우 경로와 파일을 함께 삭제한다.

          -v : 파일 지우는 정보를 세세하게 알려준다.

          -rf : 다수의 파일이 존재하는 디렉토리를 한번에 삭제한다.

 

ln -s [원본파일명][대상파일명] : 바로가기 기능

-> 링크로 생성된 파일의 내용은 존재하지 않으며, 다른 파일이 어디를 가리키고 있는지 알려주는 역할이다.

 

 

 

반응형

+ Recent posts