티스토리 뷰
http://developerandwoodworker.com/뮤텍스-세마포어-멀티쓰레드/
운영체제가 바라보는 일의 단위 프로세스
프로세스가 바라보는 일의 단위 쓰레드
쓰레드: 경량화된 프로세스, 속도(생산+처리)가 빠르다. 메모리에서 데이터와 힙 부분을 공유한다. 스택 부분은 각 각의 쓰레드에서 독립적으로 존재. 디버깅이 불리하다.
프로세스: 스택, 데이터, 힙이 독립적으로 구성되어있다. 그러다보니 쓰레드보다 속도(생산+처리)가 느리다. 디버깅은 유리하다.
뮤텍스: 뮤텍스는 값이 1인 세마포어로 0인 경우 해당 resource에 접근이 불가능하고 1인경우 접근이 가능하도록 하여, 다중 프로그래밍 환경에서 resource를 보호한다.
세마포어: 세마포어는 뮤텍스의 확장개념으로 보면되는데, 접근 가능한 자원을 1개 이상으로 설정할 수 있다. 예를 들어 4라면 4개의 쓰레드가 접근할 수 있을 것 이다.
CPU는 하나의 연산밖에 하지 못한다. 그래서 예를 들어 아래와 같은 코드를 작성하면
int x = 10;
int y = 20;
y += x;
x=10, y=20이 메모리에 들어가고 덧셈을 위해 y=20이 임시메모리에 저장되고 x변수 10을 연산한다.
'컴퓨터 과학' 카테고리의 다른 글
Oauth에 대해서 정리 (0) | 2018.01.18 |
---|---|
교착상태(DeadLock) (0) | 2017.12.15 |
메모리 구성(데이터, 스택, 힙) (0) | 2017.12.15 |
댓글
공지사항
최근에 올라온 글
링크
TAG
- 텐서플로우
- Error
- AWS
- tensorflow
- javascript
- Gradle
- memory
- 머신러닝
- AI
- executor
- mybatis
- web
- Docker
- TDD
- BigData
- ML
- python
- 모두의딥러닝
- serverless
- mysql
- Configuration
- NIO
- API
- Maven
- 중앙정보처리학원
- 파이썬
- spark
- Java
- 점프투파이썬
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함