TIL
TIL - 0228
ahlight
2023. 2. 28. 22:39
1. 자바 플레이 그라운드 with TDD, 클린 코드
- 블랙잭 구현 중
- Players 일급컬렉션의 지네릭 타입을 Player -> Person(Player, Dealer의 인터페이스)로 변경
- UI 변경
- 어느정도 마무리가 되었다. 재구현전에 클래스간 의존관계 및 메소드 내용을 정리해 다이어그램을 그려보자
2. 혼자서 공부하는 컴퓨터 구조 + 운영체제
* 동기화 기법
구분 | 특징 |
뮤텍스락 | - 하나의 공유자원을 상정한 방식 - 상호배제를 위한 동기화 도구 - 자물쇠 역할의 전역변수 : lock - 임계구역을 잠그는 역할의 함수 : acquire(임계 구역이 잠겨 있다면 열릴때 까지 반복적으로 확인, 열린 경우엔 잠금 -> lock = true; - 잠금해제 역할의 함수 : release(lock = false;) - 임계 구역이 잠겨 있을 경우 계속해서 반복적으로 확인 -> 바쁜 대기 |
세마포어 | - 뮤텍스락과 다르게 여러개의 공유자원을 상정한 방식 - 상호배제 + 실행순서 제어를 위한 도구 |
모니터 | - 사용자가 사용하기에 편리 - 프로세스는 반드시 인터페이스(공유자원으로 접근가능한 통로)를 통해서만 접근 가능 - 모니터안에 항상 하나의 프로세스만 접근가능하게 만듬 - 특정 조건을 바탕으로 프로세스를 실행하고 일시 중단하기 위해 조건변수를 사용 -> 프로세스,스레드의 실행순서 제어 |
* 교착상태
- 식사하는 철학자 문제 -> 일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상
- 자원 할당그래프를 통한 교착상태 표현
- 교착상태 발생 조건(4가지가 모두 충족된 경우)
종류 | 특징 |
상호배제 | 어떤 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 경우 |
점유와 대기 | 어떤 자원을 할당 받은 상태에서 다른 자원을 할당 받기위해 대기하는 경우 |
비선점 | 어떤 프로세스의 작업이 끝날때까지 다른 프로세스는 접근할 수 없는 경우 |
환형 대기 | 프로세스들간의 요청 및 할당자원이 원의 형태를 이룬 경우 |
* 추후에 동기화를 위한 도구들의 실제 코드구현을 공부하자.
3. 알고리즘
- 프로그래머스 - 무인도 여행
- https://ahlight.tistory.com/116
프로그래머스 - 무인도 여행
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이
ahlight.tistory.com