Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Essential Concepts] 프로세스(Process)와 스레드(Thread) 본문
프로세스
멀티태스킹을 가능하게 하는 동시성과 병렬성
❓ 운영체제(OS)가 어떻게 여러개의 프로세스를 함께 돌릴까?
동시성*
프로세서가 여러개의 작업을 일부분씩 진행하는 것을 말한다.
※ 진행중인 작업을 바꾸는 것을 ' Context Switching '이라 한다.
※ Context Switching 이 매우 빠르게 일어나 동시에 일어나는 것처럼 보인다.
병렬성*
프로세서 하나에 여러개의 코어가 동시에 작업을 진행하는 것을 말한다.
(멀티코어 프로세서)
스레드
각각의 프로세스 안에서의 여러개의 갈래(작업)를 스레드라고 한다.
컴퓨터는 프로세스마다* 자원을 분할해서 할당하는데
여기서 하나의 프로세스의 여러개의 스레드가
같은 변수에 동시에 접근하면 에러가 생긴다.
따라서, 이를 방지하기 위한 장치들이 있는데
예를들어, 자바에는 synchronized 블럭이 있다.
이 블럭 안에 있는 변수는 한 번에 하나의 스레드만 접근할 수 있다.
'Backend > 백엔드 필수개념' 카테고리의 다른 글
[Essential Concepts] 프레임워크와 라이브러리 (0) | 2023.03.11 |
---|---|
[Essential Concepts] 빌드와 배포 (0) | 2022.12.02 |
[Essential Concepts] HTTP와CGI, FastCGI, 서블릿 (0) | 2022.11.26 |
[Essential Concepts] 네트워크 상에서의 위치를 나타내는 IP (Internet Protocol)와 포트포워딩 (0) | 2022.11.26 |
[Essential Concepts] DNS(Domain Name System) 서버 (0) | 2022.11.25 |
Comments