● 교착상태 회피 - 교착상태 해결방법으로 교착상태 회피(deadlock avoidance)라는 방법이 있다. - 이는 운영체제(OS)가 프로세스들에게 어느 정도의 자원을 할당해야 교착상태가 발생하는지 파악해서 교착상태가 발생하지 않는 수준의 자원을 할당하는 것이다. - 교착상태 회피는 전체 자원의 수와 할당된 자원의 수를 기준으로 안정상태(Safe state)와 불안정 상태(Unsafe state)를 나눈다. - OS는 최대한 안정상태를 유지하기위해 자원 할당을 한다. - 단, (불안정상태 = 교착상태)는 아니고 교착상태에 빠질 확률이 높다는 것을 의미한다. ● 은행원 알고리즘(Banker's algorithm) - 교착상태 회피를 표현한 알고리즘이 바로 은행원 알고리즘(Banker's algorith..
● 도입 - 여러 프로세스가 서로 다른 프로세스의 작업이 끝나기를 기다리다가 아무도 작업을 진행하지 못하는 상태를 교착상태라고 한다. - 교착상태는 일상생활에서도 발생할 수 있다. - 위와 같은 도로에서 차량 한 대가 꼬리 물기를 해서 교통이 마비되었다고 해보자 - 도로를 원할하게 할려면 앞에서 길을 터줘야 하는데 지금은 그 어느 차선도 이러지도 저지도 못 하는 상태이다. - 이럴때는 누군가 도로를 통제해서 해결해 줘야한다. ● 교착상태 - 교착상태가 발생하는 이유는 공유자원 때문이다. - 만약 어떤 자원을 여러 개의 프로세스가 공유하지 않는다면 교착상태는 발생하지 않을 것이다. cf1) 위의 예시에서 (공유자원 = 도로)이다. 공유되는 도로를 서로 차지하려다 교착상태가 발생한 것이다. cf2) 교착상태..
● 공유자원- 프로세스 간 통신을 할 때 공동으로 이용하는 변수나 파일들이 있는데 이런 것들을 공유자원이라고 한다. - 공유자원은 여러 프로세스들이 공유하기 때문에 각 프로세스의 접근 순서에 따라 결과가 달라질 수 있다. - 또한 컨텍스트 스위칭으로 시분할 처리를 하기 때문에 프로세스 실행 순서를 예측하기가 힘들다. (실행 순서는 OS에 의해 결정되기 때문이다.) - 즉, 연산 결과를 예측하기 힘들기에 문제가 발생할 수도 있는데 이러한 문제를 동기화 문제라고 한다.ex)- 게임에서 현재 플레이어의 체력이 20 남았고 몬스터에게 공격을 당하는 상황이다. - 플레이어는 죽지 않기 위해 체력 회복 물약을 먹었다. - 이때 물약을 먹는 코드와 몬스터에게 공격을 받는 코드에서 발생할 수 있는 동기화 문제를 알아보..
- Total
- Today
- Yesterday
- OS
- 프로그래머스
- jpa
- 코딩테스트
- 메모리
- spring
- git
- 알고리즘
- Phaser
- Phaser3
- SpringBoot
- 빅데이터 분석기사
- Java8
- node.js
- API
- DART
- Spring Boot
- SQL
- 코테
- 자료구조
- 빅데이터
- MongoDB
- Stream
- db
- java
- 프로세스
- nosql
- Advanced Stream
- MySQL
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |