본문 바로가기 메뉴 바로가기

구름을 채우다

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

구름을 채우다

검색하기 폼
  • 분류 전체보기 (81)
    • 내 이야기 (0)
    • 나만의 사진전 (2)
    • TIL (1)
    • 컴퓨터공학 (11)
      • 운영체제 (11)
    • 프로그래밍 언어 (3)
      • Java (3)
      • Python (0)
    • 알고리즘 (45)
      • 백준 (34)
      • 프로그래머스 (11)
    • Cloud Computing (13)
      • Openstack (10)
      • Docker (3)
      • Kubernetes (0)
    • Server Framework (1)
      • Django (1)
    • Books (5)
  • 방명록

Deadlock (2)
[운영체제] 동기화 (2)

Bounded-Buffer 문제 (유한버퍼 문제) 소비자와 생산자가 유한 개의 버퍼 자원을 공유하는 상황에서, 다음 문제를 해결하고자 한다. 소비자와 생산자가 버퍼에 상호 배타적으로 접근 소비자는 버퍼에 원소가 한 개라도 있으면 버퍼를 소비해야 하고, 생산자는 버퍼에 원소가 없으면 원소를 생산해야 한다. 위의 문제를 해결하기 위한 조건은 다음과 같다. 생산자가 먼저 실행된 적이 있어야 하고, 생산자의 실행 횟수가 소비자보다 많아야 한다. 위 문제를 해결하기 위해 사용하는 변수는 다음 세 가지이다. 세마포어 mutex(= 1): 생산자와 소비자의 상호배제를 위한 변수 세마포어 empty(= n): 비어있는 버퍼의 개수를 나타내는 변수 세마포어 full(= 0): 버퍼가 차있는 개수를 나타내는 변수 Read..

컴퓨터공학/운영체제 2020. 1. 14. 14:21
[운영체제] 데드락

Deadlock 모든 프로세스가 다른 프로세스의 작업이 끝나기를 기다리고있는 상태 Deadlock(교착상태) 발생 필수 조건 4가지 Mutual exclusion (상호배제) 최소한 1개의 자원은 공유할 수 없어야 한다. Hold and wait (점유대기) 최소한 1개의 자원을 소유한 프로세스가 다른 프로세스가 소유하고 있는 자원을 얻기를 기다려야 한다. No preemption (비선점) Preemption이 없어야 한다. Circular wait (순환대기) 서로 다른 프로세스가 자원을 소유하고 요청하는 사이클이 존재해야 한다. Resource Allocation Graph Resource 종류마다 1개의 인스턴스만 있고, 사이클이 존재한다면 항상 데드락이 발생한다. Resuorce 종류마다 여러개..

컴퓨터공학/운영체제 2019. 10. 30. 17:28
이전 1 다음
이전 다음
링크
  • Github
공지사항
  • 환영합니다.
최근에 달린 댓글
Total
Today
Yesterday
TAG
  • Deadlock
  • docker
  • bfs
  • Synchronization
  • Clean Code
  • contribution
  • 운영체제
  • Message Passing
  • 프로그래머스
  • 알고리즘
  • 스택
  • 큐
  • 클린 코드
  • 백준
  • 브루트포스
  • gerrit
  • 파이썬 클린 코드
  • Java
  • Bounded Buffer
  • openstack
  • shared memory
  • dfs
  • 시뮬레이션
  • contribute
  • 파이썬
  • 해쉬
  • launchpad
  • git
  • Python
  • 덱
more

Blog is powered by Tistory / Designed by Tistory

티스토리툴바