Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Light Weight Process
- Reentrant
- 모니터(Monitor)
- Multi-level Queue
- 유저 모드의 동기화
- Activity
- 교착 상태
- 커널 모드
- Heap영역
- The Banker's Algorithm
- Stack영역
- 인터락 함수
- 뮤텍스(Mutex)
- 블로킹 논블로킹
- Non-Preemptive
- 프로세스 제어 블록
- Process Control Block
- 경량 프로세스
- 임계 구역
- 유저 모드
- The DIning Philosopher Problem
- 문맥 교환
- 은행원 알고리즘
- 프로세스 상태 전이도
- 스레드
- 스레드 동기화
- 방금 그 곡
- 커널 모드의 동기화
- 프로세스
- 동기 비동기
Archives
Blog For Me
[운영체제]스레드 추가내용 본문
Stack 영역을 스레드마다 독립적으로 할당하는 이유?
우선 스택 영역은 함수 호출 시 전달되는 인자, 복귀 주소값, 그리고 함수 내에서 사용되는 지역 변수 등을 저장하는 메모리 공간이다. Stack 메모리 공간이 독립적이라는 의미는 독립적인 함수 호출이 가능하다는 의미이며, 독립적인 실행 흐름이 추가된다는 것이다. 따라서 스레드의 정의에 의거하여 독립적인 실행 흐름을 추가하기 위해 최소한의 조건으로 독립된 Stack 영역을 할당하는 것이다.
PC register를 스레드마다 독립적으로 할당하는 이유?
PC 값은 스레드가 명령어를 어디까지 수행했는지를 나타낸다. 스레드는 CPU를 할당받았다가 Scheduler에 의해 다시 선점당하는데, 따라서 명령어가 연속적으로 수행되지 못하고 어느 부분까지 수행했는지 기억할 필요가 있다. 그러므로 PC register를 독립적으로 할당한다.
Thread-safe
멀티 스레드 환경에서 여러 스레드가 동시에 하나의 객체 및 변수에 접근할 때 의도한 대로 동작하는 것을 의미한다. 공유 자원에 접근하는 임계영역을 동기화 기법으로 제어한다. 이를 상호 배제라고도 한다.
Reentrant
재진입성. 어떤 함수가 Reentrant 하다는 의미는 여러 스레드가 동시에 접근해도 언제나 같은 실행 결과를 보장한다는 것을 의미한다.
참고자료
'컴퓨터과학 > 운영체제' 카테고리의 다른 글
[운영체제] 동기와 비동기, 블로킹과 논블로킹 (0) | 2021.11.28 |
---|---|
[운영체제] CPU 스케줄링(Scheduling) (0) | 2021.11.14 |
[운영체제]멀티 프로세스 vs 멀티 스레드 (0) | 2021.11.11 |
프로그램과 프로세스의 차이점 (0) | 2021.11.10 |
[운영체제] 스레드(Thread)의 개념 (0) | 2021.10.30 |
Comments