스레드와 멀티 스레딩 스레드 스레드는 프로세스의 실행 가능한 가장 작은 단위이다. 프로세스는 여러 스레드를 가질 수 있다. 스레드는 코드, 데이터, 힙을 스레드끼리 서로 공유한다. 멀티 스레딩 프로세스 내 작업을 멀티 스레드로 처리하는 기법이며 스레드끼리 서로 자원을 공유하기 때문에 효율성이 높다. 예를 들어 새 프로세스를 생성하는 대신 스레드를 사용하는 웹 서버의 경우 훨씬 적은 리소스를 소비하며, 한 스레드가 중단되어도 다른 스레드는 실행 상태일 수 있기 때문에 중단되지 않은 빠른 처리가 가능하다. 또한 동시성에도 큰 장점이 있다. 하지만 한 스레드에 문제가 생겨 다른 스레드에도 영향을 끼치면 프로세스에 영향을 줄 수 있다. 동시성 서로 독립적인 작업들을 작은 단위로 나누고 동시에 실행되는 것 처럼 ..
프로세스의 메모리 구조 운영체제는 프로세스에 적절한 메모리를 할당한다. 메모리 구조는 동적 영역인 스택과 힙, 정적 영역인 데이터 영역과 코드 영역으로 나눠진다. 스택은 위 주소부터 할당되고 힙은 아래 주소부터 할당된다. 스택 지역변수, 매개변수, 함수가 저장되고 컴파일 시에 크기가 결정되며 '동적'인 특징을 갖는다. 함수가 함수를 재귀적으로 호출하면서 동적으로 크기가 늘어날 수 있는데, 이 때 힙과 스택의 메모리 영역이 겹치면 안되기 때문에 힙과 스택 사이의 공간을 비워 놓는다. 힙 동적 할당할 때 사용되며 런타임 시 크기가 결정된다. 예를 들어 벡터 같은 동적 배열은 당연히 힙에 동적 할당된다. '동적'인 특징을 갖는다. 데이터 영역 전역변수, 지역변수가 저장되고, 정적인 특징을 갖는 프로그램이 종료..
프로세스(Process)는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업이라는 용어와 거의 같은 의미로 쓰인다. 스레드(Thread)는 프로세스 내 작업의 흐름을 말한다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 프로세스와 컴파일 과정 프로그램은 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일이 되는 것을 의미한다. 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환한다. 컴파일러 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환한다. 어셈블러 어셈블리어는 목적 코드(object code..
- Total
- Today
- Yesterday
- 캐시매핑
- 프로세스와 스레드
- 직접매핑
- 프로그래밍 패러다임
- 스프링 R2DBC
- 선언형 프로그래밍
- 프로그래밍
- 중첩루프조인
- 프로세스
- 스프링 WebFlux
- 프로세스 컴파일
- 직접연관매핑
- 대수확장성
- 인덱스최적화
- 자바
- java
- 디자인 패턴
- 네트워크
- 코틀린
- 불연속할당
- 정렬병합조인
- Design Pattern
- 보이스코드정규형
- 함수형 프로그래밍
- 스레드
- 연관매핑
- 네트워크 기초
- 세컨더리인덱스
- 클러스터형인덱스
- 메모리 계층
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |