Cohe
12장 네트워크와 분산 시스템 본문
728x90
반응형
네트워크와 인터넷
통신과 네트워크
- 통신 환경의 발전
- 모스 부호(Morse code): 전기를 이용한 최초의 통신 수단, 미리 정해놓은 짧은 음과 긴 음을 조합하여 먼 곳에 있는 사람에게 실시간으로 문자 전송
- 전화: 통신하려는 대상을 선으로 연결하여 부호가 아닌 사람의 음성 전달
- 무전기: 최초의 무선통신 기기, 양쪽으로 통신할 수 있으나 특정 시점에는 한쪽으로만 통신 가능
- 통신 방향
- 단반향(simplex) 통신
- 한쪽 방향으로만 통신이 이루어지는 방식. 예) 모스 부호, 라디오, TV 방송 등
- 양방향(duplex) 통신
- 양쪽 방향으로 동시에 통신이 이루어지는 방식. 예) 일반 전화기
- 반양방향(half duplex) 통신
- 단방향 통신과 양방향 통신의 중간 형태로, 양방향 통신이기는 하지만 어느 순간에는 한쪽 방향으로만 통신 가능. 예) 무전기
- 단반향(simplex) 통신
- 프로토콜(protocol)
- 다른 기기 간에 통신을 하기 위해 정한 약속, 통신 규약이라고 함
- TCP/IP
- LAN: 수 미터에서 약 1km 내에 연결되는 근거리 네트워크
- WAN(Wide Area Network): 국가 전체 또는 국가 간에 연결되는 네트워크
- IP(Internetworking Protocol): 서로 다른 종류의 LAN을 넘어 다니면서 목적지까지 데이터를 전송하는 프로토콜
- TCP(Transmission Control Protocol): LAN으로 보낸 데이터가 원래 상태로 도착하는지 감시하는 프로토콜, 전송 제어 프로토콜이라고 함. 데이터 전송에서 발생하는 에러를 바로잡고, 데이터가 최종 목적지 프로그램에 전달될 수 있도록 창구 역할 담당
유무선 통신
- 웹 시스템
- 웹 시스템은 문자 기반 사용자 인터페이스(Character User Interface, CUI)로 시작
- 마이크로소프트가 개발한 인터넷 익스플로러를 무료 배포하면서 웹 브라우저가 급속도로 보급
- 웹 브라우저를 이용한 서비스를 월드 와이드 웹(World Wide Web, WWW)
- 무선통신 시스템
분산 시스템
분산 시스템의 개요
- 분산 시스템(distributed system)
- 개인용 컴퓨터의 보급으로 값싸고 크기가 작은 컴퓨터를 네트워크로 묶어 대형 컴퓨터 같은 능력을 가진 시스템으로 만든 것
- 분산 시스템은 강결합 시스템과 약결합 시스템으로 나뉨
- 오늘날 네트워크는 약결합 방식을 사용
- 강결합 시스템(tightly coupled system)
- 네트워크로 연결된 모든 컴퓨터의 프로세서가 하나의 메모리를 공유하는 방식
- 장점: 약결합 시스템에 비해 속도가 빠름
- 약결합 시스템(loosely coupled system)
- 둘 이상의 독립된 시스템을 연결한 것, 오늘날 네트워크에서 사용하는 방식
- 시스템의 각 컴퓨터는 자신만의 운영체제, 메모리, 프로세서, 입출력장치를 가지고 독립 운영되다가 필요할 때 통신선을 이용해 메시지를 전달하여 통신
- 약결합 시스템(분산 시스템)의 장점
- 네트워크로 연결된 기기가 여러 자원을 공유
- 작업 분배(load balancing)를 통해 여러 기기가 작업을 나누어 처리
- 데이터나 처리를 분산해 연산 속도 향상
- 장애가 발생해도 시스템 복구 가능
- 분산 시스템에서 고려할 사항
- 각 기기의 독립성 보장
- 사용자가 시스템을 하나의 기기로 인식할 수 있어야 함
- 이를 위해
- 네트워크를 구성하는 각 기기의 자율성(autonomy) 보장
- 자원 분산 및 중복을 통해 가용성(availability) 높임
- 특정 자원에 대한 위치 투명성(transparency) 보장
- 분산 시스템에 사용되는 운영체제
- 네트워크 운영체제(NOS; Network Operating System)
- 각 컴퓨터가 독자적인 운영체제를 가진 채 사용자 프로그램으로 분산 시스템 구현, 낮은 수준의 분산 시스템 운영체제
- 실행이 간단하고 소프트웨어 재사용이 가능한 반면, 순수한 분산 시스템이라고 하기에는 기능 제약 많음
- 분산 운영체제(DOS; Distributed Operating System)
- 시스템 내에 하나의 운영체제가 존재,단일 운영체제로 운영, 타이트하게 결합된 분산 시스템에서 동작하는 운영체제
- 전체 시스템을 일관성 있게 설계할 수 있어서 네트워크의 이해, 유지, 수정이 용이
- 비교)
- 구현이 용이, 확장성, 목표: 클라이언트에게 서비스 제공
- 높은 투명성, 목표: 사용자가 여러 하드웨어 리소스를 사용하는데 투명성 보장
- 네트워크 운영체제(NOS; Network Operating System)
클라이언트/서버 시스템
- 클라이언트/서버 시스템의 구조
- 클라이언트가 서비스를 요청(request)하면, 서버가 응답(reply)하는 구조
- 완전한 분산 시스템처럼 모든 컴퓨터가 동일한 지위를 갖지 않고, 작업을 요청하는 클라이언트와 요청받은 작업을 처리하는 서버의 이중 구조로 구성
- 웹 브라우저
- 클라이언트 소프트웨어를 대표하는 용어로, 서버 컴퓨터에 접속해 웹 페이지를 요청. 이 때 사용하는 프로토콜이 HTTP(Hyper Text Transfer Protocol)
- 서버가 요청을 받으면 HTML(Hyper Text Markup Language)로 만들어진 웹 페이지를 클라이언트에 전송
- 데몬(daemon)
- 종료되지 않고 서비스를 계속 진행하는 프로그램
- 웹 시스템의 서버 쪽에 HTTP(웹 서비스)를 받아주기 위해 설치된 데몬이 웹 데몬(HTTPD; Hyper Text Transfer Protocol Daemon)
- CGI(Common Gateway Interface)
- 웹 데몬이 응용 프로그램에 한 질문의 결과를 HTML에 맞게 변형하는 프 로그램
- 웹 개발자들이 주변 응용 프로그램과 쉽게 연결할 수 있도록 CGI를 대신할 수 있는 강력한 스크립트 언어: ASP, PHP, JSP
- HTML5
- Active-X와 같은 비표준 기술을 사용하지 않고도 다양한 프로그램을 개발 할 수 있도록 만들어진 HTML 5번째 버전
- 주요 특징
- 멀티미디어 기능 제공
- 그래픽 지원
- 시맨틱 웹 구축을 위한 태그와 API 제공
- 다양한 장치에 접근 가능(모바일 기기 포함)
P2P 시스템
-
- 분산 시스템을 기본으로 하되 서버의 부하를 줄이고 몇 개의 컴퓨터가 고장나도 서비스를 지속할 수 있도록 설계한 시스템
- 서버가 있는 P2P 시스템: 메신저
- 서버가 없는 완전 P2P 시스템: 비트코인(bitcoin)의 블록체인(block chain), 토렌트(Torrent)
- 조각을 내서 준다.
클라우드 컴퓨팅
- 클라우드 컴퓨팅(cloud computing)
- 하드웨어와 소프트웨어를 클라우드라는 중앙 시스템에 숨기고 사용자가 필요한 서비스만 그때그때 이용하는 방식
- SaaS(Software as a Service): 소프트웨어를 서비스
- IaaS(Infrastructure as a Service): 서버, 저장공간 같은 컴퓨터 하부 구조를 서비스하는 가상화 구조
- PaaS(Platform as a Service): 개발 환경을 서비스
네트워크 저장장치와 고가용성
- 네트워크 저장장치: DAS(Direct Attached Storage)
- 서버와 같은 컴퓨터에 직접 연결된 저장장치로, HAS(Host Attached Storage) 라고도 부름. 대표적인 예는 윈도우의 파일 공유
- 여러 컴퓨터 중 하나를 파일 공유 서버로 지정, 나머지 컴퓨터에서 서버로 지정된 컴퓨터에 접근해 파일 이용하는 방식
- 네트워크 저장장치: NAS(Network Attached Storage)
- 기존 저장장치를 LAN이나 WAN에 붙여서 사용
- NAS 전용 운영체제 가진 독립 장치로 새로운 하드디스크를 추가/제거 가능
- 저장장치를 네트워크에 두고 여러 클라이언트가 네트워크를 통해 접근하므로 공유 데이터의 관리 및 데이터의 중복 회피 가능
- 네트워크 저장장치: SAN(Storage Area Network)
- 데이터 서버, 백업 서버, RAID 등의 장치를 네트워크로 묶고 데이터 접근을 위한 서버를 두는 형태로, 시스템이 제공하는 인터페이스로 데이터에 접근
- 데이터 서버나 백업 서버를 같이 구축하여 NAS보다 구축 비용이 많이 들어 큰 회사 시스템이나 대형 웹 시스템에 적합
- 광 채널(fiber channel)을 이용하는 FC-SAN, TCP/IP 프로토콜 이용하는 IP-SAN
- 고가용성(high availability)
- 업무 또는 서비스 중단을 최소화하기 위한 이중화 작업으로, 운영체제의 디스크 미러링부터 시스템 자체 이중화까지 포함하는 개념
- 두 대 이상의 시스템을 하나의 클러스터로 묶어, 시스템 장애 발생 시 클러스터 내의 다른 시스템으로 서비스를 이동할 수 있도록 해야 함
- 상시 대기(hot-standby)
- 가동 시스템과 백업 시스템으로 구성
- 평상시에 대기 상태(standby) 유지하다가 장애 발생하면 가동 시스템의 자원을 백업 시스템으로 이전하여 서비스가 중단되지 않게 함
- 외부 저장장치는 가동 시스템에서만 접근 가능, 장애가 발생하면 백업 시스템에서만 외부 저장장치에 접근 가능 -> 데이터의 일관성이 보장
- 상호 인계(mutual takeover)
- 2개 시스템이 각각의 고유 서비스를 수행하다가 한쪽 시스템에 장애가 발생하면 상대 시스템으로 작업을 이동해 동시에 2개 업무 수행
- 2개 업무를 동시에 서비스할 수 있는 시스템 용량을 갖추고 있음
- 외부 저장장치는 업무가 이루어지는 시스템에서만 접근할 수 있어 데이터 일관성도 보장
- 컨커런트 액세스(concurrent access)
- 여러 시스템이 동시에 업무를 나누어 병렬 처리
- 시스템 전체가 가동 상태로 업무를 수행하기 때문에 한 시스템에 장애가 발생해도 다른 시스템으로 작업을 이동하지 않고도 고가용성 보장
- 외부 저장장치는 전체 시스템에서 동시 접근 가능, 주로 데이터베이스와 쌍을 이루어 구성
어셈블러
- 어셈블리어: 기계어에 대응하는 기호를 사용하는 언어
- 연상기계어라고도 함
- 어셈블러
- 어셈블리어를 기계어로 번역
- 목적프로그램의 생성
Assembly Process
이중패스 어셈블러(2-pass assembler)
- 이중패스의 필요성
- 전향참조
- DW – word 선언, AX:레지스터 이름
2 ADD AX, Y 4 MOV SUM, AX 6 X DW 4 8 Y DW 5 10 SUM DW ? -
X 6 Y 8 SUM 10
이중패스 어셈블러의 기능
매크로의 개념
- 반복되는 명령들을 정의
- 매크로 호출에 의한 확장
- 확장은 매크로프로세서가 처리
- 대부분 어셈블리언어에서 사용
- 프로그램 작성의 용이성 제공
매크로 정의의 필요성
- 예제 프로그램
- ADD AX,
- DATA ADD BX,
- DATA ADD CX, DATA
- ...
- ADD AX,
- DATA ADD BX,
- DATA ADD CX,
- DATA
- ...
- DATA DW 5
매크로의 정의 형식
매크로프로세서의 기능
- 매크로 정의 인식
- 매크로의 저장
- 매크로의 호출 인식
- 매크로 확장 및 인수 치환
728x90
반응형
'운영체제' 카테고리의 다른 글
2장 컴퓨터의 구조와 성능 향상 (1) | 2024.01.10 |
---|---|
1장 운영체제의 개요 (1) | 2024.01.10 |
11장 파일 시스템 (0) | 2023.06.07 |
10장 입출력 시스템과 저장 장치 (1) | 2023.06.07 |
9장 가상 메모리 관리 (0) | 2023.06.07 |