TIL – 0228

1. TDD를 사용하는 자바 플레이그라운드, 깨끗한 코드

  • 블랙잭 구현
  • 최상위 플레이어 컬렉션의 일반 유형을 플레이어 -> 사람으로 변경(플레이어와 상인의 인터페이스)
  • UI 변경
  • 뭔가 완료되었습니다. 다시 구현하기 전에 클래스와 메서드 내용 간의 종속성을 정렬하는 다이어그램을 그려 봅시다.

2. 혼자 공부하기 위한 컴퓨터 구조 + 운영체제

* 동기화 기술

분할 특성
뮤텍스 잠금 – 단일 공유 리소스 가정
– 상호 배제 동기화 도구
– 잠금 역할을 하는 전역 변수: lock
– 크리티컬 섹션 잠금을 담당하는 기능: 획득(크리티컬 섹션이 잠겨 있으면 열릴 때까지 반복 확인, 그렇다면 lock -> lock = true;
– 잠금 해제 역할을 하는 함수: release(lock = false;)
– 크리티컬 섹션이 잠겨 있는지 반복적으로 확인 -> 바쁜 대기
신호기 – mutex lock과 달리 다수의 공유자원을 필요로 하는 방식
– 상호 배제 도구 + 실행 명령 제어
감시 장치 – 사용자가 사용하기 편리함
– 프로세스는 하나의 인터페이스(공유 리소스에 액세스할 수 있는 경로)를 통해서만 액세스할 수 있습니다.
– 한 번에 하나의 프로세스만 모니터에 액세스할 수 있도록 합니다.
– 조건 변수를 사용하여 특정 조건에 따라 프로세스를 실행 및 중지 -> 프로세스 및 스레드의 실행 순서 제어

* 막 다른 골목

  • The Dining Philosopher’s Problem -> 일어나지 않을 이벤트를 기다리다가 진행이 멈추는 현상
  • 자원할당도에 의한 교착상태 표현


출처: https://medium.com/@lyoungh2570/%EA%B5%90%EC%B0%A9-%EC%83%81%ED%83%9C-%EC%9A%B4%EC%98% 81%EC%B2%B4%EC%A0%9C-9f2105b02af8

  • 교착 상태(4가지 조건이 모두 충족되는 경우)
유형 특성
상호 배제 한 프로세스에서 사용하는 리소스를 다른 프로세스에서 사용할 수 없습니다.
점유 및 대기 자원이 할당되어 다른 자원의 할당을 기다리는 경우
비우대 프로세스가 작업을 완료할 때까지 다른 프로세스에 액세스할 수 없는 경우
환형 대기 요구 사항과 할당된 리소스가 프로세스 사이에 원을 형성하는 경우

* 나중에 동기화를 위한 도구의 실제 코드 구현을 살펴보겠습니다.


3. 알고리즘

  • 프로그래머 – 무인도 여행
  • https://ahlight.116

프로그래머 – 무인도 여행

1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머 코드 지향 개발자 모집. 배치 기반 위치 매칭. 개발자 특정 프로그래머 프로필에 등록하고 저와 기술 호환성을 갖습니다.

alight.tistory.com