1. 자바 플레이 그라운드 with TDD, 클린 코드
- 스트림 사용법 및 사용 이유
- 함수형 프로그래밍의 중요성
2. 혼자서 공부하는 컴퓨터 구조 + 운영체제
- 명령어 사이클

- 인출 사이클 : 메모리에서 명령어를 CPU로 가지고 오는 사이클
- 실행 사이클 : 가져온 명령어를 CPU에서 실행하는 사이클
- 간접 사이클 : 간접주소지정 방식 등 메모리를 한번 더 접근해야 할 때 사용하는 사이클
- 인터럽트 사이클 :
1. I/O에서 CPU로 인터럽트 요청신호를 보냄 | 인터럽트가 가능여부에 대한 확인 요청 |
2. CPU는 인터럽트 플래그를 통해 인터럽트 수용여부 확인 | 인터럽트가 가능한 상황인지 아닌지 판단하게 해주는 플래그 |
3. 가능 하다면 CPU는 현재까지의 작업을 메모리 스택에 백업 | |
4. CPU는 인터럽트 벡터를 참조해 인터럽트 서비스루틴을 실행 | 벡터 : 루틴의 시작주소를 포함하는 루틴의 식별 정보 루틴 : 인터럽트 처리 프로그램(인터럽트 핸들러라고도 부름) |
5. 루틴이 끝나면 백업돼 있는 작업을 복구하여 재개 |
- 인터럽트 :

- CPU의 작업을 방해하는 신호
- 동기 인터럽트(예외) : CPU가 실행하는 프로그래밍상의 오류가 발생 했을 때
- 비동기 인터럽트(하드웨어 인터럽트) : 주로 I/O 디바이스에 의해 발생
- CPU가 작업이 완료 됐는지 계속 확인하기엔 성능 저하가 발생할 수 있어 비동기 인터럽트를 통해 작업완료 인터럽트를 보내준다.
- CPU 성능 향상 기법
- 클럭 : 클럭 신호에 맞춰 명령어 사이클이 실행. 클럭 속도는 헤르츠(Hz)로 측정
- 매번 최대 속도를 유지하면 발열이 심해지기에 유동적으로 속도 조절
- 코어 : ALU, 제어장치, 레지스터 세트(명령어를 실행하는 부품)를 코어라고 부른다.(과거엔 CPU였지만 지금은 CPU에 여러개의 코어가 들어 갈 수 있기 때문에 의미가 다소 변질됐다.)
- 코어가 많을수록 성능이 좋아지진 않는다. 코어마다 처리할 명령어를 적절하게 분배하는 것이 더 중요하기 때문이다.
- 스레드 :

하드웨어적 스레드 | 하나의 코어가 동시에 처리하는 명령어 단위(프로그램 카운터, 스택 포인터, 데이터 버퍼 레지스터 등 필수 레지스터들을 한 세트로 묶는다고 생각하면 이해하기 쉽다.) |
소프트웨어적 스레드 | 하나의 프로그램에서 독립적으로 실행되는 단위 |
2코어 4스레드 -> 1개 코어에 2개의 스레드가 존재
프로그램의 관점에선 4개의 코어가 존재 하는 것으로 인식한다. 그래서 하드웨어 스레드를 논리 프로세서라고 부르기도 한다.
3. 알고리즘
- 백준 1456번
- https://ahlight.tistory.com/96
백준 1456번 자바 ☆
문제 https://www.acmicpc.net/problem/1456 1456번: 거의 소수 어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다. 두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소
ahlight.tistory.com
'TIL' 카테고리의 다른 글
TIL - 0220 (0) | 2023.02.20 |
---|---|
TIL - 0218 (0) | 2023.02.18 |
TIL - 0217 (0) | 2023.02.17 |
TIL - 0216 (0) | 2023.02.16 |
TIL - 0214 (0) | 2023.02.14 |