1.프로세스 동기화
1)정의 및 개요
-프로세스들은 작업을 수행하기 위해 협력하고 영향을 주고 받는다.
-프로세스들의 실행순서와 자원의 일관성을 보장하기 위해 동기화 작업이 필요하다.
*동기화:작업들 사이의 수행 시기를 맞추는 것.
사건이 동시에 일어나거나, 일정한 간격을 두고 일어나도록 시간의 간격을 조정하는 것을 이른다.
-프로세스 동기화란 프로세스들 사이의 수행시기를 맞추는 것.
-또한 프로세스의 동기화에서 수행시기를 맞춘다는 것은 실행 순서 제어,상호 배제를 의미한다.
2)실행순서제어
-프로세스를 올바른 순서대로 실행하는 것.

-book이라는 텍스트가 있을 때 writer의 프로세스가 실행되어야 reader프로세스가 올바르게 작동
할 수 있다.
3)상호 배제(mutual exclusion)
-동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하는 것.
-통장의 잔액을 계산하는 프로세스가 있다 가정 할 때 잔액이라는 자원은 프로세스가 동시에
접근해서는 안된다.


2.공유 자원과 임계 구역
1)공유자원(shared resource): 동시에 접근해서는 안되는 자원
2)임계구역(critical section):프로세스들이 동시에 작업을 실행(자원에 접근)하면 문제가 발생하는 코드의
영역.
-복수의 프로세스가 임계구역에 진입하고자 하면 하나를 제외한 나머지 프로세스들은 대기 해야한다.

3)레이스 컨디션(race condition): 임계구역 임에도 잘못된 실행으로 인해 여러 프로세스가
동시 다발적으로 임계구역내에 코드를 실행하여 발생하는 문제.
-고급언어가 저급언어로 변환되면서 여러 줄의 코드가 생성되고
문맥교환이 일어날 때 아래와 같은 문제가 생긴다.


*임계구역을 문제를 해결하기위한 운영체제의 3원칙

'컴퓨터 공학 > 혼자 공부하는 컴퓨터 구조 +운영체제' 카테고리의 다른 글
28.교착상태 (0) | 2023.07.30 |
---|---|
27.동기화 기법 (0) | 2023.07.27 |
25.CPU 스케일링 알고리즘 (0) | 2023.07.26 |
24.CPU 스케줄링 (0) | 2023.07.25 |
23.스레드 (0) | 2023.07.20 |