먼저, Thread에 대한 심도 있는 이해를 하기 위해선 여러가지 베이스 지식들이 필요하다.

 

  1. Critical Section(크리티컬 섹션)
  2. Mutex(뮤텍스) 및 Semaphore(세마포어)
  3. CPU의 동작 특성에 대한 이해

 

태스크란 무엇인가 ?

우리는 자바를 구동하면서 혹은 다른 프로그램들을 구동하면서 항상 이 태스크를 만들고 있습니다.

아주 쉽게 접근하자면 현재 실행중인 우리가 작성한 프로그램이 태스크입니다.

조금 더 원론적으로 접근하자면 우리가 작성한 프로그램이 컴퓨터 메모리(DRAM)으로 로드 되어

운영체제가 이 부분을 해석하여 구동되는 상태를 의미합니다.

자바는 여기서 JVM이라는 중간 인터페이스 하나 더 추가되는 구조입니다.

맥/리눅스: ps -ef, 윈도우: 작업관리자에 보이는 모든 사항들이 전부 태스크임

 

 

Critical Section

실제 크리티컬 섹션을 의미하는 사항은 여러 태스크(프로세스, 스레드)가

동시다발적으로 접근할 수 있는 공유 메모리를 의미합니다.

 

 

 

CPU의 동작 특성

학교에서 컴퓨터 구조론이라는 수업을 들으면 항상 중요하게 파악해야하는 사항들이 몇 가지 있습니다.

그중 가장 대표적인 것은 Memory Hierarchy(메모리 계층구조)라는 내용입니다.

그리고 CPU의 기본적인 동작 메커니즘입니다.

'IT knowledge > CS' 카테고리의 다른 글

데이터 정규화  (0) 2023.02.12
크롤링(crawling)이란?  (0) 2022.10.18
SOLID - SRP(단일 책임 원칙)  (0) 2022.07.24
데이터베이스(DB)의 종류  (0) 2022.04.22
프론트엔드와 백엔드의 차이  (0) 2022.04.21
복사했습니다!