스파르타 특강 - 11.18 CS강의

병아리의최후·2022년 11월 20일
0

스파르타 특강

목록 보기
3/7

프로세스와 스레드는 운영체제(OS, Operating System)에서 배우는 개념이고, 비동기는 CS개념이라기보단 개발하다보면 많이 접하는 개념이다.

프로세스와 스레드는 CPU가 하는 일거리!

프로세스란?

  • 메모리에 적재되어 실행되고 있는 프로그램의 인스턴스
  • 운영체제로부터 시스템 자원을 할당받은 작업의 단위

특징

  • 프로세스는 독립된 메모리를 할당 받는다
  • 기본적으로 프로세스마다 최소 1개의 스레드(메인 스레드)를 받는다.

스레드란?

정의

프로세스 내에서 프로세스의 자원을 이용하는 여러 실행 흐름의 단위

특징

스레드는 프로세스 내의 Code, Data, Heap 영역은 다른 스레드와 공유하고 Stack영역을 따로 할당받음.
프로세스와 해당 프로세스 내의 다른 스레드와 자원과 공간을 공유하면서 사용

멀티 프로세스란?

하나의 프로그램을 여러개의 프로세스로 구성해 각 프로세스가 하나의 작업을 처리하도록 하는 것

  • 장점 : 프로세스에 문제가 생기면 그 프로세스만 죽고 다른곳에 영향확산 X
  • 단점 : 문맥교환 에서의 오버헤드, IPC라는 방법을 사용해야 하는데 이는 복잡하고 어려운 통신방법
  • 문맥교환(context Switching) : CPU는 한번에 하나의 프로세스만 처리가능, 여러프로세스를 처리해야되는 상황에서는 돌아가면서 처리하는데 이 과정을 Context Switching이라고 함

멀티 스레드란?

하나의 프로그램을 여러개의 스레드로 구성해 각 스레드가 하나의 작업을 처리하도록 하는 것

  • 장점 : 프로세스에 비해 메모리 공간과 시스템 자원소모가 줄어듬
    스레드간 통신시 Data, Heap 메모리 영역을 이용해 데이터를 주고받으므로 통신방법이 간단.
  • 단점 : 하나의 스레드에 문제생기면 전체 프로세스가 영향받음
    서로 다른스레드가 Data, Heap 영역 등을 공유하기 때문에 엉뚱한 정보를 읽어오거나 수정할 수 있다.

비동기란?

예시

Java의 비동기

기본적으로 멀티 스레드 방식, JVM(Java Virtual Machine)에 의해 스레드 스케줄링이 이뤄짐.

활용 예시 : Request 요청 처리, DB 접근

JavaScript의 비동기

0개의 댓글

관련 채용 정보