
먼저, Thread에 대한 심도 있는 이해를 하기 위해선 여러가지 베이스 지식들이 필요하다.
- Critical Section(크리티컬 섹션)
- Mutex(뮤텍스) 및 Semaphore(세마포어)
- 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 |