티스토리 뷰
쓰레드 동기화
- 쓰레드의 실행 순서를 정의하고, 이 순서에 반드시 따르도록 하는 것
- 메모리 접근에 있어서 동시 접근을 막는 것
임계 영역
- 배타적 접근이 요구되는 공유 리소스에 접근하는 코드 블록을 의미
유저모드 동기화
동기화가 진행되는 과정에서 커널모드로의 전환이 불필요하므로 성능상에 이점이 있다.
critical section : 메모리 접근 동기화
- 전역으로 선언된 변수 하나의 접근 방식을 동기화
Interlocked Family Of Function : 메모리 접근 동기화
- 함수 내부적으로 한 순간에 하나의 쓰레드에 의해서만 실행
커널모드 동기화
커널모드로의 전환이 필요해서 성능은 저하되지만 유저모드에서 제공 못하는 기능을 제공할 수 있다.
Mutex : 메모리 접근 동기화
- 단순화된 세마포어
- 공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것
- critical section과 유사
- 공유 리소스에 대한 접근을 조율하기 위해 locking / unlocking을 사용
- 동기화 대상이 오직 하나 !
예) 화장실 열쇠를 1개만! 가질 수 있다.
Semaphore : 메모리 접근 동기화
- 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것
- 카운트 기능으로 여러 개의 스레드가 접근 가능
- 동기화 대상이 하나 이상 !
예) 화장실 칸이 4개이고 열쇠가 4개라면, 4명까지는 대기없이 사용할 수 있고 그 다음부터는 대기를 해야한다.
Event : 실행 순서 동기화
'interview > OS' 카테고리의 다른 글
[운영체제] RAID 종류 (0) | 2018.11.20 |
---|---|
[운영체제] cpu 스케쥴링 알고리즘 (1) | 2018.10.05 |
[운영체제] Micro Kernel / Monolithic Kernel (1) | 2018.06.19 |
[운영체제] 데드락(교착상태) (1) | 2018.06.19 |
[운영체제] 프로세스와 스레드 (1) | 2018.06.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- OS
- BOJ
- 이진탐색트리
- ConstraintLayout
- 퀵정렬
- C
- debug
- WinDbg
- 안드로이드
- 윈도우
- 백준
- adapter
- 스프링부트
- 알고리즘
- handshake
- 네트워크
- Android
- DATABASE
- HTTP
- frameLayout
- 정렬 알고리즘
- LinearLayout
- 스프링
- windows
- RelativeLayout
- 운영체제
- 백준알고리즘
- listview
- C++
- layout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함