[CS] CPU, GPU, 메모리, 다중 프로세스 아키텍처

Hyeonjun·2022년 9월 29일
0

CPU

중앙 처리장치

  • CPU는 컴퓨터의 두뇌라 할 수 있다.
  • 여러종류의 작업을 하나씩 순서대로 처리할 수 있다.

GPU

그래픽 처리장치

  • 간단한 작업에만 특화되어 있지만, 여러 GPU 코어가 동시에 작업을 수행할 수 있다.
  • 그래픽 작업을 처리하기 위해 개발되었다.
  • GPU 가속을 통해 GPU가 단독으로 처리할 수 있는 계산이 많아졌다.
  • GPU 가속
    - 특정 작업을 CPI가 아닌 다른 특별한 장치를 통해 수행 속도를 높이는 것을 하드웨어 가속이라 한다.
    - 그래픽이나 사운드와 관련한 작업에 하드웨어 가속을 많이 사용한다.
    - 브라우저에서 하드웨어 가속은 주로 GPU를 사용한 그래픽 작업의 가속을 의미한다.
    - 간단한 작업을 동시에 수많은 코어가 수행하는 GPU의 특성을 기반으로 그래픽 작업이 빠르게 처리될 수 있다.
    - CUDA
    - https://ko.wikipedia.org/wiki/CUDA
    - 그래픽 처리 장치에서 수행하는 병렬 처리 알고리즘을 빠르게 수행

애플리케이션을 실행할 때 이를 구동하는 것이 CPU와 GPU이다. 일반적으로 운영체제에서 제공하는 메커니즘을 통해 CPU와 GPU에서 실행된다.

프로세스와 스레드로 프로그램 실행

프로세스

애플리케이션이 실행하는 프로그램

스레드

프로세스 내부에 있으며 프로세스로 실행되는 프로그램의 일부를 실행한다.

프로세스와 스레드가 프로그램을 실행하는 방법

  1. 애플리케이션을 시작하면 프로세스가 하나 만들어진다.
    • 프로세스가 작업을 하기 위해 스레드를 생성할 수도 있지만 선택사항이다.
  2. 운영체제는 프로세스가 작업할 메모리를 "한 조각"주는데, 이 전용 메모리 공간에 애플라케이션의 모든 상태가 저장된다.
  3. 애플리케이션을 닫으면 프로세스가 사라지고 운영체제가 메모리를 비운다.

여러 작업을 수행하는 경우

프로세스는 여러 작업을 수행하기 위해 운영체제에 다른 프로세스를 실행하라고 요청할 수 있다.
이때 메모리의 다른 부분이 새 프로세스에 할당된다.
두 프로세스가 서로 정보를 공유해야 할 때는 IPC(Inter Process Communication, 프로세스 간 통신)를 사용한다.
작업 프로세스가 응답하지 않을 때 애플리케이션의 다른 부분을 실행하는 프로세스를 중지하지 않고 응답하지 않는 프로세스를 다시 시작할 수 있다.

브라우저 아키텍처

프로세스를 할당하는 방법은 선택사항이므로 브라우저마다 다를 수 있다.
크롬에서는 최근까지 각 탭마다 프로세서를 할당했다.

  • 브라우저 프로세스가 다른 프로세스를 조정하고,
  • 렌더러 프로세스가 각 탭마다 할당된다. (process per tab)
    최근에는 각 사이트당 프로세스를 할당한다.(process per site)
프로세스프로세스가 제어하는 부분
브라우저 프로세스크롬 브라우저의 컨트롤, 네트워크 요청이나 파일접근같은 권한
렌더러 프로세스탬 안에서 웹사이트가 표시되는 부분의 모든 것
플러그인 프로세스웹 사이트에서 사용하는 플러그인 제어
GPU 프로세스GPU 작업을 다른 프로세스와 격리해서 처리. 여러 애플리케이션의 요청을 처리하고 같은 화면에 내용을 그리기 때문에 별도 프로세스로 분리함.

다중 프로세스 아키텍쳐가 Chrome에 주는 이점

  • 하나의 프로세스에서 모든 탭이 실행중이라면, 하나의 탭이 응답하지 않으면 다른 모든 탭 또한 응답하지 못한다.
  • 또한 렌더러 프로세스가 웹 페이지를 그리는 도중 오류가 발생해 중단되더라도 브라우저 전체가 종료되지 않음.
    - 오류페이지를 보여주는 정도로 해결할 수 있다.

Reference

https://d2.naver.com/helloworld/2922312

profile
더 나은 성취

0개의 댓글