Cohe

12장 네트워크와 분산 시스템 본문

운영체제

12장 네트워크와 분산 시스템

코헤0121 2023. 6. 7. 13:28
728x90

네트워크와 인터넷

통신과 네트워크

  • 통신 환경의 발전
    • 모스 부호(Morse code): 전기를 이용한 최초의 통신 수단, 미리 정해놓은 짧은 음과 긴 음을 조합하여 먼 곳에 있는 사람에게 실시간으로 문자 전송
    • 전화: 통신하려는 대상을 선으로 연결하여 부호가 아닌 사람의 음성 전달
    • 무전기: 최초의 무선통신 기기, 양쪽으로 통신할 수 있으나 특정 시점에는 한쪽으로만 통신 가능
  • 통신 방향
    • 단반향(simplex) 통신
      • 한쪽 방향으로만 통신이 이루어지는 방식. 예) 모스 부호, 라디오, TV 방송 등
    • 양방향(duplex) 통신
      • 양쪽 방향으로 동시에 통신이 이루어지는 방식. 예) 일반 전화기
    • 반양방향(half duplex) 통신
      • 단방향 통신과 양방향 통신의 중간 형태로, 양방향 통신이기는 하지만 어느 순간에는 한쪽 방향으로만 통신 가능. 예) 무전기
  • 프로토콜(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)
      • 시스템 내에 하나의 운영체제가 존재,단일 운영체제로 운영, 타이트하게 결합된 분산 시스템에서 동작하는 운영체제
      • 전체 시스템을 일관성 있게 설계할 수 있어서 네트워크의 이해, 유지, 수정이 용이
      • 비교)
        • 구현이 용이, 확장성, 목표: 클라이언트에게 서비스 제공
        • 높은 투명성, 목표: 사용자가 여러 하드웨어 리소스를 사용하는데 투명성 보장
  •  

클라이언트/서버 시스템

  • 클라이언트/서버 시스템의 구조
    • 클라이언트가 서비스를 요청(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:레지스터 이름
    0 MOV AX, X
    2 ADD AX, Y
    4 MOV SUM, AX
    6 X DW 4
    8 Y DW 5
    10 SUM DW ?
    기호표(symbol table)기호 값
  •  
  • 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

매크로의 정의 형식

매크로프로세서의 기능

  • 매크로 정의 인식
  • 매크로의 저장
  • 매크로의 호출 인식
  • 매크로 확장 및 인수 치환

'운영체제' 카테고리의 다른 글

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