[클라우드컴퓨팅/CloudComputing] 3. Processes

SooYeon Yeon·2022년 5월 26일
0

Single Thread & Multi Thread

  1. 단일 스레드는 block system call을 할 때마다 프로세스 전체가 차단됨
  2. 멀티 스레드는 병렬성 제공

large applications의 context

  • IPC : 커널의 개입 필요, 한 컴퓨터 내에 여러 프로세스들이 영역 침범하지 않도록 커널이 제어
  • thread간 같은 영역 공유 시 공유 메모리 통한 통신 가능, 프로세스들과의 통신과 달리 전적으로 유저 스페이스에서 스위칭 됨

스레드 라이브러리가 전체가 user mode에서 실행될 때 특징 (스레드 본연의 장점)

  1. 스레드를 만들고 파괴하는데 값이 저렴하다
  2. 몇가지 적은 명령어로 실행된 스레드 context 전환
  3. 차단 시스템 호출 시 전체 프로세스 차단 (단점)

light weight process

  1. 유저와 커널의 하이브리드
  2. 원래의 스레드와 다른 점은 스레드 operation하는 것은 유저모드(user-level)에서 되지만, 스레드 간의 커뮤니케이션이나 스케쥴링은 커널이 개입(kernel-level)
  3. 일반 사용자 thread보다 느리고 비쌈

client와 server관점에서의 Multithread

  1. client : 커뮤니케이션 지연시간을 숨기고, 복제 투명성
  2. server : dispatcher

서버를 construct하는 3가지 방법

  1. Threads : 병렬적, blocking system call 있음
  2. Single-Threaded process : 병렬적X, blocking system call 있음
  3. Finite-state machine(유한상태기계) : 병렬적, blocking system call X, 사전에 결정해 blocking예방

분산시스템에서 가상화

  • portability(이동성)과 flexbility(유연성) 높이기 위함이다.
  • 예를 들어 리눅스 기계에서 윈도우 OS를 흉내내는 인터페이스를 두는 것이 가상화 솔루션이라고 볼 수 있다.
  • 리소스 가상화 : 한정된 자원이지만 실질적으로 더 많이 있는 것처럼 보이게 함

클라이언트 측면에서 분배 투명성

  • stub가 복제 서버에 개별적으로 나누어 줘서 여러번 주는 것을 몰라도 되게 하는 것

서버에서 서비스 포트를 이용하는 두가지 방법

    1. 서비스 포트 번호를 데몬에게 물어보고, 클라이언트가 end point를 알아내 보내는 방식은 클라이언트에게 부담을 준다
    1. 슈퍼서버에 리퀘스트를 보내면 맞는 actual server에게 보내주어 클라이언트의 부담이 적다.

서버의 stateless vs stateful

  1. stateless란 클라이언트 상태 정보를 저장하지 않는 것으로, 일반적인 webserver가 이런 방식
  2. stateful이란 클라이언트에 대한 지속적 정보를 저장해 서버 부담이 간다. 서버 충돌 시 항목 테이블을 복구해야한다.
  3. soft state는 서버가 클라이언트 조금만 저장하는 걸 말함

0개의 댓글