공부기록
코타쿠
« 2024/11 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
|
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 |
관리 메뉴
공부기록
병행성 : 상호배제와 동기화 본문
CS/OS
병행성 : 상호배제와 동기화
코타쿠
2021. 5. 4. 21:40
- 시스템 구조에 따른 프로세스 관리의 구분
- 다중 프로그래밍 (Multiprogramming)
- 멀티 프로세싱 (Multiprocessing)
- 분산 처리 (Distributed processing)
- 다수의 분산된 컴퓨터 시스템들 상에서 수행되는 다수의 프로세스 관리
- 클러스터 시스템
- 병행성
- 프로세스 관리에서 핵심적인 주제
- 프로세스의 병행처리, 프로세스간 통신, 자원에 대한 공유 및 경쟁, 프로세스 활동들의 동기화, 프로세스에 대한 처리기 시간 할당 등 다양한 이슈들을 포함
- 병행성의 발생 상황
- 여러개의 응용프로그램들
- 여러개의 활동중인 프로세스들이 처리시간을 동적으로 공유할 수 있도록 다중 프로그래밍이 개발됨
- 구조화된 응용
- 어떤 응용 프로그램들은 병행 프로세스들의 집합으로서 효과적으로 프로그래밍 된다.
- OS 구조
- 병행성과 관련있는 주요용어
- 임계영역 (critical section)
- 공유 자원에 접근하는 각 프로세스 내부의 코드 영역으로, 다른 프로세스가 해당 코드 영역을 수행하는 동안 수행하지 않아야 하는 코드 영역
- 교착상태 (deadlock)
- 두 개 이상의 프로세스들이 서로 다른 프로세스가 어떤 일을 해 줄 때까지 기다리고 있어 관련 프로세스 모두가 더 이상 진행을 할 수 없는 상태
- 라이브락 (livelock)
- 두 개 이상의 프로세스들이 다른 프로세스의 상태 변화에 따라 자신의 상태를 변화시키는 작업만 수행하고 있는 상태. 각 프로세스들이 열심히 작업하고 있지만, 수행되는 작업은 유용한 것이 아닌 반복적인 상태 변화일 뿐
- 상호배제 (mutual exclusion)
- 한 프로세스가 공유 자원에 접근하는 임계영역 코드를 수행하고 있을 경우, 다른 프로세스들은 해당 자원에 접근하는 각자의 임계영역 코드를 수행할 수 없다는 조건
- 경쟁조건 (race condition)
- 두 개 이상의 프로세스가 공유 데이터 항목을 읽고 쓰는 상황으로, 최종 수행 결과는 프로세스들의 상대적인 수행 순서에 따라 달라질 수 있음
- 기아 (startvation)
- 구행 가능한 프로세스가 스케줄러에 의해 무한정 간과되고 있는 상황 (수행 가능하지만 선택되지 않는 상황)