1. 자바 플레이 그라운드 with TDD, 클린 코드
- 블랙잭 구현 중
- sumTotal 메서드 추가(숫자가 아닌 값(A,J,QK) + 숫자인 값) 및 테스트패스
- 새로운 카드 추가 시 중복값 존재 여부 확인 테스트
- Player를 저장하는 Players 일급컬렉션 클래스 생성
- MVC패턴을 유지하기 위한 UI 변경(UI에 새로운 객체들을 생성하기보단 BlackJack(Controller)객체 하나를 생성해 활용
2. 혼자서 공부하는 컴퓨터 구조 + 운영체제
* CPU 스케줄링 알고리즘
구분(스케줄링) | 특징 |
선입선출 (FCFS) |
- 준비 큐에 삽입된 순서대로 프로세스를 처리하는 스케줄링 방식(비선점형) - 호위효과 발생(먼저 삽입된 프로세스 대기 시간이 길 경우 나중에 삽입된 프로세스는 대기시간이 길어짐) |
최단작업우선 (Shor Job First) |
- CPU 이용시간이 가장 짦은 프로세스부터 처리(비선점형) |
라운드로빈 (Round Robin) |
- 정해진 타임슬라이스(시간 구분)만큼의 시간동안 돌아가며 CPU를 이용(선점형) - 타임슬라이스가 커질수록 호위효과가 발생할 확률이 높아진다. - 적을 경우엔 문맥교환이 잦아져 오버헤드가 커진다. |
최소잔여시간우선 (Short Remaining Time) |
- 라운드 로빈 + SJF의 특징을 합친 방식(선점형) - 정해진 타임슬라이스만큼 CPU를 사용하며, 남은 작업시간 기준 짦은 순서로 우선순위 결정 |
우선순위 (Priority) |
- 우선순위가 낮은 프로세스는 계속해서 실행이 연기되는 기아(starvation)현상이 발생 - 기아현상 해결을 위한 에이징(aging)기법 -> 준비큐에 대기한지 오래된 우선순위가 낮은 프로세 스의 우선순위를 점차적으로 올림 |
다단계 큐 (Mutilevel Queue) |
- 우선순위 별 준비큐를 여러개 사용 - 우선순위가 높은 큐부터 실행 후 낮은 쪽으로 이동 - 큐마다 타임슬라이스 지정 및 다른 알고리즘이 사용가능 - 프로세스는 하나의 큐에 영구적으로 할당(큐간 이동불가) |
다단계 피드백 큐 (Multilevel Feedback Queue) |
- 다단계 큐의 기아현상을 해결하기 위한 방법(큐간 이동을 가능하게 만듬) - 가장 높은 우선순위 큐에서 해당 프로세스가 작업을 끝내지 못하면 다음 우선순위 큐로 이동 - 작업시간이 긴 프로세스는 점차 우선순위가 낮아짐 - 에이징 기법 사용 - 복잡하지만 가장 일반적인 스케줄링 알고리즘 |
* 프로세스의 동기화
- 정의 : 프로세스들 사이의 수행시기를 맞추는 것
- 목적 : 동시다발적으로 실행되는 프로세스들의 실행순서, 자원의 일관성을 보장하기 위함
구분 | 특징 |
실행순서 제어 | - 프로세스를 올바른 순서대로 실행 - A프로세스가 B프로세스에 의존 하는 경우 B프로세스 실행 후 A프로세스가 실행되야 함 |
상호 배제 | - 임계구역에 하나의 프로세스만 접근 가능 - 문맥교환이 일어날 경우(동시적) 원하는 결과와 다른 결과가 나옴 |
- 생산자와 소비자 문제 -> 프로세스(스레드) 동기화가 안돼서 생기는 문제(임계구역에 동시에 접근해서)
- 공유자원과 임계구역, 레이스컨디션
구분 | 특징 |
공유 자원 | - 전역 변수, 파일, 입출력장치, 보조기억 장치 등 |
임계 구역 | - 공유 자원 중 두개 이상의 프로세스가 동시에 접근하면 할 때 발생하는 자원에 접근하는 코드영역 |
레이스 컨디션 | - 잘못된 실행으로 여러 프로세스가 동시 다발적으로 임계 구역의 코드를 실행해 문제가 발생 - 고급 언어 1줄 -> 저급 언어 n줄이 되면서 문맥교환이 발생할 수 있기 때문 |
- 임계구역 문제 해결 원칙(3개다 지켜져야만 가능)
- 상호배제 : 임계구역에는 한개의 프로세스만 존재 가능
- 진행 : 임계구역에 어떤 프로세스도 진입하지 않았다면 임계구역에 진입하고자 하는 프로세스는 들어갈 수 있어야한다.
- 유한 대기 : 임계구역에 진입하려고하는 프로세스는 언젠가는 진입할 수 있어야 한다.(무한정 대기 안됨)
3. 알고리즘
- 백준 1934번
- https://ahlight.tistory.com/113
백준 1934번 자바
1. 문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라
ahlight.tistory.com
'TIL' 카테고리의 다른 글
TIL - 0228 (0) | 2023.02.28 |
---|---|
TIL - 0225 (0) | 2023.02.25 |
TIL - 0223 (0) | 2023.02.23 |
TIL - 0222 (0) | 2023.02.22 |
TIL - 0221 (0) | 2023.02.21 |