운영체제의 개념
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종
- 프로세스, 기억장치, 주변장치, 파일 등을 관리
- WINDOWS, UNIX, Linux, MacOS
운영체제의 목적
- 처리능력(Throughput) : 일정 시간 내 시스템이 처리하는 일의 양
- 반환시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 사용가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
UNIX
- AT&T벨(Bell) 연구소, MIT General Electric이 공동 개발한 운영체제
- 시분할 시스템을 위해 설계된 대화식 운영체제
- c언어로 작성, 이식성이 높으며 장치, 프로세스 간 호환성이 높음
- 트리 구조의 파일 시스템을 갖는다.
UNIX 시스템의 구성
- 커널(Kernel) : 하드웨어를 보호하고, 프로그램과 하드웨어 간 인터페이스 역할을 담당하고 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스 간 통신 등 여러 기능을 수행
- 쉘(Shell) : 명령어 해석기, 시스템과 사용자 간 인터페이스를 담당
LINUX
- 리누스 토발즈가 UNIX 를 기반으로 개발한 운영체제
- 소스 코드가 무료로 공개되어 있어 프로그래머가 원하는 기능 추가 가능
Android
- 구글사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
- 모든 코드가 공개된 개방형 소프트웨어
- 자바와 코틀린으로 애플리케이션 작성
iOS
- 애플사에서 개발한 유닉스 기반의 모바일 운영체제
- 아이폰, 아이팟 터치, 아이패드 등에 내장된다
기억장치 관리 전략
- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
- 종류 : 반입(Fetch)전략, 배치(Placement)전략, 교체(Replacement)전략
기억장치 관리 - 반입 전략
- 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
- 요구반입(Demand Fetch) : 실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
- 예상반입(Anticipatory Fetch) : 실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법
기억장치 관리 - 배치전략
- 보조기억장치에 보관중인 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략
- 최초적합(First Fit) : 빈 영역 중 첫 번째 분할 영역에 배치
- 최적적합(Best Fit) : 빈 영역 중 단편화를 가장 작게 남기는 분할 영역에 배치
- 최악적합(Worst Fit) : 빈 영역 중 단현화를 가장 많이 남기는 분할 영역에 배치시키는 방법
기억 장치 관리 -교체전략
- 이미사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
- 종류 : FIFO, OPT, LRU, LFU, NUR, SCR 등
주기억장치 할당 기법
- 프로그램이나 데이터를 실행 시키기 위해 주기억장치에 어떻게 할당할 것인지를 결정하는 기법
- 연속 할당 기법 : 주기억장치에 연속으로 할당(EX. 단일 분할 할당 기법, 다중 분할 할당 기법)
- 분산 할당 기법 : 특정 단위 조각으로 나누어 주기억장치 내에 분산하여 할당하는 방법(EX. 페이징 기법, 세그멘테이션 기법)
단일 분할 할당 기법
- 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 오버레이(Overlay)기법 : 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 스와핑(Swapping)기법 : 하나의 프로그램 전체를 주기억장치에 할당하고 필요에 따라 교체하는 기법
다중 분할 할당 기법
- 고정 분할 할당 기법 = 정적 할당 기법
- 주기억장치의 영역을 여러개의 고정된 크기로 분할하고 프로그램을 각 영역에 할당하여 수행하는 기법
- 가변 분할 할당 기법 = 동적 할당 기법
- 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법
가상기억장치
- 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로 용량이 적은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
- 프로그램을 여러개의 작은 블록단위로 나누어서 가상 기억장치에 보관 해놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리
- 가상기억장치의 구현 방법 : 페이징 기법, 세그멘테이션 기법
가상기억장치 구현 방법
- 페이징 기법 : 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 주기억장치의 영역에 적재시켜 실행하는 기법
- 프로그램을 일정 크기로 나눈 단위 : 페이지(Page)
- 페이지 크기로 일정하게 나누어진 주기억장치의 단위 : 페이지 프레임(Page Frame)
- 내부 단편화 발생가능, 외부 단편화 발생 X
- 페이지 맵 테이블(Page Map Table)
- 세그멘테이션 기법 : 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행하는 기법
- 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위 : 세그먼트(Segment)
- 각 세그먼트는 고유한 이름과 크기를 갖는다.
- 내부 단편화 발생 X, 외부 단편화 발생가능
- 세그먼트 맵 테이블
페이지 교체 알고리즘
- 페이지 부재(Page Fault)가 발생하면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법
- 종류 : OPT, FIFO, LRU, LFU, NUR, SCR 등
OPT(Optimal replacement, 최적교체)
- 앞으로 가장 오래동안 사용하지 않을 페이지를 교체하는 기법
- 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
FIFO(First In Frist Out)
- 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
LRU(Least Recentyl Used)
- 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
LFU(Least Frequently Used)
- 사용 빈도가 가장 적은 페이지를 교체하는 기법
NUR(Not Used Recently)
- 최근에 사용하지 않은 페이지를 교체하는 기법
- 최근 사용 여부 확인을 위해 참조비트와 변형 비트가 사용된다.
SCR(Second Chance Replacement, 2차 기회 교체)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법
- FIFO 의 단점을 보완하는데 사용
Locality
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
- 스래싱 방지를 위한 워킹 셋 이론의 기반이 됨
- 시간 구역성(Temporal Locality) : 일정 시간 동안 집중적으로 하나의 페이지를 액세스 하는 현상
- 공간 구역성(Spatial Locality) : 일정 위치의 페이지를 집중적으로 액세스 하는 현상
워킹셋
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- 자주 참조되는 워킹셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체현상이 줄어들어 프로세스의 기억장치 사용이 안정된다.
스래싱
- 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상(페이지 처리시간 < 페이지 교체시간)
- 자주 페이지 부재가 발생하여 전체 시스템의 성능이 저하된다.
프로세스
- 실행중인 프로그램을 의미
- 프로세스의 정의
- pcb를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체, 디스패치가 가능한 단위
- 프로시저가 활동중인 것
- 비동기적 행위를 일으키는 주체
- 운영체제가 관리하는 실행 단위
- 프로시저 : 한 프로그램은 여러개의작은 프로그램으로 분할될 수 있는데, 이때 분할된 작은 프로그램
PCB(Process Control Block, 프로세스 제어 블록)
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
- PCB에 저장되어 있는정보
- 프로세스의 현재 상태
- 포인터
- 프로세스 고유 식별자
- CPU레지스터 정보
- 주기억장치 관리 정보
- 입출력 상태 정보
- 계정 정보
프로세스 상태 전이
- 프로세스 상태전이는 프로세스가 시스탬 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미
- 프로세스의 상태는 다음과 같이 상태 전이도로 표시 할 수 있다
- 제출 : 사용자가 작업을 시스템에 제출한 상태
- 접수 : 작업이 디스크의 할당위치에 저장된 형태
- 준비 : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 실행 : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
- 대기,블록 : 프로세스에 입출력 처리가 필요하면 현재 실행 프로세스 중단되고, 입출력 처리가 완료 될때까지 대기하고 있는 상태
- 종료 : 프로세스의 실행이 끝나고 할당해제된 상태
프로세스 상태 전이 관련 용어
- Dispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
- Wake Up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태도 전이되는 과정
- Spooling : 입출력할 데이터를 직접 입출력 장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
스레드
- 시스템의 여러자원을 할당받아 실행하는 프로그램의 단위 또는 프로세스 내에서의 작업 단위
- 프로세스의 일부 특성을 가지고 있기 때문에 경량(Light Weight)프로세스라고도 한다.
스케줄링
- 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미
비선점 스케줄링(Non-Preemptive)
- 이미 할당된 cpu를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 일괄 처리 방식에 적합
- 종류 : FCFS, SJF, 우선순위, HRN, 기한부 등
선점 스케쥴링(Preemptive)
- 우선순위가 높은 다른 프로세스가 cpu를 강제로 빼앗아 사용할 수 있는 스케쥴링 기법
- 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 주로 사용
- 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피듭개
FCFS(First Come First Service, 선입 선출)
- 준비상태 큐에 도착한 순서에 따라 차례로 cpu를 할당하는 기법
프로세스번호 | P1 | P2 | P3 |
실행시간 | 20 | 4 | 6 |
- 평균 실행 시간 : (20+4+6)/3 = 10
- 평균 대기 시간 : (0+20+24)/3 = 14.6
- 평균 반환 시간 : (20+24+30)/3 = 24.6
SJF(Shortest Job First, 단기 작업 우선)
- 준비상태 큐에서 실행시간이 가장짧은 프로세스에게 먼저 cpu를 할당하는 기법
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
프로세스번호 | P1 | P2 | P3 |
실행시간 | 20 | 4 | 6 |
- 평균 실행 시간 : (20+4+6)/3 = 10
- 평균 대기 시간 : (0+4+10)/3 = 4.6
- 평균 반환 시간 : (4+10+30)/3=14.6
HRN(Highest Response-ratio Next)
- 대기시간과 서비스(실행)시간을 이용하는 기법
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여
- 우선순위 계산식 = (대기시간+서비스시간)/서비스시간
프로세스번호 | P1 | P2 | P3 |
실행시간 | 20 | 4 | 6 |
대기시간 | 10 | 20 | 10 |
우선순위 계산 | (20+10)/20=1.5 | (4+20)/4=6 | (6+10)/6=2.6 |
우선순위 | P2 -> P3 -> P1 |
환경변수
- 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
- 변수명과 값으로 구성
- Windows에서 set을 입력하면 모든 환경변수의 값을 출력
- UNIX나 LINUX에서는 set, env, printenv, setenv 중 하나를 입력하면 모든 환경 변수값을 출력
Windows 기본 명령어
- dir : 현재 디렉터리 파일 목록 표시
- copy : 파일 복사
- del : 파일 삭제
- type : 파일의 내용 표시
- ren : 파일의 이름을 변경
- md : 디렉터리 생성
- cd : 동일한 드라이브에서 디렉터리 위치 변경
- cls : 화면 내용 지움
- attrib : 파일의 속성 변경
- find : 파일에서 문자열을 찾음
- chkdsk : 디스크 상태 점검
- format : 디스크 표면을 트랙과 섹터로 나누어 초기화
- move : 파일을 이동
UNIX/LINUX 기본 명령어
- cat : 파일 내용을 화면에 표시
- cd : 디렉터리의 위치를 변경
- chown : 파일 소유자와 그룹을 변경함
- cp : 파일을 복사함
- rm : 파일을 삭제함
- find : 파일을 찾음
- kill : PID(프로세스 고유 번호)를 이용해 프로세스 종료
- fork : 새로운 프로세스를 생성
- ls : 현재 디렉터리의 파일 목록 표시
- mkdir : 디렉터리 생성
- rmdir : 디렉터리 삭제
- mv : 파일이동
- ps : 현재 실행중인 프로세스 표시
- pwd : 현재 작업중인 디렉터리 경로를 화면에 표시
- who : 현재 시스템에 접속해 있는 사용자를 표시
Chmod
- 파일의 보호모드를 설정하여 파일의 사용 허가를 지정하는 UNIX 명령어
- 8진법 숫자를 이용한 방법으로 파일의 보호모드를 설정
- 문자열 모드
- 사용자
- u : user(소유자)
- g : group(그룹)
- o : other(다른 사용자)
- a : all(모두)
- 설정 기호
- + : 권한 추가
- - : 권한 삭제
- = : 권한 부여
- 권한
- r:read(읽기)
- w:write(쓰기)
- x:excute(실행)
- 사용자
ex) "bash.sh"파일에 대해 소유자와 그룹에게는 전체 권한을 주고, 기타 사용자에게는 읽기와 실행 권한만 부여하는 명령문을 8진법 숫자를 이용하여 작성해라
- rwx rwx r-x
- 111 111 101
- 7 7 5
- 답 : chmod 775 batch.sh
IP 주소
- 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유 주소
- IPv4 : 8비트씩 4부분, 총 32비트로 구성(A~E클래스 5단계로 구성)
- IPv6 : 16비트씩 8부분, 총 128비트로 구성(16진수로 표현하고, 콜론(:)으로 구분, 보안 문제 해결
IPv6의 주소 체계
- 유니캐스트(Unicast) : 단일 송신자와 단일 수신자 간의 통신(1:1)통신
- 멀티캐스트(Multicase) : 단일 송신자와 다중 수신자 간 통신(1:다 )통신
- 애니캐스트(Anycaset) : 단일 송신자와 가장 가까이 있는 단일 수신자 간 통신(1:1)통신
서브네팅
- 할당된 네트워크 주소를 다시 여러개의 작은 네트워크로 나누어 사용하는 것
- IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크라고함
도메인 네임(Domain Name)
- 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현하는 것
- 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP주소로 변환하는 역할을 하는 시스템을 DNS(Domain Name System)라고함
OSI 참조 모델
- ISO(국제표준화기구)에서 제안한 통신 규약(protocol)
- OSI 7계층은 1~3 계층을 하위계층, 4~7계층을 상위계층이라고 한다.
- 하위 계층 : 물리 계층 -> 데이터 링크 계층 -> 네트워크 계층
- 상위 계층 : 전송 계층 -> 표현 계층 -> 응용 계층
- 물리 계층(Physical Layer) : 두 장치 간 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
- 데이터 링크 계층(Data Link Layer) : 시스템 간 연결 설정과 유지 및 종료를 담당
- 네트워크 계층(Network Layer) : 시스템들 간 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능
- 전송 계층(Transport Layer) : 논리적 안정과 균일한 데이터 전송 서비스를 제공하여 종단 시스템 간 투명한 데이터 전송을 가능하게 함
- 세션 계층(Session Layer) : 송수신측 간의 관련성을 유지하고 대화 제어를 담당
- 표현 계층(Presentation Layer) : 응용 계층으로 부터 받은 데이터를 세션계층에 보내기 전 통신에 적당한 형태로 변환하고, 세션계층에서 받은 데이터는 응용계층에 맞게 변환하는 기능 (코드변환)
- 응용 계층(Application Layer) : 사용자(응용프로그램)가 osi 환경에 접근할 수 있도록 서비스를 제공
네트워크 관련 장비
- 라우터(Router)
- 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송 최적 경로를 선택하는 기능이 추가된 장치
- 서로 다른 LAN 또는 LAN과 WAN을 연결하는 기능도 한다
- 리피터(Repeater)
- 거리 증가로 인해 감소된 디지털 신호를 위해 수신 신호를 재생시키거나 출력전압을 높여 전송하는 장치(증폭기)
- 허브(Hub)
- 가까운 거리의 컴퓨터들을 연결하는 장치로, 각각의 회선을 통합하여 관리
- 신호 증폭 기능을 하는 리피터의 역할을 포함
- 브리지(Bridge)
- LAN과 LAN을 연결하거나 LAN안에서 컴퓨터 그룹을 연결하는 장치
- 브리지를 이용한 서브넷 구성 시 전송 가능한 회선수는 브리지가 N개일때 N(N-1)/2개 이다.
- 게이트웨이(Gateway)
- OSI 전 계층의 프로토콜 구조가 다른 네트워크를 연결하는 장치
- LAN에서 다른 네트워크에 데이터 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할
프로토콜
- 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 규약
- 톰 마릴이 정의하였고, 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 프로토콜로 정의
프로토콜의 기본 요소
- 구문(Syntax) : 전송하고자 하는 데이터의 형식, 부호화, 신호레벨 등을 규정
- 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 오류 제어 정보를 규정
- 시간(Timing) : 두 기기간의 통신 속도, 메시지의 순서 제어 등을 규정
패킷 교환 방식
- 메시지를 일정한 길이의 패킷으로 잘라서 전송하는 방식
- 가상 회선 방식
- 가상 통신 회선을 미리 설정하여 연결을 확립해놓고 설정된 경로를 따라 패킷들을 순차적으로 운반하는 방식
- 정보 전송전에 제어 패킷에 의해 경로가 설정된다.
- 패킷의 송수신 순서가 같다.
- 데이터그램방식
- 연결 경로 설정하지 않고 인접한 노드들의 트래픽을 감안하여 패킷을 순서에 상관없이 독립적으로 운반하는 방식
- 패킷마다 전송 경로가 다르기 때문에, 패킷의 목적지의 완전한 주소를 가져야 한다.
- 순서 상관없이 여러 경로를 통해 도착한 패킷들은 수신 측에서 순서를 재정리
TCP/IP
- 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
- TCP
- OSI 7계층의 전송 계층에 해당함
- 신뢰성 있는 연결형 서비스를 제공
- 양방향 연결형 서비스를 제공
- 패킷의 다중화, 순서제어, 오류제어, 흐름제어기능을 제공
- IP
- OSI 7계층의 네트워크 계층
- 데이터그램 방식을 기반으로 비연결형 서비스
- 패킷의 분해/조립, 주소지정, 경로선택기능을 제공
연결형 통신
- 송수신 측 간을 논리적으로 연결한 후 데이터를 전송하는 방식
- 가상 회선이 대표적
비연결형 통신
- 송수신 측 간에 논리적 연결 없이 독립적으로 데이터를 전송하는 방식
- 데이터그램 방식이 대표적
TCP/ IP 구조
OSI | TCP/IP | 기능 |
응용계층 표현 계층 세션 계층 |
응용계층 | -응용 프로그램 간의 데이터 송수신 제공 -TELNET, FTP, SMTP, SNMP, DNS, HTTP 등 |
전송 계층 | 전송계층 | -호스트들 간의 신뢰성 있는 통신 제공 -TCP, UDP, RTCP |
네트워크 계층 | 인터넷 계층 | -데이터 전송을 위한 주소지정, 경로설정을 제공 -IP, ICMP, IGMP, ARP, RARP |
데이터링크 계층 물리계층 |
네트워크 액세스 계층 | -실제 데이터(프레임)을 송수신하는 역할 -Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ 등 |
UDP
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공하는 프로토콜
- TCP에 비해 오버헤드가 적고, 전송 속도가 빠름
- 실시간 전송에 유리, 신뢰성 보다는 속도가 중요
RTCP
- RTP 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
- 세션에 참여한 각 참여자들에게 주기적으로 제어정보를 전송
- 하위 프로토콜은 데이터 패킷과 제어 패킷의 다중화(Multiplexing)을 제공
ICMP
- IP와 조합하여 통신중에 발생하는 제어 메시지를 관리하는 역할
- 헤더는 8Byte로 구성
ARP/RARP
- ARP(Address Resolutin Protocol, 주소 분석 프로토콜)
- 호스트의 ip주소를 연결된 네트워크 접속 장치의 물리적(mac)주소로 변환하는 기능을 수행
- RARP(Reverse Address Resolution Protocol)
- 반대로 물리적(mac)주소를, ip주소로 변환하는 기능을 수행하는 프로토콜(=역순 주소 프로토콜)
네트워크 관련 신기술
- 메시 네트워크(Mesh Network)
- 차세데 이동통신 , 홈네트워킹, 공공 안전 등 특수목적을 위한 새로운 방식의 네트워크 기술
- 대규모 디바이스의 네트워크 생성에 최적화
- 피코넷(PICONET)
- 통신장치가 블루투스 기술이나 UWB 통신기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
- 애드 혹 네트워크(AD-hoc Network)
- 모바일 호스트만을 이용하여 구성한 네트워크
- 단기간 사용되는 경우나, 유선망을 구성하기 어려운 경우에 적합
- 파장 분할 다중화(WDM; Wavelength Division Multiplexing)
- 광섬유를 이용한 통신기술의 하나로 여러 대의 단말기가 동시에 통신 회선을 사용할 수 있도록 하는 기술
- IOT(Internet Of Things, 사물 인터넷)
- 실세계와 가상세계의 다양한 사물들을 인터넷으로 연결하여 진보된 서비스를 제공하기 위한 기술
- 클라우드 컴퓨팅(Cloud Computing)
- 중앙 컴퓨터에 컴퓨팅 자원을 두고 인터넷 기능을 갖는 단말기로 언제 어디서나 인터넷을 통해 컴퓨터 작업을 수행 할 수 있는 가상화된 환경을 의미
- USN(Ubiquitous Senor Network)
- 각종 센서로 수집한 정보를 무선으로 수집 할 수 있도록 구성한 네트워크
- RFID 태그를 부착하고 이를 통해 주변을 탐지해 네트워크에 연결하여 정보를 관리
네트워크 구축
- 두 대 이상의 컴퓨터를 연결하여 자원을 공유하는 것
- 성형(Star, 중앙 집중형) : 중앙에 중앙 컴퓨터가 있고 이를 중심으로 연결되는 중앙 집중식의 네트워크 구성 형태
- 링형(Ring, 루프형) : 컴퓨터, 단말장치를 서로 이웃하는 것끼리 연결시킨 포인트 투 포인트 방식의 구성 형태
- 버스형(Bus) : 한 개 통신 회선에 여러대의 단말장치가 연결되어 있는 형태
- 계층형(Tree, 분산형) : 중앙 컴퓨터와 일정 지역 단말장치까지는 하나의 통신 회선으로 연결하고 이웃하는 단말장치는 일정 지역에 설치된 중간 단말장치로부터 다시 연결시키는 형태
- 망형(Mash) : 모든 지점의 컴퓨터와 단말장치를 서로 연결한 형태로 노드의 연결성이 높다. 모든 노드를 망형으로 연결하려면 노드의 수가 n개일때, n(n-1)/2개의 회선이 필요하고 노드당 n-1개의 포트가 필요
네트워크의 분류
- 근거리 통신망(LAN)
- 가까운 거리의 자원을 연결하여 구성
- 전송 속도가 빠르고 에러 발생율이 낮다
- 주로 버스형, 링형 구조를 사용
- 광대역 통신망(WAN)
- 멀리 떨어진 사이트들을 연결하여 구성
- 통신 속도가 느리고, 에러 발생율이 높다
IEEE 802의 표준 규격
- 802.1 : 전체 구성 , OSI 참조모델과의 관계, 통신망 관리등에 관한 규약
- 802.2 : 논리링크제어(LLC)계층에 관한 규약
- 802.3 : CSMA/CD 방식의 매체 접근 제어 계층에 관한 규약
- 802.4 : 토큰 버스 방식의 매체 접근 제어 계층에 관한 규약
- 802.5 : 토큰 링 방식의 매체 접근 제어 계층에 관햔 규약
- 802.6 : 도시형 통신망(MAN)에 관한 규약
- 802.9 : 종합 음성/데이터 네트워크에 관한 규약
- 802.11 : 무선 LAN에 관한 규약
IEEE 802.11의 버전
- 802.11 : 2.4Ghz 대역 전파, 2mbps 전송 속도 지원
- 802.11a : 5Ghz 대역 전파, 54mbps 전송 속도 지원
- 802.11b : 802.11의 초기 개선안으로 11Mbps로 5배 이상 빠르게 개선
- 802.11e : Qos 기능이 지원되도록 매체 접근 제어(MAC)계층에 해당하는 부분을 수정
- 802.11g : 2.4GHZ 대역 전파, 54Mbps 전송 속도 지원
- 802.11n : 2.4GHz 대역과 5GHz 대역, 최고 600Mbps 전송 속도 지원
NAT(Network Address Translation, 네트워크 주소 변환)
- 한 개의 정식 IP 주소에 대량의 가상 사설 IP 주소를 할당 및 연결하는 기능
- 한 개의 IP 주소를 사용하여 제한의 문제가 있지만 IP 마스커레이드를 이용해 해결할 수 있다.
스위치
- 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
스위치 | 기능 |
L2스위치 | -일반적으로 부르는 스위치 -MAC주소를 기반으로 프레임 전송 -OSI 2계층 |
L3스위치 | -L2스위치에 라우터 기능이 추가된 것, IP 주소 기반으로 패킷을 전송 -OSI 3계층 |
L4스위치 | -로드밸런서가 달린 L3스위치, IP주소 및 TCP/UDP 기반 사용자들의 요구를 서버의 부하가 적은 곳에 배분하는 로드밸런싱 기능을 제공 -OSI4계층 |
L7스위치 | -IP 주소, TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드밸런싱 -OSI7계층에 속하는 장비 |
경로제어(Routing)
- 전송 경로 중에서 최적 패킷 경로를 결정하는 기능
- 경로 제어표(Routing Table)을 이용하여 경로제어가 이루어짐
- 대표적인 경로 제어 프로토콜 : IGP(RIP, OSFP), EGP, BGP
IGP
- 하나의 자율 시스템(AS)내의 라우팅에 사용되는 프로토콜
- RIP : 거리 벡터 라우팅 프로토콜, 최단 경로 검색에 벨만 포드 알고리즘 사용
- OSFP : 대규모 네트워크 사용, 최단 경로 검색에 다익스트라알고리즘 사용
EGP/BGP
- EGP(Exterior Gateway/Protocol) : 자율 시스템(AS)간 라우팅, 즉 게이트웨이 간의 라우팅에 사용
- BGP(Border Gateway Protocol)
- EGP의 단점을 보완하기 위해 만들어진 프로토콜
- 초기 BGP 라우터들이 연결될 때에는 전체 경로 제어표(라우팅 테이블)을 교환하고, 이후에는 변화된 정보만 교환
흐름제어(Flow Control)
- 송수신 측 사이에 전송되는 패킷의 양이나 속도를 규제하는 기능
- 정지-대기(Stop-and-Wait)
- 수신 측의 확인 신호(ACK)를 받은 후 다음 패킷을 전송한는 방식
- 한 번에 하나의 패킷만 전송 가능
- 슬라이딩 윈도우(Sliding Window)
- 확인 신호, 즉 수신 통지를 이용해 송신 데이터의 양을 조절하는 방식
- 수신 측의 확인 신호를 받지 않더라도 미리 정해진 패킷 수만큼 연속으로 전송하는 방식으로 한번에 패킷전송이 가능하여 효율이 좋다.
- 확인 신호 없이도 보낼 수 있는 패킷의 최대치를 미리 약속받는데, 이 패킷의 최대치가 윈도우 크기를 의미한다.
SW관련 신기술
- 블록체인(Blockchain)
- P2P 네트워크를 이용해 온라인 금융 거래 정보를 온라인 네트워크 참여자의 디지털 장비에 분산 저장하는 기술
- 매시업(Mashup)
- 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술로 다수 콘텐츠를 종합하여 하나의 서비스로 제공하는 웹 사이트 또는 애플리케이션을 말함
- 서비스 지향 아키텍처(SOA; Service Oriented Architecture)
- 기업 정보 시스템을 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처
- SOA 기반 애플리케이션 구성 계층 : 표현, 업무 프로세스, 서비스 중간, 애플리케이션, 데이터 저장 계층
- 디지털 트윈(Digital Twin)
- 현실속의 사물을 소프트웨어로 가상화한 모델
- 실제 물리적 자산을 소프트웨어로 가상화
- 그레이웨어(Grayware)
- 소프트웨어 제공 입장에서는 악의적이지 않은 유용한 소프트웨어라 주장할 수 있지만, 사용자 입장에서는 유용할 수 있고 악의적일 수도 있는 애드웨어, 트랜웨어, 기타 악성 코드나 악성 공유웨어를 말함
- 양자 암호키 분배(QKD; Quantum Key Distribution)
- 양자 통신을 위해 비밀키를 분배하여 관리하는 기술
- 두 시스템이 비밀키를 안전하게 공유하기 위해 양자 암호키 분배 시스템을 설치하여 운용하는 방식으로 활용
- 서비스형 소프트웨어(SaaS; Software as a Service)
- 소프트웨어 여러 기능 중 사용자가 필요로 하는 서비스만 이용할 수 있도록 한 소프트웨어
- 시맨틱 웹(Semantic Web)
- 컴퓨터가 사람 대신 정보 읽고 가공하여 새로운 정보 만드는 차세대 지능형 웹
- 리치 인터넷 애플리케이션(RIA; Rich Internet Application)
- 플래시 애니매이션 기술과 웹 서버 애플리케이션 기술을 통합하여 기존 html보다 역동적이고 인터랙티브한 웹페이지를 제공하는 신개념 플래시 웹 페이지 제작 기술
HW 관련 신기술
- 앤 스크린(N-Screen) : N개 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 이용할 수 있는 서비스
- 신 클라이언트 pc (Thin Client PC)
- 하드 디스크나 주변장치 없이 기본 메모리 만으로 서버와 네트워크로 운용되는 개인용 컴퓨터
- 서버기반컴퓨팅과 관계가 깊음
- 엠디스크(M-DISC, Millennial DISC)
- 한번의 기록만으로 자료를 영구 보관할 수 있는 광 저장장치
- 디스크 표면의 무기물층에 레이저를 이용해 자료를 조각해서 기록
- 멤스(MEMS; Micro-Electro Mechanical Systems)
- 센서,액추에이터 등 미세 가공하여 전기기계적 동작을 할 수 있도록 한 초미세 장치
- 멤리스터(Memristor)
- 메모리와 레지스터의 합성어로, 전류의 방향과 양 등 기존의 경험을 모두 기억하는 특별한 소작
- 트러스트존 기술(TrustZone Technology)
- 프로세스 내에 일반 구역과 보안 구역으로 분할하여 관리하는 하드웨어 기반의 보안 기술
RAID
- 2개이상의 하디드스크로 디스크 배열을 구성하고, 파일을 구성하는 데이터 블록들을 서로 다른디스크에 분산 저장하거나 다중화하는 저장 기술로, 구현된 기술에 따라 레벨로 구분
레벨 | 내용 |
RAID0 | -스트라이핑 이라고 불림 -디스크를 병렬로 연결하여 디스크 개수만큼 용량과 속도가 배로증가 -하나의 디스크만 손상되어도 전체 데이터가 파손 |
RAID1 | -미러링이라고 불림 -같은 데이터를 다른 디스크에 동일하게 복사하는 방식 |
RAID 2 | -ECC를 기록하는 디스크 이용 |
RAID 3 | -바이트 단위로 쪼개져서 세트 구성 |
RAID 4 | 블록단위로 쪼개져서 세트 구성 |
RAID 5 | 모든 디스크에 저장, 패리티도 모든디스크저장 |
RAID 6 | 최소 4개의 디스크가 필요 |
- RAID0 단계 : 영국이랑 중국전쟁(아편전쟁), raid0(0)국 중(중국)복없는 스트라이핑 세트
- RAID1 단계 : 일본이랑 미국전쟁(진주만), raid1(1)본은 미(미국)미러링된 세트로 구성
- RAID2 단계: ECC생각, raid2(2=e)는 ecc를 기록하는 디스크 이용
- RAID3 단계 : 삼바생각, raid3(삼)은 바이트(바) 단위로 쪼개져서 세트 구성
- RAID4 단계 : 불사조, raid(4)는 블록(불)단위로 쪼개져서(조) 세트 구성
- RAID5 단계 : 오모, raid5(오)는 모(모)든 디스크에 저장, 패리티도 (모)든 디스크 저장
- RAID6 단계 : 육사, raid6(육)은 모든 raid 단계 중 유일하게 최소 4개(사)이상의 디스크가 필요
Secure OS
- 보안 기능을 갖춘 커널을 이식하여 외부 침입으로부터 시스템 자원을 보호하는 운영체제
- 보안 커널은 TCB기반으로 참조 모니터의 개념을 구현하고 집행
- Secure Os의 기능 : 식별 및 인증, 임의적/강제적 접근통제, 객체 제사용 보호, 완전한 조정, 신뢰 경로 감사 및 감사기록 축소 등
DB관련 신기술
- 하둡(Hadoop)
- 오픈 소스 기반 분산 컴퓨팅 플렛폼
- 구글의 맵 리듀스 엔진을 사용
- 가상화된 대형 스토리지를 형성하고, 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 플레임워크
- 맵리듀스(MapReduce)
- 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델
- 흩어져 있는 데이터를 묶는 Map 작업을 수행한 후 중복 데이터를 제거하고 원하는 데이터를 추출하는 Reduce작업을 수행
- 데이터 마이닝(Data Mining)
- 대량의 데이터를 분석하여 데이터에 내재된 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법
- 타조(Tajo)
- 아파치 하둡 기반의 분산 데이터 웨어하우스 프로젝트
- OLAP(Online Analytical Processing)
- 다차원 데이터의 통계적인 요약 정보를 분석해 의사결정에 활용하는 방식
- OLAP 연산 : Roll-up, Drill-down, Drill-through, Drillacross, Pivoting, Slicing, Dicing
- 브로드 데이터(Broad Data)
- 다양한 채널에서 생성된 것으로 기업 마케팅에 있어 효율적이고 다양한 데이터
회복
- 데이터베이스가 손상되었을 대 손상되기 이전의 정상 상태로 복구하는 작업
- 종류 : 연기갱신기법, 즉각갱신기법, 그림자 페이지 대체기법, 검사점 기법
REDO/UNDO
- REDO : 데이터베이스가 비정상 종료되었을 때 디스크에 저장된 로그를 분석해 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉 로그를 이용해 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산(가장최근의 정상적인 데이터베이스로 회복시킨후 트랜잭션을 재실행시키는것)
- UNDO : 데이터베이스가 비정상 종료되었을 때 디스크에 저장된 로그를 분석해 트랜잭션의 시작에 대한 기록은 있지만 완료에 대한 기록은 없는 트랜잭션들이 작업한 변경 내용들을 모두 취소한다. 즉 로그를 이용해 해당 데이터 항목에 대해 이후 값을 이전값으로 변경하는 연산
연기 갱신 기법
- 트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법
- REDO(재시도)작업만 가능
즉각 갱신 기법
- 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법
- Redo(재시도)와 Undo(취소)모두 사용 가능하다
병행제어
- 동시에 실행되는 트랜잭션 간의 상호작용을 제어하는 것
- 병헹제어 기법의 종류 : 로킹(Locking), 타임 스태프 순서, 최적 병행수행, 다중 버전 기법
로킹
- 액세스 하기 전 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법
- 주요 데이터의 액세스를 상호 배타적으로 한다
타임 스태프 순서
- 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
로킹 단위
- 한꺼번에 로킹할 수 있는 객체의 크기를 의미
- 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있다
- 로킹 단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아진다.
- 로킹 단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드가 증가하지만 병행성 수준이 높아진다
교착상태
- 서로 다른 프로세스가 점유하고 있는 자원을 요구하여 무한정 기다리는 현상
- 교착상태 발생의 필요 충분조건
조건 | 내용 |
상호배제(Mutual Exclusion) | 한번에 한개의 프로세스만이 공유 자원을 사용할 수 있어야 함 |
점유와 대기(Hold and Wait) | 최소 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 |
비선점(Non-Preemption) | 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함 |
환형 대기(Circular Wait) | 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함 |
교착상태의 해결 방법
기법 | 내용 |
예방기법(Preventaion) | -교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법 -교착상태 발생의 4가지 조건 중 어느 하나를 제거함으로써 수행됨 |
회피기법(Avoidance) | -교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법 -주로 은행원 알고리즘이 적용됨 |
발견기법(Detection) | - 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것 |
회복기법(Recovery) | -교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것 |
출처 : https://starrykss.tistory.com/1640
https://zero-zae.tistory.com/91
'정보처리기사 > 실기' 카테고리의 다른 글
정보처리기사 - 통합구현 (0) | 2023.04.19 |
---|---|
정보처리기사 정리본(7,9,11) (0) | 2023.04.19 |
정보처리기사 - 10.프로그래밍 언어 활용 (0) | 2023.04.18 |
정보처리기사 - 9. 소프트웨어 보안 구축 (0) | 2023.04.18 |
정보처리기사 - 8. SQL응용 (1) | 2023.04.18 |